linux/drivers/mmc/host
Takeshi Saito 51b72656bb mmc: tmio: fix SCC error handling to avoid false positive CRC error
If an SCC error occurs during a read/write command execution, a false
positive CRC error message is output.

mmcblk0: response CRC error sending r/w cmd command, card status 0x900

check_scc_error() checks SCC_RVSREQ.RVSERR bit. RVSERR detects a
correction error in the next (up or down) delay tap position. However,
since the command is successful, only retuning needs to be executed.
This has been confirmed by HW engineers.

Thus, on SCC error, set retuning flag instead of setting an error code.

Fixes: b85fb0a1c8 ("mmc: tmio: Fix SCC error detection")
Signed-off-by: Takeshi Saito <takeshi.saito.xv@renesas.com>
[wsa: updated comment and commit message, removed some braces]
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2019-05-28 10:19:27 +02:00
..
alcor.c MMC core: 2019-05-07 12:56:19 -07:00
android-goldfish.c mmc: android-goldfish: fix bad logic of sg_copy_{from,to}_buffer conversion 2018-08-21 16:06:17 +02:00
atmel-mci.c mmc: atmel-mci: enable 8 bits buswidth support 2019-02-25 08:40:58 +01:00
au1xmmc.c mmc: au1xmmc: handle highmem pages 2018-05-29 12:24:26 +02:00
bcm2835.c mmc: bcm2835: Deduplicate reset of driver data on remove 2019-02-25 08:40:58 +01:00
cavium-octeon.c mmc: cavium-octeon: Convert to use module_platform_driver 2017-08-30 15:03:38 +02:00
cavium-thunderx.c mmc: cavium: Fix use-after-free in of_platform_device_destroy 2017-09-08 15:38:22 +02:00
cavium.c mmc: cavium: catch all errors when getting regulators 2017-10-30 11:50:33 +01:00
cavium.h mmc: cavium: Add scatter-gather DMA support 2017-04-24 21:42:10 +02:00
cb710-mmc.c mmc: cb710: fix indentation issue in if block 2019-02-25 08:40:58 +01:00
cb710-mmc.h
cqhci.c mmc: cqhci: allow hosts to update dcmd cmd desc 2019-04-15 11:55:54 +02:00
cqhci.h mmc: cqhci: add CQHCI_SSC1 register CBC field mask 2019-04-15 11:55:54 +02:00
davinci_mmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02: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 mmc: dw_mmc-exynos: Add tuning for sdr and ddr timing for USH-I mode 2018-10-08 12:02:22 +02:00
dw_mmc-exynos.h
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3798cv200: add MMC_CAP_CMD23 cap 2018-10-08 11:40:43 +02:00
dw_mmc-k3.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-02-27 15:12:25 +01:00
dw_mmc-pci.c mmc: dw_mmc: remove the deprecated "num-slots" 2018-03-15 09:27:11 +01:00
dw_mmc-pltfm.c mmc: dw_mmc: Remove the public dw_mmc header file 2017-02-13 13:19:59 +01:00
dw_mmc-pltfm.h
dw_mmc-rockchip.c mmc: dw_mmc: fix misleading comment in dw_mci_rk3288_set_ios 2018-05-02 15:08:38 +02:00
dw_mmc-zx.c mmc: dw_mmc: Fix out-of-bounds access for slot's caps 2018-02-27 15:12:25 +01:00
dw_mmc-zx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dw_mmc.c mmc: dw_mmc: fix card threshold control configuration 2018-07-03 10:57:16 +02:00
dw_mmc.h mmc: dw_mmc: add support for hi3798cv200 specific extensions of dw-mshc 2018-03-15 14:43:22 +01:00
jz4740_mmc.c mmc: jz4740: Remove platform data and use standard APIs 2019-02-25 08:40:58 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver 2018-12-17 08:26:24 +01:00
meson-gx-mmc.c mmc: meson-gx: add signal resampling tuning 2019-05-06 11:55:39 +02:00
meson-mx-sdio.c clk: Remove io.h from clk-provider.h 2019-05-15 13:21:37 -07:00
mmc_spi.c mmc: mmc_spi: Convert to use SPDX identifier 2019-04-15 11:55:54 +02:00
mmci_qcom_dml.c mmc: mmci: qcom: define get_dctrl_cfg 2019-04-15 11:55:54 +02:00
mmci_stm32_sdmmc.c mmc: mmci: stm32: define get_dctrl_cfg 2019-04-15 11:55:54 +02:00
mmci.c mmc: mmci: Prevent polling for busy detection in IRQ context 2019-05-06 12:33:03 +02:00
mmci.h mmc: mmci: replace blksz_datactrlXX by get_datactrl_cfg callback 2019-04-15 11:55:54 +02:00
moxart-mmc.c mmc: moxart: constify mmc_host_ops structures 2017-08-30 14:01:41 +02:00
mtk-sd.c mmc: mtk-sd: enable internal card-detect logic. 2019-05-06 12:33:03 +02:00
mvsdio.c treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: "Revert mmc: mxcmmc: handle highmem pages" 2019-03-21 11:00:46 +01:00
mxs-mmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +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: omap_hsmmc: Use dev_get_drvdata() 2019-05-06 11:55:39 +02:00
omap.c mmc: omap: fix the maximum timeout setting 2019-02-25 08:40:58 +01:00
pxamci.c treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h> 2019-05-14 19:52:52 -07:00
pxamci.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
renesas_sdhi_core.c mmc: renesas_sdhi: set CBSY flag before probing TMIO host 2019-04-15 11:55:54 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: prevent overflow for max_req_size 2019-04-15 11:55:54 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: prevent overflow for max_req_size 2019-04-15 11:55:54 +02:00
renesas_sdhi.h mmc: renesas_sdhi: update copyright information 2019-04-15 11:55:54 +02:00
rtsx_pci_sdmmc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 17 2019-05-21 11:28:46 +02:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Re-work card detection/removal support 2018-12-17 08:26:24 +01:00
s3cmci.c mmc: slot-gpio: Remove override_active_level on WP 2019-02-25 08:40:58 +01:00
s3cmci.h
sdhci_am654.c mmc: sdhci_am654: Clear HISPD_ENA in some lower speed modes 2019-04-15 11:55:54 +02:00
sdhci_f_sdh30.c mmc: sdhci_f_sdh30: add ACPI support 2018-01-11 15:50:53 +01:00
sdhci-acpi.c mmc: sdhci-acpi: Disable LED control for Intel BYT-based controllers 2018-12-17 08:26:24 +01: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: handle mmc_of_parse() errors during probe 2019-02-25 08:40:58 +01:00
sdhci-cadence.c mmc: sdhci-cadence: include <linux/bits.h> instead of <linux/bitops.h> 2018-12-17 08:26:24 +01: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: Add HS400 support for iMX7ULP 2019-05-06 12:33:03 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: workaround for unreliable pulse width detection 2018-12-17 08:26:24 +01:00
sdhci-iproc.c mmc: sdhci-iproc: Set NO_HISPD bit to fix HS50 data hold time problem 2019-05-15 13:52:05 +02:00
sdhci-msm.c mmc: sdhci-msm: avoid unused function warning 2018-12-17 08:26:24 +01:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Add DTS property to disable DCMDs. 2019-04-15 11:55:54 +02:00
sdhci-of-at91.c mmc: sdhci-of-at91: make function sdhci_at91_set_uhs_signaling static 2017-10-30 11:46:01 +01:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: solve 128MB DMA boundary limitation 2018-10-08 11:40:43 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: add quirk to ignore command inhibit for data 2019-04-15 11:55:54 +02:00
sdhci-of-hlwd.c mmc: sdhci-pltfm: Drop define for SDHCI_PLTFM_PMOPS 2016-07-29 11:29:04 +02:00
sdhci-omap.c mmc: sdhci-omap: Make sdhci_omap_reset static 2019-04-15 11:55:54 +02:00
sdhci-pci-arasan.c mmc:host:sdhci-pci:Addition of Arasan PCI Controller with integrated phy. 2018-01-04 12:46:11 +01:00
sdhci-pci-core.c mmc: sdhci-pci: Fix BYT OCP setting 2019-05-06 12:33:03 +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 mmc: sdhci-pci-dwc-mshc: synopsys dwc mshc support 2018-07-16 11:21:45 +02:00
sdhci-pci-o2micro.c mmc: sdhci: Remove unneeded quirk2 flag of O2 SD host controller 2019-02-25 08:40:58 +01:00
sdhci-pci.h mmc: sdhci-pci: Add support for Intel CML 2019-04-15 11:55:54 +02:00
sdhci-pic32.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-pltfm.c mmc: sdhci-pltfm: Convert DT properties to generic device properties 2018-10-08 11:40:43 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: Convert DT properties to generic device properties 2018-10-08 11:40:43 +02:00
sdhci-pxav2.c mmc: sdhci-pxav2: Drop unused include 2019-02-25 08:40:58 +01:00
sdhci-pxav3.c mmc: sdhci: pxav3: Delete GPIO handling 2018-10-08 11:40:43 +02:00
sdhci-s3c.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-sirf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 2019-05-21 11:28:40 +02:00
sdhci-spear.c mmc: sdhci: spear: Use the slot GPIO descriptor 2018-10-08 11:40:43 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Add Spreadtrum's initial host controller 2018-10-08 11:40:43 +02:00
sdhci-st.c mmc: sdhci-*: Don't emit error msg if sdhci_add_host() fails 2018-05-29 12:24:26 +02:00
sdhci-tegra.c mmc: tegra: Fix a warning message 2019-05-28 09:58:19 +02:00
sdhci-xenon-phy.c mmc: sdhci-xenon: Fixup already marked switch fall-through 2019-02-25 08:40:58 +01:00
sdhci-xenon.c mmc: sdhci-xenon: Fix timeout checks 2018-12-17 08:26:24 +01:00
sdhci-xenon.h mmc: sdhci-xenon: Fix clock resource by adding an optional bus clock 2017-10-04 10:50:36 +02:00
sdhci.c MMC core: 2019-05-07 12:56:19 -07:00
sdhci.h mmc: sdhci: Remove finish_tasklet 2019-04-15 12:03:39 +02:00
sdricoh_cs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
sh_mmcif.c mmc: use SPDX identifier for Renesas drivers 2018-10-08 11:40:43 +02:00
sunxi-mmc.c mmc: sunxi-mmc: Drop unused includes 2019-02-25 08:40:58 +01:00
tifm_sd.c drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
tmio_mmc_core.c mmc: tmio: fix SCC error handling to avoid false positive CRC error 2019-05-28 10:19:27 +02:00
tmio_mmc.c mmc: tmio: remove TMIO_MMC_HAVE_HIGH_REG flag 2018-10-15 14:39:45 +02:00
tmio_mmc.h mmc: tmio: introduce macro for max block size 2019-04-15 11:55:54 +02:00
toshsd.c mmc: toshsd: constify mmc_host_ops structures 2017-08-30 14:01:42 +02:00
toshsd.h
uniphier-sd.c mmc: uniphier-sd: avoid using broken DMA RX channel 2018-10-15 14:53:21 +02:00
usdhi6rol0.c mmc: usdhi6rol0: mark expected switch fall-throughs 2019-05-06 12:33:03 +02:00
ushc.c mmc: ushc: handle highmem pages 2018-05-21 15:49:20 +02:00
via-sdmmc.c drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
vub300.c mmc: vub300: Use common code in __download_offload_pseudocode() 2017-11-02 15:20:29 +01:00
wbsd.c mmc: wbsd: handle highmem pages 2018-05-21 15:49:21 +02:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Drop unused include 2019-02-25 08:40:58 +01:00