summaryrefslogtreecommitdiff
path: root/0003-ALSA-usb-audio-Fix-packet-size-calculation.patch
diff options
context:
space:
mode:
Diffstat (limited to '0003-ALSA-usb-audio-Fix-packet-size-calculation.patch')
-rw-r--r--0003-ALSA-usb-audio-Fix-packet-size-calculation.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/0003-ALSA-usb-audio-Fix-packet-size-calculation.patch b/0003-ALSA-usb-audio-Fix-packet-size-calculation.patch
new file mode 100644
index 0000000..b75ab48
--- /dev/null
+++ b/0003-ALSA-usb-audio-Fix-packet-size-calculation.patch
@@ -0,0 +1,35 @@
+From 17c5f7dd425becd30c4a2dafaecb054641a1fdc9 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 29 Jun 2020 05:59:33 +0300
+Subject: ALSA: usb-audio: Fix packet size calculation
+
+Commit f0bd62b64016 ("ALSA: usb-audio: Improve frames size computation")
+introduced a regression for devices which have playback endpoints with
+bInterval > 1. Fix this by taking ep->datainterval into account.
+
+Note that frame and fps are actually mean packet and packets per second
+in the code introduces by the mentioned commit. This will be fixed in a
+follow-up patch.
+
+Fixes: f0bd62b64016 ("ALSA: usb-audio: Improve frames size computation")
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208353
+Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
+---
+ sound/usb/endpoint.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
+index 9bea7d3f99f8..11f23778f0a5 100644
+--- a/sound/usb/endpoint.c
++++ b/sound/usb/endpoint.c
+@@ -1093,6 +1093,7 @@ int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep,
+ ep->freqn = get_usb_high_speed_rate(rate);
+ ep->fps = 8000;
+ }
++ ep->fps >>= ep->datainterval;
+
+ ep->sample_rem = rate % ep->fps;
+ ep->framesize[0] = rate / ep->fps;
+--
+cgit v1.2.3-1-gf6bb5
+