فهرست منبع

usb: dwc3: gadget: don't prestart interrupt endpoints

Because interrupt endpoints usually transmit such
small amounts of data, it seems pointless to prestart
transfers and try to get speed improvements. This
patch also sorts out a problem with CDC ECM function
where its notification endpoint gets stuck in busy
state and we continuously issue Update Transfer
commands.

Fixes: 8a1a9c9e4503 ("usb: dwc3: gadget: start transfer on XFER_COMPLETE")
Signed-off-by: Felipe Balbi <balbi@ti.com>
Felipe Balbi 9 سال پیش
والد
کامیت
62e345ae5b
1فایلهای تغییر یافته به همراه1 افزوده شده و 0 حذف شده
  1. 1 0
      drivers/usb/dwc3/gadget.c

+ 1 - 0
drivers/usb/dwc3/gadget.c

@@ -1078,6 +1078,7 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
 	 * little bit faster.
 	 * little bit faster.
 	 */
 	 */
 	if (!usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
 	if (!usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
+			!usb_endpoint_xfer_int(dep->endpoint.desc) &&
 			!(dep->flags & DWC3_EP_BUSY)) {
 			!(dep->flags & DWC3_EP_BUSY)) {
 		ret = __dwc3_gadget_kick_transfer(dep, 0, true);
 		ret = __dwc3_gadget_kick_transfer(dep, 0, true);
 		goto out;
 		goto out;