[PATCH] ALSA: usb-audio: Apply boot quirk for Behringer models generically

From: Takashi Iwai

Date: Tue Sep 29 2026 - 08:36:05 EST


Jan reported that a few Behringer devices became broken since the
recent optimization to avoid usb_string() call at probe time at the
commit b364a0d23cae ("ALSA: usb-audio: Use strings in struct usb_dev
for manufacturer & co"). Interestingly, the devices seem requiring
the explicit descriptor read at probing time, and the optimization
above dropped it.

There is already a boot quirk for another model, Behringer CM1A
(1397:1234), that adds a device descriptor read, and this seems
working for them, too. As the quirk is safe and cheap, just apply the
same boot quirk to all Behringer devices for avoiding the pitfall
again.

Fixes: b364a0d23cae ("ALSA: usb-audio: Use strings in struct usb_dev for manufacturer & co")
Reported-by: Jan Lentfer <jan.lentfer@xxxxxx>
Closes: https://lore.kernel.org/e7087d42-5e74-4d85-b1c5-b11eff235d41@xxxxxx
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---

This is a revised solution from the previous patch
https://lore.kernel.org/20260929120309.1460348-1-tiwai@xxxxxxx

sound/usb/quirks.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 1c248075c48e..9207504e9b82 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1784,13 +1784,15 @@ int snd_usb_apply_boot_quirk_once(struct usb_device *dev,
switch (id) {
case USB_ID(0x07fd, 0x0008): /* MOTU M Series, 1st hardware version */
return snd_usb_motu_m_series_boot_quirk(dev);
- case USB_ID(0x1397, 0x1234): /* Behringer CM1A */
- return snd_usb_cm1a_boot_quirk(dev);
case USB_ID(0x2717, 0xd005): /* Xiaomi audio connector */
snd_usb_xiaomi_boot_quirk(dev);
return 0;
}

+ /* Behringer devices may need explicit device descriptor read at boot */
+ if (USB_ID_VENDOR(id) == 0x1397)
+ return snd_usb_cm1a_boot_quirk(dev);
+
return 0;
}

--
2.55.0