Message ID | 1397567221-2065-8-git-send-email-m.zalega@samsung.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Hi Mateusz, > In some cases MMC was still uninitialized while media capacity check, > leading to broken ums command. > > Tested on Samsung Goni. > > Signed-off-by: Mateusz Zalega <m.zalega@samsung.com> > Tested-by: Mateusz Zalega <m.zalega@samsung.com> > Cc: Lukasz Majewski <l.majewski@samsung.com> > Cc: Minkyu Kang <mk7.kang@samsung.com> > --- > board/samsung/common/ums.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/board/samsung/common/ums.c b/board/samsung/common/ums.c > index dc155ad..dec2963 100644 > --- a/board/samsung/common/ums.c > +++ b/board/samsung/common/ums.c > @@ -37,8 +37,8 @@ static struct ums ums_dev = { > > static struct ums *ums_disk_init(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); > } Acked-by: Lukasz Majewski <l.majewski@samsung.com>
diff --git a/board/samsung/common/ums.c b/board/samsung/common/ums.c index dc155ad..dec2963 100644 --- a/board/samsung/common/ums.c +++ b/board/samsung/common/ums.c @@ -37,8 +37,8 @@ static struct ums ums_dev = { static struct ums *ums_disk_init(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); }