On 11/13/2014 12:36 AM, Takashi Iwai wrote:
At Wed, 12 Nov 2014 12:06:58 -0600, Chris J Arges wrote:
This is v5 of the patchset to merge what Tobias Hoffman and Robin Gareus have done to enable the Focusrite Scarlett mixers for use with ALSA.
Already v7? :)
I applied the patch series now to for-next branch. If anything is missing, let's fix on top of that.
thanks,
Takashi
Takashi, Thank you for your patience and help reviewing and applying this. --chris j arges
[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.
[v5]
In this version, HW saving functionality has been removed in this initial patchset. Macros for function calls are removed for readability. Strings for enums are created dynamically using the info structures. String lengths for controls are now all SNDRV_CTL_ELEM_ID_NAME_MAXLEN in length.
[v6]
Removed dead variables. Made names const char * const * again. Adjusted scarlett_ctl_enum_* functions to be a bit clearer. Used strlcpy where appropriate. Properly free two dimensional array.
[v7]
Generate strings directly in enum_info function instead of dynamically allocating into another array and copying. Remove unnecessary initializations, kfrees and use kmalloc instead of kmalloc_array. Update comments to reflect current mixer functionality.
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 | 1001 ++++++++++++++++++++++++++++++++++++++++++++ sound/usb/mixer_scarlett.h | 6 + sound/usb/quirks-table.h | 51 --- 7 files changed, 1044 insertions(+), 76 deletions(-) create mode 100644 sound/usb/mixer_scarlett.c create mode 100644 sound/usb/mixer_scarlett.h
-- 2.1.3