Hi Jaehoon, On 8 June 2017 at 21:38, Jaehoon Chung <jh80.ch...@samsung.com> wrote: > On 06/09/2017 12:06 PM, Simon Glass wrote: >> 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. > > include/blk.h:624:32: warning: 'struct udevice' declared inside parameter > list will not be visible outside of this definition or declaration > int blk_get_from_parent(struct udevice *parent, struct udevice **devp); > > Plz, check this.. :)
Which board is this, please? Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot