aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/mmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core/mmc.c')
-rw-r--r--drivers/mmc/core/mmc.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 6f8ebd6caa4c..4466f5de54d4 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -1282,6 +1282,10 @@ int mmc_hs400_to_hs200(struct mmc_card *card)
1282 1282
1283 mmc_set_bus_speed(card); 1283 mmc_set_bus_speed(card);
1284 1284
1285 /* Prepare tuning for HS400 mode. */
1286 if (host->ops->prepare_hs400_tuning)
1287 host->ops->prepare_hs400_tuning(host, &host->ios);
1288
1285 return 0; 1289 return 0;
1286 1290
1287out_err: 1291out_err:
@@ -1830,6 +1834,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
1830 } 1834 }
1831 } 1835 }
1832 1836
1837 if (host->caps2 & MMC_CAP2_AVOID_3_3V &&
1838 host->ios.signal_voltage == MMC_SIGNAL_VOLTAGE_330) {
1839 pr_err("%s: Host failed to negotiate down from 3.3V\n",
1840 mmc_hostname(host));
1841 err = -EINVAL;
1842 goto free_card;
1843 }
1844
1833 if (!oldcard) 1845 if (!oldcard)
1834 host->card = card; 1846 host->card = card;
1835 1847
@@ -2117,7 +2129,7 @@ static int mmc_can_reset(struct mmc_card *card)
2117 return 1; 2129 return 1;
2118} 2130}
2119 2131
2120static int mmc_reset(struct mmc_host *host) 2132static int _mmc_hw_reset(struct mmc_host *host)
2121{ 2133{
2122 struct mmc_card *card = host->card; 2134 struct mmc_card *card = host->card;
2123 2135
@@ -2151,7 +2163,7 @@ static const struct mmc_bus_ops mmc_ops = {
2151 .runtime_resume = mmc_runtime_resume, 2163 .runtime_resume = mmc_runtime_resume,
2152 .alive = mmc_alive, 2164 .alive = mmc_alive,
2153 .shutdown = mmc_shutdown, 2165 .shutdown = mmc_shutdown,
2154 .reset = mmc_reset, 2166 .hw_reset = _mmc_hw_reset,
2155}; 2167};
2156 2168
2157/* 2169/*