Does anyone have any advice on how to get suitable information for debugging 
usbaudio

(I understand that boomer will use the old usb audio to start with

My device is a Tapco Link USB

(Works somewhat with oss_usb (and differently but still not correct with alsa) 
but not at all with the current sada solaris driver.

It works flawlessly under windows without any drivers. (With both altset's)

http://www.tapcoworld.com/products/linkusb/specs.html

(I suppose there is some way to dump the info from e.g A windows snooping 
program or dtrace or mdb etc etc).

(That is what happens with the ON Solaris Driver) - It does support the 24 bit 
mode using 3 bytes instead of 2 but thats the second altset.

Jan 27 16:46:42 io audiosup: [ID 785681 kern.warning] WARNING: usb_ac1: 
am_attach() couldn't set output muted: 0x0
Jan 27 16:46:42 io usba: [ID 723738 kern.notice] /pci at 0,0/pci103c,30c3 at 
1d,1/device at 1/sound-control at 0 (usb_ac1): mixer registration failed

--

With oss_usb I get this from mdb

echo ::prtusb | mdb -k | grep Tapco
a       usb_mid     1     device          0a73.0007   Tapco USB Interface

--
echo ::prtusb -v | mdb -k (cut to get just the Tapco part)

a       usb_mid     1     device          0a73.0007   Tapco USB Interface

Device Descriptor
{
    bLength = 0x12
    bDescriptorType = 0x1
    bcdUSB = 0x110
    bDeviceClass = 0
    bDeviceSubClass = 0
    bDeviceProtocol = 0
    bMaxPacketSize0 = 0x8
    idVendor = 0xa73
    idProduct = 0x7
    bcdDevice = 0x90
    iManufacturer = 0x1
    iProduct = 0x2
    iSerialNumber = 0
    bNumConfigurations = 0x1
}
    -- Active Config Index 0
    Configuration Descriptor
    {
        bLength = 0x9
        bDescriptorType = 0x2
        wTotalLength = 0x128
        bNumInterfaces = 0x3
        bConfigurationValue = 0x1
        iConfiguration = 0x0
        bmAttributes = 0x40
        bMaxPower = 0x0
    }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x0
            bAlternateSetting = 0x0
            bNumEndpoints = 0x0
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x1
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
            AudioControl_Interface: header Descriptor
            {
                bLength = 0xa
                bDescriptorType = 0x24
                bDescriptorSubType = 0x1
                bcdADC = 0x100
                wTotalLength = 0x34
                blnCollection = 0x2
                baInterfaceNr = 0x1
                ... = 0x2
            }
            AudioControl_Interface: input_terminal Descriptor
            {
                bLength = 0xc
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bTerminalID = 0x1
                wTerminalType = 0x101
                bAssocTerminal = 0x0
                bNrChannels = 0x2
                wChannelConfig = 0x3
                iChannelNames = 0x0
                iTerminal = 0x0
            }
            AudioControl_Interface: output_terminal Descriptor
            {
                bLength = 0x9
                bDescriptorType = 0x24
                bDescriptorSubType = 0x3
                bTerminalID = 0x2
                wTerminalType = 0x301
                bAssocTerminal = 0x0
                bSourceID = 0x1
                iTerminal = 0x0
            }
            AudioControl_Interface: input_terminal Descriptor
            {
                bLength = 0xc
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bTerminalID = 0x3
                wTerminalType = 0x201
                bAssocTerminal = 0x0
                bNrChannels = 0x2
                wChannelConfig = 0x3
                iChannelNames = 0x0
                iTerminal = 0x0
            }
            AudioControl_Interface: output_terminal Descriptor
            {
                bLength = 0x9
                bDescriptorType = 0x24
                bDescriptorSubType = 0x3
                bTerminalID = 0x4
                wTerminalType = 0x101
                bAssocTerminal = 0x0
                bSourceID = 0x3
                iTerminal = 0x0
            }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x1
            bAlternateSetting = 0x0
            bNumEndpoints = 0x0
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x1
            bAlternateSetting = 0x1
            bNumEndpoints = 0x1
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
            AudioStream_Interface: general_interface Descriptor
            {
                blength = 0x7
                bDescriptorType = 0x24
                bDescriptorSubType = 0x1
                bTerminalLink = 0x1
                bDelay = 0x1
                wFormatTag = 0x1
            }
            AudioStream_Interface: format_type Descriptor
            {
                blength = 0x14
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bFormatType = 0x1
                bNrChannels = 0x2
                bSubFrameSize = 0x2
                bBitResolution = 0x10
                bSamFreqType = 0x4
                bSamFreqs = 0x22
                ... = 0x56 0x0 0x0 0x7d 0x0 0x44 0xac 0x0 0x80 0xbb 0x0
            }
        Endpoint Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x5
            bEndpointAddress = 0x1
            bmAttributes = 0x9
            wMaxPacketSize = 0xc0
            bInterval = 0x1
            ... = 0x0 0x0
        }
            AudioEndpoint:
            {
                blength = 0x7
                bDescriptorType = 0x25
                bDescriptorSubType = 0x1
                bmAttributes = 0x1
                bLockDelayUnits = 0x0
                wLockDelay = 0x0
            }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x1
            bAlternateSetting = 0x2
            bNumEndpoints = 0x1
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
            AudioStream_Interface: general_interface Descriptor
            {
                blength = 0x7
                bDescriptorType = 0x24
                bDescriptorSubType = 0x1
                bTerminalLink = 0x1
                bDelay = 0x1
                wFormatTag = 0x1
            }
            AudioStream_Interface: format_type Descriptor
            {
                blength = 0x14
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bFormatType = 0x1
                bNrChannels = 0x2
                bSubFrameSize = 0x3
                bBitResolution = 0x18
                bSamFreqType = 0x4
                bSamFreqs = 0x22
                ... = 0x56 0x0 0x0 0x7d 0x0 0x44 0xac 0x0 0x80 0xbb 0x0
            }
        Endpoint Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x5
            bEndpointAddress = 0x1
            bmAttributes = 0x9
            wMaxPacketSize = 0x120
            bInterval = 0x1
            ... = 0x0 0x0
        }
            AudioEndpoint:
            {
                blength = 0x7
                bDescriptorType = 0x25
                bDescriptorSubType = 0x1
                bmAttributes = 0x1
                bLockDelayUnits = 0x0
                wLockDelay = 0x0
            }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x2
            bAlternateSetting = 0x0
            bNumEndpoints = 0x0
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x2
            bAlternateSetting = 0x1
            bNumEndpoints = 0x1
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
            AudioStream_Interface: general_interface Descriptor
            {
                blength = 0x7
                bDescriptorType = 0x24
                bDescriptorSubType = 0x1
                bTerminalLink = 0x4
                bDelay = 0x1
                wFormatTag = 0x1
            }
            AudioStream_Interface: format_type Descriptor
            {
                blength = 0x14
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bFormatType = 0x1
                bNrChannels = 0x2
                bSubFrameSize = 0x2
                bBitResolution = 0x10
                bSamFreqType = 0x4
                bSamFreqs = 0x22
                ... = 0x56 0x0 0x0 0x7d 0x0 0x44 0xac 0x0 0x80 0xbb 0x0
            }
        Endpoint Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x5
            bEndpointAddress = 0x82
            bmAttributes = 0xd
            wMaxPacketSize = 0xc0
            bInterval = 0x1
            ... = 0x0 0x0
        }
            AudioEndpoint:
            {
                blength = 0x7
                bDescriptorType = 0x25
                bDescriptorSubType = 0x1
                bmAttributes = 0x1
                bLockDelayUnits = 0x0
                wLockDelay = 0x0
            }
        Interface Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x4
            bInterfaceNumber = 0x2
            bAlternateSetting = 0x2
            bNumEndpoints = 0x1
            bInterfaceClass = 0x1
            bInterfaceSubClass = 0x2
            bInterfaceProtocol = 0x0
            iInterface = 0x0
        }
            AudioStream_Interface: general_interface Descriptor
            {
                blength = 0x7
                bDescriptorType = 0x24
                bDescriptorSubType = 0x1
                bTerminalLink = 0x4
                bDelay = 0x1
                wFormatTag = 0x1
            }
            AudioStream_Interface: format_type Descriptor
            {
                blength = 0x14
                bDescriptorType = 0x24
                bDescriptorSubType = 0x2
                bFormatType = 0x1
                bNrChannels = 0x2
                bSubFrameSize = 0x3
                bBitResolution = 0x18
                bSamFreqType = 0x4
                bSamFreqs = 0x22
                ... = 0x56 0x0 0x0 0x7d 0x0 0x44 0xac 0x0 0x80 0xbb 0x0
            }
        Endpoint Descriptor
        {
            bLength = 0x9
            bDescriptorType = 0x5
            bEndpointAddress = 0x82
            bmAttributes = 0xd
            wMaxPacketSize = 0x120
            bInterval = 0x1
            ... = 0x0 0x0
        }
            AudioEndpoint:
            {
                blength = 0x7
                bDescriptorType = 0x25
                bDescriptorSubType = 0x1
                bmAttributes = 0x1
                bLockDelayUnits = 0x0
                wLockDelay = 0x0
            }
-- 
This message posted from opensolaris.org

Reply via email to