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.
         *     =>
         *     (1) / (2) > 2^6
         */
-       BUG_ON(!host->timeout_clk);
        count = 0;
        current_timeout = (1 << 13) * 1000 / host->timeout_clk;
        while (current_timeout < target_timeout) {
        if (caps[0] & SDHCI_TIMEOUT_CLK_UNIT)
                host->timeout_clk *= 1000;
 
+       if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
+               host->timeout_clk = host->clock / 1000;
+
        /*
         * In case of Host Controller v3.00, find out whether clock
         * multiplier is supported.