rmmod libertas_sdio and reinsert causes problems with firmware upload.
Jonathan Cameron
jic23 at cam.ac.uk
Tue Sep 2 13:19:02 EDT 2008
Hi Pierre,
>> On Mon, 2008-09-01 at 16:24 +0100, Jonathan Cameron wrote:
>
> *snip*
>
>>> ret = sdio_writesb(card->func, card->ioport,
>>> packet->buffer, packet->nb);
>>> if (ret)
>>> printk("failed?\n");
>>> printk("I think I've reset the card by here?\n");
>
> You might want to try this here:
>
> sdio_func_disable(card->func);
> sdio_func_enable(card->func);
>
> Possibly also with a slight delay between the two. If the chip is
> sanely designed, that should power down everything but the SDIO
> frontend.
No luck unfortunately.
I'm still getting a time out when I try to read the scratch pad after doing
this.
Can someone with the relevant firmware docs (anything more recent that 5.1
- using 9.70.3) confirm the form of the command is correct.
The command definition in hostcmd.h has an action field whereas the 5.1
firmware spec claims there are no data fields at all. Would make life easier
to know which is correct
>
>>> sdio_release_host(card->func);
>>> msleep(2000);
>>> release:
>
> This should be further up or you can exit with the lock held.
Good point!
thanks,
Jonathan
More information about the libertas-dev
mailing list