@@ -993,7 +993,10 @@ static void mmc_power_up(struct mmc_host *host)
*/
mmc_delay(10);
- host->ios.clock = host->f_init;
+ if (host->f_init)
+ host->ios.clock = host->f_init;
+ else
+ host->ios.clock = host->f_min;
host->ios.power_mode = MMC_POWER_ON;
mmc_set_ios(host);
@@ -1571,8 +1574,10 @@ void mmc_rescan(struct work_struct *work)
*/
mmc_bus_put(host);
+ mmc_power_up(host);
if (host->ops->get_cd && host->ops->get_cd(host) == 0)
goto out;
+ mmc_power_off(host);
mmc_claim_host(host);
for (i = 0; i < ARRAY_SIZE(freqs); i++) {