Hi,
On 05/22/2014 07:36 PM, Jan Baumgart wrote:
AudioControl Interface Descriptor: bLength 16 bDescriptorType 36 bDescriptorSubtype 9 (EXTENSION_UNIT) Warning: Descriptor too short
Hmm, lsusb is right here - bLength should be 16+p ...
bUnitID 51 wExtensionCode 0 bNrPins 1
... where p is this value: 1.
baSourceID( 0) 2 bNrChannels 8 wChannelConfig 0 iChannelNames 3 bmControls 0x00 iExtension 42
Hence, the iExtension value is wrong, ...
AudioControl Interface Descriptor: bLength 42
because it actually is bLength of the next descriptor. So there's definitely a problem in the USB descriptors, I'm just not sure how we should deal with that.
I'm also not entirely sure if that explains your control name trouble. If you're interested in debugging this, have a look at the function sound/usb/mixer.c, function build_audio_procunit(), especially the lower half where we try to determine a nice name for the new control. You could start dumping the variable 'nameid' and see what it contains.
Also, this device reports strings to describe the channel names (iChannelNames), which the driver currently doesn't care about. It might be worth fetching them and see what they contain. On the other hand, ALSA doesn't allow us to provide names for individual sub-controls (for each of the 8 mixer values inside one control).
Are you up for a little trial and error? I doubt that this will fix your clock selector trouble though, but for that, the usbmon traces should give a hint.
Best regards, Daniel