On Tuesday 27 January 2009, Hugo Villeneuve wrote:
> 
> > > So if I am using the latest davinci git kernel, should I apply your
> > > patch? If so where is it located?
> > 
> > I just resent that.
> 
> I tried your patch but it actually prevents the driver from being
> loaded correctly (command 0x0003 timed out):

That's from the libertas driver ... unclear what MMC protocol
command is involved.  Better to see the whole trace with the
MMC and/or davinci_mmc debug messages.  And maybe trace the
SDIO irq enable/disable.

It's possible this is just the issue noted in the code:  the
IRQ from the SDIO device may already be pending (active low)
when the IRQ is enabled (edge detect) in the controller.  See
the errata documentation for a bit more information about how
SDIO IRQs need handling.  (DM355 errata covered it, I've not
checked DM6446; it's more of an "incomplete documentation"
erratum than a hardware bug.)


> $> modprobe libertas_sdio helper_name=sd8686_helper.bin
> fw_name=sd86 86.bin
> libertas_sdio: Libertas SDIO driver
> libertas_sdio: Copyright Pierre Ossman
> r...@das-04:~# modprobe davinci_mmc
> davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
> $> mmc0: new SDIO card at address 0001
> libertas_sdio mmc0:0001:1: firmware: requesting sd8686_helper.bin
> libertas_sdio mmc0:0001:1: firmware: requesting sd8686.bin
> libertas: command 0x0003 timed out
> libertas: requeueing command 0x0003 due to timeout (#1)
> libertas: Received result 0 to command 3 after 1 retries
> libertas: 00:13:e0:ab:e0:17, fw 9.70.3p14, cap 0x00000303
> libertas: unidentified region code; using the default (USA)

Did this get further than without the SDIO IRQ patch?


> > What's odd here is that the DMA should already have been
> > cleanly shut down.
> >
> > Also:  I'm suspecting that "host" itself is NULL, which
> > should never happen ... what are the arguments provided
> > to that DMA error callback?
>
> No, I tested it and host is not NULL, here is the line I added:
>   dev_warn(mmc_dev(host->mmc), "host->data is NULL\n");

Suggesting that maybe the issue is just a problem in the
IRQ deliver sequence.

Like maybe IRQs are not properly disabled after the
CMD53 READ completes.

- Dave


> > CMD53 is SD_IO_RW_EXTENDED ... I suspect the current code
> > is making an assumption that CMD53 doesn't follow, which
> > explains both the errors observed here.  It might relate
> > to SDIO IRQs, since <linux/mmc/sdio.h> refers to various
> > cases where they appear during CMD53.


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to