• Chris J Arges's avatar
    ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20 · 76b188c4
    Chris J Arges authored
    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: default avatarChris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    76b188c4
mixer_scarlett.c 27.1 KB