usb: dwc3: gadget: always kick if num_pending_sgs > 0
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 25 Oct 2016 10:54:00 +0000 (13:54 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 3 Nov 2016 08:38:41 +0000 (10:38 +0200)
When we get a half-way processed request, we should
make sure to try to prepare further TRBs for it or
for any possibly queued up request held in our
pending_list. This will make sure our controller is
kept busy for as long as possible.

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

index 4643c25..a9c1d75 100644 (file)
@@ -2123,8 +2123,7 @@ static int dwc3_cleanup_done_reqs(struct dwc3 *dwc, struct dwc3_ep *dep,
 
                req->request.actual = length - req->remaining;
 
-               if (ret && chain && (req->request.actual < length)
-                               && req->num_pending_sgs)
+               if ((req->request.actual < length) && req->num_pending_sgs)
                        return __dwc3_gadget_kick_transfer(dep, 0);
 
                dwc3_gadget_giveback(dep, req, status);