linux/drivers/mmc/host
Daniel Mack 4a31f2eff3 ARM: mx3: Fix a race condition in mxcmmc
From cefcdab08d1c9636c4a7290bc2bbe937d051bce4 Mon Sep 17 00:00:00 2001
From: Volker Ernst <volker.ernst@txtr.com>
Date: Mon, 26 Apr 2010 22:51:07 +0200
Subject: [PATCH] ARM: mx3: Fix a race condition in mxcmmc

This fixes a race condition regarding interrupt bits in the SDHC
controller driver code.

In case of PIO-transfer it does not clear SDHC-status bit#11/12
in the INT-handler anymore. INT-handler might be called during
an ongoing PIO-data-transfer (with some other INT-flag set) and
PIO-transfer depends on these bits being set to detect the end
of the data-transfer. This also means that at the end of PIO-
transfer that PIO-software has to clear these bits itself.

However in case of DMA-transfer these bits have to be cleared
in the INT-handler, because they are used to generate INTs then.

Works solid, no more problems here, can transfer big files.

Signed-off-by: Volker Ernst <volker.ernst@txtr.com>
Acked-by: Daniel Mack <daniel@caiaq.de>
Cc: Andy Green <andy@warmcat.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2010-05-17 11:44:13 +02:00
..
at91_mci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
atmel-mci-regs.h atmel-mci: add MCI2 register definitions 2009-06-13 22:43:01 +02:00
atmel-mci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
au1xmmc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
bfin_sdh.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cb710-mmc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cb710-mmc.h mmc: Driver for CB710/720 memory card reader (MMC part) 2009-06-13 22:42:58 +02:00
davinci_mmc.c davinci: MMC: add support for 8bit MMC cards 2010-03-06 11:26:36 -08:00
imxmmc.c imxmmc: Remove unnecessary semicolons 2009-07-31 12:28:46 +02:00
imxmmc.h imxmmc: use readl/writel 2008-12-16 14:58:17 +01:00
Kconfig mfd/mmc: SDHI Kconfig update 2010-03-07 22:17:32 +01:00
Makefile ricoh_mmc: port from driver to pci quirk 2010-03-06 11:26:36 -08:00
mmc_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mmci.c ARM: 5940/2: ARM: MMCI: remove custom DBG macro and printk 2010-02-21 22:21:17 +00:00
mmci.h ARM: 5721/1: MMCI enable the use of a regulator 2009-09-22 20:49:05 +01:00
msm_sdcc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
msm_sdcc.h mmc: msm_sdccc: driver for HTC Dream 2009-09-23 07:39:32 -07:00
mvsdio.c mvsdio: fix handling of partial word at the end of PIO transfer 2009-07-20 16:46:34 -07:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c ARM: mx3: Fix a race condition in mxcmmc 2010-05-17 11:44:13 +02:00
of_mmc_spi.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
omap_hsmmc.c omap hsmmc: fix a bug in card remove scenario 2010-04-07 08:38:03 -07:00
omap.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pxamci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pxamci.h
s3cmci.c s3cmci: s3cmci_card_present: Use no_detect to decide whether there is a card detect pin 2010-03-06 11:26:37 -08:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-of-core.c sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-of-esdhc.c sdhci-of: reorganize driver to support additional hardware 2009-12-17 15:45:31 -08:00
sdhci-of-hlwd.c sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-of.h sdhci-of: add support for the wii sdhci controller 2009-12-17 15:45:32 -08:00
sdhci-pci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sdhci-pltfm.c sdhci: platform driver for SDHCI 2009-06-13 22:42:59 +02:00
sdhci-s3c.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sdhci.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sdhci.h sdhci: protect header file against multi inclusion 2009-12-17 15:45:31 -08:00
sdricoh_cs.c Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
tifm_sd.c
tmio_mmc.c tmio_mmc: Balance cell enable()/disable() calls 2010-03-07 22:17:27 +01:00
tmio_mmc.h tmio_mmc: Keep card-detect interrupts enabled 2010-03-07 22:17:25 +01:00
via-sdmmc.c mmc: Add new via-sdmmc host controller driver 2009-06-21 21:00:59 +02:00
wbsd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
wbsd.h