Am Dienstag, den 26.04.2016, 09:58 +0800 schrieb Peter Chen: > On Mon, Apr 25, 2016 at 12:55:42PM +0200, Lucas Stach wrote: > > The Chipidea EHCI core seems to behave sanely and doesn't need > > the IO watchdog. This kills off 10 non-deferrable wakeup events > > per second when the controller is otherwise idle. > > > > What does this 10 wakeup events? From what I see, it is 10 hrtimer > event, does they affect a lot? As they are non-deferrable they limit the time the CPU can stay in deep idle modes to 100ms. On an otherwise idle system those 10 wakeups/s represent as much as 50% of the overall system timer wakeups. On i.MX6, where the cores don't normally flush their caches in deep idle this doesn't matter that much, but as this driver is used on lots of systems I would like to get rid of the unnecessary timer now, before it spreads even more. > > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > > --- > > I've only tested this on i.MX6 for now and would like to ask people > > on CC to test on their platforms as they also use the chipidea core. > > --- > > drivers/usb/chipidea/host.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c > > index 053bac9d983c..96ae69502c86 100644 > > --- a/drivers/usb/chipidea/host.c > > +++ b/drivers/usb/chipidea/host.c > > @@ -81,12 +81,15 @@ static int ehci_ci_reset(struct usb_hcd *hcd) > > { > > struct device *dev = hcd->self.controller; > > struct ci_hdrc *ci = dev_get_drvdata(dev); > > + struct ehci_hcd *ehci = hcd_to_ehci(hcd); > > int ret; > > > > ret = ehci_setup(hcd); > > if (ret) > > return ret; > > > > + ehci->need_io_watchdog = 0; > > + > > ci_platform_configure(ci); > > > > return ret; > -- 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