Re: [RFT PATCH] xhci: make xhci_handshake timeout for xhci_reset() adjustable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 01, 2022 at 10:47:36AM +0200, Mathias Nyman wrote:
> On 1.3.2022 6.03, Pavan Kondeti wrote:
> > On Mon, Feb 28, 2022 at 05:49:49PM -0800, Jack Pham wrote:
> >> 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?
> >>> The rationale of decreasing the timeout to 250 in certain places is based
> > on the criticality of the operation but not on the preemption/irq state.
> > Since xHC reset is critical in startup and resume, the 10 seconds timeout
> > is enforced so that we don't break Renesas 720201 xHC.
> > 
> > Since all of our internl test reports indicate that the timeout is happening
> > from stop hcd, this patch is helping.
> > 
> 
> This was pretty much my reasoning as well.
> I could add a comment about this to the commit message
> 
> In addition we want a targeted fix for a real world issue that we can send to
> stable without changing too much, risking regressions.
> 
Makes complete sense. 

Greg,

Do you plan to include this patch?

Thanks,
Pavan



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux