diff options
author | Takashi Iwai <tiwai@suse.de> | 2021-09-29 10:08:41 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2021-09-30 13:55:22 +0200 |
commit | d215f63d49da9a8803af3e81acd6cad743686573 (patch) | |
tree | bb91dedf94d63f1d82e5f62a44a94396b7233030 /sound/usb/pcm.c | |
parent | ALSA: usb-audio: Disable low-latency mode for implicit feedback sync (diff) | |
download | linux-d215f63d49da9a8803af3e81acd6cad743686573.tar.xz linux-d215f63d49da9a8803af3e81acd6cad743686573.zip |
ALSA: usb-audio: Check available frames for the next packet size
This is yet more preparation for the upcoming changes.
Extend snd_usb_endpoint_next_packet_size() to check the available
frames and return -EAGAIN if the next packet size is equal or exceeds
the given size. This will be needed for avoiding XRUN during the low
latency operation.
As of this patch, avail=0 is passed, i.e. the check is skipped and no
behavior change.
Link: https://lore.kernel.org/r/20210929080844.11583-7-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/pcm.c')
-rw-r--r-- | sound/usb/pcm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index ec7eeb1b82b8..8ad48c35c559 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -1365,7 +1365,7 @@ static void prepare_playback_urb(struct snd_usb_substream *subs, spin_lock_irqsave(&subs->lock, flags); subs->frame_limit += ep->max_urb_frames; for (i = 0; i < ctx->packets; i++) { - counts = snd_usb_endpoint_next_packet_size(ep, ctx, i); + counts = snd_usb_endpoint_next_packet_size(ep, ctx, i, 0); /* set up descriptor */ urb->iso_frame_desc[i].offset = frames * stride; urb->iso_frame_desc[i].length = counts * stride; |