usb: dwc3: ep0: split the special cases on ep0_queue
authorFelipe Balbi <balbi@ti.com>
Thu, 19 Jul 2012 05:51:13 +0000 (08:51 +0300)
committerFelipe Balbi <balbi@ti.com>
Fri, 3 Aug 2012 06:28:24 +0000 (09:28 +0300)
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>
drivers/usb/dwc3/ep0.c

index 962fb9b..28bce9b 100644 (file)
@@ -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;