diff options
| author | Tom Rini <[email protected]> | 2017-11-28 09:30:27 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2017-11-28 09:30:27 -0500 |
| commit | 53fe692652c8777d10334f64f8dce308b539df91 (patch) | |
| tree | 3e7f5834800d5024227fefb9c23724581fec7f7d /cmd | |
| parent | 73a01d90c0b2ed2527283f289f73d69ef52cafa5 (diff) | |
| parent | 11f4678962960636f1a07cea8d040f468463f8c3 (diff) | |
Merge git://git.denx.de/u-boot-usb
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/usb.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/cmd/usb.c b/cmd/usb.c index d95bcf5c8ee..907debe30f1 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -349,6 +349,16 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) printf(" %s", pre); #ifdef CONFIG_DM_USB has_child = device_has_active_children(dev->dev); + if (device_get_uclass_id(dev->dev) == UCLASS_MASS_STORAGE) { + struct udevice *child; + + for (device_find_first_child(dev->dev, &child); + child; + device_find_next_child(&child)) { + if (device_get_uclass_id(child) == UCLASS_BLK) + has_child = 0; + } + } #else /* check if the device has connected children */ int i; @@ -414,8 +424,12 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) udev = dev_get_parent_priv(child); - /* Ignore emulators, we only want real devices */ - if (device_get_uclass_id(child) != UCLASS_USB_EMUL) { + /* + * Ignore emulators and block child devices, we only want + * real devices + */ + if ((device_get_uclass_id(child) != UCLASS_USB_EMUL) && + (device_get_uclass_id(child) != UCLASS_BLK)) { usb_show_tree_graph(udev, pre); pre[index] = 0; } @@ -605,7 +619,9 @@ static void usb_show_info(struct usb_device *udev) for (device_find_first_child(udev->dev, &child); child; device_find_next_child(&child)) { - if (device_active(child)) { + if (device_active(child) && + (device_get_uclass_id(child) != UCLASS_USB_EMUL) && + (device_get_uclass_id(child) != UCLASS_BLK)) { udev = dev_get_parent_priv(child); usb_show_info(udev); } |
