[U-Boot] [PATCH v2] dm: usb: Do not reprobe usb hosts on "usb tree" command

Some usb hosts may have failed to probe on "usb start", i.e. an otg host without an otg-host cable plugged in.
"usb tree" would cause the probe method of these hosts to get called again, something which should only happen on "usb reset".
This commit fixes this.
Signed-off-by: Hans de Goede hdegoede@redhat.com --- Changes in v2: -Add missing #include for uclass_find_first_device/uclass_find_next_device --- cmd/usb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/cmd/usb.c b/cmd/usb.c index 9ed5dc6..719f6f2 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -15,6 +15,7 @@ #include <command.h> #include <console.h> #include <dm.h> +#include <dm/uclass-internal.h> #include <memalign.h> #include <asm/byteorder.h> #include <asm/unaligned.h> @@ -442,12 +443,15 @@ void usb_show_tree(void) #ifdef CONFIG_DM_USB struct udevice *bus;
- for (uclass_first_device(UCLASS_USB, &bus); + for (uclass_find_first_device(UCLASS_USB, &bus); bus; - uclass_next_device(&bus)) { + uclass_find_next_device(&bus)) { struct usb_device *udev; struct udevice *dev;
+ if (!device_active(bus)) + continue; + device_find_first_child(bus, &dev); if (dev && device_active(dev)) { udev = dev_get_parent_priv(dev);

On 2 April 2016 at 16:04, Hans de Goede hdegoede@redhat.com wrote:
Some usb hosts may have failed to probe on "usb start", i.e. an otg host without an otg-host cable plugged in.
"usb tree" would cause the probe method of these hosts to get called again, something which should only happen on "usb reset".
This commit fixes this.
Signed-off-by: Hans de Goede hdegoede@redhat.com
Changes in v2:
-Add missing #include for uclass_find_first_device/uclass_find_next_device
cmd/usb.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
participants (2)
-
Hans de Goede
-
Simon Glass