Skip to content

Commit 7bb0dbf

Browse files
jopdorptiwai
authored andcommitted
ALSA: usb-audio: add mixer support for Focusrite Forte
Add mixer control support for the Focusrite Forte (USB ID 0x1235:0x8010), an older USB audio interface that predates the Scarlett 2nd generation. The Forte uses UAC2_CS_MEM (bRequest=0x03) for its input controls rather than the standard UAC2_CS_CUR (0x01) used by Scarlett devices. This patch adds Forte-specific control handlers that use the correct USB protocol. Features implemented: - Input source selection (Mic/Line/Inst) for both channels - High pass filter switch - 48V phantom power switch - Phase invert switch - Pad switch - Preamp gain control (0-42 range, ~0-75dB) - Matrix mixer controls (6 inputs x 4 outputs) - Output volume and mute controls The device is registered via mixer_quirks.c and uses the existing mixer_scarlett.c infrastructure with Forte-specific additions. Credit: This work builds on prior reverse-engineering by alastair-dm. Link: https://github.com/alastair-dm/forte-mixer/wiki Link: https://github.com/alastair-dm/forte-mixer Link: https://github.com/jopdorp/forte-mixer Signed-off-by: Jegor van Opdorp <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent f2581ea commit 7bb0dbf

3 files changed

Lines changed: 461 additions & 19 deletions

File tree

sound/usb/mixer_quirks.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4417,6 +4417,9 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
44174417
err = snd_create_std_mono_table(mixer, ebox44_table);
44184418
break;
44194419

4420+
case USB_ID(0x1235, 0x8010): /* Focusrite Forte */
4421+
err = snd_forte_controls_create(mixer);
4422+
break;
44204423
case USB_ID(0x1235, 0x8012): /* Focusrite Scarlett 6i6 */
44214424
case USB_ID(0x1235, 0x8002): /* Focusrite Scarlett 8i6 */
44224425
case USB_ID(0x1235, 0x8004): /* Focusrite Scarlett 18i6 */

0 commit comments

Comments
 (0)