On Thu, 6 Oct 2011, Matthew Garrett wrote: > 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. Indeed, if this was a runtime wakeup then the only reason for it would have to be a root hub status change or resume detect. If the controller is waking up from a system sleep then the root hub will be resumed anyway. Alan Stern > Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> > --- > drivers/usb/host/ohci-hub.c | 5 +---- > 1 files changed, 1 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c > index 9154615..2f00040 100644 > --- a/drivers/usb/host/ohci-hub.c > +++ b/drivers/usb/host/ohci-hub.c > @@ -356,10 +356,7 @@ 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); > + usb_hcd_resume_root_hub(hcd); > } > > /* Carry out polling-, autostop-, and autoresume-related state changes */ > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html