summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMaya Erez <merez@codeaurora.org>2015-09-29 17:34:03 +0300
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:27:31 -0700
commit21a32a7af8ca151dff4f3710742864705a5a7e7d (patch)
tree6b12a6b38dcac1a661e57a54f4604e23450731bc /include/linux
parent17a072dd256d9a3246abf28e78e62a65c63f84f1 (diff)
mmc: core: add partial initialization support
This change adds the ability to partially initialize the MMC card by using card Sleep/Awake sequence (CMD5). Card will be sent to Sleep state during runtime/system suspend and will be woken up during runtime/system resume. By using this sequence the card doesn't need full initialization which gives time reduction in system/runtime resume path. Change-Id: Id8dadf03ef4226f7c4675fadbacac7bb15c0289e Signed-off-by: Talel Shenhar <tatias@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org> [subhashj@codeaurora.org: fixed merge conflicts & compilation errors] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mmc/card.h4
-rw-r--r--include/linux/mmc/host.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 1b891365653f..b8430181704a 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -93,6 +93,8 @@ struct mmc_ext_csd {
unsigned int data_tag_unit_size; /* DATA TAG UNIT size */
unsigned int boot_ro_lock; /* ro lock support */
bool boot_ro_lockable;
+ u8 raw_ext_csd_cmdq; /* 15 */
+ u8 raw_ext_csd_cache_ctrl; /* 33 */
bool ffu_capable; /* Firmware upgrade support */
#define MMC_FIRMWARE_LEN 8
u8 fwrev[MMC_FIRMWARE_LEN]; /* FW version */
@@ -100,8 +102,10 @@ struct mmc_ext_csd {
u8 raw_partition_support; /* 160 */
u8 raw_rpmb_size_mult; /* 168 */
u8 raw_erased_mem_count; /* 181 */
+ u8 raw_ext_csd_bus_width; /* 183 */
u8 strobe_support; /* 184 */
#define MMC_STROBE_SUPPORT (1 << 0)
+ u8 raw_ext_csd_hs_timing; /* 185 */
u8 raw_ext_csd_structure; /* 194 */
u8 raw_card_type; /* 196 */
u8 raw_driver_strength; /* 197 */
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 367e122d1f2f..0f8d285a1192 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -441,6 +441,8 @@ struct mmc_host {
#define MMC_CAP2_NONHOTPLUG (1 << 25) /*Don't support hotplug*/
#define MMC_CAP2_CMD_QUEUE (1 << 26) /* support eMMC command queue */
#define MMC_CAP2_SANITIZE (1 << 27) /* Support Sanitize */
+#define MMC_CAP2_SLEEP_AWAKE (1 << 28) /* Use Sleep/Awake (CMD5) */
+
mmc_pm_flag_t pm_caps; /* supported pm features */
#ifdef CONFIG_MMC_CLKGATE
@@ -468,6 +470,7 @@ struct mmc_host {
spinlock_t lock; /* lock for claim and bus ops */
struct mmc_ios ios; /* current io bus settings */
+ struct mmc_ios cached_ios;
/* group bitfields together to minimize padding */
unsigned int use_spi_crc:1;