linux-yocto/sound/usb
Geoffrey D. Bennett e7c6377144 ALSA: scarlett2: Add retry on -EPROTO from scarlett2_usb_tx()
commit 8a15ca0ca5 upstream.

During communication with Focusrite Scarlett Gen 2/3/4 USB audio
interfaces, -EPROTO is sometimes returned from scarlett2_usb_tx(),
snd_usb_ctl_msg() which can cause initialisation and control
operations to fail intermittently.

This patch adds up to 5 retries in scarlett2_usb(), with a delay
starting at 5ms and doubling each time. This follows the same approach
as the fix for usb_set_interface() in endpoint.c (commit f406005e16
("ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface()")),
which resolved similar -EPROTO issues during device initialisation,
and is the same approach as in fcp.c:fcp_usb().

Fixes: 9e4d5c1be2 ("ALSA: usb-audio: Scarlett Gen 2 mixer interface")
Closes: https://github.com/geoffreybennett/linux-fcp/issues/41
Cc: stable@vger.kernel.org
Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
Link: https://patch.msgid.link/aIdDO6ld50WQwNim@m.b4.vu
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-08-15 16:39:33 +02:00
..
6fire ALSA: 6fire: Release resources at card release 2024-11-13 13:33:47 +01:00
bcd2000
caiaq ALSA: caiaq: Use snd_card_free_when_closed() at disconnection 2024-11-13 13:33:47 +01:00
hiface ALSA: usb: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:53 +02:00
line6 ALSA: line6: convert timeouts to secs_to_jiffies() 2025-01-12 20:21:05 -08:00
misc ALSA: usb: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:53 +02:00
qcom ALSA: usb-audio: qcom: Adjust mutex unlock order 2025-07-22 11:39:40 +02:00
usx2y ALSA: usx2y: validate nrpacks module parameter on probe 2025-03-03 13:40:33 +01:00
card.c ALSA: usb-audio: Allow for rediscovery of connected USB SND devices 2025-04-11 13:02:31 +02:00
card.h ALSA: usb-audio: Allow for rediscovery of connected USB SND devices 2025-04-11 13:02:31 +02:00
clock.c ALSA: usb-audio: Fix out of bounds reads when finding clock sources 2024-11-25 15:48:22 +01:00
clock.h
endpoint.c Merge 6.15-rc6 into usb-next 2025-05-13 08:26:58 +02:00
endpoint.h
fcp.c ALSA: usb: fcp: Use USB API functions rather than constants 2025-05-16 09:57:00 +02:00
fcp.h ALSA: FCP: Add Focusrite Control Protocol driver 2025-01-18 12:00:38 +01:00
format.c ALSA: usb-audio: Improve filtering of sample rates on Focusrite devices 2025-06-30 09:11:39 +02:00
format.h
helper.c ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
helper.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
implicit.c ALSA: usb-audio: Add implicit feedback quirk for RODE AI-1 2025-06-02 16:50:04 +02:00
implicit.h
Kconfig ALSA: usb-audio: qcom: fix USB_XHCI dependency 2025-05-23 14:38:50 +02:00
Makefile ALSA: usb-audio: qcom: Introduce QC USB SND offloading support 2025-04-11 13:02:32 +02:00
media.c
media.h
midi.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
midi.h
midi2.c ALSA: usb-audio: Update UMP group attributes for GTB blocks, too 2024-08-07 11:31:38 +02:00
midi2.h
mixer_maps.c ALSA: usb-audio: Rename ALSA kcontrol PCM and PCM1 for the KTMicro sound card 2025-06-13 10:18:10 +02:00
mixer_quirks.c ALSA: usb-audio: Rename Pioneer mixer channel controls 2025-05-16 09:54:04 +02:00
mixer_quirks.h
mixer_s1810c.c
mixer_s1810c.h
mixer_scarlett.c ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
mixer_scarlett.h
mixer_scarlett2.c ALSA: scarlett2: Add retry on -EPROTO from scarlett2_usb_tx() 2025-08-15 16:39:33 +02:00
mixer_scarlett2.h
mixer_us16x08.c ALSA: usb: mixer_us16x08: use snd_kcontrol_chip() 2025-05-08 11:53:35 +02:00
mixer_us16x08.h
mixer.c ALSA: usb: mixer: use snd_kcontrol_chip() 2025-05-08 11:53:34 +02:00
mixer.h ALSA: usb-audio: Add input value sanity checks for standard types 2024-08-06 18:27:08 +02:00
pcm.c ALSA: usb-audio: Prevent starting of audio stream if in use 2025-04-11 13:02:30 +02:00
pcm.h ALSA: usb-audio: Export USB SND APIs for modules 2025-04-11 13:02:30 +02:00
power.c ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
power.h ALSA: usb-audio: Support multiple control interfaces 2024-08-12 16:17:46 +02:00
proc.c
proc.h
quirks-table.h ALSA: usb-audio: Add Pioneer DJ DJM-V10 support 2025-04-22 15:00:48 +02:00
quirks.c ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock 2025-06-02 16:42:49 +02:00
quirks.h
stream.c ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3() 2025-06-23 17:08:56 +02:00
stream.h
usbaudio.h ALSA: usb-audio: Make mic volume workarounds globally applicable 2024-11-05 13:03:52 +01:00
validate.c