mmc: read the size of eMMC enhanced user data area

This modification reads the size of the eMMC enhanced user data area
upon initialization of an mmc device, it will be used later by
mmcinfo.

Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
This commit is contained in:
Diego Santa Cruz
2014-12-23 10:50:22 +01:00
committed by Pantelis Antoniou
parent f8e89d6716
commit a7f852b688
2 changed files with 19 additions and 0 deletions

View File

@@ -1031,6 +1031,21 @@ static int mmc_startup(struct mmc *mmc)
has_parts = true;
}
mmc->enh_user_size =
(ext_csd[EXT_CSD_ENH_SIZE_MULT+2] << 16) +
(ext_csd[EXT_CSD_ENH_SIZE_MULT+1] << 8) +
ext_csd[EXT_CSD_ENH_SIZE_MULT];
mmc->enh_user_size *= ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE];
mmc->enh_user_size *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
mmc->enh_user_size <<= 19;
mmc->enh_user_start =
(ext_csd[EXT_CSD_ENH_START_ADDR+3] << 24) +
(ext_csd[EXT_CSD_ENH_START_ADDR+2] << 16) +
(ext_csd[EXT_CSD_ENH_START_ADDR+1] << 8) +
ext_csd[EXT_CSD_ENH_START_ADDR];
if (mmc->high_capacity)
mmc->enh_user_start <<= 9;
/*
* Host needs to enable ERASE_GRP_DEF bit if device is
* partitioned. This bit will be lost every time after a reset