diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2007-05-04 11:52:40 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-12 19:29:47 -0400 |
commit | 383975d765523a56dc43a6cd6d52e9b376800cf2 (patch) | |
tree | d6ecbfe620d7d5fba372211d7af185e7c44e5097 /drivers/usb/host/ehci.h | |
parent | 0458d5b4c9cc4ca0f62625d0144ddc4b4bc97a3c (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.h | 3 |
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 */ |