]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: usb-audio: add Studio 1824 support
authorFrederic Popp <frederic.l.popp@t-online.de>
Sun, 8 Mar 2026 15:22:16 +0000 (16:22 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 9 Mar 2026 12:00:57 +0000 (13:00 +0100)
Adapt the already implemented support for the Studio 1824c
audio interface to the predecessor Studio 1824.

Basically just a change adding the
different hardware ID in the relevant places.

Tested as much as possible.
All implemented functionality seemingly works.

Signed-off-by: Frederic Popp <frederic.l.popp@t-online.de>
Link: https://patch.msgid.link/20260308153334.50433-2-frederic.l.popp@t-online.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/format.c
sound/usb/mixer_quirks.c
sound/usb/mixer_s1810c.c

index 1207c507882add52322973d7922cd699049eaeaa..030b4307927a248888cffa63b6e4ca5340485285 100644 (file)
@@ -455,6 +455,10 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
                        if (chip->usb_id == USB_ID(0x194f, 0x010d) &&
                            !s1810c_valid_sample_rate(fp, rate))
                                goto skip_rate;
+                       /* Filter out invalid rates on Presonus Studio 1824 */
+                       if (chip->usb_id == USB_ID(0x194f, 0x0107) &&
+                           !s1810c_valid_sample_rate(fp, rate))
+                               goto skip_rate;
 
                        /* Filter out invalid rates on Focusrite devices */
                        if (USB_ID_VENDOR(chip->usb_id) == 0x1235 &&
index e97814dc90259b09d727422ece79c209fe484973..a01510a855c247504cc0ed3ea596aeddb9187460 100644 (file)
@@ -4477,6 +4477,9 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
        case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */
                err = snd_sc1810_init_mixer(mixer);
                break;
+       case USB_ID(0x194f, 0x0107): /* Presonus Studio 1824 */
+               err = snd_sc1810_init_mixer(mixer);
+               break;
        case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
                err = snd_bbfpro_controls_create(mixer);
                break;
index 7eac7d1bce6477a6a356927d9948feb020a58af6..2e5a8d37ec57805c11da2e0a528e029bf410b38d 100644 (file)
@@ -362,6 +362,7 @@ static int snd_s1810c_init_mixer_maps(struct snd_usb_audio *chip)
                snd_s1810c_send_ctl_packet(dev, a, 3, 0, 1, MIXER_LEVEL_0DB);
                break;
 
+       case USB_ID(0x194f, 0x0107): /* 1824 */
        case USB_ID(0x194f, 0x010d): /* 1824c */
                /* Set all output faders to unity gain */
                a = SC1810C_SEL_OUTPUT;
@@ -685,6 +686,7 @@ int snd_sc1810_init_mixer(struct usb_mixer_interface *mixer)
                        return ret;
 
                break;
+       case USB_ID(0x194f, 0x0107): /* Presonus Studio 1824 */
        case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */
                ret = snd_s1810c_switch_init(mixer, &snd_s1824c_mono_sw);
                if (ret < 0)