usb: dwc3: gadget: XferNotReady is Isoc-only
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 26 Mar 2018 10:26:00 +0000 (13:26 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 21 May 2018 07:00:48 +0000 (10:00 +0300)
We don't use XferNotReady for anything other than Default Control
Pipe, which is handled in ep0.c, and Isochronous endpoints. Let's make
that clear in the code.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c

index 36fabde..22c0822 100644 (file)
@@ -2533,11 +2533,13 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
                dwc3_endpoint_transfer_complete(dwc, dep, event);
                break;
        case DWC3_DEPEVT_XFERNOTREADY:
-               if (usb_endpoint_xfer_isoc(dep->endpoint.desc))
-                       dwc3_gadget_start_isoc(dwc, dep, event);
-               else
-                       __dwc3_gadget_kick_transfer(dep);
+               if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
+                       dev_err(dwc->dev, "XferNotReady for non-Isoc %s\n",
+                                       dep->name);
+                       return;
+               }
 
+               dwc3_gadget_start_isoc(dwc, dep, event);
                break;
        case DWC3_DEPEVT_STREAMEVT:
                if (!usb_endpoint_xfer_bulk(dep->endpoint.desc)) {