]> git.sur5r.net Git - u-boot/blobdiff - cmd/usb.c
spi: fsl_qspi: Fix issues on arm64
[u-boot] / cmd / usb.c
index 9ed5dc61eab031fa5f78d34340a272f50ac5c447..f1a7debdf3d918f0ca5c23dc94efbc0e956b647d 100644 (file)
--- 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);
@@ -541,7 +545,7 @@ static int do_usbboot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
 static int do_usb_stop_keyboard(int force)
 {
-#ifdef CONFIG_USB_KEYBOARD
+#if !defined CONFIG_DM_USB && defined CONFIG_USB_KEYBOARD
        if (usb_kbd_deregister(force) != 0) {
                printf("USB not stopped: usbkbd still using USB\n");
                return 1;