diff options
author | Ulf Hansson <ulf.hansson@stericsson.com> | 2011-12-19 16:24:19 +0100 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-07-31 03:40:03 -0700 |
commit | 8c8eda3eb618bd7bed2d1339584ece423300563c (patch) | |
tree | bff212a7c301c5998029b59c494d8dcac6c10085 /drivers/mmc | |
parent | ee2367b525e8c1c5036d170bcba1798abd0ca9c7 (diff) |
mmc: core: Add option to prevent eMMC sleep command
Host may now use MMC_CAP2_NO_SLEEP_CMD to disable the use
of eMMC sleep/awake command.
This option can be used when your platform has a buggy
kernel crash dump software, which is supposed to store
the dump on the eMMC, but is not able to wake up the eMMC
from sleep state.
In particular, failures have been seen with u-boot; even if
it is fixed there, platforms will be slow to update their
bootloader binaries.
Change-Id: I403f4b2a231dde087095a660189dc2f4e79edfd5
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com>
Reviewed-by: Hanumath Prasad <hanumath.prasad@stericsson.com>
Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Acked-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Bug 1007644
Bug 936069
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Change-Id: I8b2834e154e338a97bd6d82f177809d47d318ff0
Reviewed-on: http://git-master/r/118914
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/core/core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 3fe73a7c1e99..f7528db8fd06 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -2183,6 +2183,9 @@ int mmc_card_awake(struct mmc_host *host) { int err = -ENOSYS; + if (host->caps2 & MMC_CAP2_NO_SLEEP_CMD) + return 0; + mmc_bus_get(host); if (host->bus_ops && !host->bus_dead && host->bus_ops->awake) @@ -2198,6 +2201,9 @@ int mmc_card_sleep(struct mmc_host *host) { int err = -ENOSYS; + if (host->caps2 & MMC_CAP2_NO_SLEEP_CMD) + return 0; + mmc_bus_get(host); if (host->bus_ops && !host->bus_dead && host->bus_ops->awake) |