aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/gadget.c
diff options
context:
space:
mode:
authorPaul Zimmerman <Paul.Zimmerman@synopsys.com>2012-02-17 17:10:16 -0500
committerFelipe Balbi <balbi@ti.com>2012-03-02 05:12:05 -0500
commit9bafa56c7cee5c6fa68de5924220abb220c7e229 (patch)
treeddc574916646b889d289e2c36ddf7aab37a54717 /drivers/usb/dwc3/gadget.c
parent27a78d6a283d6782438f72306746afe4bf44c215 (diff)
usb: dwc3: fix bogus test in dwc3_gadget_start_isoc
Zero is a valid value for a microframe number. So remove the bogus test for non-zero in dwc3_gadget_start_isoc(). Cc: stable@vger.kernel.org Signed-off-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r--drivers/usb/dwc3/gadget.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 60b75c302aa4..fac11491850f 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1656,7 +1656,7 @@ static void dwc3_endpoint_transfer_complete(struct dwc3 *dwc,
1656static void dwc3_gadget_start_isoc(struct dwc3 *dwc, 1656static void dwc3_gadget_start_isoc(struct dwc3 *dwc,
1657 struct dwc3_ep *dep, const struct dwc3_event_depevt *event) 1657 struct dwc3_ep *dep, const struct dwc3_event_depevt *event)
1658{ 1658{
1659 u32 uf; 1659 u32 uf, mask;
1660 1660
1661 if (list_empty(&dep->request_list)) { 1661 if (list_empty(&dep->request_list)) {
1662 dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n", 1662 dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n",
@@ -1664,16 +1664,10 @@ static void dwc3_gadget_start_isoc(struct dwc3 *dwc,
1664 return; 1664 return;
1665 } 1665 }
1666 1666
1667 if (event->parameters) { 1667 mask = ~(dep->interval - 1);
1668 u32 mask; 1668 uf = event->parameters & mask;
1669 1669 /* 4 micro frames in the future */
1670 mask = ~(dep->interval - 1); 1670 uf += dep->interval * 4;
1671 uf = event->parameters & mask;
1672 /* 4 micro frames in the future */
1673 uf += dep->interval * 4;
1674 } else {
1675 uf = 0;
1676 }
1677 1671
1678 __dwc3_gadget_kick_transfer(dep, uf, 1); 1672 __dwc3_gadget_kick_transfer(dep, uf, 1);
1679} 1673}