summaryrefslogtreecommitdiff
path: root/drivers/usb/dwc3/ep0.c
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2012-07-19 09:51:13 +0400
committerFelipe Balbi <balbi@ti.com>2012-08-03 10:28:24 +0400
commitd9b33c605c398df1d42c694bda28fe8708754c64 (patch)
treecb695c31b991cebd475c8d9e75cbaa3bdfd87a2b /drivers/usb/dwc3/ep0.c
parent35f75696649d43aee8031d81783322b0708805b5 (diff)
downloadlinux-d9b33c605c398df1d42c694bda28fe8708754c64.tar.xz
usb: dwc3: ep0: split the special cases on ep0_queue
We can return early from each if () branch and split the special cases for clarity. While at that also add a comment to the delayed_status case. Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/ep0.c')
-rw-r--r--drivers/usb/dwc3/ep0.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 962fb9b5465b..28bce9be30bc 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -155,13 +155,23 @@ static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep,
dep->flags &= ~(DWC3_EP_PENDING_REQUEST |
DWC3_EP0_DIR_IN);
- } else if (dwc->delayed_status) {
+
+ return 0;
+ }
+
+ /*
+ * In case gadget driver asked us to delay the STATUS phase,
+ * handle it here.
+ */
+ if (dwc->delayed_status) {
dwc->delayed_status = false;
if (dwc->ep0state == EP0_STATUS_PHASE)
__dwc3_ep0_do_control_status(dwc, dwc->eps[1]);
else
dev_dbg(dwc->dev, "too early for delayed status\n");
+
+ return 0;
}
return 0;