mmc: core: Add shutdown callback for (e)MMC bus_ops
authorUlf Hansson <ulf.hansson@linaro.org>
Mon, 10 Jun 2013 15:03:44 +0000 (17:03 +0200)
committerChris Ball <cjb@laptop.org>
Thu, 27 Jun 2013 16:39:20 +0000 (12:39 -0400)
The shutdown sequence of an (e)MMC is very similar to a suspend. We
re-use the suspend function and tell it we are not in suspend context.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/mmc.c

index ab34a39486aec788240f16c8d8c42e5c392e4c5a..f670c285613d7be49492662146b7423c016fee50 100644 (file)
@@ -1508,6 +1508,14 @@ static int mmc_suspend(struct mmc_host *host)
        return _mmc_suspend(host, true);
 }
 
+/*
+ * Shutdown callback
+ */
+static int mmc_shutdown(struct mmc_host *host)
+{
+       return _mmc_suspend(host, false);
+}
+
 /*
  * Resume callback from host.
  *
@@ -1597,6 +1605,7 @@ static const struct mmc_bus_ops mmc_ops = {
        .resume = NULL,
        .power_restore = mmc_power_restore,
        .alive = mmc_alive,
+       .shutdown = mmc_shutdown,
 };
 
 static const struct mmc_bus_ops mmc_ops_unsafe = {
@@ -1608,6 +1617,7 @@ static const struct mmc_bus_ops mmc_ops_unsafe = {
        .runtime_resume = mmc_runtime_resume,
        .power_restore = mmc_power_restore,
        .alive = mmc_alive,
+       .shutdown = mmc_shutdown,
 };
 
 static void mmc_attach_bus_ops(struct mmc_host *host)