Thread (8 messages) 8 messages, 3 authors, 2021-04-28
STALE1909d

[PATCH v2 1/2] usb: gadget: f_uac2: Stop endpoint before enabling it.

From: Pawel Laszczak <pawell@cadence.com>
Date: 2021-04-26 04:52:42
Subsystem: the rest, usb subsystem · Maintainers: Linus Torvalds, Greg Kroah-Hartman

From: Pawel Laszczak <pawell@cadence.com>

Patch adds disabling endpoint before enabling it during changing
alternate setting. Lack of this functionality causes that in some
cases uac2 queue the same request multiple time.
Such situation can occur when host send set interface with
alternate setting 1 twice.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>

---
Changelog:
v2:
- moved disabling endpoint into u_audio_start_playback

 drivers/usb/gadget/function/u_audio.c | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/drivers/usb/gadget/function/u_audio.c b/drivers/usb/gadget/function/u_audio.c
index 265c4d805f81..c4bbc9decaba 100644
--- a/drivers/usb/gadget/function/u_audio.c
+++ b/drivers/usb/gadget/function/u_audio.c
@@ -401,6 +401,10 @@ int u_audio_start_playback(struct g_audio *audio_dev)
 
 	ep = audio_dev->in_ep;
 	prm = &uac->p_prm;
+
+	if (prm->ep_enabled)
+		u_audio_stop_capture(audio_dev);
+
 	config_ep_by_speed(gadget, &audio_dev->func, ep);
 
 	ep_desc = ep->desc;
-- 
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help