Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d742220b authored by Felipe Balbi's avatar Felipe Balbi
Browse files

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
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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)
{
	struct dwc3_ep		*dep = dwc->eps[0];

	/* stall is always issued on EP0 */
	__dwc3_gadget_ep_set_halt(dwc->eps[0], 1);
	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;
	dwc3_ep0_out_start(dwc);
}