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

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

Merge "usb: dwc3: gadget: Prevent queue on endpoints after bus reset"

parents 2fd974a6 5f7bf077
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1596,7 +1596,8 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
{
	struct dwc3		*dwc = dep->dwc;

	if (!dep->endpoint.desc || !dwc->pullups_connected) {
	if (!dep->endpoint.desc || !dwc->pullups_connected ||
						!dwc->connected) {
		dev_err_ratelimited(dwc->dev, "%s: can't queue to disabled endpoint\n",
				dep->name);
		return -ESHUTDOWN;
@@ -3361,6 +3362,8 @@ static void dwc3_reset_gadget(struct dwc3 *dwc)
{
	struct usb_gadget_driver *gadget_driver;

	dwc->connected = false;

	if (!dwc->gadget_driver)
		return;

@@ -3494,8 +3497,6 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
{
	u32			reg;

	dwc->connected = true;

	/*
	 * WORKAROUND: DWC3 revisions <1.88a have an issue which
	 * would cause a missing Disconnect Event if there's a
@@ -3681,6 +3682,8 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
		dwc3_writel(dwc->regs, DWC3_DCTL, reg);
	}

	dwc->connected = true;

	dep = dwc->eps[0];
	ret = __dwc3_gadget_ep_enable(dep, DWC3_DEPCFG_ACTION_MODIFY);
	if (ret) {