Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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