|
@@ -1583,37 +1583,45 @@ void mmc_stop_host(struct mmc_host *host)
|
|
|
mmc_power_off(host);
|
|
|
}
|
|
|
|
|
|
-void mmc_power_save_host(struct mmc_host *host)
|
|
|
+int mmc_power_save_host(struct mmc_host *host)
|
|
|
{
|
|
|
+ int ret = 0;
|
|
|
+
|
|
|
mmc_bus_get(host);
|
|
|
|
|
|
if (!host->bus_ops || host->bus_dead || !host->bus_ops->power_restore) {
|
|
|
mmc_bus_put(host);
|
|
|
- return;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if (host->bus_ops->power_save)
|
|
|
- host->bus_ops->power_save(host);
|
|
|
+ ret = host->bus_ops->power_save(host);
|
|
|
|
|
|
mmc_bus_put(host);
|
|
|
|
|
|
mmc_power_off(host);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
EXPORT_SYMBOL(mmc_power_save_host);
|
|
|
|
|
|
-void mmc_power_restore_host(struct mmc_host *host)
|
|
|
+int mmc_power_restore_host(struct mmc_host *host)
|
|
|
{
|
|
|
+ int ret;
|
|
|
+
|
|
|
mmc_bus_get(host);
|
|
|
|
|
|
if (!host->bus_ops || host->bus_dead || !host->bus_ops->power_restore) {
|
|
|
mmc_bus_put(host);
|
|
|
- return;
|
|
|
+ return -EINVAL;
|
|
|
}
|
|
|
|
|
|
mmc_power_up(host);
|
|
|
- host->bus_ops->power_restore(host);
|
|
|
+ ret = host->bus_ops->power_restore(host);
|
|
|
|
|
|
mmc_bus_put(host);
|
|
|
+
|
|
|
+ return ret;
|
|
|
}
|
|
|
EXPORT_SYMBOL(mmc_power_restore_host);
|
|
|
|