USB: controller resume should check the root hub
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 25 Jun 2010 18:02:24 +0000 (14:02 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 21:35:37 +0000 (14:35 -0700)
commitee0b9be829803e3ff5adec7456bd59a08425ffa1
treebab8946024f7c93428a383b813a7cfc94e71a409
parent4147200d25c423e627ab4487530b3d9f2ef829c8
USB: controller resume should check the root hub

This patch (as1394) adds code to ehci-hcd, ohci-hcd, and uhci-hcd for
automatically resuming the root hub when the controller is resumed, if
the root hub has a wakeup request pending on some port.

During resume from system sleep this doesn't matter, because the root
hubs will naturally be resumed along with every other device in the
system.  However it _will_ matter for runtime PM: If the controller is
suspended and a remote wakeup request is received then the controller
will autoresume, but we need to ensure that the root hub also
autoresumes.  Otherwise the wakeup request would be ignored, the
controller would go back to sleep, and the cycle would repeat a large
number of times (I saw this happen before the patch was written).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-hub.c
drivers/usb/host/ohci-hub.c
drivers/usb/host/uhci-hcd.c
drivers/usb/host/uhci-hub.c