USB: EHCI: add a short delay to the bus_suspend routine
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 10 Jan 2008 16:14:53 +0000 (11:14 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 1 Feb 2008 22:35:03 +0000 (14:35 -0800)
This patch (as1031) adds a short delay to the bus-suspend routine in
ehci-hcd.  Without it some devices disconnect when they should
suspend.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: David Brownell <david-b@pacbell.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-hub.c

index 7919a411d5f954be8d5111fb1961fdeaf61db9b9..ccd88ae011c63e924d1edd22f80d692595ee85a7 100644 (file)
@@ -172,6 +172,10 @@ static int ehci_bus_suspend (struct usb_hcd *hcd)
                }
        }
 
+       /* Apparently some devices need a >= 1-uframe delay here */
+       if (ehci->bus_suspended)
+               udelay(150);
+
        /* turn off now-idle HC */
        ehci_halt (ehci);
        hcd->state = HC_STATE_SUSPENDED;