Hi Kever, On 19 July 2016 at 07:28, Kever Yang <kever.y...@rock-chips.com> wrote: > Not like the mmc-legacy which the devnum starts from 1, it starts from 0 > in mmc-uclass, so the device number should be (devnum + 1) in get_mmc_num(). > > Signed-off-by: Kever Yang <kever.y...@rock-chips.com> > --- > > Changes in v3: > - apply comments from Jaehoon Chung > > Changes in v2: > - add comment for get_mmc_num() in mmc.h > - update mmc_get_next_devnum() > > drivers/mmc/mmc-uclass.c | 4 ++-- > include/mmc.h | 6 ++++++ > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c > index 38ced41..d0ca91b 100644 > --- a/drivers/mmc/mmc-uclass.c > +++ b/drivers/mmc/mmc-uclass.c > @@ -111,7 +111,7 @@ struct mmc *find_mmc_device(int dev_num) > > int get_mmc_num(void) > { > - return max(blk_find_max_devnum(IF_TYPE_MMC), 0); > + return max((blk_find_max_devnum(IF_TYPE_MMC) + 1), 0);
Sorry to be pendantic, but the problem is that this blk_find_max_devnum() can return -ENODEV. You change it to 0 in this case, which is correct for get_mmc_num(), but not for mmc_get_next_devnum(). I think you should adjust the latter to call blk_find_max_devnum() directly, so it can return an error if there is one. I realise that this may not matter in practice, but it is really confusing the way you have it. > } > > int mmc_get_next_devnum(void) > @@ -122,7 +122,7 @@ int mmc_get_next_devnum(void) > if (ret < 0) > return ret; > > - return ret + 1; > + return ret; > } > > struct blk_desc *mmc_get_blk_desc(struct mmc *mmc) > diff --git a/include/mmc.h b/include/mmc.h > index 8f309f1..dd47f34 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -503,6 +503,12 @@ void mmc_set_clock(struct mmc *mmc, uint clock); > struct mmc *find_mmc_device(int dev_num); > int mmc_set_dev(int dev_num); > void print_mmc_devices(char separator); > + > +/** > + * get_mmc_num() - get the total MMC device number > + * > + * @return 0 if there is no MMC device, else the number of devices > + */ > int get_mmc_num(void); > int mmc_hwpart_config(struct mmc *mmc, const struct mmc_hwpart_conf *conf, > enum mmc_hwpart_conf_mode mode); > -- > 1.9.1 > > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot