On Tue, Jan 22, 2013 at 03:08:27PM -0500, Alan Stern wrote: > Lei: > > It turns out that your patch setting the autosuspend delay for hubs to > 0 causes problems for root hubs. They need a delay of at least 30 ms. > > When a child device sends a remote wakeup request, the root hub > generates an interrupt. The HCD's interrupt handler sees what happened > and requests a runtime resume for the root hub. Does below code at kick_khubd will avoid hub going to autosuspend? usb_autopm_get_interface_no_resume( to_usb_interface(hub->intfdev)); > However it can't tell > the hub driver about the wakeup request until the port resume is > finished, which takes about 25 ms. During that time, the hub driver > won't know what has happened and so it will try to autosuspend. The > autosuspend will fail because the port is resuming, but the hub driver > will go right ahead and keep trying to autosuspend. This will continue > until the port resume is complete. > > In order to avoid all these extra autosuspend attempts, the delay > for root hubs should be set to something larger than 25 ms, such as 30 > ms. Do you agree? > > Alan Stern > > -- > 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 > -- Best Regards, Peter Chen -- 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