aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mmc/host/sdhci.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 2ac0b6887ef7..4b97d5265526 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -616,6 +616,9 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
616 target_timeout = data->timeout_ns / 1000 + 616 target_timeout = data->timeout_ns / 1000 +
617 data->timeout_clks / host->clock; 617 data->timeout_clks / host->clock;
618 618
619 if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
620 host->timeout_clk = host->clock / 1000;
621
619 /* 622 /*
620 * Figure out needed cycles. 623 * Figure out needed cycles.
621 * We do this in steps in order to fit inside a 32 bit int. 624 * We do this in steps in order to fit inside a 32 bit int.
@@ -626,6 +629,7 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
626 * => 629 * =>
627 * (1) / (2) > 2^6 630 * (1) / (2) > 2^6
628 */ 631 */
632 BUG_ON(!host->timeout_clk);
629 count = 0; 633 count = 0;
630 current_timeout = (1 << 13) * 1000 / host->timeout_clk; 634 current_timeout = (1 << 13) * 1000 / host->timeout_clk;
631 while (current_timeout < target_timeout) { 635 while (current_timeout < target_timeout) {
@@ -1901,9 +1905,6 @@ int sdhci_add_host(struct sdhci_host *host)
1901 if (caps & SDHCI_TIMEOUT_CLK_UNIT) 1905 if (caps & SDHCI_TIMEOUT_CLK_UNIT)
1902 host->timeout_clk *= 1000; 1906 host->timeout_clk *= 1000;
1903 1907
1904 if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
1905 host->timeout_clk = host->clock / 1000;
1906
1907 /* 1908 /*
1908 * Set host parameters. 1909 * Set host parameters.
1909 */ 1910 */