linux/drivers/mmc/host
Doug Anderson 369ac8614f mmc: dw_mmc: don't queue up a card detect at slot startup
The MMC subsystem handles looking for a card at probe time. Queuing up our
own can race with the rest of the MMC subsystem and cause problems if we
get unlucky with timing. Just remove driver own detection triggering.  While
progressing the request from 'mmc_rescan', if 'dw_mci_work_routine_card'
routine is activated, it will cancel the current request. The problem case
is that 'mmc_rescan' is prior to 'dw_mci_work_routine_card' from host own.
Specifically, the following message shows the detection problem in driver's
probing. It would get an err -123 (-ENOMEDIUM) during probe.

[    4.216595] dwmmc_exynos 12210000.dwmmc1: Using internal DMA controller.
[    4.395935] dwmmc_exynos 12210000.dwmmc1: Version ID is 250a
[    4.401948] dwmmc_exynos 12210000.dwmmc1: DW MMC controller at irq 108, 64 bit host data width, 64 deep fifo
[    4.424430] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
[    4.453975] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
[    4.459592] mmc_host mmc1: Bus speed (slot 0) = 100000000Hz (slot req 400000Hz, actual 400000HZ div = 125)
[    4.484258] dwmmc_exynos 12210000.dwmmc1: 1 slots initialized
[    4.485406] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
[    4.487606] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
[    4.489794] dwmmc_exynos 12210000.dwmmc1: sdr0 mode (irq=108, width=0)
[    4.509757] mmc1: error -123 whilst initialising SDIO card

Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2013-09-25 21:31:22 -04: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: prepare clk before calling enable 2013-08-24 23:14:59 -04:00
au1xmmc.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00
bfin_sdh.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00
cb710-mmc.c mmc: host: use platform_{get,set}_drvdata() 2013-06-27 11:13:02 -04:00
cb710-mmc.h mmc: host: use platform_{get,set}_drvdata() 2013-06-27 11:13:02 -04:00
davinci_mmc.c MMC highlights for 3.11: 2013-07-10 11:16:00 -07:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: Add a new compatible string for exynos5420 2013-08-25 00:21:42 -04: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-pltfm: include 'dw_mmc-pltfm.h' 2013-08-24 23:41:01 -04:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc-socfpga.c mmc: dw_mmc: Add support DW SD/MMC driver on SOCFPGA 2013-06-27 12:39:24 -04:00
dw_mmc.c mmc: dw_mmc: don't queue up a card detect at slot startup 2013-09-25 21:31:22 -04:00
dw_mmc.h mmc: dw_mmc: Add support DW SD/MMC driver on SOCFPGA 2013-06-27 12:39:24 -04:00
jz4740_mmc.c mmc: slot-gpio: Add debouncing capability to mmc_gpio_request_cd() 2013-08-24 23:45:09 -04:00
Kconfig Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
Makefile mmc: host: Remove a duplicate line in Makefile 2013-08-24 22:52:19 -04:00
mmc_spi.c mmc: mmc_spi: Remove platform data .get_cd() and .get_ro() callbacks 2013-08-24 23:58:06 -04:00
mmci.c ARM: 7726/1: mmc: mmci: Add card_busy function to improve UHS card support 2013-05-23 00:09:16 +01:00
mmci.h ARM: 7726/1: mmc: mmci: Add card_busy function to improve UHS card support 2013-05-23 00:09:16 +01:00
msm_sdcc.c msm_sdcc: Convert to clk_prepare/unprepare 2013-06-24 13:06:42 -07: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: slot-gpio: Add debouncing capability to mmc_gpio_request_cd() 2013-08-24 23:45:09 -04:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: handle mmc_of_parse() errors during probe 2013-06-27 10:23:05 -04:00
mxs-mmc.c mmc: mxs-mmc: Check the return value from stmp_reset_block() 2013-08-24 22:09:45 -04:00
of_mmc_spi.c mmc: mmc_spi: Support CD/RO GPIOs 2013-08-24 23:45:22 -04:00
omap_hsmmc.c mmc: omap_hsmmc: clear status flags before starting a new command 2013-08-25 15:41:17 -04:00
omap.c mmc: omap: remove unnecessary #if 0's 2013-07-05 12:46:29 -04:00
pxamci.c mmc: pxamci: Indicate that regulators may be absent 2013-07-31 09:56:41 +01:00
pxamci.h
rtsx_pci_sdmmc.c mmc: memstick: rtsx: Modify copyright comments 2013-08-30 14:25:10 +02: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: sdhci-acpi: add support for eMMC hardware reset for HID 80860F14 2013-07-05 12:46:25 -04:00
sdhci-bcm2835.c mmc: sdhci-bcm2835: Staticize bcm2835_sdhci_get_min_clock 2013-08-24 21:37:55 -04:00
sdhci-bcm-kona.c Late changes for 3.12 broadcom driver 2013-08-29 16:47:53 -07:00
sdhci-cns3xxx.c mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-dove.c mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-esdhc-imx.c mmc: slot-gpio: Add debouncing capability to mmc_gpio_request_cd() 2013-08-24 23:45:09 -04:00
sdhci-esdhc.h mmc: esdhc: Add support for 8-bit bus width and non-removable card 2013-07-05 12:46:30 -04:00
sdhci-of-esdhc.c mmc: esdhc: add support to get voltage from device-tree 2013-08-26 11:32:43 -04:00
sdhci-of-hlwd.c mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci.c mmc: sdhci-pci: add another device id 2013-07-05 12:50:31 -04:00
sdhci-pltfm.c mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-pltfm.h mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-pxav2.c mmc: sdhci: Add size for caller in init+register 2013-05-31 11:59:29 -04:00
sdhci-pxav3.c mmc: slot-gpio: Add debouncing capability to mmc_gpio_request_cd() 2013-08-24 23:45:09 -04: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: initialize host->quirks2 for using quirks2 2013-08-29 21:19:13 -04:00
sdhci-sirf.c mmc: slot-gpio: Add debouncing capability to mmc_gpio_request_cd() 2013-08-24 23:45:09 -04:00
sdhci-spear.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00
sdhci-tegra.c mmc: tegra: handle mmc_of_parse() errors during probe 2013-06-27 10:23:52 -04:00
sdhci.c MMC highlights for 3.12: 2013-09-10 13:33:09 -07:00
sdhci.h mmc: sdhci: add card_event callback to sdhci 2013-07-05 12:59:12 -04: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: revision-specific CLK_CTRL2 handling 2013-08-25 00:10:18 -04:00
sh_mobile_sdhi.c mmc: SDHI: add DT compatibility strings for further SoCs 2013-08-25 00:10:13 -04: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 mmc: tmio_mmc_dma: fix PIO fallback on SDHI 2013-08-24 23:38:15 -04:00
tmio_mmc_pio.c Revert "mmc: tmio-mmc: Remove .set_pwr() callback from platform data" 2013-09-06 07:29:05 -04:00
tmio_mmc.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00
tmio_mmc.h Revert "mmc: tmio-mmc: Remove .set_pwr() callback from platform data" 2013-09-06 07:29:05 -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: Staticize vub300_init_card 2013-08-24 21:39:53 -04:00
wbsd.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
wbsd.h
wmt-sdmmc.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00