Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* 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