linux/drivers/mmc/host
Wolfram Sang 0f93db6542 mmc: renesas_sdhi: keep SCC clock active when tuning
Tuning procedure switches to lower frequencies but that will turn the
SCC off and accessing its register then will hang. So, check when we are
tuning and keep the current setup of the external clock if we are doing
so. Note that we still switch to the lower frequency because of the
internal divider. We just make sure to not modify the external clock.
This patch depends on a MMC core patch calling the downgrade function
earlier.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Link: https://lore.kernel.org/r/20200901150250.26236-4-wsa+renesas@sang-engineering.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2020-09-07 09:16:32 +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 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
au1xmmc.c mmc: au1xmmc: Drop redundant code in au1xmmc_send_command() 2020-05-28 11:20:56 +02:00
bcm2835.c mmc: bcm2835: Simplify with dev_err_probe() 2020-09-07 09:11:32 +02: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: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22: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: add new cqhci_host_ops pre_enable() and post_disable() 2020-09-07 09:11:31 +02:00
cqhci.h mmc: cqhci: add new cqhci_host_ops pre_enable() and post_disable() 2020-09-07 09:11:31 +02:00
davinci_mmc.c mmc: davinci: Fix -Wpointer-to-int-cast on compile test 2020-09-07 09:16:31 +02:00
dw_mmc-bluefield.c
dw_mmc-exynos.c mmc: dw_mmc-exynos: remove redundant initialization of variable 'found' 2020-07-13 12:18:26 +02: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 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05: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 mmc: dw_mmc-zx: Simplify with dev_err_probe() 2020-09-07 09:11:33 +02:00
dw_mmc-zx.h
dw_mmc.c mmc: dw_mmc: Simplify with dev_err_probe() 2020-09-07 09:15:56 +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: Simplify with dev_err_probe() 2020-09-07 09:15:31 +02:00
Kconfig mmc: sdhci-msm: enable compile-testing on !ARM 2020-09-07 09:11:30 +02:00
Makefile mmc: sdhci-of-sparx5: Add Sparx5 SoC eMMC driver 2020-09-07 09:11:30 +02:00
meson-gx-mmc.c mmc: meson: Simplify with dev_err_probe() 2020-09-07 09:15:56 +02:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Don't use literal 0 to initialize structs 2020-05-28 11:22:15 +02:00
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Fix manual RX FIFO flushing 2020-05-28 11:22:15 +02:00
meson-mx-sdhc.h mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host 2020-05-28 11:22:14 +02:00
meson-mx-sdio.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05: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: fix timeout calculation 2020-09-07 09:11:29 +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 DMA API warning max segment size 2020-05-29 12:38:00 +02:00
mmci.c mmc: mmci: add sdio datactrl mask for sdmmc revisions 2020-07-13 12:18:23 +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: mediatek: add pre_enable() and post_disable() hook function 2020-09-07 09:11:31 +02:00
mvsdio.c mmc: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02: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: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02: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: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02:00
omap.c mmc: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02:00
owl-mmc.c mmc: owl-mmc: Get rid of of_match_ptr() macro 2020-07-06 15:56:41 +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: keep SCC clock active when tuning 2020-09-07 09:16:32 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi_internal_dmac: Fix dma unmapping in error cases 2020-07-13 12:18:24 +02: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 core: 2020-08-05 13:23:24 -07:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Remove set but unused variable 'err' 2020-07-13 12:18:25 +02:00
s3cmci.c mmc: s3cmci: Drop unused variables in dbg_dumpregs 2020-09-07 09:16:31 +02:00
s3cmci.h MMC core: 2019-07-11 18:11:21 -07:00
sdhci_am654.c mmc: sdhci_am654: Add workaround for card detect debounce timer 2020-09-07 09:11:30 +02: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: Fix HS400 tuning for AMDI0040 2020-08-21 10:57:20 +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: Simplify with optional clock and dev_err_probe() 2020-09-07 09:16:31 +02:00
sdhci-cadence.c mmc: sdhci-cadence: do not use hardware tuning for SD mode 2020-07-24 12:21:39 +02: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-esdhc-imx: remove unused code 2020-09-07 09:11:30 +02:00
sdhci-esdhc-mcf.c mmc: host: add Coldfire esdhc support 2020-05-28 11:22:15 +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: Enable eMMC DDR 3.3V support for bcm2711 2020-09-07 09:11:31 +02: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: Prefer asynchronous probe 2020-09-07 09:16:31 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Simplify with dev_err_probe() 2020-09-07 09:15:56 +02:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: Fix clock divider calculation 2020-07-13 12:17:34 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: fix CALCR register being rewritten 2020-05-29 12:38:00 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: add suspend/resume support 2020-05-28 11:22:14 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: exit HS400 properly before setting any speed mode 2020-05-28 11:22:16 +02:00
sdhci-of-hlwd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sdhci-of-sparx5.c mmc: sdhci-of-sparx5: Use proper printk format for dma_addr_t 2020-09-07 09:15:57 +02: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: Add LTR support for some Intel BYT based controllers 2020-09-07 09:11:29 +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: Set SDR104's clock to 205MHz and enable SSC for GL975x 2020-07-24 12:09:33 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Add HW tuning for SDR104 mode 2020-07-24 12:34:42 +02:00
sdhci-pci.h mmc: sdhci-pci-gli: Add Genesys Logic GL9763E support 2020-05-28 11:22:14 +02: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 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05: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 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sdhci-st.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
sdhci-tegra.c mmc: sdhci-tegra: Simplify with dev_err_probe() 2020-09-07 09:15:56 +02:00
sdhci-xenon-phy.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05: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 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
sdhci.h mmc: sdhci: Allow platform controlled voltage switching 2020-07-13 12:18:24 +02:00
sdricoh_cs.c mmc: sdricoh_cs: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:22:14 +02:00
sh_mmcif.c mmc: sh_mmcif: Use "kHz" for kilohertz 2020-07-13 12:18:23 +02:00
sunxi-mmc.c mmc: host: Drop redundant MMC_CAP_ERASE 2020-05-28 11:22:14 +02:00
tifm_sd.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
tmio_mmc_core.c mmc: tmio: remove indirection of 'execute_tuning' callback 2020-09-07 09:11:31 +02:00
tmio_mmc.c mmc: tmio: factor out common parts of the reset routine 2020-09-07 09:11:31 +02:00
tmio_mmc.h mmc: tmio: remove indirection of 'execute_tuning' callback 2020-09-07 09:11:31 +02: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: tmio: remove indirection of 'hw_reset' callback 2020-09-07 09:11:30 +02:00
usdhi6rol0.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05: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: Fix data race bug 2020-09-07 09:11:29 +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