linux/sound/usb
Takashi Iwai eee5d6f135 ALSA: usb-audio: Switch back to non-latency mode at a later point
The recent regression report revealed that the judgment of the
low-latency playback mode based on the runtime->stop_threshold cannot
work reliably at the prepare stage, as sw_params call may happen at
any time, and PCM dmix actually sets it up after the prepare call.
This ended up with the stall of the stream as PCM ack won't be issued
at all.

For addressing this, check the free-wheeling mode again at the PCM
trigger right before starting the stream again, and allow switching to
the non-LL mode at a late stage.

Fixes: d5f871f89e ("ALSA: usb-audio: Improved lowlatency playback support")
Reported-and-tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Link: https://lore.kernel.org/r/20211117161855.m45mxcqszkfcetai@box.shutemov.name
Link: https://lore.kernel.org/r/20211119102459.7055-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-11-19 11:27:41 +01:00
..
6fire ALSA: 6fire: fix control and bulk message timeouts 2021-10-26 08:12:02 +02:00
bcd2000 ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
caiaq module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
hiface module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
line6 ALSA: line6: fix control and interrupt message timeouts 2021-10-26 08:12:14 +02:00
misc ALSA: ua101: fix division by zero at probe 2021-10-27 08:23:30 +02:00
usx2y ALSA: usx2y: Prefer struct_size over open coded arithmetic 2021-09-21 18:38:11 +02:00
card.c ALSA: usb-audio: Unify mixer resume and reset_resume procedure 2021-09-13 15:00:31 +02:00
card.h ALSA: usb-audio: Improved lowlatency playback support 2021-09-30 13:55:24 +02:00
clock.c ALSA: usb-audio: fix null pointer dereference on pointer cs_desc 2021-10-26 08:05:23 +02:00
clock.h ALSA: usb-audio: Constify audioformat pointer references 2020-11-23 15:15:36 +01:00
endpoint.c ALSA: usb-audio: Fix packet size calculation regression 2021-10-01 12:54:56 +02:00
endpoint.h ALSA: usb-audio: Avoid killing in-flight URBs during draining 2021-09-30 13:55:26 +02:00
format.c ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk 2021-11-01 07:36:37 +01:00
format.h ALSA: usb: initial USB Audio Device Class 3.0 support 2018-03-21 11:46:33 +01:00
helper.c ALSA: usb-audio: Add snd_usb_get_host_interface() helper 2020-11-23 15:13:47 +01:00
helper.h ALSA: usb-audio: Add snd_usb_get_host_interface() helper 2020-11-23 15:13:47 +01:00
implicit.c ALSA: usb-audio: disable implicit feedback sync for Behringer UFX1204 and UFX1604 2021-10-01 08:57:34 +02:00
implicit.h ALSA: usb-audio: Factor out the implicit feedback quirk code 2020-11-23 15:17:00 +01:00
Kconfig sound: Fix Kconfig indentation 2019-10-07 03:53:03 +02:00
Makefile ALSA: usb-audio: Factor out the implicit feedback quirk code 2020-11-23 15:17:00 +01:00
media.c ALSA: usb-audio: fix spelling mistakes 2021-07-05 19:33:54 +02:00
media.h media: sound/usb: Use Media Controller API to share media resources 2019-04-22 11:21:06 -04:00
midi.c ALSA: usb-audio: Fix potential out-of-bounce access in MIDI EP parser 2021-05-11 11:10:37 +02:00
midi.h ALSA: usb-audio: generate midi streaming substream names from jack names 2021-03-01 09:21:54 +01:00
mixer_maps.c ALSA: usb-audio: Move ignore_ctl_error check into quirk_flags 2021-08-02 09:06:05 +02:00
mixer_quirks.c ALSA: usb-audio: Add support for the Pioneer DJM 750MK2 Mixer/Soundcard 2021-10-10 22:26:58 +02:00
mixer_quirks.h ALSA: usb-audio: Initialize Dell Dock playback volumes 2018-05-02 16:02:32 +02:00
mixer_s1810c.c ALSA: usb-audio: fix spelling mistakes 2021-07-05 19:33:54 +02:00
mixer_s1810c.h ALSA: usb-audio: Add support for Presonus Studio 1810c 2020-02-15 09:46:16 +01:00
mixer_scarlett_gen2.c ALSA: usb-audio: Fix a missing error check in scarlett gen2 mixer 2021-09-30 13:48:51 +02:00
mixer_scarlett_gen2.h ALSA: usb-audio: scarlett2: Improve driver startup messages 2021-05-21 16:22:52 +02:00
mixer_scarlett.c ALSA: usb-audio: fix spelling mistakes 2021-07-05 19:33:54 +02:00
mixer_scarlett.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mixer_us16x08.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
mixer_us16x08.h ALSA: usb: Constify snd_kcontrol_new items 2020-01-03 09:24:34 +01:00
mixer.c Merge branch 'for-next' into for-linus 2021-11-01 07:34:19 +01:00
mixer.h ALSA: usb-audio: Unify mixer resume and reset_resume procedure 2021-09-13 15:00:31 +02:00
pcm.c ALSA: usb-audio: Switch back to non-latency mode at a later point 2021-11-19 11:27:41 +01:00
pcm.h ALSA: usb-audio: Make snd_usb_pcm_delay() static 2021-06-02 09:01:17 +02:00
power.c ALSA: usb-audio: More validations of descriptor units 2019-08-22 10:35:59 +02:00
power.h ALSA: usb-audio: Initial Power Domain support 2018-07-31 15:01:22 +02:00
proc.c ALSA: usb-audio: Show sync endpoint information in proc outputs 2020-11-23 15:16:45 +01:00
proc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
quirks-table.h Merge branch 'for-next' into for-linus 2021-11-01 07:34:19 +01:00
quirks.c ALSA: usb-audio: Add quirk for Audient iD14 2021-11-02 17:19:26 +01:00
quirks.h ALSA: usb-audio: Move interface setup delay into quirk_flags 2021-08-02 09:06:02 +02:00
stream.c ALSA: usb-audio: Move tx_length quirk handling to quirk_flags 2021-08-02 09:05:57 +02:00
stream.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
usbaudio.h Merge branch 'for-linus' into for-next 2021-08-30 08:04:04 +02:00
validate.c ALSA: usb-audio: Fix endianess in descriptor validation 2020-02-01 09:06:11 +01:00