|
@@ -2621,9 +2621,6 @@ int mmc_suspend_host(struct mmc_host *host)
|
|
|
{
|
|
|
int err = 0;
|
|
|
|
|
|
- cancel_delayed_work(&host->detect);
|
|
|
- mmc_flush_scheduled_work();
|
|
|
-
|
|
|
mmc_bus_get(host);
|
|
|
if (host->bus_ops && !host->bus_dead) {
|
|
|
if (host->bus_ops->suspend)
|
|
@@ -2631,9 +2628,6 @@ int mmc_suspend_host(struct mmc_host *host)
|
|
|
}
|
|
|
mmc_bus_put(host);
|
|
|
|
|
|
- if (!err && !mmc_card_keep_power(host))
|
|
|
- mmc_power_off(host);
|
|
|
-
|
|
|
return err;
|
|
|
}
|
|
|
EXPORT_SYMBOL(mmc_suspend_host);
|
|
@@ -2644,39 +2638,20 @@ EXPORT_SYMBOL(mmc_suspend_host);
|
|
|
*/
|
|
|
int mmc_resume_host(struct mmc_host *host)
|
|
|
{
|
|
|
- int err = 0;
|
|
|
+ int err;
|
|
|
|
|
|
mmc_bus_get(host);
|
|
|
if (host->bus_ops && !host->bus_dead) {
|
|
|
- if (!mmc_card_keep_power(host)) {
|
|
|
- mmc_power_up(host);
|
|
|
- mmc_select_voltage(host, host->ocr);
|
|
|
- /*
|
|
|
- * Tell runtime PM core we just powered up the card,
|
|
|
- * since it still believes the card is powered off.
|
|
|
- * Note that currently runtime PM is only enabled
|
|
|
- * for SDIO cards that are MMC_CAP_POWER_OFF_CARD
|
|
|
- */
|
|
|
- if (mmc_card_sdio(host->card) &&
|
|
|
- (host->caps & MMC_CAP_POWER_OFF_CARD)) {
|
|
|
- pm_runtime_disable(&host->card->dev);
|
|
|
- pm_runtime_set_active(&host->card->dev);
|
|
|
- pm_runtime_enable(&host->card->dev);
|
|
|
- }
|
|
|
- }
|
|
|
BUG_ON(!host->bus_ops->resume);
|
|
|
err = host->bus_ops->resume(host);
|
|
|
- if (err) {
|
|
|
+ if (err)
|
|
|
pr_warning("%s: error %d during resume "
|
|
|
"(card was removed?)\n",
|
|
|
mmc_hostname(host), err);
|
|
|
- err = 0;
|
|
|
- }
|
|
|
}
|
|
|
- host->pm_flags &= ~MMC_PM_KEEP_POWER;
|
|
|
mmc_bus_put(host);
|
|
|
|
|
|
- return err;
|
|
|
+ return 0;
|
|
|
}
|
|
|
EXPORT_SYMBOL(mmc_resume_host);
|
|
|
|