On 06/23/2017 11:54 AM, Bin Meng wrote: > Sometimes we need know if a given hub device is root hub or not. > Add a new API to test this. > > Signed-off-by: Bin Meng <bmeng...@gmail.com> > --- > > common/usb_hub.c | 10 ++++++++++ > include/usb.h | 8 ++++++++ > 2 files changed, 18 insertions(+) > > diff --git a/common/usb_hub.c b/common/usb_hub.c > index 18bd827..d780251 100644 > --- a/common/usb_hub.c > +++ b/common/usb_hub.c > @@ -74,6 +74,16 @@ static inline bool usb_hub_is_superspeed(struct usb_device > *hdev) > return hdev->descriptor.bDeviceProtocol == 3; > } > > +#ifdef CONFIG_DM_USB > +bool usb_hub_is_root_hub(struct udevice *hub) > +{ > + if (device_get_uclass_id(hub->parent) != UCLASS_USB_HUB)
Can this call fail ? > + return true; > + > + return false; > +} > +#endif > + > static int usb_get_hub_descriptor(struct usb_device *dev, void *data, int > size) > { > unsigned short dtype = USB_DT_HUB; > diff --git a/include/usb.h b/include/usb.h > index eb82cc2..c504d71 100644 > --- a/include/usb.h > +++ b/include/usb.h > @@ -776,6 +776,14 @@ int usb_setup_device(struct usb_device *dev, bool > do_read, > struct usb_device *parent); > > /** > + * usb_hub_is_root_hub() - Test whether a hub device is root hub or not > + * > + * @hub: USB hub device to test > + * @return: true if the hub device is root hub, false otherwise. > + */ > +bool usb_hub_is_root_hub(struct udevice *hub); > + > +/** > * usb_hub_scan() - Scan a hub and find its devices > * > * @hub: Hub device to scan > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot