usb: dwc3: gadget: Return early if no TRB update
If the transfer had already started and there's no TRB to update, then there's no need to go through __dwc3_gadget_kick_transfer(). There is no problem reissuing UPDATE_TRANSFER command. This change just saves the driver from doing a few operations. This happens when we run out of TRB and function driver still queues for more requests. Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com> Signed-off-by: Felipe Balbi <balbi@kernel.org>
This commit is contained in:
parent
346a15cdf6
commit
2338484d14
|
@ -1347,6 +1347,13 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep)
|
||||||
|
|
||||||
starting = !(dep->flags & DWC3_EP_TRANSFER_STARTED);
|
starting = !(dep->flags & DWC3_EP_TRANSFER_STARTED);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If there's no new TRB prepared and we don't need to restart a
|
||||||
|
* transfer, there's no need to update the transfer.
|
||||||
|
*/
|
||||||
|
if (!ret && !starting)
|
||||||
|
return ret;
|
||||||
|
|
||||||
req = next_request(&dep->started_list);
|
req = next_request(&dep->started_list);
|
||||||
if (!req) {
|
if (!req) {
|
||||||
dep->flags |= DWC3_EP_PENDING_REQUEST;
|
dep->flags |= DWC3_EP_PENDING_REQUEST;
|
||||||
|
|
Loading…
Reference in a new issue