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 [email protected]
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html