On Thu, 24 Nov 2016, Sriram Dash wrote:

> >From: Changming Huang [mailto:jerry.hu...@nxp.com]
> >As per USB specification, in the Suspend state, the status bit does not 
> >change until
> >the port is suspended. However, there may be a delay in suspending a port if 
> >there
> >is a transaction currently in progress on the bus.
> >
> >In the USBDR controller, the PORTSCx[SUSP] bit changes immediately when the
> >application sets it and not when the port is actually suspended
> >
> >Workaround for this issue involves waiting for a minimum of 10ms to allow the
> >controller to go into SUSPEND state before proceeding ahead

The USB core guarantees that there won't be any data transactions in 
progress when a root hub is suspended.  There might possibly be an SOF 
transaction, but that doesn't take more than a few microseconds at 
most.  Certainly nowhere near 10 ms!

Given that we already perform a 150-us delay, is this change really 
needed?

Alan Stern

Reply via email to