[linux-dvb] never do symbol_put(tunerfoo_attach);
mkrufky at linuxtv.org
mkrufky at linuxtv.org
Sat Nov 17 00:56:36 CET 2007
Mauro Carvalho Chehab wrote:
> Em Sex, 2007-11-16 às 18:37 -0500, mkrufky at linuxtv.org escreveu:
>
>> Michel Ludwig wrote:
>>
>>> Hi Mike,
>>>
>>> On Fri 16 Nov 2007, mkrufky at linuxtv.org wrote:
>>>
>>>
>>>> Mauro and Michel,
>>>>
>>>> This changeset is wrong:
>>>>
>>>> http://linuxtv.org/hg/~mchehab/tm6000/rev/79f9210425e2
>>>>
>>>> You should not " symbol_put(xc3028_attach); " , because you don't
always
>>>> know that we're dealing with that tuner.
>>>>
>>>>
>>> We know that because it's the only tuner that I've ever seen on tm6000
>>> devices :-)
>>>
>>>
>> We like to make linuxtv drivers modular and forward compatible. There
>> _are_ devices out there that use other tuners, and if you hardcode
>> xc3028 into this driver, it prevents future developers from adding
>> support for other devices without having to change existing code.
>>
>>> But anyway, how would dvb_frontend_detach(fe) release the xc3028_attach
>>> symbol, which is requested by dvb_attach?
>>>
>> The answer is self-explanatory. Take a look at the other drivers, and
>> take a look at dvb_frontend_detach. (dvb_frontend.c , lines 1204 thru
>> 1221)
>>
>> Better to use the established methods, and have uniform codingstyle
>> across the tree -- don't reinvent the wheel ;-)
>>
>
> Mike, there are some that calls symbol_put directly, like dst.
>
>> -Mike
>>
DST is a special case -- it is an ASIC. Certain hacks were done there
to make it "look" like a frontend, but it is not. Manu has explained
this repeatedly.
-Mike
More information about the linux-dvb
mailing list