mirror-linux/drivers/mmc/host
Yann Gautier ff31ee0a0f mmc: mmci: stm32: clear DLYB_CR after sending tuning command
During test campaign, and especially after several unbind/bind sequences,
it has been seen that the SD-card on SDMMC1 thread could freeze.
The freeze always appear on a CMD23 following a CMD19.
Checking SDMMC internal registers shows that the tuning command (CMD19)
has failed.
The freeze is then due to the delay block involved in the tuning sequence.
To correct this, clear the delay block register DLYB_CR register after
the tuning commands.

Signed-off-by: Christophe Kerello <christophe.kerello@foss.st.com>
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Fixes: 1103f807a3 ("mmc: mmci_sdmmc: Add execute tuning with delay block")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20211215141727.4901-4-yann.gautier@foss.st.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2021-12-21 13:03:51 +01:00
..
Kconfig Merge branch 'fixes' into next 2021-10-19 12:59:04 +02:00
Makefile mmc: sdhci-pci: Remove dead code (struct sdhci_pci_data et al) 2021-10-19 12:43:21 +02:00
alcor.c
atmel-mci.c mmc: atmel-mci: Use new tasklet API 2021-02-08 13:00:31 +01:00
au1xmmc.c mmc: au1xmmc: Use new tasklet API 2021-02-08 13:00:31 +01:00
bcm2835.c
cavium-octeon.c
cavium-thunderx.c
cavium.c mmc: cavium: Use '"%s...", __func__' to print function name 2021-03-30 11:42:06 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Use new tasklet API 2021-02-15 10:43:23 +01:00
cb710-mmc.h
cqhci-core.c Merge branch 'fixes' into next 2021-10-26 17:37:06 +02:00
cqhci-crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
cqhci-crypto.h mmc: core: Store pointer to bio_crypt_ctx in mmc_request 2021-08-24 10:15:32 +02:00
cqhci.h mmc: cqhci: add cqhci_host_ops::program_key 2021-02-01 12:02:33 +01:00
davinci_mmc.c
dw_mmc-bluefield.c
dw_mmc-exynos.c mmc: dw_mmc: exynos: Fix spelling mistake "candiates" -> candidates 2021-10-28 11:53:56 +02:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c
dw_mmc-k3.c mmc: dw_mmc-k3: use the correct HiSilicon copyright 2021-03-31 14:47:53 +02:00
dw_mmc-pci.c
dw_mmc-pltfm.c mmc: dw_mmc-pltfm: Remove unused <linux/clk.h> 2021-06-14 13:57:42 +02:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc-rockchip: Just set default sample value for legacy mode 2021-04-16 15:10:08 +02:00
dw_mmc.c mmc: dw_mmc: Drop use of ->init_card() callback 2021-10-21 21:47:30 +02:00
dw_mmc.h mmc: dw_mmc: Add data CRC error injection 2021-08-24 10:15:31 +02:00
jz4740_mmc.c mmc: JZ4740: remove the flush_kernel_dcache_page call in jz4740_mmc_read_data 2021-09-03 09:58:13 -07:00
meson-gx-mmc.c mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk 2021-10-06 17:23:28 +02:00
meson-mx-sdhc-clkc.c
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands 2021-12-20 11:14:56 +01:00
meson-mx-sdhc.h
meson-mx-sdio.c
mmc_hsq.c
mmc_hsq.h
mmc_spi.c mmc: spi: Add device-tree SPI IDs 2021-11-23 12:32:28 +01:00
mmci.c mmc: mmci: Add small comment about reset thread 2021-10-12 10:21:19 +02:00
mmci.h
mmci_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: clear DLYB_CR after sending tuning command 2021-12-21 13:03:51 +01:00
moxart-mmc.c mmc: moxart: Fix null pointer dereference on pointer host 2021-10-14 13:21:42 +02:00
mtk-sd.c mmc: mediatek: free the ext_csd when mmc_get_ext_csd success 2021-12-09 10:30:11 +01:00
mvsdio.c
mvsdio.h
mxcmmc.c
mxs-mmc.c mmc: mxs-mmc: disable regulator on error and in the remove function 2021-10-19 13:02:58 +02:00
of_mmc_spi.c mmc: mmc_spi: Imply container_of() to be no-op 2021-06-14 13:57:42 +02:00
omap.c mmc: omap: Use new tasklet API 2021-02-08 13:00:31 +01:00
omap_hsmmc.c dt-bindings: mmc: update mmc-card.yaml reference 2021-10-12 10:21:17 +02:00
owl-mmc.c mmc: owl-mmc: Remove unnecessary error log 2021-04-12 13:52:47 +02:00
pxamci.c
pxamci.h
renesas_sdhi.h mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
renesas_sdhi_core.c mmc: renesas_sdhi: initialize variable properly when tuning 2021-11-30 16:09:55 +01:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
rtsx_pci_sdmmc.c mmc: rtsx_pci: Fix long reads when clock is prescaled 2021-08-24 10:15:33 +02:00
rtsx_usb_sdmmc.c
s3cmci.c mmc: s3cmci: move to use request_irq by IRQF_NO_AUTOEN flag 2021-06-14 13:57:34 +02:00
s3cmci.h
sdhci-acpi.c mmc: sdhci: Deduplicate sdhci_get_cd_nogpio() 2021-10-19 12:43:21 +02:00
sdhci-bcm-kona.c
sdhci-brcmstb.c mmc: sdhci-brcmstb: Remove CQE quirk 2021-03-30 12:42:44 +02:00
sdhci-cadence.c
sdhci-cns3xxx.c
sdhci-dove.c
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: disable CMDQ support 2021-11-15 14:15:58 +01:00
sdhci-esdhc-mcf.c mmc: sdhci: replace mmc->parent with mmc_dev() for consistency 2021-03-30 11:42:07 +02:00
sdhci-esdhc.h
sdhci-iproc.c Revert "mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN on BCM2711" 2021-08-27 16:30:36 +02:00
sdhci-milbeaut.c
sdhci-msm.c mmc: sdhci-msm: Use maximum possible data timeout value 2021-08-24 10:15:34 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Add intel Thunder Bay SOC support to the arasan eMMC driver 2021-10-12 10:21:17 +02:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: Remove some unnecessary casts from KUnit tests 2021-06-23 16:39:08 -06:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: Turn down a phase correction warning 2021-06-14 13:57:44 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: replace while loop with read_poll_timeout 2021-10-06 17:23:27 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: set MMC_CAP_WAIT_WHILE_BUSY 2021-03-30 11:42:07 +02:00
sdhci-of-esdhc.c mmc: core: Convert mmc_of_parse_voltage() to use device property API 2021-04-23 09:29:49 +02:00
sdhci-of-hlwd.c
sdhci-of-sparx5.c
sdhci-omap.c mmc: sdhci-omap: Fix build if CONFIG_PM_SLEEP is not set 2021-10-21 21:39:50 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci: Remove dead code (rst_n_gpio et al) 2021-10-19 12:43:21 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Fine tune GL9763E L1 entry delay 2021-06-14 13:57:38 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Fix spelling mistake "unsupport" -> "unsupported" 2021-10-12 10:21:19 +02:00
sdhci-pci.h mmc: sdhci-pci: Remove dead code (rst_n_gpio et al) 2021-10-19 12:43:21 +02:00
sdhci-pic32.c
sdhci-pltfm.c
sdhci-pltfm.h mmc: sdhci-pltfm: Fix linking err for sdhci-brcmstb 2021-02-01 11:13:09 +01:00
sdhci-pxav2.c
sdhci-pxav3.c
sdhci-s3c.c mmc: sdhci-s3c: drop unneeded MODULE_ALIAS 2021-10-12 10:21:18 +02:00
sdhci-spear.c
sdhci-sprd.c mmc: sdhci-sprd: Wait until DLL locked after being configured 2021-10-12 10:21:19 +02:00
sdhci-st.c mmc: sdhci-st: Remove unnecessary error log 2021-04-12 13:52:48 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Fix switch to HS400ES mode 2021-12-14 13:33:10 +01:00
sdhci-xenon-phy.c mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci-xenon.c mmc: xenon: add AP807 compatible string 2021-02-01 11:54:45 +01:00
sdhci-xenon.h mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci.c mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB 2021-11-17 10:34:06 +01:00
sdhci.h mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB 2021-11-17 10:34:06 +01:00
sdhci_am654.c mmc: sdhci_am654: Use pm_runtime_resume_and_get() to replace open coding 2021-06-14 13:57:41 +02:00
sdhci_f_sdh30.c
sdhci_f_sdh30.h
sdricoh_cs.c
sh_mmcif.c mmc: sh_mmcif: use proper DMAENGINE API for termination 2021-08-24 10:15:30 +02:00
sunxi-mmc.c mmc: sunxi-mmc: Ensure host is suspended during system sleep 2021-02-01 11:54:45 +01:00
tifm_sd.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
tmio_mmc.c
tmio_mmc.h mmc: renesas_sdhi: use custom mask for TMIO_MASK_ALL 2021-03-30 11:42:01 +02:00
tmio_mmc_core.c mmc: tmio: reenable card irqs after the reset callback 2021-10-28 23:19:32 +02:00
toshsd.c
toshsd.h
uniphier-sd.c mmc: uniphier-sd: Fix a resource leak in the remove function 2021-03-30 11:41:59 +02:00
usdhi6rol0.c mmc: usdhi6rol0: Implement card_busy function 2021-08-24 15:16:08 +02:00
ushc.c
via-sdmmc.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
vub300.c mmc: vub300: fix control-message timeouts 2021-10-26 17:31:58 +02:00
wbsd.c mmc: wbsd: Use new tasklet API 2021-02-08 13:00:31 +01:00
wbsd.h
wmt-sdmmc.c