Problems with SD8686 SDIO on HTC Shift
Pierre Ossman
drzeus at drzeus.cx
Mon Feb 2 14:22:11 EST 2009
On Sat, 24 Jan 2009 09:36:33 -0500
Dan Williams <dcbw at redhat.com> wrote:
> On Sat, 2009-01-24 at 12:53 +0100, Sven Barth wrote:
> > // I think this is about the SDIO Controller
Yup.
> > sdhci: Secure Digital Host Controller Interface driver
> > sdhci: Copyright(c) Pierre Ossman
> > sdhci-pci 0000:01:06.0: SDHCI controller found [1947:4743] (rev 9)
That's a new ID. Not even the vendor is known. I don't supposed you've
ripped the sucker apart and checked what's written on the chip?
> > sdhci-pci 0000:01:06.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
> > sdhci-pci 0000:01:06.0: Invalid iomem size. You may experience problems.
> > input: PC Speaker as /class/input/input7
> > mmc0: Unknown controller version (17). You may experience problems.
> > sdhci-pci 0000:01:06.0: Will use DMA mode even though HW doesn't fully claim to support it.
> > mmc0: SDHCI controller on PCI [0000:01:06.0] using DMA
> > sdhci-pci 0000:01:06.0: Invalid iomem size. You may experience problems.
> > mmc1: Unknown controller version (17). You may experience problems.
> > sdhci-pci 0000:01:06.0: Will use DMA mode even though HW doesn't fully claim to support it.
> > mmc1: SDHCI controller on PCI [0000:01:06.0] using DMA
This seems to be a delightfully crappy controller. Standards are for
suckers ;)
> > // without TX_POWER cmd
> > libertas_sdio: Libertas SDIO driver
> > libertas_sdio: Copyright Pierre Ossman
> > libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
> > libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
> > libertas: f3cbdcce, fw 8.70.8p1, cap 0x00000303
> > libertas: command 0x0028 timed out
> > libertas: requeueing command 0x0028 due to timeout (#1)
> > libertas: command 0x0028 timed out
> > libertas: requeueing command 0x0028 due to timeout (#2)
> > libertas: command 0x0028 timed out
> > libertas: requeueing command 0x0028 due to timeout (#3)
> > mmc1: Timeout waiting for hardware interrupt.
Hmm... the transfer isn't particularly odd when this happens. No idea
why it works during firmware transfer but not later.
There are a couple of things we can do:
1. Run this thing through mmc_test. It will run some tests on the
controller to see that it handles some common corner cases. You'll need
a storage card for this though.
Look for a file called "test" in sysfs for the device and echo
something into it. And make sure mmc_block isn't loaded. Test results
will be in dmesg.
2. Enable MMC_DEBUG and try to reinit the SDIO card. Perhaps we'll see
some more clue with a full dump.
Rgds
--
-- Pierre Ossman
WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://lists.infradead.org/pipermail/libertas-dev/attachments/20090202/ce244c1c/attachment.bin
More information about the libertas-dev
mailing list