* MiniDSP USBStreamer / UAC2 / Alsamixer bogus
@ 2014-05-22 17:36 Jan Baumgart
2014-05-23 10:10 ` Daniel Mack
2014-05-23 17:18 ` Daniel Mack
0 siblings, 2 replies; 4+ messages in thread
From: Jan Baumgart @ 2014-05-22 17:36 UTC (permalink / raw)
To: alsa-devel
Hi there,
Today I received a MiniDSP USBStreamer Box.
(http://www.minidsp.com/products/usb-audio-interface/usbstreamer-box)
It's an USB to ADAT optical interface and claims to be UAC2 compliant.
It's based on a XMOS L2 core.
Audio worked out of the box!
8-Channels In & Out :)
But the alsamixer controls seem to be bogus.
Here's a screenshot of qasmixer:
icem.folkwang-uni.de/~jb/geheim/usbstreamer_qasmixer.png
All controls are named "USBStreamer Clock Selector"...
The first control always snaps back to zero.
The following 8 Multi-Controls don't have any effect.
Only the last two Input/Ouput Master controls work as expected.
The most important problem is that I cannot set the clock source:
> amixer -D hw:USBStreamer cset numid=7 1
numid=7,iface=MIXER,name='USBStreamer Clock Selector'
; type=ENUMERATED,access=rw------,values=1,items=2
; Item #0 'USBStreamer Internal Clock'
; Item #1 'USBStreamer ADAT Clock'
: values=0
The value always stays 0 (internal).
On OS X 10.8.5 without installing any driver I see 8 Input/Output
Volume Sliders + Master Sliders and a working Clock Selector.
I'm running debian testing with a 3.13-1-amd64 stock kernel.
Any ideas? I've attached lsusb and amixer infos below...
Cheers & Thanks,
Jan
_________________________________________________
> amixer -D hw:USBStreamer controls
numid=7,iface=MIXER,name='USBStreamer Clock Selector'
numid=8,iface=MIXER,name='USBStreamer Clock Selector Capture Switch'
numid=9,iface=MIXER,name='USBStreamer Clock Selector Capture
Switch',index=1
numid=10,iface=MIXER,name='USBStreamer Clock Selector Capture Volume'
numid=11,iface=MIXER,name='USBStreamer Clock Selector Capture
Volume',index=1
numid=3,iface=MIXER,name='USBStreamer Clock Selector Playback Switch'
numid=4,iface=MIXER,name='USBStreamer Clock Selector Playback
Switch',index=1
numid=5,iface=MIXER,name='USBStreamer Clock Selector Playback Volume'
numid=6,iface=MIXER,name='USBStreamer Clock Selector Playback
Volume',index=1
numid=2,iface=PCM,name='Capture Channel Map'
numid=1,iface=PCM,name='Playback Channel Map'
______________________________________________________________-
> amixer -D hw:USBStreamer contents
numid=7,iface=MIXER,name='USBStreamer Clock Selector'
; type=ENUMERATED,access=rw------,values=1,items=2
; Item #0 'USBStreamer Internal Clock'
; Item #1 'USBStreamer ADAT Clock'
: values=0
numid=8,iface=MIXER,name='USBStreamer Clock Selector Capture Switch'
; type=BOOLEAN,access=rw------,values=8
: values=on,on,on,on,on,on,on,on
numid=9,iface=MIXER,name='USBStreamer Clock Selector Capture
Switch',index=1
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=10,iface=MIXER,name='USBStreamer Clock Selector Capture Volume'
; type=INTEGER,access=rw---R--,values=8,min=0,max=255,step=0
: values=255,255,255,255,255,255,255,255
| dBminmax-min=-127.50dB,max=0.00dB
numid=11,iface=MIXER,name='USBStreamer Clock Selector Capture
Volume',index=1
; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
: values=255
| dBminmax-min=-127.50dB,max=0.00dB
numid=3,iface=MIXER,name='USBStreamer Clock Selector Playback Switch'
; type=BOOLEAN,access=rw------,values=8
: values=on,on,on,on,on,on,on,on
numid=4,iface=MIXER,name='USBStreamer Clock Selector Playback
Switch',index=1
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=5,iface=MIXER,name='USBStreamer Clock Selector Playback Volume'
; type=INTEGER,access=rw---R--,values=8,min=0,max=255,step=0
: values=255,255,255,255,255,255,255,255
| dBminmax-min=-127.50dB,max=0.00dB
numid=6,iface=MIXER,name='USBStreamer Clock Selector Playback
Volume',index=1
; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
: values=255
| dBminmax-min=-127.50dB,max=0.00dB
numid=2,iface=PCM,name='Capture Channel Map'
; type=INTEGER,access=r----R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| | chmap-fixed=FL,FR,FC,LFE,RL,RR,FLC,FRC
numid=1,iface=PCM,name='Playback Channel Map'
; type=INTEGER,access=r----R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| | chmap-fixed=FL,FR,FC,LFE,RL,RR,FLC,FRC
______________________________________________________________
> lsusb -s 3:10 -v
Bus 003 Device 010: ID 2752:0016
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x2752
idProduct 0x0016
bcdDevice 5.30
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 2
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 524
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 3
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 2
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 257
bmControl 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 0x03 Internal programmable Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 9
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 43
bmAttributes 0x00 External Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 11
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bUnitID 40
bNrInPins 2
baCSourceID( 0) 41
baCSourceID( 1) 43
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 8
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 8
bmChannelConfig 0x00000000
bmControls 0x0000
iChannelNames 15
iTerminal 6
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 8
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 42
AudioControl Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 51
bmaControls( 0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 1) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 2) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 3) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 4) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 5) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 6) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 7) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 8) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 20
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 10
bCSourceID 40
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bCSourceID 40
bNrChannels 8
bmChannelConfig 0x00000000
bmControls 0x0000
iChannelNames 33
iTerminal 0
AudioControl Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 9 (EXTENSION_UNIT)
Warning: Descriptor too short
bUnitID 52
wExtensionCode 0
bNrPins 1
baSourceID( 0) 1
bNrChannels 8
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 42
AudioControl Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 52
bmaControls( 0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 1) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 2) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 3) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 4) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 5) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 6) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 7) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 8) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 22
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 11
bCSourceID 40
bmControls 0x0000
iTerminal 7
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 9 (EXTENSION_UNIT)
Warning: Descriptor too short
bUnitID 50
wExtensionCode 0
bNrPins 2
baSourceID( 0) 2
baSourceID( 1) 1
bNrChannels 18
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 32
AudioControl Interface Descriptor:
bLength 32
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 60
bNrPins 1
baSourceID( 0) 50
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 49
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
bmControls 00
iMixer 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0006 1x 6 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 15
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 15
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 33
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 4
bmChannelConfig 0x00000000
iChannelNames 33
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 1
iInterface 12
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 250 milliseconds
wTransferSize 64 bytes
bcdDFUVersion 1.10
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 524
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 3
bFunctionClass 1 Audio
bFunctionSubClass 0
bFunctionProtocol 32
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 32
iInterface 2
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 2.00
bCategory 8
wTotalLength 257
bmControl 0x00
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 41
bmAttributes 0x03 Internal programmable Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 9
AudioControl Interface Descriptor:
bLength 8
bDescriptorType 36
bDescriptorSubtype 10 (CLOCK_SOURCE)
bClockID 43
bmAttributes 0x00 External Clock
bmControls 0x07
Clock Frequency Control (read/write)
Clock Validity Control (read-only)
bAssocTerminal 0
iClockSource 11
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 11 (CLOCK_SELECTOR)
bUnitID 40
bNrInPins 2
baCSourceID( 0) 41
baCSourceID( 1) 43
bmControls 0x03
Clock Selector Control (read/write)
iClockSelector 8
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bCSourceID 40
bNrChannels 8
bmChannelConfig 0x00000000
bmControls 0x0000
iChannelNames 15
iTerminal 6
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 8
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 42
AudioControl Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 10
bSourceID 51
bmaControls( 0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 1) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 2) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 3) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 4) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 5) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 6) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 7) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 8) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 20
wTerminalType 0x0301 Speaker
bAssocTerminal 0
bSourceID 10
bCSourceID 40
bmControls 0x0000
iTerminal 0
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bCSourceID 40
bNrChannels 8
bmChannelConfig 0x00000000
bmControls 0x0000
iChannelNames 33
iTerminal 0
AudioControl Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 9 (EXTENSION_UNIT)
Warning: Descriptor too short
bUnitID 52
wExtensionCode 0
bNrPins 1
baSourceID( 0) 1
bNrChannels 8
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 42
AudioControl Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 11
bSourceID 52
bmaControls( 0) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 1) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 2) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 3) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 4) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 5) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 6) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 7) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
bmaControls( 8) 0x0000000f
Mute Control (read/write)
Volume Control (read/write)
iFeature 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 22
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 11
bCSourceID 40
bmControls 0x0000
iTerminal 7
AudioControl Interface Descriptor:
bLength 17
bDescriptorType 36
bDescriptorSubtype 9 (EXTENSION_UNIT)
Warning: Descriptor too short
bUnitID 50
wExtensionCode 0
bNrPins 2
baSourceID( 0) 2
baSourceID( 1) 1
bNrChannels 18
wChannelConfig 0
iChannelNames 3
bmControls 0x00
iExtension 32
AudioControl Interface Descriptor:
bLength 32
bDescriptorType 36
bDescriptorSubtype 4 (MIXER_UNIT)
bUnitID 60
bNrPins 1
baSourceID( 0) 50
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 49
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
bmControls 00
iMixer 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0006 1x 6 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 15
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 4
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 15
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 17
Transfer Type Isochronous
Synch Type None
Usage Type Feedback
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 8
bmChannelConfig 0x00000000
iChannelNames 33
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 32
iInterface 5
AudioStreaming Interface Descriptor:
bLength 16
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 22
bmControls 0x00
bFormatType 1
bmFormats 0x00000001
PCM
bNrChannels 4
bmChannelConfig 0x00000000
iChannelNames 33
AudioStreaming Interface Descriptor:
bLength 6
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bSubslotSize 4
bBitResolution 24
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 1
AudioControl Endpoint Descriptor:
bLength 8
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bmControls 0x00
bLockDelayUnits 2 Decoded PCM samples
wLockDelay 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 1
iInterface 12
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 7
Will Not Detach
Manifestation Tolerant
Upload Supported
Download Supported
wDetachTimeout 250 milliseconds
wTransferSize 64 bytes
bcdDFUVersion 1.10
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: MiniDSP USBStreamer / UAC2 / Alsamixer bogus
2014-05-22 17:36 MiniDSP USBStreamer / UAC2 / Alsamixer bogus Jan Baumgart
@ 2014-05-23 10:10 ` Daniel Mack
2014-05-23 17:18 ` Daniel Mack
1 sibling, 0 replies; 4+ messages in thread
From: Daniel Mack @ 2014-05-23 10:10 UTC (permalink / raw)
To: Jan Baumgart, alsa-devel
Hi Jan,
On 05/22/2014 07:36 PM, Jan Baumgart wrote:
> Today I received a MiniDSP USBStreamer Box.
> (http://www.minidsp.com/products/usb-audio-interface/usbstreamer-box)
> It's an USB to ADAT optical interface and claims to be UAC2 compliant.
> It's based on a XMOS L2 core.
>
> Audio worked out of the box!
> 8-Channels In & Out :)
Nice!
> But the alsamixer controls seem to be bogus.
> Here's a screenshot of qasmixer:
> icem.folkwang-uni.de/~jb/geheim/usbstreamer_qasmixer.png
>
> All controls are named "USBStreamer Clock Selector"...
That's strange indeed.
> The first control always snaps back to zero.
This is likely a separate problem.
> The following 8 Multi-Controls don't have any effect.
> Only the last two Input/Ouput Master controls work as expected.
Could you read through Documentation/usb/usbmon.txt and follow the
instructions there? Then capture the packets that are transmitted when
you try to set the ALSA controls with amixer. I'd like to know whether
the right units are addressed at all. Make sure to denote in the trace
which amixer control you set, and which traffic resulted from that.
Also, a snapping back control means that the driver got an interrupt
from the device. The corresponding packet should also be visible in the
dump.
> On OS X 10.8.5 without installing any driver I see 8 Input/Output
> Volume Sliders + Master Sliders and a working Clock Selector.
Ok, so that means it's definitely a bug on our side.
> I'm running debian testing with a 3.13-1-amd64 stock kernel.
You can already build a kernel from today's sound master git, as this is
the base for new patches:
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/
> Any ideas? I've attached lsusb and amixer infos below...
Excellent - thanks a bunch for such detailed information!
I'll hope to find some time soon to comprehend what's going on.
Thanks,
Daniel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: MiniDSP USBStreamer / UAC2 / Alsamixer bogus
2014-05-22 17:36 MiniDSP USBStreamer / UAC2 / Alsamixer bogus Jan Baumgart
2014-05-23 10:10 ` Daniel Mack
@ 2014-05-23 17:18 ` Daniel Mack
2014-05-24 10:22 ` Jan Baumgart
1 sibling, 1 reply; 4+ messages in thread
From: Daniel Mack @ 2014-05-23 17:18 UTC (permalink / raw)
To: Jan Baumgart, alsa-devel
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: MiniDSP USBStreamer / UAC2 / Alsamixer bogus
2014-05-23 17:18 ` Daniel Mack
@ 2014-05-24 10:22 ` Jan Baumgart
0 siblings, 0 replies; 4+ messages in thread
From: Jan Baumgart @ 2014-05-24 10:22 UTC (permalink / raw)
To: Daniel Mack, alsa-devel
Hi Daniel,
Thanks for the guidance!
I don't have the unit at hand right now, but will give it a try next
week and see what I can find...
All the best,
Jan
On 5/23/14 7:18 PM, Daniel Mack wrote:
> 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
>
--
Jan Baumgart
Technischer Mitarbeiter
Hochschule für Musik und Darstellende Kunst
Eschersheimer Landstr. 29-39
60322 Frankfurt am Main
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-05-24 10:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-22 17:36 MiniDSP USBStreamer / UAC2 / Alsamixer bogus Jan Baumgart
2014-05-23 10:10 ` Daniel Mack
2014-05-23 17:18 ` Daniel Mack
2014-05-24 10:22 ` Jan Baumgart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox