linux/drivers/mmc/host
Sergei Shtylyov 011870d83a mmc: tmio_mmc_core: don't claim spurious interrupts
commit 5c27ff5db1 upstream.

I have encountered an interrupt storm during the eMMC chip probing (and
the chip finally didn't get detected).  It turned out that U-Boot left
the DMAC interrupts enabled while the Linux driver  didn't use those.
The SDHI driver's interrupt handler somehow assumes that, even if an
SDIO interrupt didn't happen, it should return IRQ_HANDLED.  I think
that if none of the enabled interrupts happened and got handled, we
should return IRQ_NONE -- that way the kernel IRQ code recoginizes
a spurious interrupt and masks it off pretty quickly...

Fixes: 7729c7a232 ("mmc: tmio: Provide separate interrupt handlers")
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
[bwh: Backported to 3.16:
 - tmio_mmc_sdio_irq() can be used directly as an interrupt handler, so
   make it return IRQ_NONE for unhandled interrupts
 - Adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2019-05-02 21:41:59 +01:00
..
android-goldfish.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -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: fix bad variable type for clkdiv 2015-06-02 12:08:16 +01:00
au1xmmc.c mmc: au1xmmc: Move away from using deprecated APIs 2013-10-30 20:26:35 -04:00
bfin_sdh.c mmc: bfin_sdh: Move away from using deprecated APIs 2013-10-30 20:26:36 -04:00
cb710-mmc.c mmc: cb710: Move away from using deprecated APIs 2013-10-30 20:26:37 -04:00
cb710-mmc.h mmc: host: use platform_{get,set}_drvdata() 2013-06-27 11:13:02 -04:00
davinci_mmc.c mmc: davinci: Remove redundant of_match_ptr 2014-02-25 15:42:55 -05:00
dw_mmc-exynos.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-06-16 22:22:28 +01:00
dw_mmc-k3.c mmc: dw_mmc: fix possible build error 2014-03-03 14:00:56 -05:00
dw_mmc-pci.c mmc: dw_mmc-pci: enable bus-mastering mode 2013-08-25 00:10:12 -04:00
dw_mmc-pltfm.c mmc: dw_mmc: Add support for SOCFPGA's platform specific implementation 2014-02-26 21:30:12 -05:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-06-16 22:22:28 +01:00
dw_mmc.h mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-06-16 22:22:28 +01:00
jz4740_mmc.c mmc: jz4740: Fix race condition in IRQ mask update 2018-10-21 08:45:11 +01:00
Kconfig mmc: simplify SDHCI Kconfig dependencies 2014-06-12 10:51:14 +02:00
Makefile The clock framework changes for 3.16 are pretty typical: mostly clock 2014-06-07 20:27:30 -07:00
mmc_spi.c mmc: spi: Fix card detection during probe 2019-05-02 21:41:59 +01:00
mmci.c mmc: mmci: fix an ages old detection error 2016-02-02 19:09:39 +00:00
mmci.h mmc: mmci: Enforce DT for signal direction and feedback clock 2014-05-12 12:52:45 +02:00
moxart-mmc.c mmc: moxart: fix wait_for_completion_interruptible_timeout return variable type 2017-02-23 03:54:04 +00:00
msm_sdcc.c mmc: msm_sdcc: Move away from using deprecated APIs 2013-10-30 20:26:41 -04: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: avoid compiler warning 2014-06-12 10:50:27 +02:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c mmc: mxcmmc: Use mmc_regulator_get_supply() API 2014-05-12 18:08:24 -04:00
mxs-mmc.c mmc: mxs-mmc: Fix additional cycles after transmission stop 2017-03-16 02:26:57 +00:00
of_mmc_spi.c mmc: mmc_spi: Support CD/RO GPIOs 2013-08-24 23:45:22 -04:00
omap.c MMC: OMAP: fix broken MMC on OMAP15XX/OMAP5910/OMAP310 2019-02-11 17:54:19 +00:00
omap_hsmmc.c mmc: omap_hsmmc: fix DMA API warning 2019-02-11 17:54:26 +00:00
pxamci.c mmc: pxamci: Remove redundant suspend and resume callbacks 2013-10-30 20:28:29 -04:00
pxamci.h [ARM] pxa: mmc: add 1st host controller support for pxa3xx 2008-01-26 15:07:53 +00:00
rtsx_pci_sdmmc.c mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response 2014-11-14 15:20:07 +00:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led 2017-02-23 03:54:16 +00:00
s3cmci.c mmc: s3mci: mark debug_regs[] as static 2018-03-03 15:52:10 +00:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-acpi.c mmc: sdhci-acpi: Add a HID and UID for a SD Card host controller 2015-02-16 11:06:23 +00:00
sdhci-bcm-kona.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-bcm2835.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-cns3xxx.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-dove.c mmc: sdhci-dove: use mmc_of_parse() and remove card_tasklet CD handler 2014-05-23 08:42:02 -04:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: allow 1.8V modes without 100/200MHz pinctrl states 2018-11-20 18:05:38 +00:00
sdhci-esdhc.h mmc: sdhci-esdhc: Make 8BIT bus work 2015-08-12 09:48:32 +01:00
sdhci-msm.c mmc: sdhci-msm: Fix fallout from sdhci refactoring 2014-06-12 10:40:27 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: fix incorrect timeout clock 2017-07-18 18:40:14 +01:00
sdhci-of-esdhc.c mmc: sdhci: Fix FSL ESDHC reset handling quirk 2015-08-12 09:48:35 +01:00
sdhci-of-hlwd.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Fix Dell E5440 issue 2015-01-15 10:44:14 +00:00
sdhci-pci-o2micro.h mmc: sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support 2014-05-22 08:40:44 -04:00
sdhci-pci.c mmc: sdhci-pci: Fix S0i3 for Intel BYT-based controllers 2018-06-16 22:22:28 +01:00
sdhci-pci.h mmc: sdhci-pci: Add support for Intel SPT 2015-02-16 11:04:49 +00:00
sdhci-pltfm.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pltfm.h mmc: sdhci-pltfm: export pltfm suspend/resume api 2014-01-13 12:48:06 -05:00
sdhci-pxav2.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pxav3.c mmc: sdhci-pxav3: fix platform_data is not initialized 2015-08-12 09:48:33 +01:00
sdhci-s3c-regs.h mmc: sdhci-s3c: remove platform dependencies 2013-04-19 13:51:23 +02:00
sdhci-s3c.c mmc: sdhci-s3c: fix runtime PM handling on sdhci_add_host() failure 2014-11-14 15:20:07 +00:00
sdhci-sirf.c mmc: don't request CD IRQ until mmc_start_host() 2014-11-14 15:20:07 +00:00
sdhci-spear.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-tegra.c mmc: tegra: fix reporting of base clock frequency 2014-05-23 08:49:29 -04:00
sdhci.c mmc: sdhci: export sdhci_execute_tuning() 2018-06-16 22:22:28 +01:00
sdhci.h mmc: sdhci: export sdhci_execute_tuning() 2018-06-16 22:22:28 +01:00
sdricoh_cs.c mmc: sdricoh_cs: Move away from using deprecated APIs 2013-10-30 20:28:32 -04:00
sh_mmcif.c mmc: sh_mmcif: Fix timeout value for command request 2015-05-20 13:26:15 +01:00
sh_mobile_sdhi.c mmc: sdhi: update sh_mobile_sdhi_of_data for r8a7791 2014-02-22 13:06:23 -05:00
sunxi-mmc.c mmc: sunxi: avoid invalid pointer calculation 2017-04-04 22:21:55 +01:00
tifm_sd.c mmc: tifm_sd: Move away from using deprecated APIs 2013-10-30 20:28:23 -04:00
tmio_mmc.c mmc: tmio_mmc: Convert from legacy to modern PM ops 2014-02-13 22:58:01 -05:00
tmio_mmc.h mmc: tmio: Adapt to proper PM configs for exported functions 2014-02-13 22:58:09 -05:00
tmio_mmc_dma.c mmc: tmio: bus_shift become tmio_mmc_data member 2014-01-13 12:48:23 -05:00
tmio_mmc_pio.c mmc: tmio_mmc_core: don't claim spurious interrupts 2019-05-02 21:41:59 +01:00
usdhi6rol0.c mmc: usdhi6rol0: fix compiler warnings 2014-06-12 10:38:50 +02:00
ushc.c mmc: ushc: fix NULL-deref at probe 2017-07-18 18:40:16 +01:00
via-sdmmc.c mmc: via-sdmmc: Move away from using deprecated APIs 2013-10-30 20:28:36 -04:00
vub300.c mmc: vub300: Move away from using deprecated APIs 2013-10-30 20:26:43 -04:00
wbsd.c mmc: wbsd: Silence compiler warning 2013-11-08 14:32:03 -05:00
wbsd.h mmc: update header file paths 2007-07-26 01:53:31 +02:00
wmt-sdmmc.c mmc: wmt-sdmmc: Use GFP_KERNEL instead of hard-coded value 2014-05-22 08:40:40 -04:00