aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mmc/host/atmel-mci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 945a31d77364..42706ea0ba85 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -1402,8 +1402,14 @@ static void atmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
1402 clk_unprepare(host->mck); 1402 clk_unprepare(host->mck);
1403 1403
1404 switch (ios->power_mode) { 1404 switch (ios->power_mode) {
1405 case MMC_POWER_OFF:
1406 if (!IS_ERR(mmc->supply.vmmc))
1407 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
1408 break;
1405 case MMC_POWER_UP: 1409 case MMC_POWER_UP:
1406 set_bit(ATMCI_CARD_NEED_INIT, &slot->flags); 1410 set_bit(ATMCI_CARD_NEED_INIT, &slot->flags);
1411 if (!IS_ERR(mmc->supply.vmmc))
1412 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, ios->vdd);
1407 break; 1413 break;
1408 default: 1414 default:
1409 /* 1415 /*
@@ -2215,6 +2221,7 @@ static int __init atmci_init_slot(struct atmel_mci *host,
2215 } 2221 }
2216 2222
2217 host->slot[id] = slot; 2223 host->slot[id] = slot;
2224 mmc_regulator_get_supply(mmc);
2218 mmc_add_host(mmc); 2225 mmc_add_host(mmc);
2219 2226
2220 if (gpio_is_valid(slot->detect_pin)) { 2227 if (gpio_is_valid(slot->detect_pin)) {