OpenCloudOS-Kernel/drivers/mmc/host
Haavard Skinnemoen e683b42300 atmel-mci: Initialize BLKR before sending data transfer command
The atmel-mci driver sometimes fails data transfers like this:

   mmcblk0: error -5 transferring data
   end_request: I/O error, dev mmcblk0, sector 2749769
   end_request: I/O error, dev mmcblk0, sector 2749777

It turns out that this might be caused by the BLKR register (which
contains the block size and the number of blocks being transfered) being
initialized too late. This patch moves the initialization of BLKR so
that it contains the correct value before the block transfer command is
sent.

This error is difficult to reproduce, but if you insert a long delay
(mdelay(10) or thereabouts) between the calls to atmci_start_command()
and atmci_submit_data(), all transfers seem to fail without this patch,
while I haven't seen any failures with this patch.

Reported-by: Hein_Tibosch <hein_tibosch@yahoo.es>
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-06 14:26:24 -07:00
..
Kconfig mfd: have TMIO drivers and subdevices depend on ARM 2008-08-10 23:30:34 +02:00
Makefile mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
at91_mci.c mmc: at91_mci: don't use coherent dma buffers 2008-09-02 19:21:38 -07:00
atmel-mci-regs.h atmel-mci: debugfs support 2008-07-27 01:26:17 +02:00
atmel-mci.c atmel-mci: Initialize BLKR before sending data transfer command 2008-10-06 14:26:24 -07:00
au1xmmc.c au1xmmc: raise segment size limit. 2008-08-01 19:04:26 +02:00
imxmmc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
imxmmc.h mmc: Move host and card drivers to subdirs 2007-05-01 13:04:17 +02:00
mmc_spi.c mmc_spi: put signals to low power off fix 2008-07-24 01:27:07 +02:00
mmci.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
mmci.h mmc: fix sg->page fallout 2007-10-23 20:37:24 +02:00
omap.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxamci.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxamci.h [ARM] pxa: mmc: add 1st host controller support for pxa3xx 2008-01-26 15:07:53 +00:00
ricoh_mmc.c mmc: extend ricoh_mmc to support Ricoh RL5c476 2008-02-08 09:02:47 +01:00
s3cmci.c s3cmci: attach get_cd host ops 2008-08-17 20:00:22 +02:00
s3cmci.h MMC: S3C24XX: Add platform data for MMC/SD driver 2008-07-15 14:14:47 +02:00
sdhci-pci.c sdhci: handle bug in JMB38x for sizes < 4 bytes 2008-08-01 19:03:35 +02:00
sdhci.c sdhci: check correct return value 2008-08-01 19:03:36 +02:00
sdhci.h sdhci: handle bug in JMB38x for sizes < 4 bytes 2008-08-01 19:03:35 +02:00
sdricoh_cs.c sdricoh_cs: removed unused #include <version.h> 2008-08-17 20:01:35 +02:00
tifm_sd.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
tmio_mmc.c mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
tmio_mmc.h tmio_mmc: fix compilation with debug enabled 2008-09-20 12:11:13 +02:00
wbsd.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
wbsd.h mmc: update header file paths 2007-07-26 01:53:31 +02:00