linux/drivers/mmc/host
Nicolas Pitre a6d297f008 mvsdio: fix config failure with some high speed SDHC cards
Especially with Sandisk SDHC cards, the second SWITCH command was failing
with a timeout and the card was not recognized at all.  However if the
system was busy, or debugging was enabled, or a udelay(100) was inserted
before the second SWITCH command in the core code, then the timing was
so that the card started to work.

With some unusual block sizes, the data FIFO status doesn't indicate a
"empty" state right away when the data transfer is done.  Queuing
another data transfer in that condition results in a transfer timeout.

The empty FIFO bit eventually get set by itself in less than 50 usecs
when it is not set right away. So let's just poll for that bit before
configuring the controller with a new data transfer.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
2009-06-03 21:51:00 +02:00
..
at91_mci.c mmc: at91_mci: reorder timer setup and mmc_add_host() call 2008-11-30 23:52:44 +01:00
atmel-mci-regs.h atmel-mci: Platform code for supporting multiple mmc slots 2008-10-05 20:39:21 +02:00
atmel-mci.c mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
au1xmmc.c au1xmmc: raise segment size limit. 2008-08-01 19:04:26 +02:00
imxmmc.c imxmmc: move RSSR BLR 2009-04-08 20:11:59 +02:00
imxmmc.h imxmmc: use readl/writel 2008-12-16 14:58:17 +01:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc 2009-04-05 10:18:21 -07:00
Makefile mmc: Add OpenFirmware bindings for SDHCI driver 2009-03-24 21:30:11 +01:00
mmc_spi.c mmc_spi: support for non-byte-aligned cards 2009-04-08 20:45:51 +02:00
mmci.c [ARM] 5519/1: amba probe: pass "struct amba_id *" instead of void * 2009-05-20 23:26:51 +01:00
mmci.h mmci: Add support for ST Micro derivate 2009-02-02 20:57:06 +01:00
mvsdio.c mvsdio: fix config failure with some high speed SDHC cards 2009-06-03 21:51:00 +02:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c mxcmmc: Fix missing return value checking in DMA setup code. 2009-06-03 21:48:25 +02:00
of_mmc_spi.c mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2009-03-24 16:38:21 -07:00
omap.c mmc/omap: Use disable_irq_nosync() from within irq handlers. 2009-06-03 21:50:23 +02:00
omap_hsmmc.c omap_hsmmc: Trivial fix for a typo in comment 2009-06-03 21:47:37 +02:00
pxamci.c [ARM] pxa: move DMA registers definitions into <mach/dma.h> 2009-03-09 21:22:36 +08:00
pxamci.h [ARM] pxa: mmc: add 1st host controller support for pxa3xx 2008-01-26 15:07:53 +00:00
ricoh_mmc.c ricoh_mmc: Use suspend_late/resume_early 2009-02-02 20:57:06 +01:00
s3cmci.c mmc: s3cmci: fix s3c2410_dma_config() arguments. 2009-03-12 16:20:24 -07:00
s3cmci.h s3cmci: Support transfers which are not multiple of 32 bits. 2008-10-15 18:05:14 +02:00
sdhci-of.c sdhci-of: Add fsl,esdhc as a valid compatible to bind against 2009-06-03 21:49:55 +02:00
sdhci-pci.c sdhci-pci: bad error handling in probe function 2009-05-03 22:11:19 +02:00
sdhci.c New mail address for Pierre Ossman 2009-04-08 20:14:54 +02:00
sdhci.h sdhci: catch ADMA errors 2009-05-03 22:11:48 +02:00
sdricoh_cs.c Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
tifm_sd.c mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-08 21:37:46 +01:00
tmio_mmc.c tmio_mmc: Fix use after free in remove() 2009-03-24 21:30:03 +01:00
tmio_mmc.h MMC: tmio_mmc.h: fix build problem 2009-03-24 21:30:03 +01:00
wbsd.c New mail address for Pierre Ossman 2009-04-08 20:14:54 +02:00
wbsd.h mmc: update header file paths 2007-07-26 01:53:31 +02:00