This adds functionality for the Basic Audio Device (BADD) subset that is defined in the USB Audio Class 3 (UAC3). In a BADD compliant driver, all Class Specific descriptors are inferred and so they should all be generated in the *host* as the device wont expose those. This also applies to the new HIGH CAPABILITY descriptor as the GET request is not to be supported in a BADD compliant driver. The new class requires the device to have 3 usb configurations as follows: 1: Legacy Mode: UAC1 or UAC2. 2: BADD device with a prefined topology. (Minimum). 3: UAC3 device for more detailed description or more complex devices that can't be covered by the BADD profile. This patch series also includes some minor fixes to sound/usb. It has been tested with an actual UAC3 compliant device in different host machines and all configs (UAC1/2, BADD and UAC3) work. Also, this has been implemented on top of the the patch which adds UAC3 support to the usb sound card driver: commit ddd452d7b04b86fb5f9285a19ac54deca9264ac1 Author: Ruslan Bilovol <ruslan.bilovol@xxxxxxxxx> Date: Tue Nov 7 04:01:20 2017 +0200 Jorge Sanjuan (6): usb: audio: Add bi-directional terminal types. usb: audio: Fix variable length field to be variable. ALSA: usb: UAC3. Add initial mixer support. ALSA: usb: Only get AudioControl header for UAC1 class. ALSA: usb: Use Class Specific EP for UAC3 devices. ALSA: usb: ADC3: Add initial BADD spec support include/linux/usb/audio-v3.h | 2 +- include/uapi/linux/usb/audio.h | 21 +- sound/usb/Makefile | 3 +- sound/usb/badd.c | 518 +++++++++++++++++++++++++++++++++++++++++ sound/usb/badd.h | 14 ++ sound/usb/card.c | 25 +- sound/usb/mixer.c | 24 ++ sound/usb/stream.c | 165 ++++++++----- sound/usb/usbaudio.h | 1 + 9 files changed, 702 insertions(+), 71 deletions(-) create mode 100644 sound/usb/badd.c create mode 100644 sound/usb/badd.h -- 2.11.0 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel