Since we don't power cycle the ports on start since patch "19bb0b2a usb: hub: Do not power-cycle usb devices on init" it is possible that the device on this port is already active from a previous enumeration. This way barebox will never get any change in USB_PORT_STAT_C_CONNECTION bit change. Although the device will probably still work fine after the following port reset, the current code will always miss reenumerating these still plugged devices. This patch fixes this by ignoring the check for STAT_C_CONNECTION bit and only go for USB_PORT_STAT_CONNECTION which should be enough. Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> --- drivers/usb/core/hub.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 01653d8c20..d1112248ee 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -336,8 +336,7 @@ static void usb_scan_port(struct usb_device_scan *usb_scan) dev_dbg(&dev->dev, "port%d: Status 0x%04x Change 0x%04x\n", port + 1, portstatus, portchange); - if (!(portchange & USB_PORT_STAT_C_CONNECTION) || - !(portstatus & USB_PORT_STAT_CONNECTION)) { + if (!(portstatus & USB_PORT_STAT_CONNECTION)) { if (get_time_ns() >= hub->connect_timeout) { dev_dbg(&dev->dev, "port%d: timeout\n", port + 1); /* Remove this device from scanning list */ -- 2.30.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox