From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Wed, 11 Jul 2018 14:13:43 -0600 Subject: [U-Boot] [PATCH v4 3/6] block: Add a function to find block device descriptor In-Reply-To: <1531318986.9560.8.camel@intel.com> References: <1530865596-10567-1-git-send-email-tien.fong.chee@intel.com> <1531318986.9560.8.camel@intel.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tien Fong, On 11 July 2018 at 08:23, Chee, Tien Fong wrote: > On Wed, 2018-07-11 at 08:02 -0600, Simon Glass wrote: >> Hi Tien, >> >> On 6 July 2018 at 02:26, wrote: >> > >> > From: Tien Fong Chee >> > >> > Add a function to find the block device descriptor of the parent >> > device. >> > >> > Signed-off-by: Tien Fong Chee >> > --- >> > drivers/block/blk-uclass.c | 23 +++++++++++++++++++++++ >> > include/blk.h | 9 +++++++++ >> > 2 files changed, 32 insertions(+) >> > >> > diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk- >> > uclass.c >> > index 9e0c823..facf527 100644 >> > --- a/drivers/block/blk-uclass.c >> > +++ b/drivers/block/blk-uclass.c >> > @@ -132,6 +132,29 @@ struct blk_desc >> > *blk_get_devnum_by_typename(const char *if_typename, int devnum) >> > } >> > >> > /** >> > + * blk_get_by_device() - Get the block device descriptor for the >> > given device >> > + * @dev: Instance of a storage device >> > + * >> > + * Return: With block device descriptor on success , NULL if there >> > is no such >> > + * block device. >> > + */ >> > +struct blk_desc *blk_get_by_device(struct udevice *dev) >> > +{ >> > + struct udevice *child_dev, *next; >> > + >> > + device_foreach_child_safe(child_dev, next, dev) { >> > + if (device_get_uclass_id(child_dev) != UCLASS_BLK) >> > + continue; >> > + >> > + return dev_get_uclass_platdata(child_dev); >> > + } >> > + >> > + debug("%s: No block device found\n", __func__); >> > + >> > + return NULL; >> > +} >> Is this different from blk_get_from_parent() ? > This new function would return block description. > blk_get_from_parents() would return child device. OK, but please implement your function by calling blk_get_from_parent(). There is no need to duplicate the logic. Also how about calling it blk_get_desc_from_parent() ? Regards, Simon