|
@@ -2232,9 +2232,14 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
|
|
|
|
|
|
dep = dwc->eps[epnum];
|
|
|
|
|
|
- if (!(dep->flags & DWC3_EP_ENABLED) &&
|
|
|
- !(dep->flags & DWC3_EP_END_TRANSFER_PENDING))
|
|
|
- return;
|
|
|
+ if (!(dep->flags & DWC3_EP_ENABLED)) {
|
|
|
+ if (!(dep->flags & DWC3_EP_END_TRANSFER_PENDING))
|
|
|
+ return;
|
|
|
+
|
|
|
+ /* Handle only EPCMDCMPLT when EP disabled */
|
|
|
+ if (event->endpoint_event != DWC3_DEPEVT_EPCMDCMPLT)
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
if (epnum == 0 || epnum == 1) {
|
|
|
dwc3_ep0_interrupt(dwc, event);
|