浏览代码

usb: dwc3: gadget: don't issue End Transfer if we have started reqs

In case we have many started requests and one of them in the middle is
completed with Missed Isoc, let's not End Transfer as that would
result in us loosing (possibly) many more intervals.

Instead, let's allow the controller to go through its list of started
requests.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Felipe Balbi 7 年之前
父节点
当前提交
d513320f1f
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/usb/dwc3/gadget.c

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

@@ -2398,7 +2398,9 @@ static void dwc3_gadget_endpoint_transfer_in_progress(struct dwc3_ep *dep,
 
 	if (event->status & DEPEVT_STATUS_MISSED_ISOC) {
 		status = -EXDEV;
-		stop = true;
+
+		if (list_empty(&dep->started_list))
+			stop = true;
 	}
 
 	dwc3_gadget_ep_cleanup_completed_requests(dep, event, status);