Hi, On Thu, Jan 31, 2019 at 9:28 AM Minas Harutyunyan <minas.harutyunyan@xxxxxxxxxxxx> wrote: > From: Minas Harutyunyan <minas.harutyunyan@xxxxxxxxxxxx> > > In case when some EP IN is frequently reused, i.e. enabled/disabled by > function driver. It is required to clear TxFIFO number field in DIEPCTL > register before setting new number. Otherwise there is probability to > have same TxFIFO number for different EP's because of OR operator. > > Signed-off-by: Minas Harutyunyan <hminas@xxxxxxxxxxxx> I have verified that this patch fixed the issue we have regarding usb data being sent to the incorrect usb endpoint. Tested-by: Maynard Cabiente <maynard.cabiente@xxxxxxxxxxx> Regards, Maynard > --- > drivers/usb/dwc2/gadget.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c > index 68ad75a7460d..1e5ee3c7be39 100644 > --- a/drivers/usb/dwc2/gadget.c > +++ b/drivers/usb/dwc2/gadget.c > @@ -4005,6 +4005,7 @@ static int dwc2_hsotg_ep_enable(struct usb_ep *ep, > ret = -ENOMEM; > goto error1; > } > + epctrl &= ~(DXEPCTL_TXFNUM_LIMIT << DXEPCTL_TXFNUM_SHIFT); > hsotg->fifo_map |= 1 << fifo_index; > epctrl |= DXEPCTL_TXFNUM(fifo_index); > hs_ep->fifo_index = fifo_index; > -- > 2.11.0