]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: usb-audio: Add quirk for PreSonus AudioBox USB
authorAbhinav Mahadevan <abhi220204@gmail.com>
Fri, 10 Apr 2026 14:33:35 +0000 (20:03 +0530)
committerTakashi Iwai <tiwai@suse.de>
Fri, 10 Apr 2026 15:05:47 +0000 (17:05 +0200)
The PreSonus AudioBox USB (0x194f:0x0301) only supports S24_3LE
format for both playback and capture. It does not support S16_LE
despite being a USB full-speed device. Add explicit format quirks
for both the playback (interface 2) and capture (interface 3)
interfaces to ensure correct format negotiation.

Signed-off-by: Abhinav Mahadevan <abhi220204@gmail.com>
Link: https://patch.msgid.link/20260410143335.5974-1-abhi220204@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/quirks-table.h

index b6dfe3b63c672b17c14b1c7bc8cb00bce96e0898..803e03d4d77b88d9c305a0ba06d42f2fcdd0adb8 100644 (file)
@@ -2652,6 +2652,54 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                }
        }
 },
+{
+       /*
+        * The AudioBox USB advertises S24_3LE as the only supported format
+        * for both playback and capture. It does not support S16_LE despite
+        * being a USB full-speed device.
+        */
+       USB_DEVICE(0x194f, 0x0301),
+       QUIRK_DRIVER_INFO {
+               .vendor_name = "PreSonus",
+               .product_name = "AudioBox USB",
+               QUIRK_DATA_COMPOSITE {
+                       { QUIRK_DATA_IGNORE(0) },
+                       {
+                               QUIRK_DATA_AUDIOFORMAT(2) {
+                                       .formats = SNDRV_PCM_FMTBIT_S24_3LE,
+                                       .channels = 2,
+                                       .iface = 2,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .attributes = 0,
+                                       .endpoint = 0x01,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC,
+                                       .rates = SNDRV_PCM_RATE_44100 |
+                                                SNDRV_PCM_RATE_48000,
+                                       .rate_min = 44100,
+                                       .rate_max = 48000,
+                               }
+                       },
+                       {
+                               QUIRK_DATA_AUDIOFORMAT(3) {
+                                       .formats = SNDRV_PCM_FMTBIT_S24_3LE,
+                                       .channels = 2,
+                                       .iface = 3,
+                                       .altsetting = 1,
+                                       .altset_idx = 1,
+                                       .attributes = 0,
+                                       .endpoint = 0x82,
+                                       .ep_attr = USB_ENDPOINT_XFER_ISOC,
+                                       .rates = SNDRV_PCM_RATE_44100 |
+                                                SNDRV_PCM_RATE_48000,
+                                       .rate_min = 44100,
+                                       .rate_max = 48000,
+                               }
+                       },
+                       QUIRK_COMPOSITE_END
+               }
+       }
+},
 #endif /* disabled */
 
 {