u-boot/drivers/mmc
Benoît Thébaudeau bcfb365375 mmc: fsl_esdhc: Fix PIO timeout
The following error has been observed on i.MX25 with a high-speed SDSC
card:
    Data Write Failed in PIO Mode.

It was caused by the timeout set on PRSSTAT.BWEN, which was triggered
because this bit takes 15 ms to be set after writing the first block to
DATPORT with this card. Without this timeout, all the blocks are
properly written.

This timeout was implemented by decrementing a variable, so it was
depending on the CPU frequency. Fix this issue by setting this timeout
to a long enough absolute duration (500 ms).

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
2017-11-07 10:26:27 +01:00
..
arm_pl180_mmci.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
arm_pl180_mmci.h mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
atmel_sdhci.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
bcm2835_sdhci.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
davinci_mmc.c mmc: replace CONFIG_GENERIC_MMC with CONFIG_MMC 2017-05-15 18:28:23 +09:00
dw_mmc.c dm: mmc: Drop CONFIG_DM_MMC_OPS 2017-08-17 16:59:55 +09:00
exynos_dw_mmc.c treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
fsl_esdhc.c mmc: fsl_esdhc: Fix PIO timeout 2017-11-07 10:26:27 +01:00
fsl_esdhc_spl.c block: pass block dev not num to read/write/erase() 2016-01-13 21:05:18 -05:00
ftsdc010_mci.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
gen_atmel_mci.c mmc: gen_atmel_mci: Fix wrong arguments used of bind() 2017-08-17 16:44:12 +09:00
hi6220_dw_mmc.c treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
Kconfig dm: mmc: remove DM_MMC_OPS for STM32_SDMMC 2017-10-08 16:19:56 -04:00
kona_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
Makefile mmc: Add MMC support for stm32h7 Socs 2017-09-28 20:23:19 +09:00
meson_gx_mmc.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
mmc-uclass.c dm: mmc: Drop CONFIG_DM_MMC_OPS 2017-08-17 16:59:55 +09:00
mmc.c dm: mmc: Drop CONFIG_DM_MMC_OPS 2017-08-17 16:59:55 +09:00
mmc_boot.c cmd: mmc: add mmc partconf read capability 2017-08-17 17:00:11 +09:00
mmc_legacy.c dm: mmc: Drop CONFIG_DM_MMC_OPS 2017-08-17 16:59:55 +09:00
mmc_private.h dm: mmc: Allow disabling driver model in SPL 2017-08-01 11:58:00 +09:00
mmc_spi.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mmc_write.c dm: mmc: Support erase 2016-10-09 21:36:27 -06:00
msm_sdhci.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
mv_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
mvebu_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxcmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxsmmc.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
omap_hsmmc.c dm: mmc: Allow disabling driver model in SPL 2017-08-01 11:58:00 +09:00
pci_mmc.c mmc: Support generic PCI SD host controller 2017-08-18 15:37:38 +09:00
pic32_sdhci.c dm: Fix up inclusion of common.h 2017-06-01 07:03:03 -06:00
pxa_mmc_gen.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
rockchip_dw_mmc.c rockchip: mmc: convert to livetree 2017-09-18 20:40:34 +02:00
rockchip_sdhci.c rockchip: sdhci: update reg map for of-platdata 2017-09-18 20:40:38 +02:00
rpmb.c mmc: rpmb: update size format for write_counter 2017-07-19 19:13:59 +09:00
s5p_sdhci.c dm: gpio: Add live tree support 2017-06-01 07:03:10 -06:00
sandbox_mmc.c mmc: squash lines for immediate return 2016-09-23 17:53:44 -04:00
sdhci-cadence.c mmc: sdhci-cadence: set timing mode register depending on frequency 2017-09-29 11:34:22 +09:00
sdhci.c dm: mmc: Drop CONFIG_DM_MMC_OPS 2017-08-17 16:59:55 +09:00
sh_mmcif.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
sh_mmcif.h ARM: Rmobile: Rename CONFIG_RMOBILE to CONFIG_ARCH_RMOBILE 2016-08-17 10:25:34 +09:00
sh_sdhi.c mmc: sd_sdhi: Enable clock using clock framework 2017-08-17 14:38:18 +09:00
socfpga_dw_mmc.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
sti_sdhci.c sti: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
stm32_sdmmc2.c stm32: fix STMicroelectronics copyright 2017-11-06 09:51:01 -05:00
sunxi_mmc.c mmc: sunxi: Only update timing mode bit when enabling new timing mode 2017-09-01 19:49:47 +05:30
tangier_sdhci.c dm: Rename dev_addr..() functions 2017-06-01 07:03:01 -06:00
tegra_mmc.c dm: tegra: mmc: Convert to livetree 2017-07-28 12:02:47 -06:00
uniphier-sd.c mmc: uniphier-sd: Add vqmmc regulator support 2017-09-29 11:17:29 +09:00
xenon_sdhci.c treewide: replace with error() with pr_err() 2017-10-04 11:59:44 -04:00
zynq_sdhci.c dm: core: Replace of_offset with accessor (part 2) 2017-06-01 07:03:04 -06:00