aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorPhilip Rakity <prakity@yahoo.com>2013-04-04 15:18:11 -0400
committerChris Ball <cjb@laptop.org>2013-04-04 15:33:29 -0400
commit836dc2fe89c968c10cada87e0dfae6626f8f9da3 (patch)
treeb25f5a5237c2e56c7ccd5887e245dfd4a0dd3d79 /drivers/mmc
parent8e1c4e4d732666ace4c5e0cd122e7217ded910aa (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.c2
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 =