mmc: core: Add new power_mode MMC_POWER_UNDEFINED
authorRoger Tseng <rogerable@realtek.com>
Wed, 24 Sep 2014 09:07:13 +0000 (17:07 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 24 Sep 2014 09:20:04 +0000 (11:20 +0200)
Add MMC_POWER_UNDEFINED for power_mode in struct mmc_ios and use it as
the initial value of host->ios.power_mode.

For hosts with MMC_CAP2_NO_PRESCAN_POWERUP, this makes the later
mmc_power_off() do real power-off things instead of NOP, and further
prevents state messed up in cards that was already initialized (eg. by
BIOS of UEFI driver).

Signed-off-by: Roger Tseng <rogerable@realtek.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/core.c
include/linux/mmc/host.h

index b1e209f479adf0fc859349be2686e957c685b967..cbb23215ad87bd9e441e5b208949a7a203a2d223 100644 (file)
@@ -2482,6 +2482,7 @@ void mmc_start_host(struct mmc_host *host)
 {
        host->f_init = max(freqs[0], host->f_min);
        host->rescan_disable = 0;
+       host->ios.power_mode = MMC_POWER_UNDEFINED;
        if (host->caps2 & MMC_CAP2_NO_PRESCAN_POWERUP)
                mmc_power_off(host);
        else
index 797ae657dc3db6b0d7e51430b0cf0a0cf1bb2cd5..df0c15396bbfcce6c01eabe49778c4584d4b2d69 100644 (file)
@@ -42,6 +42,7 @@ struct mmc_ios {
 #define MMC_POWER_OFF          0
 #define MMC_POWER_UP           1
 #define MMC_POWER_ON           2
+#define MMC_POWER_UNDEFINED    3
 
        unsigned char   bus_width;              /* data bus width */