Hi Mathias, On Thu, Feb 17, 2022 at 03:56:43PM +0200, Mathias Nyman wrote: > xhci_reset() timeout was increased from 250ms to 10 seconds in order to > give Renesas 720201 xHC enough time to get ready in probe. This suggests that the only place we really need the long timeout is in xhci_gen_setup(). > @@ -1163,7 +1161,7 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated) > xhci_dbg(xhci, "Stop HCD\n"); > xhci_halt(xhci); > xhci_zero_64b_regs(xhci); > - retval = xhci_reset(xhci); > + retval = xhci_reset(xhci, XHCI_RESET_LONG_USEC); Since preemption is disabled here (spin_lock_irq() is called near the start of this function), shouldn't we also limit this to 250ms here in xhci_resume() as well? > spin_unlock_irq(&xhci->lock); > if (retval) > return retval; > @@ -5297,7 +5295,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) > > xhci_dbg(xhci, "Resetting HCD\n"); > /* Reset the internal HC memory state and registers. */ > - retval = xhci_reset(xhci); > + retval = xhci_reset(xhci, XHCI_RESET_LONG_USEC); > if (retval) > return retval; > xhci_dbg(xhci, "Reset complete\n"); Thanks, Jack