Currently usb_port_resume waits for up to 2 seconds for CONNECT
status for SS devices only. This change will do the same thing for
non-SS devices even though the reason is a little different. This
will fix an issue where VBUS is turned off during system wide
"suspend to ram" and some 2.0 devices take greater than the current
max of 100ms to show connected after VBUS is enabled. This is most
commonly seen on hard drive based devices and USB3.0 devices plugged
into a 2.0 only port.

Signed-off-by: Al Cooper <[email protected]>
---
 drivers/usb/core/hub.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index bdeadc1..d32824b 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -3322,7 +3322,7 @@ static int finish_port_resume(struct usb_device *udev)
  * This routine should only be called when persist is enabled for a SS
  * device.
  */
-static int wait_for_ss_port_enable(struct usb_device *udev,
+static int wait_for_connected(struct usb_device *udev,
                struct usb_hub *hub, int *port1,
                u16 *portchange, u16 *portstatus)
 {
@@ -3434,8 +3434,8 @@ int usb_port_resume(struct usb_device *udev, pm_message_t 
msg)
                }
        }
 
-       if (udev->persist_enabled && hub_is_superspeed(hub->hdev))
-               status = wait_for_ss_port_enable(udev, hub, &port1, &portchange,
+       if (udev->persist_enabled)
+               status = wait_for_connected(udev, hub, &port1, &portchange,
                                &portstatus);
 
        status = check_port_resume_type(udev,
-- 
1.9.0.138.g2de3478

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to