linux/drivers/mmc/host
Martin Fuzzey f6825748bd mmc: sdhci-esdhc-imx: Fix SDIO interrupts
Currently SDIO interrupts do not work on i.MX53 and maybe others.

This was observed with a Marvell 8787 based SDIO wifi adapter
using the mwifiex driver and firmware from the Marvell git
repository.
The symptom was a timeout after firmware download.

Observing the SDIO_DAT1 line showed that an interrupt was requested
(level 0) but no interrupt was generated in software, the line
stayed low until a timeout ocurred and the card was reset.

There is a Freescale errata
	ENGcm11186 "eSDHC misses SDIO interrupt when CINT is disabled"

The workaround suggested by this errata is already implemented and
involves clearing and then setting the D3CD bit in the host control
register [see esdhc_writel_le()]

However, when esdhc_writeb_le() is later used to write to
SDHCI_HOST_CONTROL it always resets the D3CD bit.

To fix this simply add the D3CD bit to the set of bits
not modified by esdhc_writeb_le().

Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2013-05-26 13:10:36 -04:00
..
android-goldfish.c mmc: android-goldfish: use resource_size() 2013-03-22 12:53:52 -04:00
atmel-mci-regs.h mmc: atmel-mci: AP700x PDC is not connected to MCI 2012-10-03 10:05:23 -04:00
atmel-mci.c mmc: atmel-mci: pio hang on block errors 2013-04-08 12:05:47 -04:00
au1xmmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
bfin_sdh.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
cb710-mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
cb710-mmc.h
davinci_mmc.c MMC highlights for 3.10: 2013-05-04 13:45:17 -07:00
dw_mmc-exynos.c mmc: dw_mmc: let device core setup the default pin configuration 2013-04-12 14:18:56 -04:00
dw_mmc-pci.c Drivers: mmc: remove __dev* attributes. 2013-01-03 15:57:14 -08:00
dw_mmc-pltfm.c mmc: Convert to devm_ioremap_resource() 2013-01-25 12:21:47 -08:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc.c mmc: dw_mmc: let device core setup the default pin configuration 2013-04-12 14:18:56 -04:00
dw_mmc.h mmc: dw_mmc: let device core setup the default pin configuration 2013-04-12 14:18:56 -04:00
jz4740_mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
Kconfig mmc: sdhci-s3c: Fix operation on non-single image Samsung platforms 2013-04-30 16:44:43 +02:00
Makefile mmc: sdhci-sirf: add mmc host sdhci-pltfm based driver for SiRF SoCs 2013-03-22 13:29:46 -04:00
mmc_spi.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
mmci.c ARM: 7714/1: mmc: mmci: Ensure return value of regulator_enable() is checked 2013-05-10 14:44:17 +01:00
mmci.h ARM: 7631/1: mmc: mmci: Add new VE MMCI variant 2013-01-28 14:11:53 +00:00
msm_sdcc.c mmc: msm_sdcc: Remove unnecessary include 2013-03-05 12:05:43 -08:00
msm_sdcc.h mmc: msm_sdcc: Use MCI_INT_MASK0 for PIO interrupts 2011-10-26 15:43:37 -04:00
mvsdio.c mmc: mvsdio: use dev_*() API instead of pr_*() API 2013-03-22 13:29:47 -04:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: enable DMA support on mpc512x 2013-04-12 15:13:41 -04:00
mxs-mmc.c ARM: arm-soc device tree changes, part 2 2013-05-07 11:06:17 -07:00
of_mmc_spi.c mmc: mmc_spi: Fix return value evaluation of irq_of_parse_and_map() 2013-02-24 14:37:10 -05:00
omap_hsmmc.c mmc: omap_hsmmc: support deferred probing for GPIOs 2013-03-22 11:51:49 -04:00
omap.c ARM: arm-soc: Header cleanups 2012-12-12 11:45:16 -08:00
pxamci.c mmc: remove use of __devinit 2012-11-28 12:28:18 -08:00
pxamci.h
rtsx_pci_sdmmc.c mmc: rtsx_pci_sdmmc: Don't execute power up sequence repeatedly 2013-03-22 12:35:42 -04:00
s3cmci.c mmc: s3cmci: moved mach/regs-sdi.h into s3cmci device driver 2013-03-05 10:42:47 +09:00
s3cmci.h
sdhci-acpi.c mmc: core: fix performance regression initializing MMC host controllers 2013-04-12 14:08:07 -04:00
sdhci-bcm2835.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-cns3xxx.c MMC highlights for 3.10: 2013-05-04 13:45:17 -07:00
sdhci-dove.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: Fix SDIO interrupts 2013-05-26 13:10:36 -04:00
sdhci-esdhc.h mmc: sdhci-esdhc: break out early if clock is 0 2012-09-04 13:58:06 -04:00
sdhci-of-esdhc.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-of-hlwd.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci.c mmc: core: fix init controller performance regression, updated patch 2013-04-15 11:27:25 -04:00
sdhci-pltfm.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-pltfm.h mmc: sdhci-pltfm: Constify the ops field of sdhci_pltfm_data struct 2013-03-22 13:00:29 -04:00
sdhci-pxav2.c mmc: sdhci: Constify sdhci_ops structs where possible 2013-03-22 13:00:51 -04:00
sdhci-pxav3.c mmc: sdhci-pxav3: controller should use SDCLK for timeout calculation 2013-04-04 09:59:42 -04:00
sdhci-s3c-regs.h mmc: sdhci-s3c: remove platform dependencies 2013-04-19 13:51:23 +02:00
sdhci-s3c.c MMC highlights for 3.10: 2013-05-04 13:45:17 -07:00
sdhci-sirf.c mmc: sdhci-sirf: add mmc host sdhci-pltfm based driver for SiRF SoCs 2013-03-22 13:29:46 -04:00
sdhci-spear.c mmc: sdhci-spear: add CONFIG_PM_SLEEP to suspend/resume functions 2013-04-04 10:13:58 -04:00
sdhci-tegra.c mmc: sdhci-tegra: fix MODULE_DEVICE_TABLE 2013-04-23 15:05:57 -04:00
sdhci.c mmc: sdhci: Don't ignore regulator_enable() return value 2013-03-22 12:40:05 -04:00
sdhci.h mmc: sdhci: enhance preset value function 2013-02-24 14:37:11 -05:00
sdricoh_cs.c drivers/mmc: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:26:04 -07:00
sh_mmcif.c mmc: sh_mmcif: use mmc_of_parse() to parse standard MMC DT bindings 2013-02-24 14:37:21 -05:00
sh_mobile_sdhi.c mmc: sh_mobile_sdhi: use managed resource allocations 2013-02-24 14:37:23 -05:00
tifm_sd.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
tmio_mmc_dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-03-29 15:34:57 -07:00
tmio_mmc_pio.c mmc: tmio: add support for the VccQ regulator 2013-02-24 14:37:24 -05:00
tmio_mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
tmio_mmc.h mmc: tmio_mmc: remove unused sdio_irq_enabled flag 2012-03-27 12:20:17 -04:00
ushc.c USB: convert some miscellanies drivers to use module_usb_driver() 2011-11-18 09:52:10 -08:00
via-sdmmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
vub300.c mmc: vub300: add missing usb_put_dev 2012-12-06 13:55:03 -05:00
wbsd.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Use resource_size() 2013-03-22 12:38:46 -04:00