|
@@ -793,8 +793,12 @@ static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host,
|
|
|
}
|
|
|
mmc_writel(host, REG_CLKCR, rval);
|
|
|
|
|
|
- if (host->cfg->needs_new_timings)
|
|
|
- mmc_writel(host, REG_SD_NTSR, SDXC_2X_TIMING_MODE);
|
|
|
+ if (host->cfg->needs_new_timings) {
|
|
|
+ /* Don't touch the delay bits */
|
|
|
+ rval = mmc_readl(host, REG_SD_NTSR);
|
|
|
+ rval |= SDXC_2X_TIMING_MODE;
|
|
|
+ mmc_writel(host, REG_SD_NTSR, rval);
|
|
|
+ }
|
|
|
|
|
|
ret = sunxi_mmc_clk_set_phase(host, ios, rate);
|
|
|
if (ret)
|