diff options
Diffstat (limited to 'drivers/usb/dwc2/gadget.c')
-rw-r--r-- | drivers/usb/dwc2/gadget.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 200168ec2d75..79242008085b 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c | |||
@@ -2567,7 +2567,7 @@ error: | |||
2567 | * s3c_hsotg_ep_disable - disable given endpoint | 2567 | * s3c_hsotg_ep_disable - disable given endpoint |
2568 | * @ep: The endpoint to disable. | 2568 | * @ep: The endpoint to disable. |
2569 | */ | 2569 | */ |
2570 | static int s3c_hsotg_ep_disable(struct usb_ep *ep) | 2570 | static int s3c_hsotg_ep_disable_force(struct usb_ep *ep, bool force) |
2571 | { | 2571 | { |
2572 | struct s3c_hsotg_ep *hs_ep = our_ep(ep); | 2572 | struct s3c_hsotg_ep *hs_ep = our_ep(ep); |
2573 | struct dwc2_hsotg *hsotg = hs_ep->parent; | 2573 | struct dwc2_hsotg *hsotg = hs_ep->parent; |
@@ -2588,7 +2588,7 @@ static int s3c_hsotg_ep_disable(struct usb_ep *ep) | |||
2588 | 2588 | ||
2589 | spin_lock_irqsave(&hsotg->lock, flags); | 2589 | spin_lock_irqsave(&hsotg->lock, flags); |
2590 | /* terminate all requests with shutdown */ | 2590 | /* terminate all requests with shutdown */ |
2591 | kill_all_requests(hsotg, hs_ep, -ESHUTDOWN, false); | 2591 | kill_all_requests(hsotg, hs_ep, -ESHUTDOWN, force); |
2592 | 2592 | ||
2593 | hsotg->fifo_map &= ~(1<<hs_ep->fifo_index); | 2593 | hsotg->fifo_map &= ~(1<<hs_ep->fifo_index); |
2594 | hs_ep->fifo_index = 0; | 2594 | hs_ep->fifo_index = 0; |
@@ -2609,6 +2609,10 @@ static int s3c_hsotg_ep_disable(struct usb_ep *ep) | |||
2609 | return 0; | 2609 | return 0; |
2610 | } | 2610 | } |
2611 | 2611 | ||
2612 | static int s3c_hsotg_ep_disable(struct usb_ep *ep) | ||
2613 | { | ||
2614 | return s3c_hsotg_ep_disable_force(ep, false); | ||
2615 | } | ||
2612 | /** | 2616 | /** |
2613 | * on_list - check request is on the given endpoint | 2617 | * on_list - check request is on the given endpoint |
2614 | * @ep: The endpoint to check. | 2618 | * @ep: The endpoint to check. |
@@ -2924,7 +2928,7 @@ static int s3c_hsotg_udc_stop(struct usb_gadget *gadget) | |||
2924 | 2928 | ||
2925 | /* all endpoints should be shutdown */ | 2929 | /* all endpoints should be shutdown */ |
2926 | for (ep = 1; ep < hsotg->num_of_eps; ep++) | 2930 | for (ep = 1; ep < hsotg->num_of_eps; ep++) |
2927 | s3c_hsotg_ep_disable(&hsotg->eps[ep].ep); | 2931 | s3c_hsotg_ep_disable_force(&hsotg->eps[ep].ep, true); |
2928 | 2932 | ||
2929 | spin_lock_irqsave(&hsotg->lock, flags); | 2933 | spin_lock_irqsave(&hsotg->lock, flags); |
2930 | 2934 | ||