From 6fbbaa47c6d8d8f671bff9d9146e138c68fff0cf Mon Sep 17 00:00:00 2001 From: David Brownell Date: Wed, 31 Aug 2005 10:41:44 -0700 Subject: [PATCH] --- yaml --- r: 8671 b: refs/heads/master c: b789696af8b4102b7cc26dec30c2c51ce51ee18b h: refs/heads/master i: 8669: aec0bb19042ec17ae8e56ad73454bb3afbd724d4 8667: b0eda103198b1c99482256988cc5d1006a564410 8663: da774e4a4f82f716e7a98733ac48364feab6c3f1 8655: 733d2bdd65676e41b6bae1e3fe167d8e46b2a18f 8639: 98ac3158bae5b4023c3ecca004031e18e44d54a3 v: v3 --- [refs] | 2 +- trunk/drivers/usb/core/hub.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index b159a2c982e4..5bad71b1b8a6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5f9809487bf035b49ff470709a65fbce3b345f51 +refs/heads/master: b789696af8b4102b7cc26dec30c2c51ce51ee18b diff --git a/trunk/drivers/usb/core/hub.c b/trunk/drivers/usb/core/hub.c index c55208299cf8..a12cab5314e9 100644 --- a/trunk/drivers/usb/core/hub.c +++ b/trunk/drivers/usb/core/hub.c @@ -435,6 +435,7 @@ void usb_hub_tt_clear_buffer (struct usb_device *udev, int pipe) static void hub_power_on(struct usb_hub *hub) { int port1; + unsigned pgood_delay = hub->descriptor->bPwrOn2PwrGood * 2; /* if hub supports power switching, enable power on each port */ if ((hub->descriptor->wHubCharacteristics & HUB_CHAR_LPSM) < 2) { @@ -444,8 +445,8 @@ static void hub_power_on(struct usb_hub *hub) USB_PORT_FEAT_POWER); } - /* Wait for power to be enabled */ - msleep(hub->descriptor->bPwrOn2PwrGood * 2); + /* Wait at least 100 msec for power to become stable */ + msleep(max(pgood_delay, (unsigned) 100)); } static void hub_quiesce(struct usb_hub *hub) @@ -1469,8 +1470,8 @@ static int hub_port_reset(struct usb_hub *hub, int port1, /* return on disconnect or reset */ switch (status) { case 0: - /* TRSTRCY = 10 ms */ - msleep(10); + /* TRSTRCY = 10 ms; plus some extra */ + msleep(10 + 40); /* FALL THROUGH */ case -ENOTCONN: case -ENODEV: