On Mon, 19 Mar 2018 02:46:03 +0100, Ruslan Bilovol wrote:
Recently released USB Audio Class 3.0 specification introduces many significant changes comparing to previous versions, like
- new Power Domains, support for LPM/L1
- new Cluster descriptor
- changed layout of all class-specific descriptors
- new High Capability descriptors
- New class-specific String descriptors
- new and removed units
- additional sources for interrupts
- removed Type II Audio Data Formats
- ... and many other things (check spec)
It also provides backward compatibility through multiple configurations, as well as requires mandatory support for BADD (Basic Audio Device Definition) on each ADC3.0 compliant device
This patch adds initial support of UAC3 specification that is enough for Generic I/O Profile (BAOF, BAIF) device support from BADD document.
Signed-off-by: Ruslan Bilovol ruslan.bilovol@gmail.com
Most code changes look fairly straightforward, and not breaking the UAC1/UAC2 stuff. So the stuff is good enough through a quick glance.
I suppose it's better to merge via sound git tree. Greg, could you check include/linux/usb/* (and uapi) stuff and give an ack if it's OK?
In anyway, I'll check the specs and compare with the definitions in this patch.
And, just minor nitpicking regarding the code change:
it's better to drop the parentheses in a line like below
if ((protocol == UAC_VERSION_1) || (protocol == UAC_VERSION_2)) {
that is, if (protocol == UAC_VERSION_1 || protocol == UAC_VERSION_2) {
The indentation became so deep in some functions, and it's better to refactor, but this can be done later once after all implementations are finished.
thanks,
Takashi