aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Anderson <saa@android.com>2012-02-16 09:23:46 -0800
committerMike J. Chen <mjchen@google.com>2012-03-03 17:29:36 -0800
commite47602dc85802446f53204e30974e045c8ad99fb (patch)
tree3c62a0596fb122fbf3dfbc46bd024b364bf7afd8
parentfc5fce9ce2068b3223014bb18cf5b62bae39696c (diff)
downloaduboot-e47602dc85802446f53204e30974e045c8ad99fb.tar.gz
MMC: Fix erase group size if ERASE_GRP_DEF
When ERASE_GROUP_DEF (ext_csd[175]) is enabled, HC_ERASE_GRP_SIZE (ext_csd[224]) defines the erase group size in terms of 512KByte chunks, but erase_grp_size is in terms of number of write blocks. Change-Id: Id1d291fccf8a5920346045c84d71062ad7878533 Signed-off-by: Scott Anderson <saa@android.com>
-rw-r--r--drivers/mmc/mmc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index 170868285..f01b44bd9 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -1113,7 +1113,8 @@ int mmc_startup(struct mmc *mmc)
* the group size from the csd value.
*/
if (ext_csd[175])
- mmc->erase_grp_size = ext_csd[224] * 512 * 1024;
+ mmc->erase_grp_size = ext_csd[224] * 512 * 1024
+ / mmc->write_bl_len;
else {
int erase_gsz, erase_gmul;
erase_gsz = (mmc->csd[2] & 0x00007c00) >> 10;