diff options
-rw-r--r-- | drivers/mmc/core/core.c | 6 | ||||
-rw-r--r-- | include/linux/mmc/host.h | 7 |
2 files changed, 13 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) diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 0e56f1ae7602..0441661ad59a 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -232,6 +232,13 @@ struct mmc_host { #define MMC_CAP_CMD23 (1 << 30) /* CMD23 supported. */ #define MMC_CAP_BKOPS (1 << 31) /* Host supports BKOPS */ + unsigned int caps2; /* More host capabilities */ +#define MMC_CAP2_BOOTPART_NOACC (1 << 0) /* Boot partition no access */ +#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 */ #ifdef CONFIG_MMC_CLKGATE |