On 24-09-12 11:35:49, Xu Yang wrote: > As per USBSTS register description about UEI: > > When completion of a USB transaction results in an error condition, this > bit is set by the Host/Device Controller. This bit is set along with the > USBINT bit, if the TD on which the error interrupt occurred also had its > interrupt on complete (IOC) bit set. > > Currently, device controller will do nothing when endpoints met transfer > error if IOC didn't set on that error dTD since UI didn't assert too. This > will also handle UEI event as same as USBSTS.UI for such cases. > > Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> Acked-by: Peter Chen <peter.chen@xxxxxxxxxx> > --- > drivers/usb/chipidea/udc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c > index 69ef3cd8d4f8..b9ccf62e0a50 100644 > --- a/drivers/usb/chipidea/udc.c > +++ b/drivers/usb/chipidea/udc.c > @@ -2063,7 +2063,7 @@ static irqreturn_t udc_irq(struct ci_hdrc *ci) > } > } > > - if (USBi_UI & intr) > + if ((USBi_UI | USBi_UEI) & intr) > isr_tr_complete_handler(ci); > > if ((USBi_SLI & intr) && !(ci->suspended)) { > -- > 2.34.1 >