diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2015-02-06 14:12:56 +0200 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2015-06-01 09:07:13 +0200 |
commit | 3853a042325e8f497c199020979c4fc824528c6e (patch) | |
tree | 8951d8e430ffc70e047120c9d845b1995ab6b31c | |
parent | e23350b35deb77ef8e33c35dbb0ed1dab9e8ab86 (diff) | |
download | linux-3853a042325e8f497c199020979c4fc824528c6e.tar.gz linux-3853a042325e8f497c199020979c4fc824528c6e.tar.bz2 linux-3853a042325e8f497c199020979c4fc824528c6e.zip |
mmc: core: Record card drive strength
In preparation for adding drive strength support
for eMMC, add drive_strength to struct mmc_card
to record the card drive strength for UHS-I modes
and HS200 / HS400. For eMMC this will be needed
when switching between HS200 and HS400.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/core/sd.c | 3 | ||||
-rw-r--r-- | drivers/mmc/core/sdio.c | 3 | ||||
-rw-r--r-- | include/linux/mmc/card.h | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index 9771b84db4b3..b99e25b9bcdc 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -389,6 +389,8 @@ static int sd_select_driver_type(struct mmc_card *card, u8 *status) int card_drv_type, drive_strength, drv_type; int err; + card->drive_strength = 0; + card_drv_type = card->sw_caps.sd3_drv_type | SD_DRIVER_TYPE_B; drive_strength = mmc_select_drive_strength(card, @@ -404,6 +406,7 @@ static int sd_select_driver_type(struct mmc_card *card, u8 *status) mmc_hostname(card->host)); return 0; } + card->drive_strength = drive_strength; } if (drv_type) diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index 73b091331c96..b91abedcfdca 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -406,6 +406,8 @@ static void sdio_select_driver_type(struct mmc_card *card) unsigned char card_strength; int err; + card->drive_strength = 0; + card_drv_type = card->sw_caps.sd3_drv_type | SD_DRIVER_TYPE_B; drive_strength = mmc_select_drive_strength(card, @@ -427,6 +429,7 @@ static void sdio_select_driver_type(struct mmc_card *card) card_strength, NULL); if (err) return; + card->drive_strength = drive_strength; } if (drv_type) diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 19f0175c0afa..2f073d555793 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -305,6 +305,7 @@ struct mmc_card { unsigned int sd_bus_speed; /* Bus Speed Mode set for the card */ unsigned int mmc_avail_type; /* supported device type by both host and card */ + unsigned int drive_strength; /* for UHS-I, HS200 or HS400 */ struct dentry *debugfs_root; struct mmc_part part[MMC_NUM_PHY_PARTITION]; /* physical partitions */ |