aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoger Quadros <rogerq@ti.com>2013-07-09 10:03:50 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-04 04:50:46 -0400
commitc65b5f6ade7209fc5eda9f0779de4ee254a6bb78 (patch)
tree07a95eafb18d2cb234084dbcaaf65042653e232d
parent5dbb5d4f24bf6862a888637b7506d1e04c2d2276 (diff)
USB: EHCI: Fix resume signalling on remote wakeup
commit 47a64a13d54f6c669b00542848d5550be3d3310e upstream. Set the ehci->resuming flag for the port we receive a remote wakeup on so that resume signalling can be completed. Without this, the root hub timer will not fire again to check if the resume was completed and there will be a never-ending wait on on the port. This effect is only observed if the HUB IRQ IN does not come after we have initiated the port resume. Signed-off-by: Roger Quadros <rogerq@ti.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/host/ehci-hub.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index 9ab4a4d9768a..ca6289b4b7ad 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -858,6 +858,7 @@ static int ehci_hub_control (
858 ehci->reset_done[wIndex] = jiffies 858 ehci->reset_done[wIndex] = jiffies
859 + msecs_to_jiffies(20); 859 + msecs_to_jiffies(20);
860 usb_hcd_start_port_resume(&hcd->self, wIndex); 860 usb_hcd_start_port_resume(&hcd->self, wIndex);
861 set_bit(wIndex, &ehci->resuming_ports);
861 /* check the port again */ 862 /* check the port again */
862 mod_timer(&ehci_to_hcd(ehci)->rh_timer, 863 mod_timer(&ehci_to_hcd(ehci)->rh_timer,
863 ehci->reset_done[wIndex]); 864 ehci->reset_done[wIndex]);