USB: Fix runtime wakeup on OHCI
At least some OHCI hardware (such as the MCP89) fails to flag any change in the host status register or the port status registers when receiving a remote wakeup while in D3 state. This results in the controller being resumed but no device state change being noticed, at which point the controller is put back to sleep again. Since there doesn't seem to be any reliable way to identify the state change, just unconditionally resume the hub. It'll be put back to sleep in the near future anyway if there are no active devices attached to it. Signed-off-by: Matthew Garrett <mjg@redhat.com> Cc: stable <stable@vger.kernel.org> Cc: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
48e8236114
commit
a8b43c00ef
|
@ -356,9 +356,6 @@ static void ohci_finish_controller_resume(struct usb_hcd *hcd)
|
|||
msleep(20);
|
||||
}
|
||||
|
||||
/* Does the root hub have a port wakeup pending? */
|
||||
if (ohci_readl(ohci, &ohci->regs->intrstatus) &
|
||||
(OHCI_INTR_RD | OHCI_INTR_RHSC))
|
||||
usb_hcd_resume_root_hub(hcd);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue