UPSTREAM: usb: dwc3: gadget: loop while (timeout)
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 23 May 2016 10:53:34 +0000 (13:53 +0300)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 16 Aug 2016 12:48:19 +0000 (20:48 +0800)
instead of having infinite loop and always checking
timeout value as a break condition, we can just
decrement timeout inside while's condition.

Change-Id: I665d39e7205463f5f4439f3a6d4fdfc6e3ed67b2
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
(cherry picked from commit f6bb225bb3ca7988ff373c62cc298e56cae1eee5)

drivers/usb/dwc3/gadget.c

index 2ea19d211077f94686a923c7a67d71e5dd232e78..f81a1426de5e1202bd13ea1c4e1cd98b06b6525e 100644 (file)
@@ -327,19 +327,13 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
 
                        break;
                }
+       } while (--timeout);
 
-               /*
-                * We can't sleep here, because it is also called from
-                * interrupt context.
-                */
-               timeout--;
-               if (!timeout) {
-                       dwc3_trace(trace_dwc3_gadget,
-                                       "Command Timed Out");
-                       ret = -ETIMEDOUT;
-                       break;
-               }
-       } while (1);
+       if (timeout == 0) {
+               dwc3_trace(trace_dwc3_gadget,
+                               "Command Timed Out");
+               ret = -ETIMEDOUT;
+       }
 
        if (unlikely(susphy)) {
                reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));