if (!list_empty(&dep->req_queued)) {
                dwc3_stop_active_transfer(dwc, dep->number);
 
-               /*
-                * NOTICE: We are violating what the Databook says about the
-                * EndTransfer command. Ideally we would _always_ wait for the
-                * EndTransfer Command Completion IRQ, but that's causing too
-                * much trouble synchronizing between us and gadget driver.
-                *
-                * We have discussed this with the IP Provider and it was
-                * suggested to giveback all requests here, but give HW some
-                * extra time to synchronize with the interconnect. We're using
-                * an arbitraty 100us delay for that.
-                *
-                * Note also that a similar handling was tested by Synopsys
-                * (thanks a lot Paul) and nothing bad has come out of it.
-                * In short, what we're doing is:
-                *
-                * - Issue EndTransfer WITH CMDIOC bit set
-                * - Wait 100us
-                * - giveback all requests to gadget driver
-                */
-               udelay(100);
-
+               /* - giveback all requests to gadget driver */
                while (!list_empty(&dep->req_queued)) {
                        req = next_request(&dep->req_queued);
 
        if (!dep->resource_index)
                return;
 
+       /*
+        * NOTICE: We are violating what the Databook says about the
+        * EndTransfer command. Ideally we would _always_ wait for the
+        * EndTransfer Command Completion IRQ, but that's causing too
+        * much trouble synchronizing between us and gadget driver.
+        *
+        * We have discussed this with the IP Provider and it was
+        * suggested to giveback all requests here, but give HW some
+        * extra time to synchronize with the interconnect. We're using
+        * an arbitraty 100us delay for that.
+        *
+        * Note also that a similar handling was tested by Synopsys
+        * (thanks a lot Paul) and nothing bad has come out of it.
+        * In short, what we're doing is:
+        *
+        * - Issue EndTransfer WITH CMDIOC bit set
+        * - Wait 100us
+        */
+
        cmd = DWC3_DEPCMD_ENDTRANSFER;
        cmd |= DWC3_DEPCMD_HIPRI_FORCERM | DWC3_DEPCMD_CMDIOC;
        cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
        ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, cmd, ¶ms);
        WARN_ON_ONCE(ret);
        dep->resource_index = 0;
+
+       udelay(100);
 }
 
 static void dwc3_stop_active_transfers(struct dwc3 *dwc)