Commit d742220b authored by Felipe Balbi's avatar Felipe Balbi

usb: dwc3: ep0: giveback requests on stall_and_restart

if we don't, the list will be busy forever.
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent bb7ea284
...@@ -214,9 +214,19 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request, ...@@ -214,9 +214,19 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc) static void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
{ {
struct dwc3_ep *dep = dwc->eps[0];
/* stall is always issued on EP0 */ /* stall is always issued on EP0 */
__dwc3_gadget_ep_set_halt(dwc->eps[0], 1); __dwc3_gadget_ep_set_halt(dwc->eps[0], 1);
dwc->eps[0]->flags = DWC3_EP_ENABLED; dwc->eps[0]->flags = DWC3_EP_ENABLED;
if (!list_empty(&dep->request_list)) {
struct dwc3_request *req;
req = next_request(&dep->request_list);
dwc3_gadget_giveback(dep, req, -ECONNRESET);
}
dwc->ep0state = EP0_SETUP_PHASE; dwc->ep0state = EP0_SETUP_PHASE;
dwc3_ep0_out_start(dwc); dwc3_ep0_out_start(dwc);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment