usb: dwc3: gadget: purge dwc3_stop_active_transfers()
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Fri, 14 Oct 2016 10:46:50 +0000 (13:46 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Thu, 3 Nov 2016 08:38:35 +0000 (10:38 +0200)
That function is unnecessarily called from
dwc3_gadget_reset_interrupt(). Gadget drivers (and
thus, functions) are required to dequeue all pending
requests when they get notified about a USB Bus
Reset.

Trying to make sure there are no pending requests
only serves the purpose of working around possibly
bad gadgets.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c

index bcd0d32ed4e9a75cbaedb8469536836f5a5a75a7..daebc089635bc4fa74c72014f243a9c5607e63b5 100644 (file)
@@ -2302,24 +2302,6 @@ static void dwc3_stop_active_transfer(struct dwc3 *dwc, u32 epnum, bool force)
                udelay(100);
 }
 
-static void dwc3_stop_active_transfers(struct dwc3 *dwc)
-{
-       u32 epnum;
-
-       for (epnum = 2; epnum < DWC3_ENDPOINTS_NUM; epnum++) {
-               struct dwc3_ep *dep;
-
-               dep = dwc->eps[epnum];
-               if (!dep)
-                       continue;
-
-               if (!(dep->flags & DWC3_EP_ENABLED))
-                       continue;
-
-               dwc3_remove_requests(dwc, dep);
-       }
-}
-
 static void dwc3_clear_stall_all_ep(struct dwc3 *dwc)
 {
        u32 epnum;
@@ -2405,8 +2387,6 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
        reg &= ~DWC3_DCTL_TSTCTRL_MASK;
        dwc3_writel(dwc->regs, DWC3_DCTL, reg);
        dwc->test_mode = false;
-
-       dwc3_stop_active_transfers(dwc);
        dwc3_clear_stall_all_ep(dwc);
 
        /* Reset device address to zero */