summaryrefslogtreecommitdiffstats
path: root/cmd/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/usb.c')
-rw-r--r--cmd/usb.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/cmd/usb.c b/cmd/usb.c
index 9ed5dc61ea..f1a7debdf3 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);
@@ -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;
OpenPOWER on IntegriCloud