diff options
author | Arnd Bergmann <arnd@arndb.de> | 2011-12-28 03:41:33 +0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-12-28 03:41:33 +0400 |
commit | 4551ae0a24bba06972247a80f721fc21f6b2b758 (patch) | |
tree | 7e17b819ba34f73988d384161335ebe5729897ad /drivers/mmc/core/mmc.c | |
parent | e2c236f0a42fbb9e6a9528f8436f348218ffee96 (diff) | |
parent | 384703b8e6cd4c8ef08512e596024e028c91c339 (diff) | |
download | linux-4551ae0a24bba06972247a80f721fc21f6b2b758.tar.xz |
Merge branch 'v3.2-rc6' into next/drivers
Diffstat (limited to 'drivers/mmc/core/mmc.c')
-rw-r--r-- | drivers/mmc/core/mmc.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index dbf421a6279c..d240427c1246 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -876,17 +876,21 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, * set the notification byte in the ext_csd register of device */ if ((host->caps2 & MMC_CAP2_POWEROFF_NOTIFY) && - (card->poweroff_notify_state == MMC_NO_POWER_NOTIFICATION)) { + (card->ext_csd.rev >= 6)) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_POWER_OFF_NOTIFICATION, EXT_CSD_POWER_ON, card->ext_csd.generic_cmd6_time); if (err && err != -EBADMSG) goto free_card; - } - if (!err) - card->poweroff_notify_state = MMC_POWERED_ON; + /* + * The err can be -EBADMSG or 0, + * so check for success and update the flag + */ + if (!err) + card->poweroff_notify_state = MMC_POWERED_ON; + } /* * Activate high speed (if supported) |