Skip to content

Commit

Permalink
mmc: core: Add option to prevent eMMC sleep command
Browse files Browse the repository at this point in the history
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.

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>
  • Loading branch information
Ulf Hansson authored and Chris Ball committed Jan 12, 2012
1 parent 7efab4f commit aa9df4f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/mmc/core/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2246,6 +2246,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)
Expand All @@ -2261,6 +2264,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->sleep)
Expand Down
1 change: 1 addition & 0 deletions include/linux/mmc/host.h
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ struct mmc_host {
#define MMC_CAP2_CACHE_CTRL (1 << 1) /* Allow cache control */
#define MMC_CAP2_POWEROFF_NOTIFY (1 << 2) /* Notify poweroff supported */
#define MMC_CAP2_NO_MULTI_READ (1 << 3) /* Multiblock reads don't work */
#define MMC_CAP2_NO_SLEEP_CMD (1 << 4) /* Don't allow sleep command */

mmc_pm_flag_t pm_caps; /* supported pm features */
unsigned int power_notify_type;
Expand Down

0 comments on commit aa9df4f

Please sign in to comment.