[linux-dvb] af9005/mt2060 module unload failure
Michael Krufky
mkrufky at linuxtv.org
Thu Jun 14 21:12:16 CEST 2007
Luca Olivetti wrote:
> En/na Michael Krufky ha escrit:
>
>>> Why dont you just use dvb_frontend_detach?
>>>
>> I retract that comment...
>>
>> The dvb-usb framework does this itself inside dvb-usb-dvb.c , inside
>> dvb_usb_adapter_frontend_exit
>>
>> ... You should not have to do the symbol_put inside af9005-fe.c
>> If you remove that code, does it fix the issue?
>
> Well, I'm doing the attach myself to attach the tuner to the frontend
> the first time it is opened, so if I remove the code there will be at
> least one reference to the mt2060 (or qt1010, depending on the model) so
> it cannot be unloaded.
> I couldn't use tuner_attach for some reason (I think it was called too
> early).
I see that inside af9005_fe_init, you are reading from the eeprom to determine
which tuner is present. Yes, the correct place for this would be inside the
"tuner_attach" callback of af9005_properties ... You say that isn't working for
you?? Exactly what happens when you do that?
Is it possible that there are some initializations happening inside af9005-fe.c
that is opening up access to the i2c bus, which you didnt have access to at the
time of tuner_attach? If that's the case, then it can (and should) be fixed by
moving the bus initialization code to a function that is callable from tuner_attach.
Perhaps there is an i2c gate being controlled by the demod? If that's the case,
then the best way to take care of this is by creating an i2c_gate_ctrl function
and add it to the frontend_ops struct, so that tuner_attach can call it from
there, and it will be accessible from within the set_params function of the
tuner module.
I didn't do a full analysis of this driver yet, but these are some ideas that
pop into my head at first glance.
Regards,
Mike
More information about the linux-dvb
mailing list