* [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation
@ 2020-06-29 2:59 Alexander Tsoy
2020-06-29 2:59 ` [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate Alexander Tsoy
2020-06-30 17:47 ` [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Takashi Iwai
0 siblings, 2 replies; 4+ messages in thread
From: Alexander Tsoy @ 2020-06-29 2:59 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai, Peter Bui
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;
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate
2020-06-29 2:59 [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Alexander Tsoy
@ 2020-06-29 2:59 ` Alexander Tsoy
2020-06-30 17:48 ` Takashi Iwai
2020-06-30 17:47 ` [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Takashi Iwai
1 sibling, 1 reply; 4+ messages in thread
From: Alexander Tsoy @ 2020-06-29 2:59 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai, Peter Bui
Replace several occurences of "frame" with a "packet" where appropriate.
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
---
sound/usb/card.h | 6 +++---
sound/usb/endpoint.c | 19 +++++++++----------
2 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/sound/usb/card.h b/sound/usb/card.h
index d6219fba9699..de43267b9c8a 100644
--- a/sound/usb/card.h
+++ b/sound/usb/card.h
@@ -84,10 +84,10 @@ struct snd_usb_endpoint {
dma_addr_t sync_dma; /* DMA address of syncbuf */
unsigned int pipe; /* the data i/o pipe */
- unsigned int framesize[2]; /* small/large frame sizes in samples */
- unsigned int sample_rem; /* remainder from division fs/fps */
+ unsigned int packsize[2]; /* small/large packet sizes in samples */
+ unsigned int sample_rem; /* remainder from division fs/pps */
unsigned int sample_accum; /* sample accumulator */
- unsigned int fps; /* frames per second */
+ unsigned int pps; /* packets per second */
unsigned int freqn; /* nominal sampling rate in fs/fps in Q16.16 format */
unsigned int freqm; /* momentary sampling rate in fs/fps in Q16.16 format */
int freqshift; /* how much to shift the feedback value to get Q16.16 */
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 11f23778f0a5..88760268fb55 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -159,11 +159,11 @@ int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep)
return ep->maxframesize;
ep->sample_accum += ep->sample_rem;
- if (ep->sample_accum >= ep->fps) {
- ep->sample_accum -= ep->fps;
- ret = ep->framesize[1];
+ if (ep->sample_accum >= ep->pps) {
+ ep->sample_accum -= ep->pps;
+ ret = ep->packsize[1];
} else {
- ret = ep->framesize[0];
+ ret = ep->packsize[0];
}
return ret;
@@ -1088,16 +1088,15 @@ int snd_usb_endpoint_set_params(struct snd_usb_endpoint *ep,
if (snd_usb_get_speed(ep->chip->dev) == USB_SPEED_FULL) {
ep->freqn = get_usb_full_speed_rate(rate);
- ep->fps = 1000;
+ ep->pps = 1000 >> ep->datainterval;
} else {
ep->freqn = get_usb_high_speed_rate(rate);
- ep->fps = 8000;
+ ep->pps = 8000 >> ep->datainterval;
}
- ep->fps >>= ep->datainterval;
- ep->sample_rem = rate % ep->fps;
- ep->framesize[0] = rate / ep->fps;
- ep->framesize[1] = (rate + (ep->fps - 1)) / ep->fps;
+ ep->sample_rem = rate % ep->pps;
+ ep->packsize[0] = rate / ep->pps;
+ ep->packsize[1] = (rate + (ep->pps - 1)) / ep->pps;
/* calculate the frequency in 16.16 format */
ep->freqm = ep->freqn;
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation
2020-06-29 2:59 [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Alexander Tsoy
2020-06-29 2:59 ` [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate Alexander Tsoy
@ 2020-06-30 17:47 ` Takashi Iwai
1 sibling, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2020-06-30 17:47 UTC (permalink / raw)
To: Alexander Tsoy; +Cc: alsa-devel, Peter Bui
On Mon, 29 Jun 2020 04:59:33 +0200,
Alexander Tsoy wrote:
>
> 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>
Applied now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate
2020-06-29 2:59 ` [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate Alexander Tsoy
@ 2020-06-30 17:48 ` Takashi Iwai
0 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2020-06-30 17:48 UTC (permalink / raw)
To: Alexander Tsoy; +Cc: alsa-devel, Peter Bui
On Mon, 29 Jun 2020 04:59:34 +0200,
Alexander Tsoy wrote:
>
> Replace several occurences of "frame" with a "packet" where appropriate.
>
> Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Applied, thanks.
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-06-30 17:49 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-29 2:59 [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Alexander Tsoy
2020-06-29 2:59 ` [PATCH 2/2] ALSA: usb-audio: Replace s/frame/packet/ where appropriate Alexander Tsoy
2020-06-30 17:48 ` Takashi Iwai
2020-06-30 17:47 ` [PATCH 1/2] ALSA: usb-audio: Fix packet size calculation Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox