Yamaha Steinberg UR22 Support (Yamaha USB chipset 0499:1509)

DJ Decstasy dj at decstasy.de
Wed May 7 19:25:25 UTC 2014


On 07.05.2014 19:30, Joseph Salisbury wrote:
> On 05/07/2014 11:57 AM, Joseph Salisbury wrote:
>> On 05/07/2014 08:00 AM, dj at decstasy.de wrote:
>>> Hello,
>>>
>>> is it possible to add this lines in the next patch somewhere in
>>> sound/usb/quirks-table.h?
>>> When there is a kernel update, I have to add it and compile it
>>> everytime on my own to get this device woking.
>>>
>>> {
>>>      USB_DEVICE(0x0499, 0x1509),
>>>      .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
>>>          /* .vendor_name = "Yamaha", */
>>>          /* .product_name = "Steinberg UR22", */
>>>          .ifnum = QUIRK_ANY_INTERFACE,
>>>          .type = QUIRK_COMPOSITE,
>>>          .data = (const struct snd_usb_audio_quirk[]) {
>>>              {
>>>                  .ifnum = 1,
>>>                  .type = QUIRK_AUDIO_STANDARD_INTERFACE
>>>              },
>>>              {
>>>                  .ifnum = 2,
>>>                  .type = QUIRK_AUDIO_STANDARD_INTERFACE
>>>              },
>>>              {
>>>                  .ifnum = 3,
>>>                  .type = QUIRK_MIDI_YAMAHA
>>>              },
>>>              {
>>>                  .ifnum = 4,
>>>                  .type = QUIRK_IGNORE_INTERFACE
>>>              },
>>>              {
>>>                  .ifnum = -1
>>>              }
>>>          }
>>>      }
>>> },
>>>
>>>
>>> Thanks and best regards,
>>> Dennis
>>>
>>>
>>> P.S. Here are some additional device informations:
>>> $ lsusb -v -d 0499:1509
>>>
>>> Bus 002 Device 014: ID 0499:1509 Yamaha Corp.
>>> Device Descriptor:
>>> bLength 18
>>> bDescriptorType 1
>>> bcdUSB 2.00
>>> bDeviceClass 255 Vendor Specific Class
>>> bDeviceSubClass 0
>>> bDeviceProtocol 255
>>> bMaxPacketSize0 64
>>> idVendor 0x0499 Yamaha Corp.
>>> idProduct 0x1509
>>> bcdDevice 1.00
>>> iManufacturer 1 Yamaha Corporation
>>> iProduct 2 Steinberg UR22
>>> iSerial 0
>>> bNumConfigurations 1
>>> Configuration Descriptor:
>>> bLength 9
>>> bDescriptorType 2
>>> wTotalLength 442
>>> bNumInterfaces 5
>>> bConfigurationValue 1
>>> iConfiguration 0
>>> bmAttributes 0xc0
>>> Self Powered
>>> MaxPower 500mA
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 0
>>> bAlternateSetting 0
>>> bNumEndpoints 0
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 1
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 0a 24 01 00 01 34 00 02 01 02
>>> ** UNRECOGNIZED: 0c 24 02 01 01 01 00 02 03 00 00 00
>>> ** UNRECOGNIZED: 09 24 03 02 01 03 00 01 00
>>> ** UNRECOGNIZED: 0c 24 02 03 03 06 00 02 03 00 00 00
>>> ** UNRECOGNIZED: 09 24 03 04 01 01 00 03 00
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 1
>>> bAlternateSetting 0
>>> bNumEndpoints 0
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 1
>>> bAlternateSetting 1
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 01 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 44 ac 00 80 bb 00
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x07 EP 7 OUT
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x002a 1x 42 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 1
>>> bAlternateSetting 2
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 01 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 88 58 01 00 77 01
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x07 EP 7 OUT
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x004e 1x 78 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 1
>>> bAlternateSetting 3
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 01 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 10 b1 02 00 ee 02
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x07 EP 7 OUT
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x0096 1x 150 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 2
>>> bAlternateSetting 0
>>> bNumEndpoints 0
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 2
>>> bAlternateSetting 1
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 04 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 44 ac 00 80 bb 00
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x86 EP 6 IN
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x002a 1x 42 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 2
>>> bAlternateSetting 2
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 04 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 88 58 01 00 77 01
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x86 EP 6 IN
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x004e 1x 78 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 2
>>> bAlternateSetting 3
>>> bNumEndpoints 1
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 2
>>> bInterfaceProtocol 0
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 04 01 01 00
>>> ** UNRECOGNIZED: 0e 24 02 01 02 03 18 02 10 b1 02 00 ee 02
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x86 EP 6 IN
>>> bmAttributes 5
>>> Transfer Type Isochronous
>>> Synch Type Asynchronous
>>> Usage Type Data
>>> wMaxPacketSize 0x0096 1x 150 bytes
>>> bInterval 1
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 3
>>> bAlternateSetting 0
>>> bNumEndpoints 2
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 3
>>> bInterfaceProtocol 255
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 00 01 24 00
>>> ** UNRECOGNIZED: 06 24 02 02 01 00
>>> ** UNRECOGNIZED: 09 24 03 02 01 01 01 01 00
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x01 EP 1 OUT
>>> bmAttributes 2
>>> Transfer Type Bulk
>>> Synch Type None
>>> Usage Type Data
>>> wMaxPacketSize 0x0200 1x 512 bytes
>>> bInterval 0
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x82 EP 2 IN
>>> bmAttributes 2
>>> Transfer Type Bulk
>>> Synch Type None
>>> Usage Type Data
>>> wMaxPacketSize 0x0200 1x 512 bytes
>>> bInterval 0
>>> Interface Descriptor:
>>> bLength 9
>>> bDescriptorType 4
>>> bInterfaceNumber 4
>>> bAlternateSetting 0
>>> bNumEndpoints 2
>>> bInterfaceClass 255 Vendor Specific Class
>>> bInterfaceSubClass 255 Vendor Specific Subclass
>>> bInterfaceProtocol 255 Vendor Specific Protocol
>>> iInterface 0
>>> ** UNRECOGNIZED: 07 24 01 00 01 24 00
>>> ** UNRECOGNIZED: 06 24 02 02 01 00
>>> ** UNRECOGNIZED: 09 24 03 02 01 01 01 01 00
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x03 EP 3 OUT
>>> bmAttributes 2
>>> Transfer Type Bulk
>>> Synch Type None
>>> Usage Type Data
>>> wMaxPacketSize 0x0200 1x 512 bytes
>>> bInterval 0
>>> Endpoint Descriptor:
>>> bLength 7
>>> bDescriptorType 5
>>> bEndpointAddress 0x84 EP 4 IN
>>> bmAttributes 2
>>> Transfer Type Bulk
>>> Synch Type None
>>> Usage Type Data
>>> wMaxPacketSize 0x0200 1x 512 bytes
>>> bInterval 0
>>> Device Qualifier (for other device speed):
>>> bLength 10
>>> bDescriptorType 6
>>> bcdUSB 2.00
>>> bDeviceClass 0 (Defined at Interface level)
>>> bDeviceSubClass 0
>>> bDeviceProtocol 0
>>> bMaxPacketSize0 64
>>> bNumConfigurations 1
>>> Device Status: 0x0000
>>> (Bus Powered)
>>>
>> I would suggest opening a bug in Launchpad.  You can do this by running
>> the following from a terminal:
>>
>> ubuntu-bug linux
>>
>> Did you write that section of code, and if so, have you sent it upstream
>> for inclusion in the mainline kernel?  If not, we can work through that
>> in the bug report.
>>
>> Thanks,
>>
>> Joe
>>
>>
> Also, if you open a bug report, I'll put that code into a patch and
> build a test kernel for you.  If it resolves the issue, I can submit it
> for you.
That would be very nice. I have reported this bug here: 
https://bugs.launchpad.net/ubuntu/+source/linux-lts-quantal/+bug/1317244
I hope that I did everything right; the mailing lists are quite new for 
me. And thank you very much Joe!

Regards,
Dennis




More information about the kernel-team mailing list