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'.
>From my experience with the HID subsystem, they have a mechanism for
patching HID descriptors, is the same possible for the base USB
descriptor? Trolling through 'drivers/usb' I didn't see anything... any
suggestions?
If this is possible I can try to increase the interface count and renumber
the last one.
Cheers,
Simon.
PS. For reference the device is:
Model No: US-122L
Serial: (21)0120xxx
Other barcode: 043774021628
00000000 12 01 00 02 00 00 00 40 44 06 0e 80 00 01 01 02 |.......@D.......|
00000010 03 01 09 02 48 00 02 01 00 80 f0 09 04 00 00 00 |....H...........|
00000020 ff 00 00 00 09 04 01 00 00 ff 00 00 00 09 04 01 |................|
00000030 01 04 ff 00 00 00 09 05 81 05 4e 00 01 00 00 09 |..........N.....|
00000040 05 02 05 4e 00 01 00 00 09 05 83 02 09 00 04 00 |...N............|
00000050 00 09 05 04 02 00 02 04 00 00 |..........|
0000005a
Bus 001 Device 042: ID 0644:800e TEAC Corp. TASCAM US-122L
--
00000000 12 01 00 02 00 00 00 40 44 06 0e 80 00 01 01 02 |.......@D.......|
00000010 03 01 __________________________________________ |....H...........|
--
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0644 TEAC Corp.
idProduct 0x800e TASCAM US-122L
bcdDevice 1.00
iManufacturer 1 (error) <------ Here be Errors!
iProduct 2 (error)
iSerial 3 (error)
bNumConfigurations 1
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
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
--
00000030 _________________ 09 05 81 05 4e 00 01 00 00 __ |..........N.....|
--
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
bInterval 1
bRefresh 0
bSynchAddress 0
Endpoint Descriptor:
--
00000030 _____________________________________________ 09 |..........N.....|
00000040 05 02 05 4e 00 01 00 00 _______________________ |...N............|
--
bLength 9
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x004e 1x 78 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
Endpoint Descriptor:
--
00000040 _______________________ 09 05 83 02 09 00 04 00 |...N............|
00000050 00 ___________________________ |..........|
--
bLength 9
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 4
bRefresh 0
bSynchAddress 0
Endpoint Descriptor:
--
00000050 __ 09 05 04 02 00 02 04 00 00 |..........|
--
bLength 9
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
Device Status: 0x0001
Self Powered