|
@@ -2567,7 +2567,7 @@ error:
|
|
|
* s3c_hsotg_ep_disable - disable given endpoint
|
|
|
* @ep: The endpoint to disable.
|
|
|
*/
|
|
|
-static int s3c_hsotg_ep_disable(struct usb_ep *ep)
|
|
|
+static int s3c_hsotg_ep_disable_force(struct usb_ep *ep, bool force)
|
|
|
{
|
|
|
struct s3c_hsotg_ep *hs_ep = our_ep(ep);
|
|
|
struct dwc2_hsotg *hsotg = hs_ep->parent;
|
|
@@ -2588,7 +2588,7 @@ static int s3c_hsotg_ep_disable(struct usb_ep *ep)
|
|
|
|
|
|
spin_lock_irqsave(&hsotg->lock, flags);
|
|
|
/* terminate all requests with shutdown */
|
|
|
- kill_all_requests(hsotg, hs_ep, -ESHUTDOWN, false);
|
|
|
+ kill_all_requests(hsotg, hs_ep, -ESHUTDOWN, force);
|
|
|
|
|
|
hsotg->fifo_map &= ~(1<<hs_ep->fifo_index);
|
|
|
hs_ep->fifo_index = 0;
|
|
@@ -2609,6 +2609,10 @@ static int s3c_hsotg_ep_disable(struct usb_ep *ep)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int s3c_hsotg_ep_disable(struct usb_ep *ep)
|
|
|
+{
|
|
|
+ return s3c_hsotg_ep_disable_force(ep, false);
|
|
|
+}
|
|
|
/**
|
|
|
* on_list - check request is on the given endpoint
|
|
|
* @ep: The endpoint to check.
|
|
@@ -2924,7 +2928,7 @@ static int s3c_hsotg_udc_stop(struct usb_gadget *gadget)
|
|
|
|
|
|
/* all endpoints should be shutdown */
|
|
|
for (ep = 1; ep < hsotg->num_of_eps; ep++)
|
|
|
- s3c_hsotg_ep_disable(&hsotg->eps[ep].ep);
|
|
|
+ s3c_hsotg_ep_disable_force(&hsotg->eps[ep].ep, true);
|
|
|
|
|
|
spin_lock_irqsave(&hsotg->lock, flags);
|
|
|
|