[alsa-devel] Tascam US-122L - Corrupt USB descriptor
Ricard Wanderlof
ricard.wanderlof at axis.com
Wed Apr 13 11:02:32 CEST 2016
On Wed, 13 Apr 2016, Simon Wood wrote:
> Hi all,
> I have been struggling for the past few days to get a Tascam US-122L (USB
> sound-card/midi interface) working, despite reading numerous forum
> postings I have only been able to get the midi portion working.
>
> I note that the USB descriptor seems to be corrupt. It declares 2
> interfaces, but then describes 3 separate with the same interface number
> for the last 2... could it be that this is confusing the Linux USB stack?
>
> I have attached a copy of the descriptor and an annotated 'lsusb -vv'.
> ...
My experience of lsusb is that it can get confused and report errors when
there in fact aren't any, especially with vendor specific classes which it
really can only guess at.
>
> Configuration Descriptor:
> --
> 00000010 _____ 09 02 48 00 02 01 00 80 f0 ______________ |....H...........|
> --
> bLength 9
> bDescriptorType 2
> wTotalLength 72
> bNumInterfaces 2 <------- 2 interfaces
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0x80
> (Bus Powered)
> MaxPower 480mA
>
>
> Interface Descriptor: <------ that's 1
> --
> 00000010 _________________________________ 09 04 00 00 00 |....H...........|
> 00000020 ff 00 00 00 ____________________________________ |................|
> --
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0
>
> Interface Descriptor: <------ that's 2
> --
> 00000020 ___________ 09 04 01 00 00 ff 00 00 00 ________ |................|
> --
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0
>
> Interface Descriptor: <------ that's 3, err wait...
> --
> 00000020 _______________________________________ 09 04 01 |................|
> 00000030 01 04 ff 00 00 00 ______________________________ |..........N.....|
> --
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1 <------ interface duplicate!!
> bAlternateSetting 1
> bNumEndpoints 4
My knowledge of USB is sketchy since I rarely work with it on this level
(I was working on some quirks for the Zoom R16 a while ago), but I note
that bAlternateSetting is 1, which I think means that the device offers
two specific ways of implementing interface no. 1. Actually, IIRC,
alternate setting 0 normally means an interface which essentially is
disabled, and it would certainly seem so here as the two first interface
descriptors have 0 endpoints, whereas the one here has 4.
My wild guess is that this interface 1 / altsetting 1 represents the
actual device in normal operation, as has 4 endpoints ...
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 0
> bInterfaceProtocol 0
> iInterface 0
>
> Endpoint Descriptor:
> ...
> bLength 9
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 5
> Transfer Type Isochronous
> Synch Type Asynchronous
> Usage Type Data
> wMaxPacketSize 0x004e 1x 78 bytes
> ...
> Endpoint Descriptor:
> ...
> bDescriptorType 5
> bEndpointAddress 0x02 EP 2 OUT
> bmAttributes 5
> Transfer Type Isochronous
> Synch Type Asynchronous
> Usage Type Data
> wMaxPacketSize 0x004e 1x 78 bytes
> ...
> Endpoint Descriptor:
> ...
> bDescriptorType 5
> bEndpointAddress 0x83 EP 3 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0009 1x 9 bytes
> ...
> Endpoint Descriptor:
> ...
> bDescriptorType 5
> bEndpointAddress 0x04 EP 4 OUT
> bmAttributes 2
> Transfer Type Bulk
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0200 1x 512 bytes
> bInterval 4
> bRefresh 0
> bSynchAddress 0
... the two first of which are the audio interface (which uses isochronous
data transfers), and the other two are MIDI (bulk).
I think (but could be wrong so don't take my word for it) it's a bit
unusual that both MIDI and audio are represented by a single interface,
but it certainly seems to be the case here.
/Ricard
--
Ricard Wolf Wanderlöf ricardw(at)axis.com
Axis Communications AB, Lund, Sweden www.axis.com
Phone +46 46 272 2016 Fax +46 46 13 61 30
--
To unsubscribe from this list: send the line "unsubscribe alsa-devel" in
More information about the Alsa-devel
mailing list