Messages in this thread | | | From | Thinh Nguyen <> | Subject | Re: [PATCH 5/5] usb: dwc3: gadget: Increase DWC3 controller halt timeout | Date | Sat, 9 Jul 2022 01:47:50 +0000 |
| |
On 7/8/2022, Wesley Cheng wrote: > Since EP0 transactions need to be completed before the controller halt > sequence is finished, this may take some time depending on the host and the > enabled functions. Increase the controller halt timeout, so that we give > the controller sufficient time to handle EP0 transfers. > > Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com> > --- > drivers/usb/dwc3/gadget.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c > index fba2797ad9ae..a5c0e39bd002 100644 > --- a/drivers/usb/dwc3/gadget.c > +++ b/drivers/usb/dwc3/gadget.c > @@ -2487,6 +2487,7 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) > do { > reg = dwc3_readl(dwc->regs, DWC3_DSTS); > reg &= DWC3_DSTS_DEVCTRLHLT; > + msleep(1);
I think it makes more sense to msleep() first before reading the register.
Thanks, Thinh
> } while (--timeout && !(!is_on ^ !reg)); > > if (!timeout)
| |