aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/sd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core/sd.c')
-rw-r--r--drivers/mmc/core/sd.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index baf3d5da4ccb..d0d9f90e7cdf 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -1058,6 +1058,14 @@ retry:
1058 mmc_set_bus_width(host, MMC_BUS_WIDTH_4); 1058 mmc_set_bus_width(host, MMC_BUS_WIDTH_4);
1059 } 1059 }
1060 } 1060 }
1061
1062 if (host->caps2 & MMC_CAP2_AVOID_3_3V &&
1063 host->ios.signal_voltage == MMC_SIGNAL_VOLTAGE_330) {
1064 pr_err("%s: Host failed to negotiate down from 3.3V\n",
1065 mmc_hostname(host));
1066 err = -EINVAL;
1067 goto free_card;
1068 }
1061done: 1069done:
1062 host->card = card; 1070 host->card = card;
1063 return 0; 1071 return 0;
@@ -1214,7 +1222,7 @@ static int mmc_sd_runtime_resume(struct mmc_host *host)
1214 return 0; 1222 return 0;
1215} 1223}
1216 1224
1217static int mmc_sd_reset(struct mmc_host *host) 1225static int mmc_sd_hw_reset(struct mmc_host *host)
1218{ 1226{
1219 mmc_power_cycle(host, host->card->ocr); 1227 mmc_power_cycle(host, host->card->ocr);
1220 return mmc_sd_init_card(host, host->card->ocr, host->card); 1228 return mmc_sd_init_card(host, host->card->ocr, host->card);
@@ -1229,7 +1237,7 @@ static const struct mmc_bus_ops mmc_sd_ops = {
1229 .resume = mmc_sd_resume, 1237 .resume = mmc_sd_resume,
1230 .alive = mmc_sd_alive, 1238 .alive = mmc_sd_alive,
1231 .shutdown = mmc_sd_suspend, 1239 .shutdown = mmc_sd_suspend,
1232 .reset = mmc_sd_reset, 1240 .hw_reset = mmc_sd_hw_reset,
1233}; 1241};
1234 1242
1235/* 1243/*