summaryrefslogtreecommitdiff
path: root/0003-ALSA-usb-audio-Fix-packet-size-calculation.patch
blob: b75ab48612271e78b1dbf7b6663df146544a82c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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