Hi everyone,
Last week on #alsa I found yet another person who's having problems with snd-usb-audio not supporting UAC2 Feature units. Worse still the relevant part of the descriptor is incomplete according to lsusb so while the device is in the main compliant the feature unit has a descriptor that lsusb thinks is too short and I suspect isn't compliant (so even if we were trying to parse feature units it'd blow up here)
AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) Warning: Descriptor too short bUnitID 51 wExtensionCode 0 bNrPins 1 baSourceID( 0) 2 bNrChannels 4 wChannelConfig 0 iChannelNames 3 bmControls 0x00 iExtension 26
(a full lsusb -v is here: http://pastebin.ubuntu.com/1451668/) So while we could submit another quirk for this to ignore the mixer for now. and this would probably make the device "work" without access to the feature unit is it sensible? (we verified that modifying martin's quirk above (just changing vid:pid) was enough to make the device "work")
Note also this is the problem for the eleven rack as discussed in April http://mailman.alsa-project.org/pipermail/alsa-devel/2012-April/050899.html
How difficult would it be to have the mixer/control code just "skip" feature units rather than the current failure mode? or default to ignore the interface if the control parser fails but continue to remaining interfaces? I've tried understanding this code. but my C foo is lacking.
Grant.