Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: usb-audio: enable support for Presonus Studio 1824c within 1810c file

This patch adds support for Presonus Studio 1824c, a usb interface
that's UAC2 compliant and it is enabled by identifying the device
ID 194f:010d and works with the code brought in by the 1810c change from
Nick Kossifidis in 2020-02-15.

More infos on the card:
https://www.presonus.com/products/Studio-1824c

Signed-off-by: Amin Dandache <amin.dandache@gmail.com>
Link: https://patch.msgid.link/20250227133027.21148-1-git@amin85.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by

Amin Dandache and committed by
Takashi Iwai
08056455 e747104c

+10 -1
+4
sound/usb/format.c
··· 384 384 if (chip->usb_id == USB_ID(0x194f, 0x010c) && 385 385 !s1810c_valid_sample_rate(fp, rate)) 386 386 goto skip_rate; 387 + /* Filter out invalid rates on Presonus Studio 1824c */ 388 + if (chip->usb_id == USB_ID(0x194f, 0x010d) && 389 + !s1810c_valid_sample_rate(fp, rate)) 390 + goto skip_rate; 387 391 388 392 /* Filter out invalid rates on Focusrite devices */ 389 393 if (USB_ID_VENDOR(chip->usb_id) == 0x1235 &&
+3
sound/usb/mixer_quirks.c
··· 4119 4119 case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */ 4120 4120 err = snd_sc1810_init_mixer(mixer); 4121 4121 break; 4122 + case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */ 4123 + err = snd_sc1810_init_mixer(mixer); 4124 + break; 4122 4125 case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */ 4123 4126 err = snd_bbfpro_controls_create(mixer); 4124 4127 break;
+3 -1
sound/usb/quirks.c
··· 1599 1599 /* presonus studio 1810c: skip altsets incompatible with device_setup */ 1600 1600 if (chip->usb_id == USB_ID(0x194f, 0x010c)) 1601 1601 return s1810c_skip_setting_quirk(chip, iface, altno); 1602 - 1602 + /* presonus studio 1824c: skip altsets incompatible with device_setup */ 1603 + if (chip->usb_id == USB_ID(0x194f, 0x010d)) 1604 + return s1810c_skip_setting_quirk(chip, iface, altno); 1603 1605 1604 1606 return 0; 1605 1607 }