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

Commit 7125d584 authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: dwc3: ep0: fix status phase delayed status direction



commit 68d3e668 (usb: dwc3: ep0: fix for possible early
delayed_status) added handling for early delayed status,
but the current code only works because so far delayed
status will always be on the IN direction.

This patch makes the code more robust by making sure that
we can handle all directions properly.

Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 2e3db064
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -164,10 +164,13 @@ static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep,
	 * handle it here.
	 */
	if (dwc->delayed_status) {
		unsigned	direction;

		direction = !dwc->ep0_expect_in;
		dwc->delayed_status = false;

		if (dwc->ep0state == EP0_STATUS_PHASE)
			__dwc3_ep0_do_control_status(dwc, dwc->eps[1]);
			__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
		else
			dev_dbg(dwc->dev, "too early for delayed status\n");