In some cases MMC was still uninitialized while media capacity check, leading to broken ums command.
Tested on Samsung Goni. Change-Id: I4b86c2c59e430fb8b55272ea14f00316d8cb3dca Signed-off-by: Mateusz Zalega <m.zal...@samsung.com> Tested-by: Mateusz Zalega <m.zal...@samsung.com> Cc: Lukasz Majewski <l.majew...@samsung.com> Cc: Minkyu Kang <mk7.k...@samsung.com> --- board/samsung/common/ums.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/board/samsung/common/ums.c b/board/samsung/common/ums.c index dc155ad..1375138 100644 --- a/board/samsung/common/ums.c +++ b/board/samsung/common/ums.c @@ -35,10 +35,10 @@ static struct ums ums_dev = { .name = "UMS disk", }; -static struct ums *ums_disk_init(struct mmc *mmc) +static struct ums *ums_disk_init(const struct mmc *mmc) { - uint64_t mmc_end_sector = mmc->capacity / SECTOR_SIZE; - uint64_t ums_end_sector = UMS_NUM_SECTORS + UMS_START_SECTOR; + const uint64_t mmc_end_sector = mmc->capacity / SECTOR_SIZE; + const uint64_t ums_end_sector = UMS_NUM_SECTORS + UMS_START_SECTOR; if (!mmc_end_sector) { error("MMC capacity is not valid"); @@ -66,11 +66,9 @@ static struct ums *ums_disk_init(struct mmc *mmc) struct ums *ums_init(unsigned int dev_num) { - struct mmc *mmc = NULL; + struct mmc *mmc = find_mmc_device(dev_num); - mmc = find_mmc_device(dev_num); - if (!mmc) + if (!mmc || mmc_init(mmc)) return NULL; - return ums_disk_init(mmc); } -- 1.9.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot