|
@@ -413,7 +413,9 @@ static inline void dw_mci_set_cto(struct dw_mci *host)
|
|
|
cto_div = (mci_readl(host, CLKDIV) & 0xff) * 2;
|
|
|
if (cto_div == 0)
|
|
|
cto_div = 1;
|
|
|
- cto_ms = DIV_ROUND_UP(MSEC_PER_SEC * cto_clks * cto_div, host->bus_hz);
|
|
|
+
|
|
|
+ cto_ms = DIV_ROUND_UP_ULL((u64)MSEC_PER_SEC * cto_clks * cto_div,
|
|
|
+ host->bus_hz);
|
|
|
|
|
|
/* add a bit spare time */
|
|
|
cto_ms += 10;
|
|
@@ -1948,8 +1950,9 @@ static void dw_mci_set_drto(struct dw_mci *host)
|
|
|
drto_div = (mci_readl(host, CLKDIV) & 0xff) * 2;
|
|
|
if (drto_div == 0)
|
|
|
drto_div = 1;
|
|
|
- drto_ms = DIV_ROUND_UP(MSEC_PER_SEC * drto_clks * drto_div,
|
|
|
- host->bus_hz);
|
|
|
+
|
|
|
+ drto_ms = DIV_ROUND_UP_ULL((u64)MSEC_PER_SEC * drto_clks * drto_div,
|
|
|
+ host->bus_hz);
|
|
|
|
|
|
/* add a bit spare time */
|
|
|
drto_ms += 10;
|