ALSA: FCP: Add Focusrite Control Protocol driver
authorGeoffrey D. Bennett <g@b4.vu>
Thu, 16 Jan 2025 17:47:38 +0000 (04:17 +1030)
committerTakashi Iwai <tiwai@suse.de>
Sat, 18 Jan 2025 11:00:38 +0000 (12:00 +0100)
commit46757a3e7d50dac923888e7fbe68377736f13c70
tree22641c1e25c8d068d4523c816a700f7ce0dce142
parentbb5f86ea50ffb292f42eb1ebdb99991d5c5ac3ba
ALSA: FCP: Add Focusrite Control Protocol driver

Add a new kernel driver for the Focusrite Control Protocol (FCP),
which is used by Focusrite Scarlett 2nd Gen, 3rd Gen, 4th Gen, Clarett
USB, Clarett+, and Vocaster series audio interfaces. This driver
provides a user-space control interface via ALSA's hwdep subsystem.

Unlike the existing Scarlett2 driver which implements all ALSA
controls in kernel space, this new FCP driver takes a different
approach by providing a minimal kernel interface that allows a
user-space driver to send FCP commands and receive notifications. The
only control implemented in kernel space is the Level Meter, since it
requires frequent polling of volatile data.

While this driver supports all interfaces that the Scarlett2 driver
works with, it is initially enabled only for 4th Gen 16i16, 18i16,
and 18i20 interfaces that are not supported by the Scarlett2 driver.

Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
Link: https://patch.msgid.link/597741a9b1198b965561547511d3d345f91cba20.1737048528.git.g@b4.vu
Signed-off-by: Takashi Iwai <tiwai@suse.de>
MAINTAINERS
include/uapi/sound/fcp.h [new file with mode: 0644]
include/uapi/sound/tlv.h
sound/usb/Makefile
sound/usb/fcp.c [new file with mode: 0644]
sound/usb/fcp.h [new file with mode: 0644]
sound/usb/mixer_quirks.c