On Thu, 19 Oct 2017, Mathias Nyman wrote: > Current shutdown routine just forces the host controller to stop, it clears the > run bit and polls the "halted" status for 16ms. Apparently we don't see the halted > bit within 16ms. > > Spec say that the correct way to stop is to first command all transfer rings to stop, > then stop the command ring, and after that stop the host controller. > > If we just bluntly stop the host (as we do) spec say (xhci 5.4.1.1) it should stop > anyway within 16ms, but undefined behavior may occur. > > So the options in xHCI are down to: > 1. just clear the run bit and ignore checking any status. > - really fast shutdown routine for xhci > 2. clear run bit and increase status polling time, see if we get rid of error message. > - can get rid of error message but no actual change, well, we would know if host stopped > 3. properly stop all transfer rings and command ring, and then stop host. > - cleanest and slowest way, do we care about this? everything should be reset after shutdown. Or you could use a sledgehammer approach, and do a hardware reset of the controller chip. 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