linux/drivers/mmc/host
Doug Anderson 6130e7a9c3 mmc: dw_mmc: Remove old card detect infrastructure
The dw_mmc driver had a bunch of code that ran whenever a card was
ejected and inserted.  However, this code was old and crufty and
should be removed.  Some evidence that it's really not needed:

1. Is is supposed to be legal to use 'cd-gpio' on dw_mmc instead of
   using the built-in card detect mechanism.  The 'cd-gpio' code
   doesn't run any of the crufty old code but yet still works.

2. While looking at this, I realized that my old change (369ac86 mmc:
   dw_mmc: don't queue up a card detect at slot startup) actually
   castrated the old code a little bit already and nobody noticed.
   Specifically "last_detect_state" was left as 0 at bootup.  That
   means that on the first card removal none of the crufty code ran.

3. I can run "while true; do dd if=/dev/mmcblk1 of=/dev/null; done"
   while ejecting and inserting an SD Card and the world doesn't
   explode.

If some of the crufty old code is actually needed, we should justify
it and also put it in some place where it will be run even with
"cd-gpio".

Note that in my case I'm using the "cd-gpio" mechanism but for various
reasons the hardware triggers a dw_mmc "card detect" at bootup.  That
was actually causing a real bug.  The card detect workqueue was
running while the system was trying to enumerate the card.  The
"present != slot->last_detect_state" triggered and we were doing all
kinds of crazy stuff and messing up enumeration.  The new mechanism of
just asking the core to check the card is much safer and then the
bogus interrupt doesn't hurt.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Tested-by: alim.akhtar <alim.akhtar@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2014-11-10 12:40:39 +01:00
..
android-goldfish.c
atmel-mci-regs.h
atmel-mci.c mmc: atmel-mci: move mach header to platform_data 2014-11-10 12:40:37 +01:00
au1xmmc.c mmc: au1xmmc: fix error return code in au1xmmc_probe() 2014-09-09 13:59:01 +02:00
bfin_sdh.c
cb710-mmc.c
cb710-mmc.h
davinci_mmc.c
dw_mmc-exynos.c mmc: dw_mmc: exynos: Staticize dw_mci_exynos_pmops 2014-05-12 18:04:30 -04:00
dw_mmc-k3.c
dw_mmc-pci.c mmc: dw_mmc-pci: Remove superflous #else condition on CONFIG_PM_SLEEP 2014-09-09 13:59:05 +02:00
dw_mmc-pltfm.c mmc: dw_mmc: move rockchip related code to a separate file 2014-09-09 13:59:16 +02:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc: rockchip: Don't recalc the clock when it goes off 2014-11-10 12:40:36 +01:00
dw_mmc.c mmc: dw_mmc: Remove old card detect infrastructure 2014-11-10 12:40:39 +01:00
dw_mmc.h mmc: dw_mmc: Remove old card detect infrastructure 2014-11-10 12:40:39 +01:00
jz4740_mmc.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
Kconfig mmc: dw_mmc: move rockchip related code to a separate file 2014-09-09 13:59:16 +02:00
Makefile mmc: dw_mmc: move rockchip related code to a separate file 2014-09-09 13:59:16 +02:00
mmc_spi.c mmc: don't request CD IRQ until mmc_start_host() 2014-09-23 09:01:36 +02:00
mmci.c mmc: mmci: fix mmci_post_request 2014-11-10 12:40:29 +01:00
mmci.h mmc: mmci: Add Qcom specific rx_fifocnt logic. 2014-07-09 11:25:57 +02:00
mmci_qcom_dml.c mmc: mmci: Add qcom dml support to the driver. 2014-09-09 13:58:46 +02:00
mmci_qcom_dml.h mmc: mmci: Add qcom dml support to the driver. 2014-09-09 13:58:46 +02:00
moxart-mmc.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
msm_sdcc.c mmc: msm_sdcc: Use platform_set|get_drvdata 2014-11-10 12:40:34 +01:00
msm_sdcc.h
mvsdio.c mmc: mvsdio: avoid compiler warning 2014-06-12 10:50:27 +02:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: fix the default value for available voltages into mxcmci_probe 2014-11-10 12:40:25 +01:00
mxs-mmc.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
of_mmc_spi.c
omap.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
omap_hsmmc.c mmc: use .multi_io_quirk on omap_hsmmc 2014-09-09 14:10:42 +02:00
pxamci.c mmc: pxamci: prepare and unprepare the clocks 2014-09-09 13:59:24 +02:00
pxamci.h
rtsx_pci_sdmmc.c mmc: rtsx_pci: Set power related cap2 macros 2014-09-24 11:20:16 +02:00
rtsx_usb_sdmmc.c mmc: rtsx_pci: Set power related cap2 macros 2014-09-24 11:20:16 +02:00
s3cmci.c mmc: Convert pr_warning to pr_warn 2014-09-24 10:13:09 +02:00
s3cmci.h mmc: s3cmci: port DMA code to dmaengine API 2014-07-09 11:26:13 +02:00
sdhci-acpi.c mmc: sdhci-acpi: Fix Braswell eMMC timeout clock frequency 2014-10-06 15:08:14 +02:00
sdhci-bcm-kona.c mmc, sdhci, bcm-kona, LLVMLinux: Remove use of __initconst 2014-10-03 14:33:46 +02:00
sdhci-bcm2835.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-cns3xxx.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-dove.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: don't exit in case of no pinctrl states 2014-11-10 12:40:26 +01:00
sdhci-esdhc.h mmc: sdhci: convert sdhci_set_clock() into a library function 2014-05-22 07:26:32 -04:00
sdhci-msm.c mmc: Consolidate emmc tuning blocks 2014-09-23 09:13:19 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Use signed formatting in error messages 2014-11-10 12:40:38 +01:00
sdhci-of-esdhc.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-of-hlwd.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-pci-data.c
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Fix Dell E5440 issue 2014-11-10 12:40:25 +01: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 Braswell eMMC timeout clock frequency 2014-10-03 14:25:35 +02:00
sdhci-pci.h mmc: sdhci-pci: Add Bay Trail and Braswell SD card detect 2014-10-03 14:24:52 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: Do not use parent as the host's device 2014-09-09 13:58:58 +02:00
sdhci-pltfm.h
sdhci-pxav2.c mmc: sdhci-pxav2: Drop unused struct sdhci_pxa 2014-11-10 12:40:30 +01:00
sdhci-pxav3.c mmc: sdhci-pxav3: Remove checks for mandatory host clock 2014-11-10 12:40:31 +01:00
sdhci-s3c-regs.h
sdhci-s3c.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-sirf.c mmc: don't request CD IRQ until mmc_start_host() 2014-09-23 09:01:36 +02:00
sdhci-spear.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci-st.c mmc: sdhci-st: Intial support for ST SDHCI controller 2014-07-10 09:11:18 +02:00
sdhci-tegra.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sdhci.c mmc: sdhci: fix error conditions for controller reset 2014-11-10 12:40:27 +01:00
sdhci.h mmc: sdhci: execute tuning when device is not busy 2014-09-24 11:03:17 +02:00
sdricoh_cs.c
sh_mmcif.c mmc: remove .owner field for drivers using module_platform_driver 2014-09-09 13:59:04 +02:00
sh_mobile_sdhi.c mmc: use .multi_io_quirk on sh_mobile 2014-09-09 14:15:42 +02:00
sunxi-mmc.c mmc: sunxi: Remove unused includes of linux/clk-private.h 2014-11-10 12:40:29 +01:00
tifm_sd.c mmc: Convert pr_warning to pr_warn 2014-09-24 10:13:09 +02:00
tmio_mmc.c mmc: tmio_mmc: Fixup system PM suspend lock-up 2014-09-09 13:59:12 +02:00
tmio_mmc.h mmc: tmio: Remove library functions for system PM 2014-09-09 13:59:12 +02:00
tmio_mmc_dma.c mmc: tmio: remove Renesas specific #ifdef 2014-09-09 13:59:15 +02:00
tmio_mmc_pio.c mmc: don't request CD IRQ until mmc_start_host() 2014-09-23 09:01:36 +02:00
usdhi6rol0.c mmc: usdhi6rol0: fix compiler warnings 2014-06-12 10:38:50 +02:00
ushc.c
via-sdmmc.c
vub300.c
wbsd.c mmc: Convert pr_warning to pr_warn 2014-09-24 10:13:09 +02:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Remove deprecated IRQF_DISABLED 2014-07-09 11:26:08 +02:00