diff options
Diffstat (limited to 'drivers/usb/host/ohci-hub.c')
-rw-r--r-- | drivers/usb/host/ohci-hub.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c index 4b2226d77b34..0bb972b58336 100644 --- a/drivers/usb/host/ohci-hub.c +++ b/drivers/usb/host/ohci-hub.c | |||
@@ -107,7 +107,7 @@ static int ohci_bus_suspend (struct usb_hcd *hcd) | |||
107 | &ohci->regs->intrstatus); | 107 | &ohci->regs->intrstatus); |
108 | 108 | ||
109 | /* maybe resume can wake root hub */ | 109 | /* maybe resume can wake root hub */ |
110 | if (hcd->remote_wakeup) | 110 | if (device_may_wakeup(&ohci_to_hcd(ohci)->self.root_hub->dev)) |
111 | ohci->hc_control |= OHCI_CTRL_RWE; | 111 | ohci->hc_control |= OHCI_CTRL_RWE; |
112 | else | 112 | else |
113 | ohci->hc_control &= ~OHCI_CTRL_RWE; | 113 | ohci->hc_control &= ~OHCI_CTRL_RWE; |
@@ -246,9 +246,9 @@ static int ohci_bus_resume (struct usb_hcd *hcd) | |||
246 | (void) ohci_readl (ohci, &ohci->regs->control); | 246 | (void) ohci_readl (ohci, &ohci->regs->control); |
247 | msleep (3); | 247 | msleep (3); |
248 | 248 | ||
249 | temp = OHCI_CONTROL_INIT | OHCI_USB_OPER; | 249 | temp = ohci->hc_control; |
250 | if (hcd->can_wakeup) | 250 | temp &= OHCI_CTRL_RWC; |
251 | temp |= OHCI_CTRL_RWC; | 251 | temp |= OHCI_CONTROL_INIT | OHCI_USB_OPER; |
252 | ohci->hc_control = temp; | 252 | ohci->hc_control = temp; |
253 | ohci_writel (ohci, temp, &ohci->regs->control); | 253 | ohci_writel (ohci, temp, &ohci->regs->control); |
254 | (void) ohci_readl (ohci, &ohci->regs->control); | 254 | (void) ohci_readl (ohci, &ohci->regs->control); |
@@ -302,7 +302,7 @@ ohci_hub_status_data (struct usb_hcd *hcd, char *buf) | |||
302 | { | 302 | { |
303 | struct ohci_hcd *ohci = hcd_to_ohci (hcd); | 303 | struct ohci_hcd *ohci = hcd_to_ohci (hcd); |
304 | int i, changed = 0, length = 1; | 304 | int i, changed = 0, length = 1; |
305 | int can_suspend = hcd->can_wakeup; | 305 | int can_suspend = device_may_wakeup(&hcd->self.root_hub->dev); |
306 | unsigned long flags; | 306 | unsigned long flags; |
307 | 307 | ||
308 | spin_lock_irqsave (&ohci->lock, flags); | 308 | spin_lock_irqsave (&ohci->lock, flags); |
@@ -354,7 +354,7 @@ ohci_hub_status_data (struct usb_hcd *hcd, char *buf) | |||
354 | */ | 354 | */ |
355 | if (!(status & RH_PS_CCS)) | 355 | if (!(status & RH_PS_CCS)) |
356 | continue; | 356 | continue; |
357 | if ((status & RH_PS_PSS) && hcd->remote_wakeup) | 357 | if ((status & RH_PS_PSS) && can_suspend) |
358 | continue; | 358 | continue; |
359 | can_suspend = 0; | 359 | can_suspend = 0; |
360 | } | 360 | } |