This patchset is motivated by the addition of Multi Function Processing Units (MFPU) to an UAC3 topology where there could be signal processing algorithims applied to the audio signal.
The MFPUs themself don't provide any useful control, they offer a description of what algorithims it supports and it is for Selector Units to take the bypass control of the dry (unprocessed) signal and the modified one. Moreover, Up/Down mixers may be needed in this topologies to control which outputs of the logical output cluster from the MFPU are to be passed as the final modified audio signal.
These patches add support for Selector Units and Processing units for UAC3 and adds a couple fixes that I found while implemeting them:
1) Defualt naming of the virtual terminals was not accurate due to codes overlap between the three UAC standards. 2) UAC2 parsing of processing units was using UAC1 controls bitmap.
Based on: next-20180711
Jorge Sanjuan (5): ALSA: usb-audio: Add support for Selector Units in UAC3 ALSA: usb-audio: Processing Unit controls parsing in UAC2 ALSA: usb-audio: Add support for Processing Units in UAC3 ALSA: usb-audio: Unify virtual type units type to UAC3 values ALSA: usb-audio: Tidy up logic for Processing Unit min/max values
include/linux/usb/audio-v3.h | 15 +++ include/uapi/linux/usb/audio.h | 49 ++++++++-- sound/usb/mixer.c | 212 +++++++++++++++++++++++++++++++++-------- 3 files changed, 225 insertions(+), 51 deletions(-)