|
@@ -4948,6 +4948,15 @@ loop:
|
|
usb_put_dev(udev);
|
|
usb_put_dev(udev);
|
|
if ((status == -ENOTCONN) || (status == -ENOTSUPP))
|
|
if ((status == -ENOTCONN) || (status == -ENOTSUPP))
|
|
break;
|
|
break;
|
|
|
|
+
|
|
|
|
+ /* When halfway through our retry count, power-cycle the port */
|
|
|
|
+ if (i == (SET_CONFIG_TRIES / 2) - 1) {
|
|
|
|
+ dev_info(&port_dev->dev, "attempt power cycle\n");
|
|
|
|
+ usb_hub_set_port_power(hdev, hub, port1, false);
|
|
|
|
+ msleep(2 * hub_power_on_good_delay(hub));
|
|
|
|
+ usb_hub_set_port_power(hdev, hub, port1, true);
|
|
|
|
+ msleep(hub_power_on_good_delay(hub));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (hub->hdev->parent ||
|
|
if (hub->hdev->parent ||
|
|
!hcd->driver->port_handed_over ||
|
|
!hcd->driver->port_handed_over ||
|