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

Joseph Salisbury joseph.salisbury at canonical.com
Thu May 8 01:14:01 UTC 2014


On 05/07/2014 03:25 PM, DJ Decstasy wrote:
> 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

Thanks for the bug report, Dennis.  I'll build a test kernel and post a
link to it in the bug report.

Thanks,

Joe





More information about the kernel-team mailing list