diff options
author | Andiry Xu <andiry.xu@amd.com> | 2010-10-14 10:23:00 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-22 13:22:13 -0400 |
commit | 561925318725a41189a69f36ebe99199b3fb84c4 (patch) | |
tree | e84c72692f8fd9ed67c298db17d26ccb9970a7a8 /drivers/usb/host/xhci-mem.c | |
parent | be88fe4f4dda93e3264a887745123b1e6c4a6845 (diff) |
USB: xHCI: port remote wakeup implementation
This commit implements port remote wakeup.
When a port is in U3 state and resume signaling is detected from a device,
the port transitions to the Resume state, and the xHC generates a Port Status
Change Event.
For USB3 port, software write a '0' to the PLS field to complete the resume
signaling. For USB2 port, the resume should be signaling for at least 20ms,
irq handler set a timer for port remote wakeup, and then finishes process in
hub_control GetPortStatus.
Some codes are borrowed from EHCI code.
Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/xhci-mem.c')
-rw-r--r-- | drivers/usb/host/xhci-mem.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c index 858a82867e1d..fd888bc0422b 100644 --- a/drivers/usb/host/xhci-mem.c +++ b/drivers/usb/host/xhci-mem.c | |||
@@ -1803,6 +1803,8 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) | |||
1803 | init_completion(&xhci->addr_dev); | 1803 | init_completion(&xhci->addr_dev); |
1804 | for (i = 0; i < MAX_HC_SLOTS; ++i) | 1804 | for (i = 0; i < MAX_HC_SLOTS; ++i) |
1805 | xhci->devs[i] = NULL; | 1805 | xhci->devs[i] = NULL; |
1806 | for (i = 0; i < MAX_HC_PORTS; ++i) | ||
1807 | xhci->resume_done[i] = 0; | ||
1806 | 1808 | ||
1807 | if (scratchpad_alloc(xhci, flags)) | 1809 | if (scratchpad_alloc(xhci, flags)) |
1808 | goto fail; | 1810 | goto fail; |