ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20
authorChris J Arges <chris.j.arges@canonical.com>
Wed, 12 Nov 2014 18:07:02 +0000 (12:07 -0600)
committerTakashi Iwai <tiwai@suse.de>
Thu, 13 Nov 2014 06:32:39 +0000 (07:32 +0100)
commit76b188c4b370876018e3a778ec11a94a5316dbe4
tree66068fe3d0d9e90c51f28141a31ae998c773f1d6
parenteef90451605d79a5703756505087e0ef16da9077
ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20

This code contains the Scarlett mixer interface code that was originally
written by Tobias Hoffman and Robin Gareus. Because the device doesn't
properly implement UAC2 this code adds a mixer quirk for the device.

Changes from the original code include removing the metering code along with
dead code and comments. Compiler warnings were fixed. The code to initialize
the sampling rate was causing a crash this was fixed as discussed on the
mailing list. Error, and info messages were convered to dev_err and dev_info
interfaces. The custom scarlett_mixer_elem_info struct was replaced with the
more generic usb_mixer_elem_info to be able to recycle more code from mixer.c.

This patch also makes additional modifications based on upstream comments.
Individual control creation functions are removed and a generic
function is no used. Macros for function calls are removed to improve
readability. Hardcoded control initialization is removed. Save to HW
functionality has been removed. Strings for enums are created dynamically for
the mixer. Strings used for controls are now SNDRV_CTL_ELEM_ID_NAME_MAXLEN
length.

Signed-off-by: Chris J Arges <chris.j.arges@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/Makefile
sound/usb/mixer_quirks.c
sound/usb/mixer_scarlett.c [new file with mode: 0644]
sound/usb/mixer_scarlett.h [new file with mode: 0644]