|
@@ -616,6 +616,9 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
|
|
|
target_timeout = data->timeout_ns / 1000 +
|
|
|
data->timeout_clks / host->clock;
|
|
|
|
|
|
+ if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
|
|
|
+ host->timeout_clk = host->clock / 1000;
|
|
|
+
|
|
|
/*
|
|
|
* Figure out needed cycles.
|
|
|
* 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)
|
|
|
* =>
|
|
|
* (1) / (2) > 2^6
|
|
|
*/
|
|
|
+ BUG_ON(!host->timeout_clk);
|
|
|
count = 0;
|
|
|
current_timeout = (1 << 13) * 1000 / host->timeout_clk;
|
|
|
while (current_timeout < target_timeout) {
|
|
@@ -1901,9 +1905,6 @@ int sdhci_add_host(struct sdhci_host *host)
|
|
|
if (caps & SDHCI_TIMEOUT_CLK_UNIT)
|
|
|
host->timeout_clk *= 1000;
|
|
|
|
|
|
- if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
|
|
|
- host->timeout_clk = host->clock / 1000;
|
|
|
-
|
|
|
/*
|
|
|
* Set host parameters.
|
|
|
*/
|