From: Felipe Balbi Date: Mon, 23 May 2016 11:06:07 +0000 (+0300) Subject: UPSTREAM: usb: dwc3: gadget: single return point on generic commands X-Git-Tag: firefly_0821_release~1812 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6dbabe9ebb6cbb585e43fd2ba7ff515556164b90;p=firefly-linux-kernel-4.4.55.git UPSTREAM: usb: dwc3: gadget: single return point on generic commands Just like we did for endpoint commands, let's use a single return point for generic commands as well. This aids readability. Change-Id: Idc1bf9bc4fe2e50cb0841e9a8483c24346b4974d Signed-off-by: Felipe Balbi Signed-off-by: Wu Liang feng (cherry picked from commit 0fe886cdb07aeaf75a61154f34abc8dd6860978e) --- diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index d8952ce7112c..74a1489e5715 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -207,6 +207,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req, int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param) { u32 timeout = 500; + int ret = 0; u32 reg; trace_dwc3_gadget_generic_cmd(cmd, param); @@ -221,22 +222,20 @@ int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned cmd, u32 param) "Command Complete --> %d", DWC3_DGCMD_STATUS(reg)); if (DWC3_DGCMD_STATUS(reg)) - return -EINVAL; - return 0; + ret = -EINVAL; + break; } - /* - * We can't sleep here, because it's also called from - * interrupt context. - */ - timeout--; - if (!timeout) { - dwc3_trace(trace_dwc3_gadget, - "Command Timed Out"); - return -ETIMEDOUT; - } udelay(1); - } while (1); + } while (timeout--); + + if (!timeout) { + dwc3_trace(trace_dwc3_gadget, + "Command Timed Out"); + ret = -ETIMEDOUT; + } + + return ret; } static int __dwc3_gadget_wakeup(struct dwc3 *dwc);