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