kernel-fxtec-pro1x/drivers/mmc/host
Linus Walleij 49adc0cacb mmc: mmci: refactor ST Micro busy detection
The ST Micro-specific busy detection was made after the assumption
that only this variant supports busy detection. So when doing busy
detection, the host immediately tries to use some ST-specific
register bits.

Since the qualcomm variant also supports some busy detection
schemes, encapsulate the variant flags better in the variant struct
and prepare to add more variants by just providing some bitmasks
to the logic.

Put the entire busy detection logic within an if()-clause in the
mmci_cmd_irq() function so the code is only executed when busy
detection is enabled, and so that it is kept in (almost) one
place, and add comments describing what is going on so the
code can be understood.

Tested on the Ux500 by introducing some prints in the busy
detection path and noticing how the IRQ is enabled, used and
disabled successfully.

Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2016-11-29 09:00:47 +01:00
..
android-goldfish.c
atmel-mci.c mmc: atmel-mci: Remove redundant runtime PM calls 2016-05-02 10:33:20 +02:00
au1xmmc.c
bfin_sdh.c mmc: bfin_sdh: remove the MMC_DATA_STREAM flag 2016-02-29 11:02:59 +01:00
cb710-mmc.c
cb710-mmc.h
davinci_mmc.c mmc: davinci: remove incorrect NO_IRQ use 2016-09-26 21:31:25 +02:00
dw_mmc-exynos.c mmc: dw_mmc-exynos: deploy runtime PM facilities 2016-11-29 09:00:39 +01:00
dw_mmc-exynos.h
dw_mmc-k3.c mmc: dw_mmc-k3: deploy runtime PM facilities 2016-11-29 09:00:39 +01:00
dw_mmc-pci.c mmc: dw_mmc-pci: deploy runtime PM facilities 2016-11-29 09:00:40 +01:00
dw_mmc-pltfm.c mmc: dw_mmc-pltfm: deploy runtime PM facilities 2016-11-29 09:00:41 +01:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc: disable biu clk if possible 2016-11-29 09:00:38 +01:00
dw_mmc.c mmc: dw_mmc: remove system PM callback 2016-11-29 09:00:42 +01:00
dw_mmc.h mmc: dw_mmc: remove system PM callback 2016-11-29 09:00:42 +01:00
jz4740_mmc.c timers: Remove set_timer_slack() leftovers 2016-07-07 10:35:09 +02:00
Kconfig MMC: meson: initial support for GX platforms 2016-11-29 09:00:43 +01:00
Makefile MMC: meson: initial support for GX platforms 2016-11-29 09:00:43 +01:00
meson-gx-mmc.c MMC: meson: initial support for GX platforms 2016-11-29 09:00:43 +01:00
mmc_spi.c mmc: mmc_spi: Add Card Detect comments and fix CD GPIO case 2016-03-16 12:36:09 +01:00
mmci.c mmc: mmci: refactor ST Micro busy detection 2016-11-29 09:00:47 +01:00
mmci.h mmc: mmci: refactor ST Micro busy detection 2016-11-29 09:00:47 +01:00
mmci_qcom_dml.c
mmci_qcom_dml.h
moxart-mmc.c mmc: moxart: fix wait_for_completion_interruptible_timeout return variable type 2016-09-26 21:31:07 +02:00
mtk-sd.c mmc: mediatek: Fix module autoload 2016-11-29 09:00:29 +01:00
mvsdio.c
mvsdio.h
mxcmmc.c mmc: host: use the defined function to check whether card is removable 2016-07-25 10:34:21 +02:00
mxs-mmc.c mmc: mxs: Initialize the spinlock prior to using it 2016-11-07 13:30:08 +01:00
of_mmc_spi.c mmc: of_mmc_spi: fix unused warning 2016-03-17 14:54:40 +01:00
omap.c mmc: omap: Initialize dma_slave_config to avoid random data in it's fields 2016-09-14 13:59:33 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Initialize dma_slave_config to avoid random data 2016-09-14 13:59:33 +02:00
pxamci.c mmc: pxamci: fix potential oops 2016-07-18 11:50:40 +02:00
pxamci.h
rtsx_pci_sdmmc.c mmc: rtsx_pci: use new macro for R1 without CRC 2016-09-26 21:31:32 +02:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Enable runtime PM autosuspend 2016-11-29 09:00:28 +01:00
s3cmci.c mmc: s3cmci: Use DMA slave map rather than exported DMA filter 2016-11-29 09:00:45 +01:00
s3cmci.h mmc: s3cmci: Register cpufreq notifier only on S3C24xx 2016-07-25 10:34:46 +02:00
sdhci-acpi.c mmc: sdhci-acpi: Set MMC_CAP_CMD_DURING_TFR for Intel eMMC controllers 2016-09-26 21:31:30 +02:00
sdhci-bcm-kona.c mmc: sdhci-bcm-kona: fix error return code in sdhci_bcm_kona_probe() 2016-09-26 21:31:08 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Fix incorrect capability 2016-09-26 21:31:28 +02:00
sdhci-cns3xxx.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-dove.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: Correct two register accesses 2016-10-13 08:58:03 +02:00
sdhci-esdhc.h
sdhci-iproc.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-msm.c mmc: sdhci-msm: Add pm_runtime and system PM support 2016-11-29 09:00:32 +01:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: add sdhci_arasan_voltage_switch for arasan, 5.1 2016-10-10 14:01:33 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: Fix module autoload 2016-11-29 09:00:29 +01:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: fixup PRESENT_STATE read 2016-11-18 14:41:47 +01:00
sdhci-of-hlwd.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-pci-core.c mmc: sdhci-pci: Fix bus power failing to enable for some Intel controllers 2016-10-10 14:20:52 +02:00
sdhci-pci-data.c
sdhci-pci-o2micro.c
sdhci-pci-o2micro.h
sdhci-pci.h mmc: sdhci-pci: Let devices define their own sdhci_ops 2016-10-10 14:20:48 +02:00
sdhci-pic32.c mmc: sdhci-pic32: remove owner assignment 2016-05-02 10:33:25 +02:00
sdhci-pltfm.c mmc: sdhci: Remove ->platform_init() callback as it's no longer used 2016-09-26 21:31:16 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-pxav2.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-pxav3.c mmc: sdhci: Rename sdhci_set_power() to sdhci_set_power_noreg() 2016-10-10 14:20:41 +02:00
sdhci-s3c-regs.h
sdhci-s3c.c mmc: sdhci-s3c: Remove non needed #ifdef CONFIG_PM for dev_pm_ops 2016-07-27 11:23:37 +02:00
sdhci-sirf.c mmc: sdhci-sirf: Remove non needed #ifdef CONFIG_PM* for dev_pm_ops 2016-07-27 11:25:23 +02:00
sdhci-spear.c
sdhci-st.c mmc: sdhci-st: Handle interconnect clock 2016-09-12 10:31:43 +02:00
sdhci-tegra.c mmc: tegra: Mark 64-bit DMA broken on Tegra124 2016-09-26 21:31:23 +02:00
sdhci.c mmc: sdhci: put together into one condition checking 2016-11-29 09:00:27 +01:00
sdhci.h mmc: sdhci-of-esdhc: fixup PRESENT_STATE read 2016-11-18 14:41:47 +01:00
sdhci_f_sdh30.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdricoh_cs.c mmc: sdricoh_cs: Less checks in sdricoh_init_mmc() after, error detection 2016-02-29 11:02:45 +01:00
sh_mmcif.c mmc: sh_mmcif: Use a 10s timeout in the error recovery path 2016-07-25 10:34:25 +02:00
sh_mobile_sdhi.c mmc: sh_mobile_sdhi: Add r8a7796 support 2016-09-26 21:31:24 +02:00
sunxi-mmc.c mmc: sunxi: Prevent against null dereference for vmmc 2016-11-29 09:00:31 +01:00
tifm_sd.c
tmio_mmc.c
tmio_mmc.h mmc: tmio: add eMMC support 2016-09-26 21:31:33 +02:00
tmio_mmc_dma.c mmc: tmio: merge distributed include files 2016-05-02 10:33:40 +02:00
tmio_mmc_pio.c mmc: tmio: add eMMC support 2016-09-26 21:31:33 +02:00
toshsd.c PM / Runtime: Move ignore_children flag under CONFIG_PM 2016-04-22 01:32:37 +02:00
toshsd.h
usdhi6rol0.c mmc: usdhi6rol0: add pinctrl to set pin drive strength 2016-05-02 10:36:06 +02:00
ushc.c
via-sdmmc.c
vub300.c mmc: vub300: don't print error when allocating urb fails 2016-09-26 21:31:09 +02:00
wbsd.c
wbsd.h
wmt-sdmmc.c