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
