Message ID | 20220118184259.v3.9.I6a05dc4317e457af31d5f1dc9df5848a521a2374@changeid |
---|---|
State | RFC |
Delegated to: | Tom Rini |
Headers | show |
Series | Initial implementation of standard boot | expand |
On 1/19/22 02:42, Simon Glass wrote: > Use the uclass name to get the device type for a block device. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > (no changes since v1) > > drivers/block/blk-uclass.c | 8 ++++++++ > include/blk.h | 8 ++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c > index a055387570a..cfc34417a27 100644 > --- a/drivers/block/blk-uclass.c > +++ b/drivers/block/blk-uclass.c > @@ -509,6 +509,14 @@ int blk_get_from_parent(struct udevice *parent, struct udevice **devp) > return 0; > } > > +const char *blk_get_devtype(struct udevice *dev) > +{ > + struct udevice *parent = dev_get_parent(dev); > + > + return uclass_get_name(device_get_uclass_id(parent)); > +}; > + > + > int blk_find_max_devnum(enum if_type if_type) > { > struct udevice *dev; > diff --git a/include/blk.h b/include/blk.h > index 133204a82e1..e88948e4c32 100644 > --- a/include/blk.h > +++ b/include/blk.h > @@ -433,6 +433,14 @@ int blk_select_hwpart(struct udevice *dev, int hwpart); > */ > int blk_get_from_parent(struct udevice *parent, struct udevice **devp); > > +/** > + * blk_get_devtype() - Get the device type of a block device > + * > + * @dev: Block device to check > + * @return device tree, i.e. the uclass name of its parent, e.g. "mmc" Return: Cf. https://www.kernel.org/doc/html/latest/doc-guide/kernel-doc.html#function-documentation Best regards Heinrich > + */ > +const char *blk_get_devtype(struct udevice *dev); > + > /** > * blk_get_by_device() - Get the block device descriptor for the given device > * @dev: Instance of a storage device
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index a055387570a..cfc34417a27 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -509,6 +509,14 @@ int blk_get_from_parent(struct udevice *parent, struct udevice **devp) return 0; } +const char *blk_get_devtype(struct udevice *dev) +{ + struct udevice *parent = dev_get_parent(dev); + + return uclass_get_name(device_get_uclass_id(parent)); +}; + + int blk_find_max_devnum(enum if_type if_type) { struct udevice *dev; diff --git a/include/blk.h b/include/blk.h index 133204a82e1..e88948e4c32 100644 --- a/include/blk.h +++ b/include/blk.h @@ -433,6 +433,14 @@ int blk_select_hwpart(struct udevice *dev, int hwpart); */ int blk_get_from_parent(struct udevice *parent, struct udevice **devp); +/** + * blk_get_devtype() - Get the device type of a block device + * + * @dev: Block device to check + * @return device tree, i.e. the uclass name of its parent, e.g. "mmc" + */ +const char *blk_get_devtype(struct udevice *dev); + /** * blk_get_by_device() - Get the block device descriptor for the given device * @dev: Instance of a storage device
Use the uclass name to get the device type for a block device. Signed-off-by: Simon Glass <sjg@chromium.org> --- (no changes since v1) drivers/block/blk-uclass.c | 8 ++++++++ include/blk.h | 8 ++++++++ 2 files changed, 16 insertions(+)