usb: hub: Clear BH reset status change for a 3.0 hub
[oweals/u-boot.git] / common / usb_hub.c
index a9d21bca5e32e07f716d6fe7ea9e5971cbe55140..325d16dfc8682d3b5cc0e950e04d80d24ab0861e 100644 (file)
@@ -494,6 +494,12 @@ static int usb_scan_port(struct usb_device_scan *usb_scan)
                usb_clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET);
        }
 
+       if ((portchange & USB_SS_PORT_STAT_C_BH_RESET) &&
+           usb_hub_is_superspeed(dev)) {
+               debug("port %d BH reset change\n", i + 1);
+               usb_clear_port_feature(dev, i + 1, USB_SS_PORT_FEAT_C_BH_RESET);
+       }
+
        /* A new USB device is ready at this point */
        debug("devnum=%d port=%d: USB dev found\n", dev->devnum, i + 1);