This is v4 of the patchset to merge what Tobias Hoffman and Robin Gareus have done to enable the Focusrite Scarlett mixers for use with ALSA.
[v3]
I have split the commits into hopefully a logical series. First the original quirk is reverted for one model of a Scarlett device. Next an additional structure is added to be able to more easily reuse usb_mixer_elem_info. After this mixer functions that were useful to this code were made public. Finally the last patch adds the necessary functions to make this mixer work.
[v4]
This version removes the per-mixer control creation functions and uses a generic function based on structure data. Macros used for control addition are removed and the plain function is used instead. Hardcoded text block is removed and macros to define strings are used instead. Hardcoded control initialization has been removed.
Chris J Arges (4): Revert "ALSA: usb-audio: Add quirk for Focusrite Scarlett ALSA: usb-audio: Add private_data pointer to usb_mixer_elem_info ALSA: usb-audio: make set_*_mix_values functions public ALSA: usb-audio: Scarlett mixer interface for 6i6, 18i6, 18i8 and 18i20
sound/usb/Makefile | 1 + sound/usb/mixer.c | 34 +- sound/usb/mixer.h | 9 + sound/usb/mixer_quirks.c | 18 +- sound/usb/mixer_scarlett.c | 1070 ++++++++++++++++++++++++++++++++++++++++++++ sound/usb/mixer_scarlett.h | 6 + sound/usb/quirks-table.h | 51 --- 7 files changed, 1113 insertions(+), 76 deletions(-) create mode 100644 sound/usb/mixer_scarlett.c create mode 100644 sound/usb/mixer_scarlett.h