← Back to team overview

kernel-packages team mailing list archive

[Bug 1317244] Re: Yamaha Steinberg UR22 not supported (Yamaha USB chipset 0499:1509)

 

-------- Forwarded Message --------
From: Takashi Iwai <tiwai@xxxxxxx>
To: Vlad Catoi <vladcatoi@xxxxxxxxx>
Cc: Jaroslav Kysela <perex@xxxxxxxx>, Clemens Ladisch <clemens@xxxxxxxxxx>, Daniel Mack <zonque@xxxxxxxxx>, Eduard Gilmutdinov <edgilmutdinov@xxxxxxxxx>, alsa-devel@xxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH 1/1] snd-usb-audio: Add support for Steinberg UR22 USB interface
Date: Mon, 20 Oct 2014 07:55:11 +0200

At Sat, 18 Oct 2014 17:45:41 -0500,
Vlad Catoi wrote:
> 
> Adding support for Steinberg UR22 USB interface via quirks table patch
> 
> See Ubuntu bug report:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1317244
> Also see threads:
> http://linux-audio.4202.n7.nabble.com/Support-for-Steinberg-UR22-Yamaha-USB-chipset-0499-1509-tc82888.html#a82917
> http://www.steinberg.net/forums/viewtopic.php?t=62290
> 
> Tested by at least 4 people judging by the threads.
> Did not test MIDI interface, but audio output and capture both are
> functional. Built 3.17 kernel with this driver on Ubuntu 14.04 & tested with mpg123
> Patch applied to 3.13 Ubuntu kernel works well enough for daily use.
> 
> Signed-off-by: Vlad Catoi <vladcatoi@xxxxxxxxx>

Thanks, applied now with Clemens' ack and Cc to stable.


Takashi

> ---
>  sound/usb/quirks-table.h | 30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
> index 223c47b..c657752 100644
> --- a/sound/usb/quirks-table.h
> +++ b/sound/usb/quirks-table.h
> @@ -385,6 +385,36 @@ YAMAHA_DEVICE(0x105d, NULL),
>  	}
>  },
>  {
> +	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
> +			}
> +		}
> +	}
> +},
> +{
>  	USB_DEVICE(0x0499, 0x150a),
>  	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
>  		/* .vendor_name = "Yamaha", */
> -- 
> 1.9.1
> 

** Changed in: linux
       Status: In Progress => Fix Committed

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1317244

Title:
  Yamaha Steinberg UR22 not supported (Yamaha USB chipset 0499:1509)

Status in The Linux Kernel:
  Fix Committed
Status in “linux” package in Ubuntu:
  In Progress

Bug description:
  Hello,

  my external USB Sound Interface is not supported from the generic kernel.
  I know the Chip is very similar to the Focusrite Scarlett 2i2 which works very fine. Defining the USB Device in the quirks-table as generic audio device fixed this.

  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 001 Device 002: 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)

  ProblemType: Bug
  DistroRelease: Ubuntu 12.04
  Package: linux-image-3.5.0-42-generic 3.5.0-42.65~precise1
  ProcVersionSignature: Ubuntu 3.5.0-42.65~precise1-generic 3.5.7.21
  Uname: Linux 3.5.0-42-generic x86_64
  NonfreeKernelModules: nvidia
  AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.25.
  ApportVersion: 2.0.1-0ubuntu17.6
  Architecture: amd64
  CRDA: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
  Card0.Amixer.info:
   Card hw:0 'CA0106'/'Audigy SE [SB0570] at 0xc000 irq 21'
     Mixer name	: 'CA0106'
     Components	: ''
     Controls      : 35
     Simple ctrls  : 18
  Card1.Amixer.info:
   Card hw:1 'NVidia'/'HDA NVidia at 0xfe080000 irq 25'
     Mixer name	: 'Nvidia GPU 40 HDMI/DP'
     Components	: 'HDA:10de0040,10b01183,00100100'
     Controls      : 24
     Simple ctrls  : 4
  Date: Wed May  7 21:03:39 2014
  HibernationDevice: RESUME=UUID=dec344d3-5c90-407e-afc2-4a9b5b303761
  InstallationMedia: Ubuntu 12.04.2 LTS "Precise Pangolin" - Release amd64+mac (20130214)
  MachineType: To Be Filled By O.E.M. To Be Filled By O.E.M.
  MarkForUpload: True
  ProcEnviron:
   LANGUAGE=de_DE:en
   TERM=xterm
   PATH=(custom, no user)
   LANG=de_DE.UTF-8
   SHELL=/bin/bash
  ProcFB: 0 VESA VGA
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.5.0-42-generic root=/dev/mapper/system-root ro quiet splash vt.handoff=7
  PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon.
  RelatedPackageVersions:
   linux-restricted-modules-3.5.0-42-generic N/A
   linux-backports-modules-3.5.0-42-generic  N/A
   linux-firmware                            1.79.11
  RfKill:
   
  SourcePackage: linux-lts-quantal
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 05/29/2012
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: P2.00
  dmi.board.name: 890FX Deluxe5
  dmi.board.vendor: ASRock
  dmi.chassis.asset.tag: To Be Filled By O.E.M.
  dmi.chassis.type: 3
  dmi.chassis.vendor: To Be Filled By O.E.M.
  dmi.chassis.version: To Be Filled By O.E.M.
  dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrP2.00:bd05/29/2012:svnToBeFilledByO.E.M.:pnToBeFilledByO.E.M.:pvrToBeFilledByO.E.M.:rvnASRock:rn890FXDeluxe5:rvr:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
  dmi.product.name: To Be Filled By O.E.M.
  dmi.product.version: To Be Filled By O.E.M.
  dmi.sys.vendor: To Be Filled By O.E.M.
  --- 
  AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.25.
  ApportVersion: 2.0.1-0ubuntu17.6
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC1:  decstasy   7167 F.... xfce4-volumed
                        decstasy   7203 F.... pulseaudio
   /dev/snd/controlC0:  decstasy   7167 F.... xfce4-volumed
  CRDA: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
  Card0.Amixer.info:
   Card hw:0 'CA0106'/'Audigy SE [SB0570] at 0xc000 irq 21'
     Mixer name	: 'CA0106'
     Components	: ''
     Controls      : 35
     Simple ctrls  : 18
  Card1.Amixer.info:
   Card hw:1 'NVidia'/'HDA NVidia at 0xfe080000 irq 25'
     Mixer name	: 'Nvidia GPU 40 HDMI/DP'
     Components	: 'HDA:10de0040,10b01183,00100100'
     Controls      : 24
     Simple ctrls  : 4
  CurrentDmesg:
   Error: command ['sh', '-c', 'dmesg | comm -13 --nocheck-order /var/log/dmesg -'] failed with exit code 1: comm: /var/log/dmesg: Permission denied
   dmesg: write failed: Broken pipe
  DistroRelease: Ubuntu 12.04
  InstallationMedia: Ubuntu 12.04.2 LTS "Precise Pangolin" - Release amd64+mac (20130214)
  MachineType: To Be Filled By O.E.M. To Be Filled By O.E.M.
  MarkForUpload: True
  NonfreeKernelModules: nvidia
  Package: linux (not installed)
  ProcEnviron:
   LANGUAGE=de_DE:en
   TERM=xterm
   PATH=(custom, no user)
   LANG=de_DE.UTF-8
   SHELL=/bin/bash
  ProcFB:
   
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.5.0-42-generic root=/dev/mapper/system-root ro quiet splash
  ProcVersionSignature: Ubuntu 3.5.0-42.65~precise1-generic 3.5.7.21
  RfKill:
   
  Tags:  precise
  Uname: Linux 3.5.0-42-generic x86_64
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: vboxusers
  WifiSyslog:
   
  dmi.bios.date: 05/29/2012
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: P2.00
  dmi.board.name: 890FX Deluxe5
  dmi.board.vendor: ASRock
  dmi.chassis.asset.tag: To Be Filled By O.E.M.
  dmi.chassis.type: 3
  dmi.chassis.vendor: To Be Filled By O.E.M.
  dmi.chassis.version: To Be Filled By O.E.M.
  dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrP2.00:bd05/29/2012:svnToBeFilledByO.E.M.:pnToBeFilledByO.E.M.:pvrToBeFilledByO.E.M.:rvnASRock:rn890FXDeluxe5:rvr:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
  dmi.product.name: To Be Filled By O.E.M.
  dmi.product.version: To Be Filled By O.E.M.
  dmi.sys.vendor: To Be Filled By O.E.M.

To manage notifications about this bug go to:
https://bugs.launchpad.net/linux/+bug/1317244/+subscriptions