| From 9bafa56c7cee5c6fa68de5924220abb220c7e229 Mon Sep 17 00:00:00 2001 |
| From: Paul Zimmerman <Paul.Zimmerman@synopsys.com> |
| Date: Fri, 17 Feb 2012 14:10:16 -0800 |
| Subject: usb: dwc3: fix bogus test in dwc3_gadget_start_isoc |
| |
| From: Paul Zimmerman <Paul.Zimmerman@synopsys.com> |
| |
| commit 9bafa56c7cee5c6fa68de5924220abb220c7e229 upstream. |
| |
| Zero is a valid value for a microframe number. So remove the bogus |
| test for non-zero in dwc3_gadget_start_isoc(). |
| |
| Signed-off-by: Paul Zimmerman <paulz@synopsys.com> |
| Signed-off-by: Felipe Balbi <balbi@ti.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/dwc3/gadget.c | 16 +++++----------- |
| 1 file changed, 5 insertions(+), 11 deletions(-) |
| |
| --- a/drivers/usb/dwc3/gadget.c |
| +++ b/drivers/usb/dwc3/gadget.c |
| @@ -1405,7 +1405,7 @@ static void dwc3_endpoint_transfer_compl |
| static void dwc3_gadget_start_isoc(struct dwc3 *dwc, |
| struct dwc3_ep *dep, const struct dwc3_event_depevt *event) |
| { |
| - u32 uf; |
| + u32 uf, mask; |
| |
| if (list_empty(&dep->request_list)) { |
| dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n", |
| @@ -1413,16 +1413,10 @@ static void dwc3_gadget_start_isoc(struc |
| return; |
| } |
| |
| - if (event->parameters) { |
| - u32 mask; |
| - |
| - mask = ~(dep->interval - 1); |
| - uf = event->parameters & mask; |
| - /* 4 micro frames in the future */ |
| - uf += dep->interval * 4; |
| - } else { |
| - uf = 0; |
| - } |
| + mask = ~(dep->interval - 1); |
| + uf = event->parameters & mask; |
| + /* 4 micro frames in the future */ |
| + uf += dep->interval * 4; |
| |
| __dwc3_gadget_kick_transfer(dep, uf, 1); |
| } |