Fixed a bug in card capacity calculation for MMC high-capacity cards. Signed-off-by: Alagu Sankar <alagusan...@embwise.com> --- drivers/mmc/mmc.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 959d8ad..e7abf94 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -393,6 +393,7 @@ int mmc_change_freq(struct mmc *mmc) char ext_csd[512]; char cardtype; int err; + unsigned int sec_count; mmc->card_caps = 0; @@ -407,8 +408,14 @@ int mmc_change_freq(struct mmc *mmc) if (err) return err; - if (ext_csd[212] || ext_csd[213] || ext_csd[214] || ext_csd[215]) + sec_count = ((uint)ext_csd[212] | + ((uint)ext_csd[213] << 8) | + ((uint)ext_csd[214] << 16) | + ((uint)ext_csd[215] << 24)); + if (sec_count) { mmc->high_capacity = 1; + mmc->capacity = sec_count * 512; + } cardtype = ext_csd[196] & 0xf; -- 1.6.0.6 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot