rmmod libertas_sdio and reinsert causes problems with firmware upload.
Dan Williams
dcbw at redhat.com
Tue Sep 2 14:12:13 EDT 2008
On Tue, 2008-09-02 at 18:19 +0100, Jonathan Cameron wrote:
> 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
That field isn't set with the 8.0 GPL drivers and I think it's a
holdover from earlier firmware. I'm pretty sure it's no longer used.
Dan
> >
> >>> sdio_release_host(card->func);
> >>> msleep(2000);
> >>> release:
> >
> > This should be further up or you can exit with the lock held.
> Good point!
More information about the libertas-dev
mailing list