summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Youn2016-08-27 03:43:01 +0200
committerFelipe Balbi2016-09-05 12:39:23 +0200
commit9d7aba7786b6c9eec6d083e43fd639228c400c3a (patch)
tree8de7ea0388aaad3551d4a1981a1643836c234da9
parentLinux 4.8-rc5 (diff)
downloadkernel-qcow2-linux-9d7aba7786b6c9eec6d083e43fd639228c400c3a.tar.gz
kernel-qcow2-linux-9d7aba7786b6c9eec6d083e43fd639228c400c3a.tar.xz
kernel-qcow2-linux-9d7aba7786b6c9eec6d083e43fd639228c400c3a.zip
Revert "usb: dwc3: gadget: always decrement by 1"
This reverts commit 6f8245b4e37c ("usb: dwc3: gadget: always decrement by 1"). We can't always decrement this value. We should decrement only if the calculation of free slots results in a LINK TRB being among one of the free slots (dequeue < enqueue). Otherwise, if the LINK TRB is not among the free slots then it should not be decremented. Signed-off-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-rw-r--r--drivers/usb/dwc3/gadget.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7a8d3d822b54..122e64df2f4d 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -884,9 +884,12 @@ static u32 dwc3_calc_trbs_left(struct dwc3_ep *dep)
return DWC3_TRB_NUM - 1;
}
- trbs_left = dep->trb_dequeue - dep->trb_enqueue - 1;
+ trbs_left = dep->trb_dequeue - dep->trb_enqueue;
trbs_left &= (DWC3_TRB_NUM - 1);
+ if (dep->trb_dequeue < dep->trb_enqueue)
+ trbs_left--;
+
return trbs_left;
}