aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci.h
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2007-05-04 11:52:40 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-12 19:29:47 -0400
commit383975d765523a56dc43a6cd6d52e9b376800cf2 (patch)
treed6ecbfe620d7d5fba372211d7af185e7c44e5097 /drivers/usb/host/ehci.h
parent0458d5b4c9cc4ca0f62625d0144ddc4b4bc97a3c (diff)
USB: EHCI, OHCI: handover changes
This patch (as887) changes the way ehci-hcd and ohci-hcd handle a loss of VBUS power during suspend. In order for the USB-persist facility to work correctly, it is necessary for low- and full-speed devices attached to a high-speed port to be handed back to the companion controller during resume processing. This entails three changes: adding code to ehci-hcd to perform the handover, removing code from ohci-hcd to turn off ports during root-hub reinit, and adding code to ohci-hcd to turn on ports during PCI controller resume. (Other bus glue resume methods for platforms supporting high-speed controllers would need a similar change, if any existed.) Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/ehci.h')
-rw-r--r--drivers/usb/host/ehci.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 6ef9d775775b..4d617108f552 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -96,11 +96,14 @@ struct ehci_hcd { /* one per controller */
96 96
97 /* per root hub port */ 97 /* per root hub port */
98 unsigned long reset_done [EHCI_MAX_ROOT_PORTS]; 98 unsigned long reset_done [EHCI_MAX_ROOT_PORTS];
99
99 /* bit vectors (one bit per port) */ 100 /* bit vectors (one bit per port) */
100 unsigned long bus_suspended; /* which ports were 101 unsigned long bus_suspended; /* which ports were
101 already suspended at the start of a bus suspend */ 102 already suspended at the start of a bus suspend */
102 unsigned long companion_ports; /* which ports are 103 unsigned long companion_ports; /* which ports are
103 dedicated to the companion controller */ 104 dedicated to the companion controller */
105 unsigned long owned_ports; /* which ports are
106 owned by the companion during a bus suspend */
104 107
105 /* per-HC memory pools (could be per-bus, but ...) */ 108 /* per-HC memory pools (could be per-bus, but ...) */
106 struct dma_pool *qh_pool; /* qh per active urb */ 109 struct dma_pool *qh_pool; /* qh per active urb */
"hl opt">) - phys_addr; nrpages = size >> PAGE_SHIFT; if (nrpages > BOOT_IOREMAP_PAGES) return NULL; __boot_ioremap(phys_addr, nrpages, boot_ioremap_space); return &boot_ioremap_space[offset]; }