Hi Jaehoon, On 6 June 2017 at 21:49, Jaehoon Chung <jh80.ch...@samsung.com> wrote: > Hi Simon, > > On 05/28/2017 02:37 AM, Simon Glass wrote: >> Many devices support a child block device (e.g. MMC, USB). Add a >> convenient way to get this device given the parent device. >> >> Signed-off-by: Simon Glass <s...@chromium.org> >> --- >> >> drivers/block/blk-uclass.c | 26 ++++++++++++++++++++++++++ >> include/blk.h | 7 +++++++ >> test/dm/blk.c | 18 ++++++++++++++++++ >> 3 files changed, 51 insertions(+) >> >> diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c >> index 6145675271..23f131b7ad 100644 >> --- a/drivers/block/blk-uclass.c >> +++ b/drivers/block/blk-uclass.c >> @@ -453,6 +453,32 @@ int blk_prepare_device(struct udevice *dev) >> return 0; >> } >> >> +int blk_get_from_parent(struct udevice *parent, struct udevice **devp) >> +{ >> + struct udevice *dev; >> + enum uclass_id id; >> + int ret; >> + >> + device_find_first_child(parent, &dev); >> + if (!dev) { >> + debug("%s: No block device found for parent '%s'\n", __func__, >> + parent->name); >> + return -ENODEV; >> + } >> + id = device_get_uclass_id(dev); >> + if (id != UCLASS_BLK) { >> + debug("%s: Incorrect uclass %s for block device '%s'\n", >> + __func__, uclass_get_name(id), dev->name); >> + return -ENOTBLK; >> + } >> + ret = device_probe(dev); >> + if (ret) >> + return ret; >> + *devp = dev; >> + >> + return 0; >> +} >> + >> int blk_find_max_devnum(enum if_type if_type) >> { >> struct udevice *dev; >> diff --git a/include/blk.h b/include/blk.h >> index a128ee4841..4d60987f61 100644 >> --- a/include/blk.h >> +++ b/include/blk.h >> @@ -616,4 +616,11 @@ ulong blk_write_devnum(enum if_type if_type, int >> devnum, lbaint_t start, >> */ >> int blk_select_hwpart_devnum(enum if_type if_type, int devnum, int hwpart); >> >> +/** >> + * blk_get_from_parent() - obtain a block device by looking up its parent >> + * >> + * All devices with >> + */ >> +int blk_get_from_parent(struct udevice *parent, struct udevice **devp); > > Don't need to consider whether CONFIG_BLK is defined or not? > blk_get_from_parent() is declared in blk-uclass.c
Well in that case this function will not be called, so I think it is OK. > > Best Regards, > Jaehoon Chung - Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot