Skip to contentSkip to conversation

Patch "usb: dwc3: fix for the isoc transfer EP_BUSY flag" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Aug 17, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

usb: dwc3: fix for the isoc transfer EP_BUSY flag

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
usb-dwc3-fix-for-the-isoc-transfer-ep_busy-flag.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 9cad39fe4e4a4fe95d8ea5a7b0692b0a6e89e38b Mon Sep 17 00:00:00 2001

From: Konrad Leszczynski <[email protected]>
Date: Mon, 8 Feb 2016 16:13:12 +0100
Subject: usb: dwc3: fix for the isoc transfer EP_BUSY flag

From: Konrad Leszczynski <[email protected]>

commit 9cad39fe4e4a4fe95d8ea5a7b0692b0a6e89e38b upstream.

commit f3af36511e60 ("usb: dwc3: gadget: always
enable IOC on bulk/interrupt transfers") ended up
regressing Isochronous endpoints by clearing
DWC3_EP_BUSY flag too early, which resulted in
choppy audio playback over USB.

Fix that by partially reverting original commit and making sure that we check for isochronous endpoints.

Fixes f3af36511e60 ("usb: dwc3: gadget: always enable IOC

on bulk/interrupt transfers")

---
 drivers/usb/dwc3/gadget.c |    4 ++++
 1 file changed, 4 insertions(+)
drivers/usb/dwc3/gadget.c +4 -0
@@ -1965,6 +1965,10 @@ static int dwc3_cleanup_done_reqs(struct
 		return 1;
 	}
 
+	if (usb_endpoint_xfer_isoc(dep->endpoint.desc))
+		if ((event->status & DEPEVT_STATUS_IOC) &&
+				(trb->ctrl & DWC3_TRB_CTRL_IOC))
+			return 0;
 	return 1;
 }
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/usb-dwc3-fix-for-the-isoc-transfer-ep_busy-flag.patch