mmc: sdhci: Platform hooks for handling power off
Pavan Kunapuli [Mon, 2 Sep 2013 08:49:30 +0000 (13:49 +0530)]
Added platform specific callback to allow for any special handling of
MMC_POWER_OFF.
Bug 1353926

Change-Id: I0918984461746ff28824b7dd2873b652225e3d1a
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/267312
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>

drivers/mmc/host/sdhci.c
drivers/mmc/host/sdhci.h

index 27d06a7..7c67c3e 100644 (file)
@@ -1539,6 +1539,10 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
         */
        if (!ios->clock && host->ops->set_clock)
                host->ops->set_clock(host, ios->clock);
+
+       if ((ios->power_mode == MMC_POWER_OFF) && host->ops->platform_power_off)
+               host->ops->platform_power_off(host, ios->power_mode);
+
 }
 
 static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
index 583d6c7..3cf67a1 100644 (file)
@@ -275,6 +275,7 @@ struct sdhci_ops {
        unsigned int    (*get_cd)(struct sdhci_host *host);
        void    (*platform_reset_enter)(struct sdhci_host *host, u8 mask);
        void    (*platform_reset_exit)(struct sdhci_host *host, u8 mask);
+       void    (*platform_power_off)(struct sdhci_host *host, u8 power_mode);
        int     (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs);
        void    (*hw_reset)(struct sdhci_host *host);