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

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

Merge "usb: dwc3: Delete the request from pending list in case of ep queue failure"

parents 186267e3 f6967121
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1559,6 +1559,7 @@ static void __dwc3_gadget_start_isoc(struct dwc3_ep *dep)
static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
{
	struct dwc3		*dwc = dep->dwc;
	int ret = 0;

	if (!dep->endpoint.desc || !dwc->pullups_connected) {
		dev_err_ratelimited(dwc->dev, "%s: can't queue to disabled endpoint\n",
@@ -1605,7 +1606,11 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
		}
	}

	return __dwc3_gadget_kick_transfer(dep);
	ret = __dwc3_gadget_kick_transfer(dep);
	if (ret < 0)
		list_del_init(&req->list);

	return ret;
}

static int dwc3_gadget_wakeup(struct usb_gadget *g)
+4 −1
Original line number Diff line number Diff line
@@ -953,7 +953,10 @@ static void usb_cser_start_rx(struct f_cdev *port)
		if (ret) {
			pr_err("port(%d):%pK usb ep(%s) queue failed\n",
					port->port_num, port, ep->name);
			list_add(&req->list, pool);
			if (port->is_connected)
				list_add(&req->list, &port->read_pool);
			else
				usb_cser_free_req(port->port_usb.out, req);
			break;
		}
	}