linux/drivers/mmc/host
Russell King 6a4c189fc3 mmc: sdhci: fix data timeout (part 2)
commit 7f05538af7 upstream.

The calculation for the timeout based on the number of card clocks is
incorrect.  The calculation assumed:

	timeout in microseconds = clock cycles / clock in Hz

which is clearly a several orders of magnitude wrong.  Fix this by
multiplying the clock cycles by 1000000 prior to dividing by the Hz
based clock.  Also, as per part 1, ensure that the division rounds
up.

As this needs 64-bit math via do_div(), avoid it if the clock cycles
is zero.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2016-05-01 00:05:51 +02:00
..
android-goldfish.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04:00
atmel-mci-regs.h mmc: atmel-mci: AP700x PDC is not connected to MCI 2012-10-03 10:05:23 -04:00
atmel-mci.c mmc: atmel-mci: fix bad variable type for clkdiv 2015-06-02 12:08:16 +01:00
au1xmmc.c mmc: au1xmmc: Move away from using deprecated APIs 2013-10-30 20:26:35 -04:00
bfin_sdh.c mmc: bfin_sdh: Move away from using deprecated APIs 2013-10-30 20:26:36 -04:00
cb710-mmc.c mmc: cb710: Move away from using deprecated APIs 2013-10-30 20:26:37 -04:00
cb710-mmc.h mmc: host: use platform_{get,set}_drvdata() 2013-06-27 11:13:02 -04:00
davinci_mmc.c mmc: davinci: Remove redundant of_match_ptr 2014-02-25 15:42:55 -05:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: Staticize dw_mci_exynos_pmops 2014-05-12 18:04:30 -04:00
dw_mmc-k3.c mmc: dw_mmc: fix possible build error 2014-03-03 14:00:56 -05:00
dw_mmc-pci.c mmc: dw_mmc-pci: enable bus-mastering mode 2013-08-25 00:10:12 -04:00
dw_mmc-pltfm.c mmc: dw_mmc: Add support for SOCFPGA's platform specific implementation 2014-02-26 21:30:12 -05:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc.c mmc: dw_mmc: avoid write to CDTHRCTL on older versions 2015-01-12 15:44:04 +00:00
dw_mmc.h mmc: dw_mmc: remove dw_mci_of_cd_gpio/wp_gpio() 2014-05-12 18:04:34 -04:00
jz4740_mmc.c mmc: jz4740: don't wait for PRG_DONE after stop command with R1 response 2014-05-12 18:08:22 -04:00
Kconfig mmc: simplify SDHCI Kconfig dependencies 2014-06-12 10:51:14 +02:00
Makefile The clock framework changes for 3.16 are pretty typical: mostly clock 2014-06-07 20:27:30 -07:00
mmc_spi.c mmc: don't request CD IRQ until mmc_start_host() 2014-11-14 15:20:07 +00:00
mmci.c mmc: mmci: fix an ages old detection error 2016-02-02 19:09:39 +00:00
mmci.h mmc: mmci: Enforce DT for signal direction and feedback clock 2014-05-12 12:52:45 +02:00
moxart-mmc.c mmc: moxart: Add MOXA ART SD/MMC driver 2014-05-12 18:05:16 -04:00
msm_sdcc.c mmc: msm_sdcc: Move away from using deprecated APIs 2013-10-30 20:26:41 -04:00
msm_sdcc.h mmc: msm_sdcc: Use MCI_INT_MASK0 for PIO interrupts 2011-10-26 15:43:37 -04:00
mvsdio.c mmc: mvsdio: avoid compiler warning 2014-06-12 10:50:27 +02:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c mmc: mxcmmc: Use mmc_regulator_get_supply() API 2014-05-12 18:08:24 -04:00
mxs-mmc.c mmc: mxs: fix card detection function for broken card detect 2014-05-12 18:08:22 -04:00
of_mmc_spi.c mmc: mmc_spi: Support CD/RO GPIOs 2013-08-24 23:45:22 -04:00
omap.c mmc: omap: Use DIV_ROUND_UP instead of open coded 2014-05-22 08:33:31 -04:00
omap_hsmmc.c mmc: omap_hsmmc: Fix DTO and DCRC handling 2015-08-11 09:57:46 +01:00
pxamci.c mmc: pxamci: Remove redundant suspend and resume callbacks 2013-10-30 20:28:29 -04:00
pxamci.h [ARM] pxa: mmc: add 1st host controller support for pxa3xx 2008-01-26 15:07:53 +00:00
rtsx_pci_sdmmc.c mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response 2014-11-14 15:20:07 +00:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: fix incorrect last byte in R2 response 2014-11-14 15:20:07 +00:00
s3cmci.c ARM: s3c24xx: explicit dependency on <plat/gpio-cfg.h> 2014-01-14 15:24:54 +01:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-acpi.c mmc: sdhci-acpi: Add a HID and UID for a SD Card host controller 2015-02-16 11:06:23 +00:00
sdhci-bcm-kona.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-bcm2835.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-cns3xxx.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-dove.c mmc: sdhci-dove: use mmc_of_parse() and remove card_tasklet CD handler 2014-05-23 08:42:02 -04:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: fix mmc ddr mode regression issue 2014-05-22 08:40:45 -04:00
sdhci-esdhc.h mmc: sdhci-esdhc: Make 8BIT bus work 2015-08-12 09:48:32 +01:00
sdhci-msm.c mmc: sdhci-msm: Fix fallout from sdhci refactoring 2014-06-12 10:40:27 +02:00
sdhci-of-arasan.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-of-esdhc.c mmc: sdhci: Fix FSL ESDHC reset handling quirk 2015-08-12 09:48:35 +01:00
sdhci-of-hlwd.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Fix Dell E5440 issue 2015-01-15 10:44:14 +00:00
sdhci-pci-o2micro.h mmc: sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support 2014-05-22 08:40:44 -04:00
sdhci-pci.c mmc: sdhci: Preset value not supported in Baytrail eMMC 2015-02-16 11:06:14 +00:00
sdhci-pci.h mmc: sdhci-pci: Add support for Intel SPT 2015-02-16 11:04:49 +00:00
sdhci-pltfm.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pltfm.h mmc: sdhci-pltfm: export pltfm suspend/resume api 2014-01-13 12:48:06 -05:00
sdhci-pxav2.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pxav3.c mmc: sdhci-pxav3: fix platform_data is not initialized 2015-08-12 09:48:33 +01:00
sdhci-s3c-regs.h mmc: sdhci-s3c: remove platform dependencies 2013-04-19 13:51:23 +02:00
sdhci-s3c.c mmc: sdhci-s3c: fix runtime PM handling on sdhci_add_host() failure 2014-11-14 15:20:07 +00:00
sdhci-sirf.c mmc: don't request CD IRQ until mmc_start_host() 2014-11-14 15:20:07 +00:00
sdhci-spear.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-tegra.c mmc: tegra: fix reporting of base clock frequency 2014-05-23 08:49:29 -04:00
sdhci.c mmc: sdhci: fix data timeout (part 2) 2016-05-01 00:05:51 +02:00
sdhci.h mmc: sdhci: remove platform_suspend/platform_resume callbacks 2014-05-22 08:33:28 -04:00
sdricoh_cs.c mmc: sdricoh_cs: Move away from using deprecated APIs 2013-10-30 20:28:32 -04:00
sh_mmcif.c mmc: sh_mmcif: Fix timeout value for command request 2015-05-20 13:26:15 +01:00
sh_mobile_sdhi.c mmc: sdhi: update sh_mobile_sdhi_of_data for r8a7791 2014-02-22 13:06:23 -05:00
sunxi-mmc.c mmc: sunxi: Use devm_reset_control_get_optional() for reset control 2015-05-05 11:09:30 +01:00
tifm_sd.c mmc: tifm_sd: Move away from using deprecated APIs 2013-10-30 20:28:23 -04:00
tmio_mmc.c mmc: tmio_mmc: Convert from legacy to modern PM ops 2014-02-13 22:58:01 -05:00
tmio_mmc.h mmc: tmio: Adapt to proper PM configs for exported functions 2014-02-13 22:58:09 -05:00
tmio_mmc_dma.c mmc: tmio: bus_shift become tmio_mmc_data member 2014-01-13 12:48:23 -05:00
tmio_mmc_pio.c mmc: don't request CD IRQ until mmc_start_host() 2014-11-14 15:20:07 +00:00
usdhi6rol0.c mmc: usdhi6rol0: fix compiler warnings 2014-06-12 10:38:50 +02:00
ushc.c mmc: ushc: Fix incorrect parameter in sizeof 2014-02-25 15:42:20 -05:00
via-sdmmc.c mmc: via-sdmmc: Move away from using deprecated APIs 2013-10-30 20:28:36 -04:00
vub300.c mmc: vub300: Move away from using deprecated APIs 2013-10-30 20:26:43 -04:00
wbsd.c mmc: wbsd: Silence compiler warning 2013-11-08 14:32:03 -05:00
wbsd.h mmc: update header file paths 2007-07-26 01:53:31 +02:00
wmt-sdmmc.c mmc: wmt-sdmmc: Use GFP_KERNEL instead of hard-coded value 2014-05-22 08:40:40 -04:00