diff options
author | Diego Santa Cruz <Diego.SantaCruz@spinetix.com> | 2014-12-23 10:50:24 +0100 |
---|---|---|
committer | Pantelis Antoniou <pantelis.antoniou@konsulko.com> | 2015-01-19 17:02:29 +0200 |
commit | a4ff9f83f5f902717e87c05cf9d2d02b472d4257 (patch) | |
tree | bfb0730a055502f3a73fc89cc7d95071dc3fecb8 | |
parent | beb98a1496c1606f443d274c23cb97e831bf3a2e (diff) |
mmc: fix erase_grp_size computation with high-capacity size definition
The erase_grp_size in struct mmc is to be a size in 512-byte sectors
but the code used to compute it for eMMC when EXT_CSD_ERASE_GROUP_DEF is
enabled computed it as bytes, leading to erase sizes and alignment
much larger than what is actually required by the mmc device.
Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
-rw-r--r-- | drivers/mmc/mmc.c | 3 | ||||
-rw-r--r-- | include/mmc.h | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index f07505f556..be211016cf 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1068,8 +1068,7 @@ static int mmc_startup(struct mmc *mmc) /* Read out group size from ext_csd */ mmc->erase_grp_size = - ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * - MMC_MAX_BLOCK_LEN * 1024; + ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024; /* * if high capacity and partition setting completed * SEC_COUNT is valid even if it is smaller than 2 GiB diff --git a/include/mmc.h b/include/mmc.h index 18155c9d6c..6c8bbfc952 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -315,7 +315,7 @@ struct mmc { uint tran_speed; uint read_bl_len; uint write_bl_len; - uint erase_grp_size; + uint erase_grp_size; /* in 512-byte sectors */ u64 capacity; u64 capacity_user; u64 capacity_boot; |