Libetas can not reload modules

Dongas dongas86 at gmail.com
Sun Jun 14 00:44:38 EDT 2009


2009/6/13 Jonathan Cameron <jic23 at cam.ac.uk>:
> Dongas wrote:
>> Dear ALL,
>>
>> The issue i encounterred is that libertas modules can not be reloaed.
>> (It works well when i first insmod them)
>> I want to rmmod them and do the re-insmod, but the error message is
>> shown as follows:
>> # insmod libertas_sdio.ko
>> libertas_sdio: Libertas SDIO driver
>> libertas_sdio: Copyright Pierre Ossman
>> ……
>> libertas: failed to load helper firmware
>> libertas leave: if_sdio_prog_helper(), ret -110
>>
>> After digging in the code, i found that the libertas driver will check
>> IF_SDIO_IO_RDY and IF_SDIO_DL_RDY bit in IF_SDIO_STATUS register for
>> the firmware downloading(CMD53 write) operation.
>> However, the SDIO status read back of mine card indicated that the
>> card IF_SDIO_DL_RDY bit was alway not set during the module reload
>> operation.Then the timeout happened with '-ETIMEDOUT' returned.
>>
>> Is there any body know why?
> This turns up on the mailing list from time to time.
> I think the firmware still still doesn't play ball.

Jonathan , thanks for your reply.
(I havn't searched out many related mails failed by this issue in the maillist.)
Could you please clarify a bit more?

Why the firmware still still doesn't play ball?
Is there any way to fix this issue?

>> BTW, i saw some code in if_sdio_prog_firmware funtion as follows.
>> ---------------------------------------------------------------------------------------------------
>>       if (scratch == IF_SDIO_FIRMWARE_OK) {
>>               lbs_deb_sdio("firmware already loaded\n");
>>               goto success;
>>       }
>> -----------------------------------------------------------------------------------------------------
> Someone else may correct me on this, but I think that will only be true
> immediately after driver load.  From then on there is no easy
> way of finding out what state the card is in.
>> It seems the driver doesn't need to re-load the firmware if the
>> firmware is already loaded, right?
>> In my case, during the first insmod of libertas modules, the driver
>> works well and i can assume the firmware is already loaded.
>> But when i reload modules, why the driver still needs to do firmware
>> reloading rather than skip it as above code said?
>>
>> (My card is based on Marvell 8686 chipset and kernel is 2.6.29)
>>
>> Thanks
>>
>> Regards
>> Dongas
>>
>> _______________________________________________
>> libertas-dev mailing list
>> libertas-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/libertas-dev
>>
>
>



More information about the libertas-dev mailing list