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

Takashi Sakamoto o-takashi at sakamocchi.jp
Thu May 8 12:19:17 UTC 2014


Hi,
(CCed to David Henningsson)

I'm an ALSA developer, who eventually subscribes this ML. I'm sorry but 
I cannot help you directly because I mainly work for firewire devices.

As long as look for mail archive, similar patches have been already 
posted. For UR44, a patch was posted:

[alsa-devel] [PATCH] add Steinberg UR44 USB Audio Interface support to 
quirks-table
http://mailman.alsa-project.org/pipermail/alsa-devel/2014-March/074064.html

The patch may be based on this patch for UR22:

[LAD] Support for Steinberg UR22 (Yamaha USB chipset 0499:1509)?
http://linuxaudio.org/mailarchive/lad/2013/2/23/197802

Refering to these posts, one of ALSA maintainer, Clemens Ladish 
recognizes this issue. But there were not enough discussion, enough 
information. According to his message, these models (UR22 and UR44) 
should be recognized with general way without quirks but reporters said 
these models are not recognized.

I reccomend you to post this issue to alsa-devel and do further 
discussion. I think developers need more help for these models.


Regards

Takashi Sakamoto
o-takashi at sakamocchi.jp


(2014年05月07日 21:00), 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)





More information about the kernel-team mailing list