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

Commit 55ef1608 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "usb: dwc3: gadget: start requests as soon as they come""

parents f71d743c b8b08404
Loading
Loading
Loading
Loading
+8 −22
Original line number Diff line number Diff line
@@ -1232,20 +1232,6 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)

	list_add_tail(&req->list, &dep->request_list);

	/*
	 * If there are no pending requests and the endpoint isn't already
	 * busy, we will just start the request straight away.
	 *
	 * This will save one IRQ (XFER_NOT_READY) and possibly make it a
	 * little bit faster.
	 */
	if (!usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
			!usb_endpoint_xfer_int(dep->endpoint.desc) &&
			!(dep->flags & DWC3_EP_BUSY)) {
		ret = __dwc3_gadget_kick_transfer(dep, 0, true);
		goto out;
	}

	/*
	 * There are a few special cases:
	 *
@@ -2529,14 +2515,6 @@ static void dwc3_endpoint_transfer_complete(struct dwc3 *dwc,

		dwc->u1u2 = 0;
	}

	if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
		int ret;

		ret = __dwc3_gadget_kick_transfer(dep, 0, is_xfer_complete);
		if (!ret || ret == -EBUSY)
			return;
	}
}

static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
@@ -2593,6 +2571,14 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
					? "Transfer Active"
					: "Transfer Not Active");

			/*
			 * If XFERNOTREADY interrupt is received with event
			 * status as TRANSFER ACTIVE, don't kick next transfer.
			 * otherwise data stall is seen on that endpoint.
			 */
			if (event->status & DEPEVT_STATUS_TRANSFER_ACTIVE)
				return;

			ret = __dwc3_gadget_kick_transfer(dep, 0, 1);
			if (!ret || ret == -EBUSY)
				return;