]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ALSA: usb-audio: enable support for Presonus Studio 1824c within 1810c file
authorAmin Dandache <amin.dandache@gmail.com>
Thu, 27 Feb 2025 13:30:27 +0000 (14:30 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 28 Feb 2025 09:33:51 +0000 (10:33 +0100)
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>
sound/usb/format.c
sound/usb/mixer_quirks.c
sound/usb/quirks.c

index 6049d957694ca610eac3463e87c0c0e32cd98207..9d32b21a5fbb0264cd2ab43d7a75c4c07922529a 100644 (file)
@@ -384,6 +384,10 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
                        if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
                            !s1810c_valid_sample_rate(fp, rate))
                                goto skip_rate;
+                       /* Filter out invalid rates on Presonus Studio 1824c */
+                       if (chip->usb_id == USB_ID(0x194f, 0x010d) &&
+                           !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 ed6127b0389fff394f73adad687421fca2f578c4..79c8c1540ee201da75d1e63fb3181dd10ae1815f 100644 (file)
@@ -4119,6 +4119,9 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
        case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
                err = snd_sc1810_init_mixer(mixer);
                break;
+       case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */
+               err = snd_sc1810_init_mixer(mixer);
+               break;
        case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
                err = snd_bbfpro_controls_create(mixer);
                break;
index a97efb7b131ea2daab38c08574014b40b0731219..dea8bfaa7e91937e6632c9d599bc8c9ab9819c06 100644 (file)
@@ -1599,7 +1599,9 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
        /* presonus studio 1810c: skip altsets incompatible with device_setup */
        if (chip->usb_id == USB_ID(0x194f, 0x010c))
                return s1810c_skip_setting_quirk(chip, iface, altno);
-
+       /* presonus studio 1824c: skip altsets incompatible with device_setup */
+       if (chip->usb_id == USB_ID(0x194f, 0x010d))
+               return s1810c_skip_setting_quirk(chip, iface, altno);
 
        return 0;
 }