[PATCH v3] USB Audio Device Class 3.0 support

From: Ruslan Bilovol
Date: Tue Mar 20 2018 - 20:04:28 EST


Hi Takashi,

This patch adds initial USB Audio Device Class 3.0 [1]
support to the ALSA that we discussed at ELCE.

The patch was tested with UAC3 gadget [2] that I posted
to USB mailing list before. It is good for working with
BADD device which implements such topologies like
BAIF (Basic Audio Input Functions), BAOF (Basic Audio
Output Functions) or compbination of both.

UAC3 spec has changed descriptors laout and many other
codes comparing to UAC2 spec, thus making reuse of existing
sources impossible or quite complex.

There are still many areas of improvement, as this patch
doesn't have UAC3 Mixer Unit support nor some new features
like Power Management

I tested this with BeagleBone Black as UAC3 gadget device.

[1] http://www.usb.org/developers/docs/devclass_docs/USB_Audio_v3.0.zip
[2] http://www.spinics.net/lists/linux-usb/msg162482.html

v3 changes:
- dropped audioformat quirks patch (already accepted)
- addressed coding style requested changes

v2 changes:
- moved audioformat quirks to quirks.c
- addressed many comments from Pierre-Louis Bossart
- reorganized audio-v3.h
- added more UAC3 channel relationship definitions


Ruslan Bilovol (1):
ALSA: usb: initial USB Audio Device Class 3.0 support

include/linux/usb/audio-v2.h | 4 +-
include/linux/usb/audio-v3.h | 395 +++++++++++++++++++++++++++++++++++++++++
include/uapi/linux/usb/audio.h | 1 +
sound/usb/card.c | 7 +-
sound/usb/card.h | 2 +-
sound/usb/clock.c | 228 +++++++++++++++++++++---
sound/usb/clock.h | 4 +-
sound/usb/format.c | 91 ++++++++--
sound/usb/format.h | 6 +-
sound/usb/mixer.c | 337 +++++++++++++++++++++++------------
sound/usb/stream.c | 365 +++++++++++++++++++++++++++++++++----
11 files changed, 1246 insertions(+), 194 deletions(-)
create mode 100644 include/linux/usb/audio-v3.h

--
1.9.1