]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: Use the first available device for ehci_gadget
authorSean Anderson <sean.anderson@seco.com>
Fri, 5 Nov 2021 16:52:55 +0000 (12:52 -0400)
committerSimon Glass <sjg@chromium.org>
Tue, 25 Jan 2022 18:47:07 +0000 (11:47 -0700)
For whatever reason, usb_setup_ehci_gadget removes and probes USB device
0. However, not all systems have a device 0. Use the first device
instead.

The device probed should probably have something to do with the
controller (as specified by e.g. ums <controller> or fastboot
<controller>). In fact, I find it odd that we probe the USB device in
the first place, because this is just to set up the gadget itself.
Presumably, the controller should be probed by usb_gadget_initialize
somehow.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/usb/host/usb-uclass.c

index fd39c3345c31767d7b41d5c8a34ea51e7e74371d..27e2fc6fcd36f2839fffb937e743ce1b39f2367b 100644 (file)
@@ -396,7 +396,7 @@ int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp)
        int ret;
 
        /* Find the old device and remove it */
-       ret = uclass_find_device_by_seq(UCLASS_USB, 0, &dev);
+       ret = uclass_find_first_device(UCLASS_USB, &dev);
        if (ret)
                return ret;
        ret = device_remove(dev, DM_REMOVE_NORMAL);
@@ -419,7 +419,7 @@ int usb_remove_ehci_gadget(struct ehci_ctrl **ctlrp)
        int ret;
 
        /* Find the old device and remove it */
-       ret = uclass_find_device_by_seq(UCLASS_USB, 0, &dev);
+       ret = uclass_find_first_device(UCLASS_USB, &dev);
        if (ret)
                return ret;
        ret = device_remove(dev, DM_REMOVE_NORMAL);