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

Commit 98d1455d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: dwc3: gadget: Add delay for EPCMDCMPLT"

parents d631cf7d 89dd42bf
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -805,6 +805,7 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep, unsigned int action)

static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep)
{
	int retries = 40;
	struct dwc3_request		*req;

	dbg_log_string("START for %s(%d)", dep->name, dep->number);
@@ -824,6 +825,14 @@ static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep)
		dwc->eps[1]->trb_enqueue = 0;
	}

	do {
		udelay(50);
	} while ((dep->flags & DWC3_EP_END_TRANSFER_PENDING) && --retries);

	if (!retries)
		dbg_log_string("ep end_xfer cmd completion timeout for %d",
				dep->number);

	/* - giveback all requests to gadget driver */
	while (!list_empty(&dep->started_list)) {
		req = next_request(&dep->started_list);