diff options
author | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2011-03-07 14:24:07 -0500 |
---|---|---|
committer | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2011-03-13 21:23:47 -0400 |
commit | b320937972d456db2a46fdcbc6bebc4dcdc9daa4 (patch) | |
tree | a41cfa6897e7b2d6dfd79e43cfb6c77dbd9bf6a7 /drivers/usb/host/xhci-ring.c | |
parent | 65b22f93fde320b34d43e4a3978e1b52b1bcc279 (diff) |
xhci: Fixes for suspend/resume of shared HCDs.
Make sure the HCD_FLAG_HW_ACCESSIBLE flag is mirrored by both roothubs,
since it refers to whether the shared hardware is accessible. Make sure
each bus is marked as suspended by setting usb_hcd->state to
HC_STATE_SUSPENDED when the PCI host controller is resumed.
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
-rw-r--r-- | drivers/usb/host/xhci-ring.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 3bdf30dd8ce6..bd0f2343ef9c 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c | |||
@@ -2256,10 +2256,12 @@ hw_died: | |||
2256 | irqreturn_t xhci_msi_irq(int irq, struct usb_hcd *hcd) | 2256 | irqreturn_t xhci_msi_irq(int irq, struct usb_hcd *hcd) |
2257 | { | 2257 | { |
2258 | irqreturn_t ret; | 2258 | irqreturn_t ret; |
2259 | struct xhci_hcd *xhci; | ||
2259 | 2260 | ||
2261 | xhci = hcd_to_xhci(hcd); | ||
2260 | set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); | 2262 | set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); |
2261 | if (hcd->shared_hcd) | 2263 | if (xhci->shared_hcd) |
2262 | set_bit(HCD_FLAG_SAW_IRQ, &hcd->shared_hcd->flags); | 2264 | set_bit(HCD_FLAG_SAW_IRQ, &xhci->shared_hcd->flags); |
2263 | 2265 | ||
2264 | ret = xhci_irq(hcd); | 2266 | ret = xhci_irq(hcd); |
2265 | 2267 | ||