> This patch (as1542) changes the criterion ehci-hcd uses to tell when > it needs to resume the controller's root hub. A resume is needed when > a port status change is detected, obviously, but only if the root hub > is currently suspended. > > Right now the driver tests whether the root hub is running, and that > is not the correct test. In particular, if the controller has died > then the root hub should not be restarted. In addition, some buggy > hardware occasionally requires the root hub to be running and > sending out SOF packets even while it is nominally supposed to be > suspended. > > In the end, the test needs to be changed. Rather than checking whether > the root hub is currently running, the driver will now check whether > the root hub is currently suspended. This will yield the correct > behavior in all cases. > > Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > CC: Peter Chen <B29397@xxxxxxxxxxxxx> > CC: <stable@xxxxxxxxxxxxxxx> > > --- > > drivers/usb/host/ehci-hcd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Index: usb-3.4/drivers/usb/host/ehci-hcd.c > =================================================================== > --- usb-3.4.orig/drivers/usb/host/ehci-hcd.c > +++ usb-3.4/drivers/usb/host/ehci-hcd.c > @@ -904,7 +904,7 @@ static irqreturn_t ehci_irq (struct usb_ > pcd_status = status; > > /* resume root hub? */ > - if (!(cmd & CMD_RUN)) > + if (ehci->rh_state == EHCI_RH_SUSPENDED) > usb_hcd_resume_root_hub(hcd); > > /* get per-port change detect bits */ > Acked-by: Peter Chen <peter.chen@xxxxxxxxxxxxx> -- 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