linux/drivers/mmc/host
Brian Norris 8360784494 mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI
[[ NOTE: this is completely untested by the author, but included solely
    because, as noted in commit df57d73276 ("mmc: sdhci-pci: Fix
    SDHCI_RESET_ALL for CQHCI for Intel GLK-based controllers"), "other
    drivers using CQHCI might benefit from a similar change, if they
    also have CQHCI reset by SDHCI_RESET_ALL." We've now seen the same
    bug on at least MSM, Arasan, and Intel hardware. ]]

SDHCI_RESET_ALL resets will reset the hardware CQE state, but we aren't
tracking that properly in software. When out of sync, we may trigger
various timeouts.

It's not typical to perform resets while CQE is enabled, but this may
occur in some suspend or error recovery scenarios.

Include this fix by way of the new sdhci_and_cqhci_reset() helper.

This patch depends on (and should not compile without) the patch
entitled "mmc: cqhci: Provide helper for resetting both SDHCI and
CQHCI".

Fixes: 3c4019f979 ("mmc: tegra: HW Command Queue Support for Tegra SDMMC")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20221026124150.v4.5.I418c9eaaf754880fcd2698113e8c3ef821a944d7@changeid
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2022-11-07 13:33:38 +01:00
..
alcor.c
atmel-mci.c mmc: atmel-mci: Simplify if(chan) and if(!chan) 2022-05-04 11:56:02 +02:00
au1xmmc.c mmc: au1xmmc: Fix an error handling path in au1xmmc_probe() 2022-09-14 11:53:47 +02:00
bcm2835.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
cavium-octeon.c mmc: cavium-octeon: Add of_node_put() when breaking out of loop 2022-07-21 18:02:55 +02:00
cavium-thunderx.c mmc: cavium-thunderx: Add of_node_put() when breaking out of loop 2022-07-21 18:03:08 +02:00
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 mmc: cqhci: Capture eMMC and SD card errors 2022-07-12 12:25:35 +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 mmc: davinci_mmc: Handle error for clk_enable 2022-03-15 10:29:53 +01:00
dw_mmc-bluefield.c
dw_mmc-exynos.c mmc: dw_mmc: exynos: Obviously always return success in remove callback 2022-07-12 12:25:37 +02:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3789cv200: Obviously always return success in remove callback 2022-07-12 12:25:37 +02:00
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: Obviously always return success in remove callback 2022-07-12 12:25:38 +02:00
dw_mmc.c treewide: use prandom_u32_max() when possible, part 1 2022-10-11 17:42:55 -06:00
dw_mmc.h mmc: dw_mmc: Support setting f_min from host drivers 2022-03-07 12:56:38 +01:00
jz4740_mmc.c mmc: jz4740_mmc: Fix error check for dma_map_sg 2022-09-14 11:53:47 +02:00
Kconfig mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO 2022-10-26 11:48:03 +02:00
litex_mmc.c mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
Makefile mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
meson-gx-mmc.c mmc: meson-gx: add SDIO interrupt support 2022-09-14 11:53:48 +02:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Drop unused MESON_SDHC_NUM_BUILTIN_CLKS macro 2021-12-20 11:19:01 +01:00
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Fix error check for dma_map_sg 2022-09-14 11:53:47 +02:00
meson-mx-sdhc.h
meson-mx-sdio.c mmc: meson-mx-sdio: add IRQ check 2021-12-21 13:22:34 +01:00
mmc_hsq.c mmc: hsq: Fix data stomping during mmc recovery 2022-09-27 12:38:29 +02:00
mmc_hsq.h
mmc_spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
mmci_qcom_dml.c
mmci_stm32_sdmmc.c mmc: mmci: stm32: use a buffer for unaligned DMA requests 2022-04-26 14:05:18 +02:00
mmci.c mmc: mmci: Fix typo in comment 2022-07-12 12:25:37 +02:00
mmci.h
moxart-mmc.c mmc: moxart: fix 4-bit bus width and remove 8-bit bus width 2022-09-14 12:11:08 +02:00
mtk-sd.c mmc: mtk-sd: Add support for MT6795 Helio X10 2022-09-20 11:36:43 +02:00
mvsdio.c
mvsdio.h
mxcmmc.c mmc: mxcmmc: Use mmc_card_sdio macro 2022-07-13 12:46:07 +02:00
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: parse speed mode options 2022-04-26 14:05:19 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Revert special init for wl1251 2021-12-14 21:35:24 +01:00
omap.c mmc: omap: Make it CCF clk API compatible 2022-04-26 14:05:19 +02:00
owl-mmc.c mmc: owl-mmc: Remove unnecessary error log 2021-04-12 13:52:47 +02:00
pxamci.c mmc: pxamci: Fix another error handling path in pxamci_probe() 2022-08-15 15:59:33 +02:00
pxamci.h
renesas_sdhi_core.c mmc: renesas_sdhi: Fix rounding errors 2022-10-07 10:53:22 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: newer SoCs don't need manual tap correction 2022-07-21 18:03:41 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
renesas_sdhi.h mmc: renesas_sdhi: newer SoCs don't need manual tap correction 2022-07-21 18:03:41 +02:00
rtsx_pci_sdmmc.c Char/Misc and other driver updates for 5.18-rc1 2022-03-28 12:27:35 -07:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Remove the unneeded result variable 2022-09-20 14:18:15 +02:00
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_am654.c mmc: sdhci_am654: Remove the unneeded result variable 2022-09-14 11:53:48 +02:00
sdhci_f_sdh30.c
sdhci_f_sdh30.h
sdhci-acpi.c ACPI / MMC: PM: Unify fixing up device power 2022-06-23 20:53:55 +02:00
sdhci-bcm-kona.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:09 +01:00
sdhci-cadence.c
sdhci-cns3xxx.c
sdhci-cqhci.h mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI 2022-11-07 13:28:47 +01:00
sdhci-dove.c
sdhci-esdhc-imx.c mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:32 +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 mmc: sdhci-of-esdhc: make sure delay chain locked for HS400 2020-10-28 11:07:01 +01:00
sdhci-iproc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
sdhci-milbeaut.c
sdhci-msm.c mmc: sdhci-msm: add compatible string check for sdm670 2022-09-27 14:00:38 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:28:47 +01:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-at91.c mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R 2022-07-12 12:42:37 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3 SoC 2022-08-15 19:31:04 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Fixup use of of_find_compatible_node() 2022-07-12 12:25:39 +02:00
sdhci-of-hlwd.c
sdhci-of-sparx5.c
sdhci-omap.c mmc: sdhci-omap: Fix a lockdep warning for PM runtime init 2022-07-13 12:29:17 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake 2022-10-17 11:51:34 +02:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Fix build error unused-function 2022-07-12 12:25:39 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: fix some SD cards compatibility issue at DDR50 mode 2022-09-14 11:53:47 +02:00
sdhci-pci.h mmc: sdhci-pci: Add PCI ID for Intel ADL 2021-12-14 21:35:25 +01:00
sdhci-pic32.c mmc: sdhci-pic32: Make pic32_sdhci_probe_platform() void 2020-11-16 11:59:30 +01:00
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: Fix minimum clock limit 2022-10-11 15:48:51 +02:00
sdhci-st.c mmc: sdhci-st: Obviously always return success in remove callback 2022-07-12 12:25:38 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:38 +01:00
sdhci-xenon-phy.c mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci-xenon.c Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" 2022-04-04 12:17:46 +02:00
sdhci-xenon.h mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci.c mmc: sdhci: Centralize CMD and DATA reset handling 2022-09-28 10:08:56 +02:00
sdhci.h mmc: sdhci: Get rid of SDHCI_QUIRK_RESET_CMD_DATA_ON_IOS 2022-09-28 10:08:50 +02:00
sdricoh_cs.c
sh_mmcif.c mmc: sh_mmcif: move platform_data header to proper location 2022-04-26 14:05:21 +02:00
sunxi-mmc.c Merge branch 'fixes' into next 2022-05-04 11:52:07 +02:00
tifm_sd.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
tmio_mmc_core.c mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
tmio_mmc.c mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
tmio_mmc.h mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
toshsd.c
toshsd.h
uniphier-sd.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +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 mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe() 2022-09-27 13:57:06 +02:00