linux/drivers/mmc/host
Ulf Hansson 3eea697c1d mmc: sdricoh_cs: Throttle polling rate for commands
Rather than to poll in a busy-loop, let's convert into using
read_poll_timeout() and insert a small delay between each polling attempts.
In particular, this avoids hogging the CPU.

Additionally, to convert to read_poll_timeout() we also need to switch from
using a specific number of polling attempts, into a specific timeout in us
instead. The previous 100000 attempts, is translated into a total timeout
of total 1s, as that seemed like reasonable value to pick.

Cc: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20200508095218.14177-1-ulf.hansson@linaro.org
2020-05-28 11:22:14 +02:00
..
alcor.c mmc: alcor: Fix a resource leak in the error path for ->probe() 2020-05-07 15:10:25 +02:00
android-goldfish.c mmc: android-goldfish: Enable MMC_CAP2_NO_SDIO 2020-05-28 11:20:56 +02:00
atmel-mci.c mmc: atmel-mci: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:21:00 +02:00
au1xmmc.c mmc: au1xmmc: Drop redundant code in au1xmmc_send_command() 2020-05-28 11:20:56 +02:00
bcm2835.c mmc: bcm2835: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-19 08:19:43 +01:00
cavium-octeon.c mmc: cavium-octeon: remove nonsense variable coercion 2020-03-27 13:26:25 +01:00
cavium-thunderx.c mmc: cavium: Add missed pci_release_regions 2019-12-18 12:55:11 +01:00
cavium.c mmc: cavium: Add the missing dma unmap when the dma has finished. 2019-08-06 18:59:14 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Inform the mmc core about the maximum busy timeout 2020-05-28 11:22:13 +02:00
cb710-mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cqhci.c mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout loop 2020-04-20 09:24:39 +02:00
cqhci.h mmc: cqhci: Add cqhci_deactivate() 2020-03-24 14:39:52 +01:00
davinci_mmc.c mmc: core: Remove mmc_gpiod_request_*(invert_gpio) 2019-12-18 13:37:07 +01:00
dw_mmc-bluefield.c mmc: dw_mmc-bluefield: : Fix the license information 2019-01-22 08:46:20 +01:00
dw_mmc-exynos.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-exynos.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3798cv200: make array degrees static const, makes object smaller 2019-09-11 16:10:37 +02:00
dw_mmc-k3.c mmc: host: Prepare host drivers for mmc_regulator_set_vqmmc() returning > 0 2020-05-28 11:20:58 +02:00
dw_mmc-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-pltfm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-pltfm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-rockchip.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-zx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-zx.h
dw_mmc.c mmc: host: Prepare host drivers for mmc_regulator_set_vqmmc() returning > 0 2020-05-28 11:20:58 +02:00
dw_mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
jz4740_mmc.c mmc: jz4740: Inform the mmc core about the maximum busy timeout 2020-05-28 11:21:01 +02:00
Kconfig mmc: sdhci-of-at91: make MMC_SDHCI_OF_AT91 depend on HAVE_CLK 2020-05-28 11:21:01 +02:00
Makefile mmc: Add MMC host software queue support 2020-03-24 14:35:39 +01:00
meson-gx-mmc.c mmc: host: Prepare host drivers for mmc_regulator_set_vqmmc() returning > 0 2020-05-28 11:20:58 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error 2020-05-28 11:21:42 +02:00
mmc_hsq.c mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_hsq.h mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_spi.c mmc: mmc_spi: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:21:02 +02:00
mmci_qcom_dml.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
mmci_stm32_sdmmc.c mmc: mmci_sdmmc: fix power on issue due to pwr_reg initialization 2020-05-28 11:21:00 +02:00
mmci.c mmc: mmci: Switch to mmc_regulator_set_vqmmc() 2020-05-28 11:20:58 +02:00
mmci.h mmc: mmci_sdmmc: Implement signal voltage callbacks 2020-03-24 14:35:40 +01:00
moxart-mmc.c mmc: moxart: Use dma_request_chan() directly for channel request 2019-11-14 16:28:56 +01:00
mtk-sd.c mmc: host: Prepare host drivers for mmc_regulator_set_vqmmc() returning > 0 2020-05-28 11:20:58 +02:00
mvsdio.c mmc: mvsdio: convert to devm_platform_ioremap_resource 2019-12-18 14:55:11 +01:00
mvsdio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mxcmmc.c mmc: mxcmmc: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-19 08:19:42 +01:00
mxs-mmc.c mmc: mxs: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-19 08:19:42 +01:00
of_mmc_spi.c mmc: mmc_spi: Convert to use SPDX identifier 2019-04-15 11:55:54 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Convert to pinctrl_select_default_state() 2019-12-16 13:00:41 +01:00
omap.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
owl-mmc.c mmc: owl-mmc: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:21:01 +02:00
pxamci.c mmc: pxamci: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-19 08:19:42 +01:00
pxamci.h
renesas_sdhi_core.c mmc: renesas_sdhi: Avoid bad TAP in HS400 2020-05-28 11:21:02 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: use recent tap values for HS400 2019-12-16 12:29:36 +01:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi_sys_dmac: Remove all R-Car Gen3 SoCs 2019-09-11 15:58:39 +02:00
renesas_sdhi.h mmc: renesas_sdhi: Avoid bad TAP in HS400 2020-05-28 11:21:02 +02:00
rtsx_pci_sdmmc.c mmc: rtsx_pci: Fix support for speed-modes that relies on tuning 2020-03-18 11:55:02 +01:00
rtsx_usb_sdmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
s3cmci.c mmc: s3cmci: Drop redundant code in s3cmci_setup_data() 2020-05-28 11:20:56 +02:00
s3cmci.h MMC core: 2019-07-11 18:11:21 -07:00
sdhci_am654.c mmc: sdhci: am654: Use sdhci_set_power_and_voltage() 2020-03-24 14:39:53 +01:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: convert to devm_platform_ioremap_resource 2019-12-18 14:46:06 +01:00
sdhci_f_sdh30.h mmc: sdhci-milbeaut: add Milbeaut SD controller driver 2019-11-13 16:10:16 +01:00
sdhci-acpi.c mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040 2020-05-11 10:51:30 +02:00
sdhci-bcm-kona.c mmc: sdhci-bcm-kona: Drop unused includes 2019-02-25 08:40:58 +01:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Fix incorrect switch to HS mode 2020-01-20 12:01:19 +01:00
sdhci-cadence.c mmc: Replace zero-length array with flexible-array member 2020-03-24 14:39:45 +01:00
sdhci-cns3xxx.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
sdhci-dove.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 2019-05-30 11:29:19 -07:00
sdhci-esdhc-imx.c mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks 2020-05-28 11:20:57 +02:00
sdhci-esdhc.h mmc: sdhci-esdhc: update contact email 2020-05-28 11:21:03 +02:00
sdhci-iproc.c mmc: sdhci: iproc: Add custom set_power() callback for bcm2711 2020-03-24 14:39:53 +01:00
sdhci-milbeaut.c mmc: sdhci: milbeaut: Use sdhci_set_power_and_voltage() 2020-03-24 14:39:53 +01:00
sdhci-msm.c mmc: sdhci-msm: Fix error handling for dev_pm_opp_of_add_table() 2020-05-28 11:21:02 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Remove uninitialized ret variables 2020-05-28 11:20:58 +02:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: add inversion signal presence 2019-11-20 13:40:47 +01:00
sdhci-of-at91.c mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks 2020-05-28 11:20:57 +02:00
sdhci-of-dwcmshc.c
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: fix serious issue clock is always disabled 2020-01-20 12:10:36 +01:00
sdhci-of-hlwd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sdhci-omap.c mmc: sdhci-omap: Add Support for Suspend/Resume 2020-03-24 14:39:52 +01:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks 2020-05-28 11:20:57 +02:00
sdhci-pci-data.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows 10 2020-05-07 15:10:25 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Make some symbols static 2020-05-28 11:21:01 +02:00
sdhci-pci.h mmc: Replace zero-length array with flexible-array member 2020-03-24 14:39:45 +01:00
sdhci-pic32.c
sdhci-pltfm.c mmc: Remove dev_err() usage after platform_get_irq() 2019-09-11 15:58:39 +02:00
sdhci-pltfm.h mmc: Replace zero-length array with flexible-array member 2020-03-24 14:39:45 +01:00
sdhci-pxav2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
sdhci-pxav3.c mmc: sdhci-sprd: Fix the incorrect soft reset operation when runtime resuming 2019-08-06 18:59:14 +02:00
sdhci-s3c.c mmc: sdhci-s3c: convert to devm_platform_ioremap_resource 2019-12-18 14:46:06 +01:00
sdhci-sirf.c mmc: core: Remove mmc_gpiod_request_*(invert_gpio) 2019-12-18 13:37:07 +01:00
sdhci-spear.c mmc: sdhci-spear: convert to devm_platform_ioremap_resource 2019-12-18 14:46:06 +01:00
sdhci-sprd.c mmc: host: sdhci-sprd: Implement the request_atomic() API 2020-05-28 11:20:59 +02:00
sdhci-st.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sdhci-tegra.c sdhci: tegra: Enable MMC_CAP_WAIT_WHILE_BUSY host capability 2020-03-24 14:39:52 +01:00
sdhci-xenon-phy.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
sdhci-xenon.c mmc: sdhci-xenon: fix annoying 1.8V regulator warning 2020-04-20 10:09:03 +02:00
sdhci-xenon.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 2019-06-05 17:37:10 +02:00
sdhci.c mmc: sdhci: add spin lock for sdhci_set_default_irqs in sdhci_init 2020-05-28 11:20:59 +02:00
sdhci.h mmc: host: sdhci: Implement the request_atomic() API 2020-05-28 11:20:59 +02:00
sdricoh_cs.c mmc: sdricoh_cs: Throttle polling rate for commands 2020-05-28 11:22:14 +02:00
sh_mmcif.c mmc: sh_mmcif: Use dma_request_chan() instead dma_request_slave_channel() 2019-12-19 08:19:42 +01:00
sunxi-mmc.c mmc: host: Prepare host drivers for mmc_regulator_set_vqmmc() returning > 0 2020-05-28 11:20:58 +02:00
tifm_sd.c mmc: tifm_sd: Inform the mmc core about the maximum busy timeout 2020-05-28 11:21:02 +02:00
tmio_mmc_core.c mmc: tmio: remove superfluous callback wrappers 2020-03-24 14:35:38 +01:00
tmio_mmc.c Revert "mmc: tmio: move runtime PM enablement to the driver implementations" 2019-09-13 13:48:35 +02:00
tmio_mmc.h mmc: tmio: factor out TAP usage 2020-03-24 14:35:38 +01:00
toshsd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
toshsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
uniphier-sd.c mmc: uniphier-sd: Convert to pinctrl_select_default_state() 2019-12-16 13:00:41 +01:00
usdhi6rol0.c mmc: usdhi6rol0: Inform the mmc core about the maximum busy timeout 2020-05-28 11:21:00 +02:00
ushc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
via-sdmmc.c mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:21:02 +02:00
vub300.c mmc: vub300: Use scnprintf() for avoiding potential buffer overflow 2020-03-24 14:39:52 +01:00
wbsd.c mmc: wbsd: Replace hardcoded command numbers with existing defines 2020-05-28 11:20:56 +02:00
wbsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wmt-sdmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00