linux/drivers/mmc/host
James Hogan 03e8cb534e mmc: dw_mmc: fix stop when fallen back to PIO
There are several situations when dw_mci_submit_data_dma() decides to
fall back to PIO mode instead of using DMA, due to a short (to avoid
overhead) or "complex" (e.g. with unaligned buffers) transaction, even
though host->use_dma is set. However dw_mci_stop_dma() decides whether
to stop DMA or set the EVENT_XFER_COMPLETE event based on host->use_dma.
When falling back to PIO mode this results in data timeout errors
getting missed and the driver locking up.

Therefore add host->using_dma to indicate whether the current
transaction is using dma or not, and adjust dw_mci_stop_dma() to use
that instead.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Acked-by: Will Newton <will.newton@imgtec.com>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2011-07-20 17:21:05 -04:00
..
at91_mci.c mmc: at91_mci: fix multiblock SDIO transfers 2010-12-21 11:46:32 -08:00
atmel-mci-regs.h atmel-mci: add MCI2 register definitions 2009-06-13 22:43:01 +02:00
atmel-mci.c Haavard Skinnemoen has left Atmel 2011-05-18 23:24:50 +02:00
au1xmmc.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
bfin_sdh.c mmc: bfin_sdh: fix alloc size for private data 2011-01-26 00:28:41 -05:00
cb710-mmc.c mmc: cb710: Return err value in cb710_wait_while_busy() 2011-03-15 13:49:42 -04: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 mmc: davinci: add support for SDIO irq handling 2011-01-09 19:16:18 -05:00
dw_mmc.c mmc: dw_mmc: fix stop when fallen back to PIO 2011-07-20 17:21:05 -04:00
dw_mmc.h mmc: dw_mmc: don't hard code fifo depth, fix usage 2011-07-20 17:20:59 -04:00
imxmmc.c mmc: Remove distinction between hw and phys segments 2010-10-23 21:11:11 +08:00
imxmmc.h
jz4740_mmc.c mmc: jz4740: don't treat NULL clk as an error 2011-01-25 21:53:51 -05:00
Kconfig mmc: host: delete obsolete sdhci-pxa.c 2011-07-20 17:20:51 -04:00
Makefile mmc: tmio: Fix build error without CONFIG_MMC_SDHI 2011-07-20 17:21:00 -04:00
mmc_spi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mmci.c ARM: 6980/1: mmci: use StartBitErr to detect bad connections 2011-07-06 20:46:04 +01:00
mmci.h ARM: 6980/1: mmci: use StartBitErr to detect bad connections 2011-07-06 20:46:04 +01:00
msm_sdcc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc 2011-03-18 22:32:40 -07:00
msm_sdcc.h mmc: msm_sdcc: Add gpio handling function to driver 2011-01-21 16:58:00 -08:00
mvsdio.c mmc: Remove distinction between hw and phys segments 2010-10-23 21:11:11 +08:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c mmc: mxcmmc: use dmaengine API 2011-03-15 13:49:32 -04:00
mxs-mmc.c mmc: mxs-mmc: add mmc host driver for i.MX23/28 2011-03-15 13:49:37 -04:00
of_mmc_spi.c mmc: of_mmc_spi: add NO_IRQ define to of_mmc_spi.c 2011-06-18 22:18:00 -04:00
omap_hsmmc.c mmc: omap_hsmmc: use original sg_len for dma_unmap_sg 2011-06-25 18:51:28 -04:00
omap.c mmc: omap: Fix possible NULL pointer deref 2011-04-27 19:15:12 -04:00
pxamci.c mmc: Move regulator handling closer to core 2010-10-23 21:11:16 +08:00
pxamci.h
s3cmci.c Fix common misspellings 2011-03-31 11:26:23 -03:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-cns3xxx.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-dove.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: remove "WP" from flag ESDHC_FLAG_GPIO_FOR_CD_WP 2011-07-20 17:21:03 -04:00
sdhci-esdhc.h mmc: sdhci-esdhc: remove SDHCI_QUIRK_NO_CARD_NO_RESET from esdhc 2011-03-25 10:30:49 -04:00
sdhci-of-esdhc.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-of-hlwd.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-pci.c mmc: sdhci: Fix read-only detection with JMicron 388 chip 2011-05-24 21:02:42 -04:00
sdhci-pltfm.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-pltfm.h mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci-pxav2.c mmc: sdhci-pxa: move platform data to include/linux/platform_data 2011-07-20 17:20:52 -04:00
sdhci-pxav3.c mmc: sdhci-pxa: move platform data to include/linux/platform_data 2011-07-20 17:20:52 -04:00
sdhci-s3c.c mmc: sdhci-s3c: Fix return value in sdhci_s3c_suspend/resume() 2011-07-20 17:21:04 -04:00
sdhci-spear.c drivers: Final irq namespace conversion 2011-03-29 14:48:19 +02:00
sdhci-tegra.c mmc: sdhci: change sdhci-pltfm into a module 2011-07-20 17:20:49 -04:00
sdhci.c mmc: sdhci: specify maximum discard timeout 2011-07-20 17:21:04 -04:00
sdhci.h mmc: sdhci: Auto-CMD23 support. 2011-05-25 16:51:40 -04:00
sdricoh_cs.c pcmcia: Convert pcmcia_device_id declarations to const 2011-05-06 07:46:22 +02:00
sh_mmcif.c mmc: add runtime and system power-management support to the MMCIF driver 2011-05-24 23:53:51 -04:00
sh_mobile_sdhi.c mmc: sdhi: Add write16_hook 2011-07-20 17:20:57 -04:00
tifm_sd.c mmc: Remove distinction between hw and phys segments 2010-10-23 21:11:11 +08:00
tmio_mmc_dma.c mmc: tmio: Share register access functions 2011-07-20 17:20:56 -04:00
tmio_mmc_pio.c mmc: tmio: Fix race condition resulting in spurious interrupts 2011-07-20 17:21:01 -04:00
tmio_mmc.c mmc: Use device platform_data to retrieve tmio_mmc platform bits 2011-05-26 19:44:59 +02:00
tmio_mmc.h mmc: sdhi: Add write16_hook 2011-07-20 17:20:57 -04:00
ushc.c mmc: ushc: Remove duplicate include of usb.h 2011-01-25 21:53:43 -05:00
via-sdmmc.c mmc: use pci_dev->revision 2011-03-25 10:30:49 -04:00
vub300.c mmc: vub300: fix null dereferences in error handling 2011-06-18 22:17:51 -04:00
wbsd.c Fix common misspellings 2011-03-31 11:26:23 -03:00
wbsd.h