linux/drivers/mmc/host
Adrian Hunter b417577d3b omap_hsmmc: improve interrupt synchronisation
The following changes were needed:
	- do not use in_interrupt() because it will not work
	with threaded interrupts

In addition, the following improvements were made:
	- ensure DMA is unmapped only after the final DMA interrupt
	- ensure a request is completed only after the final DMA interrupt
	- disable controller interrupts when a request is not in progress
	- remove the spin-lock protecting the start of a new request from
	an unexpected interrupt because the locking was complicated and
	a 'req_in_progress' flag suffices (since the spin-lock only defers
	the unexpected interrupts anyway)
	- instead use the spin-lock to protect the MMC interrupt handler
	from the DMA interrupt handler
	- remove the semaphore preventing DMA from being started while
	the previous DMA is still in progress - the other changes make that
	impossible, so it is now a BUG_ON condition
	- ensure the controller interrupt status is clear before exiting
	the interrrupt handler

In general, these changes make the code safer but do not fix any specific
bugs so backporting is not necessary.

Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com>
Tested-by: Venkatraman S <svenkatr@ti.com>
Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-05-27 09:12:40 -07:00
..
at91_mci.c mmc: at91_mci: modify cache flush routines 2010-05-15 12:48:10 -07:00
atmel-mci-regs.h atmel-mci: add MCI2 register definitions 2009-06-13 22:43:01 +02:00
atmel-mci.c mmc: atmel-mci: Add support for SDIO interrupts 2010-05-27 09:12:39 -07: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: updates to suspend/resume implementation 2010-05-27 09:12:39 -07: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 mmc: add support MMCIF for SuperH 2010-05-27 09:12:39 -07:00
Makefile mmc: add support MMCIF for SuperH 2010-05-27 09:12:39 -07: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: 6033/1: ARM: MMCI: pass max frequency from platform 2010-04-14 16:08:18 +01:00
mmci.h ARM: 6032/1: ARM: MMCI: support 8bit mode on the ST Micro version 2010-04-14 16:08:17 +01:00
msm_sdcc.c Merge branch 'msm-mmc_sdcc' of git://codeaurora.org/quic/kernel/dwalker/linux-msm 2010-05-21 14:38:35 -07:00
msm_sdcc.h mmc: msm_sdcc: Fix bug where busclk expiry timer was not properly disabled 2010-03-18 13:37:07 -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 of: Always use 'struct device.of_node' to get device node pointer. 2010-05-18 16:10:44 -06:00
omap.c mmc-omap: add support for 16-bit and 32-bit registers 2010-05-27 09:12:39 -07:00
omap_hsmmc.c omap_hsmmc: improve interrupt synchronisation 2010-05-27 09:12:40 -07:00
pxamci.c [ARM] pxa: make it clear by converting MMC 'delay_detect' to millisecond 2010-05-11 17:25:04 +02: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 of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
sdhci-of-esdhc.c sdhci: build fix: rename SDHCI I/O accessor functions 2010-05-27 09:12:40 -07:00
sdhci-of-hlwd.c sdhci: build fix: rename SDHCI I/O accessor functions 2010-05-27 09:12:40 -07: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-pltfm: do not print errors in case of an extended iomem size 2010-05-27 09:12:39 -07:00
sdhci-s3c.c sdhci: enable multiblock transfers in sdhci-s3c 2010-05-27 09:12:40 -07:00
sdhci.c mmc: s3c6410: add new quirk in sdhci driver and update ADMA descriptor build 2010-05-27 09:12:40 -07:00
sdhci.h mmc: s3c6410: add new quirk in sdhci driver and update ADMA descriptor build 2010-05-27 09:12:40 -07:00
sdricoh_cs.c Merge branch 'master' of ../mmc 2008-12-31 19:56:05 +01:00
sh_mmcif.c mmc: add support MMCIF for SuperH 2010-05-27 09:12:39 -07: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 mmc: let MFD's provide supported Vdd card voltages to tmio_mmc 2010-05-22 17:05:21 +09:00
tmio_mmc.h mmc: add DMA support to tmio_mmc driver, when used on SuperH 2010-05-22 16:51:18 +09: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