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

Hans de Goede hdegoede at redhat.com
Sat Apr 2 20:46:11 CEST 2016


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 at redhat.com>
---
 cmd/usb.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/cmd/usb.c b/cmd/usb.c
index 9ed5dc6..8741088 100644
--- a/cmd/usb.c
+++ b/cmd/usb.c
@@ -442,12 +442,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);
-- 
2.7.2



More information about the U-Boot mailing list