Message ID | 1467570125-8790-1-git-send-email-hdegoede@redhat.com |
---|---|
State | Accepted |
Commit | 2138fd6d5d358bcfef6631300763c16a70f2af3d |
Delegated to: | Marek Vasut |
Headers | show |
On 3 July 2016 at 12:22, Hans de Goede <hdegoede@redhat.com> wrote: > Iterating over usb-root devs and doing something for all of them is > a bit tricky with dm, factor out the proven usb_show_tree() for this > into a helper function. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > cmd/usb.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org>
On 07/03/2016 08:22 PM, Hans de Goede wrote: > Iterating over usb-root devs and doing something for all of them is > a bit tricky with dm, factor out the proven usb_show_tree() for this > into a helper function. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> Applied, thanks. > --- > cmd/usb.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/cmd/usb.c b/cmd/usb.c > index 58d9db2..5453c0d 100644 > --- a/cmd/usb.c > +++ b/cmd/usb.c > @@ -438,9 +438,11 @@ static void usb_show_subtree(struct usb_device *dev) > usb_show_tree_graph(dev, &preamble[0]); > } > > -void usb_show_tree(void) > -{ > #ifdef CONFIG_DM_USB > +typedef void (*usb_dev_func_t)(struct usb_device *udev); > + > +static void usb_for_each_root_dev(usb_dev_func_t func) > +{ > struct udevice *bus; > > for (uclass_find_first_device(UCLASS_USB, &bus); > @@ -455,9 +457,16 @@ void usb_show_tree(void) > device_find_first_child(bus, &dev); > if (dev && device_active(dev)) { > udev = dev_get_parent_priv(dev); > - usb_show_subtree(udev); > + func(udev); > } > } > +} > +#endif > + > +void usb_show_tree(void) > +{ > +#ifdef CONFIG_DM_USB > + usb_for_each_root_dev(usb_show_subtree); > #else > struct usb_device *udev; > int i; >
diff --git a/cmd/usb.c b/cmd/usb.c index 58d9db2..5453c0d 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -438,9 +438,11 @@ static void usb_show_subtree(struct usb_device *dev) usb_show_tree_graph(dev, &preamble[0]); } -void usb_show_tree(void) -{ #ifdef CONFIG_DM_USB +typedef void (*usb_dev_func_t)(struct usb_device *udev); + +static void usb_for_each_root_dev(usb_dev_func_t func) +{ struct udevice *bus; for (uclass_find_first_device(UCLASS_USB, &bus); @@ -455,9 +457,16 @@ void usb_show_tree(void) device_find_first_child(bus, &dev); if (dev && device_active(dev)) { udev = dev_get_parent_priv(dev); - usb_show_subtree(udev); + func(udev); } } +} +#endif + +void usb_show_tree(void) +{ +#ifdef CONFIG_DM_USB + usb_for_each_root_dev(usb_show_subtree); #else struct usb_device *udev; int i;
Iterating over usb-root devs and doing something for all of them is a bit tricky with dm, factor out the proven usb_show_tree() for this into a helper function. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- cmd/usb.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)