You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
964 B
30 lines
964 B
5 years ago
|
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||
|
index 137276f..7a68c58 100644
|
||
|
--- a/drivers/usb/core/hub.c
|
||
|
+++ b/drivers/usb/core/hub.c
|
||
|
@@ -1043,6 +1043,12 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
|
||
|
unsigned delay = hub_power_on_good_delay(hub);
|
||
|
|
||
|
hub_power_on(hub, false);
|
||
|
+
|
||
|
+ if( hdev->devnum == 1 && hdev->bus->busnum ==2 ){
|
||
|
+ //dev_dbg(hub->hdev, "Found USB 3.0 RootHub");
|
||
|
+ delay = 10000;
|
||
|
+ }
|
||
|
+
|
||
|
INIT_DELAYED_WORK(&hub->init_work, hub_init_func2);
|
||
|
queue_delayed_work(system_power_efficient_wq,
|
||
|
&hub->init_work,
|
||
|
@@ -5057,8 +5063,10 @@ static void hub_event(struct work_struct *work)
|
||
|
hub->error = 0;
|
||
|
}
|
||
|
|
||
|
+ msleep(1000);
|
||
|
/* deal with port status changes */
|
||
|
- for (i = 1; i <= hdev->maxchild; i++) {
|
||
|
+ //for (i = 1; i <= hdev->maxchild; i++) {
|
||
|
+ for (i = hdev->maxchild ; i >= 1; i--) {
|
||
|
struct usb_port *port_dev = hub->ports[i - 1];
|
||
|
|
||
|
if (test_bit(i, hub->event_bits)
|