static void dwc3_stop_active_transfer(struct dwc3_ep *dep, bool force,
        bool interrupt)
 {
-       struct dwc3 *dwc = dep->dwc;
        struct dwc3_gadget_ep_cmd_params params;
        u32 cmd;
        int ret;
         * 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 arbitrary 100us delay for that.
+        * suggested to giveback all requests here.
         *
         * 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
+        * In short, what we're doing is issuing EndTransfer with
+        * CMDIOC bit set and delay kicking transfer until the
+        * EndTransfer command had completed.
         *
         * As of IP version 3.10a of the DWC_usb3 IP, the controller
         * supports a mode to work around the above limitation. The
         * by writing GUCTL2[14]. This polling is already done in the
         * dwc3_send_gadget_ep_cmd() function so if the mode is
         * enabled, the EndTransfer command will have completed upon
-        * returning from this function and we don't need to delay for
-        * 100us.
+        * returning from this function.
         *
         * This mode is NOT available on the DWC_usb31 IP.
         */
                dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
        else
                dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
-
-       if (dwc3_is_usb31(dwc) || dwc->revision < DWC3_REVISION_310A)
-               udelay(100);
 }
 
 static void dwc3_clear_stall_all_ep(struct dwc3 *dwc)