diff options
author | Philip Rakity <prakity@yahoo.com> | 2013-04-04 15:18:11 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2013-04-04 15:33:29 -0400 |
commit | 836dc2fe89c968c10cada87e0dfae6626f8f9da3 (patch) | |
tree | b25f5a5237c2e56c7ccd5887e245dfd4a0dd3d79 /drivers/mmc | |
parent | 8e1c4e4d732666ace4c5e0cd122e7217ded910aa (diff) |
mmc: core: Fix bit width test failing on old eMMC cards
PARTITION_SUPPORT needs to be set before doing the compare on version
number so the bit width test does not get invalid data. Before this
patch, a Sandisk iNAND eMMC card would detect 1-bit width although
the hardware supports 4-bit.
Only affects old emmc devices - pre 4.4 devices.
Reported-by: Elad Yi <elad.yi@gmail.com>
Signed-off-by: Philip Rakity <prakity@yahoo.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/core/mmc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index d584f7ca168c..0cbd1effe960 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c | |||
@@ -369,13 +369,13 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) | |||
369 | ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; | 369 | ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; |
370 | card->ext_csd.raw_trim_mult = | 370 | card->ext_csd.raw_trim_mult = |
371 | ext_csd[EXT_CSD_TRIM_MULT]; | 371 | ext_csd[EXT_CSD_TRIM_MULT]; |
372 | card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; | ||
372 | if (card->ext_csd.rev >= 4) { | 373 | if (card->ext_csd.rev >= 4) { |
373 | /* | 374 | /* |
374 | * Enhanced area feature support -- check whether the eMMC | 375 | * Enhanced area feature support -- check whether the eMMC |
375 | * card has the Enhanced area enabled. If so, export enhanced | 376 | * card has the Enhanced area enabled. If so, export enhanced |
376 | * area offset and size to user by adding sysfs interface. | 377 | * area offset and size to user by adding sysfs interface. |
377 | */ | 378 | */ |
378 | card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; | ||
379 | if ((ext_csd[EXT_CSD_PARTITION_SUPPORT] & 0x2) && | 379 | if ((ext_csd[EXT_CSD_PARTITION_SUPPORT] & 0x2) && |
380 | (ext_csd[EXT_CSD_PARTITION_ATTRIBUTE] & 0x1)) { | 380 | (ext_csd[EXT_CSD_PARTITION_ATTRIBUTE] & 0x1)) { |
381 | hc_erase_grp_sz = | 381 | hc_erase_grp_sz = |