Commit 08056455 authored by Amin Dandache's avatar Amin Dandache Committed by Takashi Iwai
Browse files

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: default avatarAmin Dandache <amin.dandache@gmail.com>
Link: https://patch.msgid.link/20250227133027.21148-1-git@amin85.de


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e747104c
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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 &&
+3 −0
Original line number Diff line number Diff line
@@ -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;
+3 −1
Original line number Diff line number Diff line
@@ -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;
}