aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mmc/core/bus.c19
-rw-r--r--drivers/mmc/core/core.c26
2 files changed, 19 insertions, 26 deletions
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c
index d9e8c2b7f4c5..3b7ca8ac0e61 100644
--- a/drivers/mmc/core/bus.c
+++ b/drivers/mmc/core/bus.c
@@ -127,10 +127,16 @@ static int mmc_bus_suspend(struct device *dev)
127{ 127{
128 struct mmc_driver *drv = to_mmc_driver(dev->driver); 128 struct mmc_driver *drv = to_mmc_driver(dev->driver);
129 struct mmc_card *card = mmc_dev_to_card(dev); 129 struct mmc_card *card = mmc_dev_to_card(dev);
130 int ret = 0; 130 struct mmc_host *host = card->host;
131 int ret;
131 132
132 if (dev->driver && drv->suspend) 133 if (dev->driver && drv->suspend) {
133 ret = drv->suspend(card); 134 ret = drv->suspend(card);
135 if (ret)
136 return ret;
137 }
138
139 ret = host->bus_ops->suspend(host);
134 return ret; 140 return ret;
135} 141}
136 142
@@ -138,10 +144,17 @@ static int mmc_bus_resume(struct device *dev)
138{ 144{
139 struct mmc_driver *drv = to_mmc_driver(dev->driver); 145 struct mmc_driver *drv = to_mmc_driver(dev->driver);
140 struct mmc_card *card = mmc_dev_to_card(dev); 146 struct mmc_card *card = mmc_dev_to_card(dev);
141 int ret = 0; 147 struct mmc_host *host = card->host;
148 int ret;
149
150 ret = host->bus_ops->resume(host);
151 if (ret)
152 pr_warn("%s: error %d during resume (card was removed?)\n",
153 mmc_hostname(host), ret);
142 154
143 if (dev->driver && drv->resume) 155 if (dev->driver && drv->resume)
144 ret = drv->resume(card); 156 ret = drv->resume(card);
157
145 return ret; 158 return ret;
146} 159}
147#endif 160#endif
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index da3b9078ea65..49a5bca418bd 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -2619,16 +2619,8 @@ EXPORT_SYMBOL(mmc_cache_ctrl);
2619 */ 2619 */
2620int mmc_suspend_host(struct mmc_host *host) 2620int mmc_suspend_host(struct mmc_host *host)
2621{ 2621{
2622 int err = 0; 2622 /* This function is deprecated */
2623 2623 return 0;
2624 mmc_bus_get(host);
2625 if (host->bus_ops && !host->bus_dead) {
2626 if (host->bus_ops->suspend)
2627 err = host->bus_ops->suspend(host);
2628 }
2629 mmc_bus_put(host);
2630
2631 return err;
2632} 2624}
2633EXPORT_SYMBOL(mmc_suspend_host); 2625EXPORT_SYMBOL(mmc_suspend_host);
2634 2626
@@ -2638,19 +2630,7 @@ EXPORT_SYMBOL(mmc_suspend_host);
2638 */ 2630 */
2639int mmc_resume_host(struct mmc_host *host) 2631int mmc_resume_host(struct mmc_host *host)
2640{ 2632{
2641 int err; 2633 /* This function is deprecated */
2642
2643 mmc_bus_get(host);
2644 if (host->bus_ops && !host->bus_dead) {
2645 BUG_ON(!host->bus_ops->resume);
2646 err = host->bus_ops->resume(host);
2647 if (err)
2648 pr_warning("%s: error %d during resume "
2649 "(card was removed?)\n",
2650 mmc_hostname(host), err);
2651 }
2652 mmc_bus_put(host);
2653
2654 return 0; 2634 return 0;
2655} 2635}
2656EXPORT_SYMBOL(mmc_resume_host); 2636EXPORT_SYMBOL(mmc_resume_host);