All of lore.kernel.org
 help / color / mirror / Atom feed
* trying to get an eleven rack to work
@ 2012-03-17 23:17 David Alexander
  2012-03-19  7:19 ` Grant Diffey
  2012-03-20 13:19 ` Clemens Ladisch
  0 siblings, 2 replies; 15+ messages in thread
From: David Alexander @ 2012-03-17 23:17 UTC (permalink / raw)
  To: alsa-devel

Hi.

I bought and would like to get an eleven rack interface to work.  It
is a usb gutiar amp emulator/audio interface.  It is a avid/digi
device that normal uses asio vendor specific drivers.

When I plug it under Linux I get the following:

ls -l /proc/asound/card1
total 0
-r--r--r-- 1 root root 0 2012-03-17 18:57 id
-r--r--r-- 1 root root 0 2012-03-17 18:57 midi0
-r--r--r-- 1 root root 0 2012-03-17 18:57 usbbus
-r--r--r-- 1 root root 0 2012-03-17 18:57 usbid

lsusb -v for the device returns:

Bus 001 Device 003: ID 0dba:b011
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0dba
  idProduct          0xb011
  bcdDevice           20.01
  iManufacturer           1 Digidesign
  iProduct                2 Eleven Rack
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          419
bNumInterfaces          5
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      0
      iInterface              3 Eleven Rack DFU
      Device Firmware Upgrade Interface Descriptor:
        bLength                             7
        bDescriptorType                    33
        bmAttributes                        1
          Will Not Detach
Manifestation Intolerant
          Upload Unsupported
          Download Supported
        wDetachTimeout                   2000 milliseconds
        wTransferSize                    1032 bytes
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         1
      bInterfaceCount         4
      bFunctionClass        255 Vendor Specific Class
      bFunctionSubClass       0
      bFunctionProtocol      32
      iFunction               2 Eleven Rack
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1
      bInterfaceProtocol     32
      iInterface              2 Eleven Rack
      ** UNRECOGNIZED:  09 24 01 00 02 0a ae 00 01
      ** UNRECOGNIZED:  11 24 02 00 01 01 00 80 06 00 00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0c 24 03 03 01 06 00 40 80 00 00 00
      ** UNRECOGNIZED:  11 24 02 02 01 06 00 80 08 00 00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0c 24 03 01 01 01 00 41 80 00 00 00
      ** UNRECOGNIZED:  10 24 09 20 ff ff 01 00 06 00 00 00 00 00 01 00
      ** UNRECOGNIZED:  1a 24 04 40 02 20 02 06 00 00 00 00 00 00 00
00 00 0c 30 c3 0c 30 c3 00 00 00
      ** UNRECOGNIZED:  16 24 04 41 01 02 08 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
      ** UNRECOGNIZED:  0a 24 0b 80 03 81 82 83 03 00
      ** UNRECOGNIZED:  08 24 0a 81 03 03 00 00
      ** UNRECOGNIZED:  08 24 0a 82 00 05 00 00
      ** UNRECOGNIZED:  08 24 0a 83 00 05 00 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
 bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      3 MIDI Streaming
      bInterfaceProtocol      0
      iInterface              0
      MIDIStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength           67
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 1
        iJack                   4 Rig
      MIDIStreaming Interface Descriptor:
        bLength                 6
bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 2
        iJack                   0
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 3
        bNrInputPins            1
        baSourceID( 0)          2
        BaSourcePin( 0)         1
        iJack                   4 Rig
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 4

bNrInputPins            1
        baSourceID( 0)          1
        BaSourcePin( 0)         1
        iJack                   0
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               1 Embedded
        bJackID                 5
        iJack                   5 External
      MIDIStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (MIDI_IN_JACK)
        bJackType               2 External
        bJackID                 6
        iJack                   0
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               1 Embedded
        bJackID                 7
        bNrInputPins            1
        baSourceID( 0)          6
        BaSourcePin( 0)         1
        iJack                   5 External
      MIDIStreaming Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (MIDI_OUT_JACK)
        bJackType               2 External
        bJackID                 8
        bNrInputPins            1
        baSourceID( 0)          5
        BaSourcePin( 0)         1
        iJack                   0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       1
          baAssocJackID( 1)       5
      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
        MIDIStreaming Endpoint Descriptor:
          bLength                 6
          bDescriptorType        37
          bDescriptorSubtype      1 (GENERAL)
          bNumEmbMIDIJack         2
          baAssocJackID( 0)       3
          baAssocJackID( 1)       7
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol     32
      iInterface              0
    Interface Descriptor:
      bLength                 9
bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol     32
      iInterface              0
      ** UNRECOGNIZED:  10 24 01 00 00 01 01 00 00 00 06 00 00 00 00 00
      ** UNRECOGNIZED:  06 24 02 01 04 20
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x01a0  1x 416 bytes
        bInterval               1
    Interface Descriptor:
bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol     32
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        4
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      2
      bInterfaceProtocol     32
      iInterface              0
      ** UNRECOGNIZED:  10 24 01 01 00 01 01 00 00 00 08 00 00 00 00 00
      ** UNRECOGNIZED:  06 24 02 01 04 20
Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes           37
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Implicit feedback Data
        wMaxPacketSize     0x01a0  1x 416 bytes
        bInterval               1
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered


I am completely new to this, but if someone can point me in the right
direction...I would appreciate it,    I have just started trying to
learn about this and my limited understanding is that it would require
some additional coding in the quirks code for the snd-usb-audio
driver.   How can I determine what the quirks are?  Does there exist
any documentation or how-tos that I can look for on this?  Any help or
suggestions are appreciated.

sincerely,
David Alexander

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-03-17 23:17 trying to get an eleven rack to work David Alexander
@ 2012-03-19  7:19 ` Grant Diffey
  2012-03-20 13:19 ` Clemens Ladisch
  1 sibling, 0 replies; 15+ messages in thread
From: Grant Diffey @ 2012-03-19  7:19 UTC (permalink / raw)
  To: David Alexander, Clemens Ladisch, Daniel Mack; +Cc: alsa-devel

On Sun, Mar 18, 2012 at 10:17 AM, David Alexander <lidxv0n@gmail.com> wrote:

> Hi.
>
> I bought and would like to get an eleven rack interface to work.  It
> is a usb gutiar amp emulator/audio interface.  It is a avid/digi
> device that normal uses asio vendor specific drivers.
>
>
Appologies to all for 2 copies I forgot alsa-devel.

David,

So it should show up when plugged in as a midi device but the audio i/o is
typical m-audio almost but not quiet compliant.

so you do need a quirk based on reading the lsusb output above my guess is:

Interface 0 is a DFU firmware upgrade
Interface 1 is really custom (perhaps some sort of custom
control/management thing tho I would of thought they'd use midi sysex for
that)
Interface 2 is the midi
Interface 3 looks like maybe a usb mixer without a descriptor? but that's a
guess.
Interface 4 is potentially usb2 audio output
Interface 5 is potentially usb2 audio input.

So if you were to look at the fast track ultra quirk building something
that can get audio in and out should be straightforward.
(ignore the mixer using QUIRK_IGNORE_INTERFACE or whatever the right macro
name is)

that said. there is a devil in the detail here... which is..


         Transfer Type            Isochronous
         Synch Type               Asynchronous
         Usage Type               Implicit feedback Data

on interface 5 indicates this is implicit feedback used for clocking
control... of the output on interface 4
This is not supported by the alsa snd-usb driver but work is underway to
add support for this usb transfer mode.

Regards

Grant.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-03-17 23:17 trying to get an eleven rack to work David Alexander
  2012-03-19  7:19 ` Grant Diffey
@ 2012-03-20 13:19 ` Clemens Ladisch
       [not found]   ` <CAOyn=DE6adyJA25wgy-NraAjkPUP2HC6FQ0m8p84XATXQphcrw@mail.gmail.com>
  2012-03-23  5:57   ` Grant Diffey
  1 sibling, 2 replies; 15+ messages in thread
From: Clemens Ladisch @ 2012-03-20 13:19 UTC (permalink / raw)
  To: David Alexander; +Cc: alsa-devel

David Alexander wrote:
> I bought and would like to get an eleven rack interface to work.  It
> is a usb gutiar amp emulator/audio interface.  It is a avid/digi
> device that normal uses asio vendor specific drivers.
>
>     Interface Association:
>       bFunctionClass        255 Vendor Specific Class

Indeed.

>       bInterfaceNumber        1
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      1
>       bInterfaceProtocol     32
>       ** UNRECOGNIZED:  09 24 01 00 02 0a ae 00 01 ...

This looks like it's mostly standard compliant; please try to add this
entry to sound/usb/quirks-table.h:

{
	USB_DEVICE(0x, 0x),
	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
		.vendor_name = "M-Audio",
		.product_name = "MidiSport 2x4",
		.ifnum = QUIRK_ANY_INTERFACE,
		.type = QUIRK_COMPOSITE,
		.data = & (const struct snd_usb_audio_quirk[]) {
			{
				.ifnum = 1,
				.type = QUIRK_AUDIO_STANDARD_MIXER
			},
			{
				.ifnum = 2,
				.type = QUIRK_MIDI_STANDARD_INTERFACE
			},
			{
				.ifnum = 3,
				.type = QUIRK_AUDIO_STANDARD_INTERFACE
			},
			{
				.ifnum = 4,
				.type = QUIRK_AUDIO_STANDARD_INTERFACE
			},
			{
				.ifnum = -1
			}
		}
	}
}

>           Transfer Type            Isochronous
>           Synch Type               Asynchronous
>           Usage Type               Implicit feedback Data

Playback is likely to be not correctly synchronized.


Regards,
Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
       [not found]   ` <CAOyn=DE6adyJA25wgy-NraAjkPUP2HC6FQ0m8p84XATXQphcrw@mail.gmail.com>
@ 2012-03-22 15:13     ` Clemens Ladisch
  0 siblings, 0 replies; 15+ messages in thread
From: Clemens Ladisch @ 2012-03-22 15:13 UTC (permalink / raw)
  To: David Alexander; +Cc: alsa-devel

David Alexander wrote:
> didn't seem to make any difference

Are there any error messages in the system log when you're loading the
driver?


Regards,
Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-03-20 13:19 ` Clemens Ladisch
       [not found]   ` <CAOyn=DE6adyJA25wgy-NraAjkPUP2HC6FQ0m8p84XATXQphcrw@mail.gmail.com>
@ 2012-03-23  5:57   ` Grant Diffey
       [not found]     ` <4F718114.5020602@ladisch.de>
  1 sibling, 1 reply; 15+ messages in thread
From: Grant Diffey @ 2012-03-23  5:57 UTC (permalink / raw)
  To: Clemens Ladisch, Daniel Mack; +Cc: alsa-devel, David Alexander

[snip]

Clemens/Daniel,

Does this seem more complete given that DFU and Midi are Class compliant

my guess at the interface purposes from David's post are:

Interface 0 is a DFU firmware upgrade // looks usb class compliant.
Interface 1 is really custom (perhaps some sort of custom
control/management thing tho I would of thought they'd use midi sysex for
that)
Interface 2 is the midi  //looks 100% standards compliant (works?)
Interface 3 looks like maybe a usb mixer without a descriptor? but that's a
guess.
Interface 4 is potentially usb2 audio output // looks similar to the
maudioi fast track isosyncronous outputs
Interface 5 is potentially usb2 audio input. // ""

So that all said.

can USB_DEVICE_VENDOR_SPEC deal with out of order compliant/quirked
interfaces or only sequencial??

Would this look more like it using USB_DEVICE_VENDOR_SPEC?

USB_DEVICE_VENDOR_SPEC(0x0dba, 0xb011),
       .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
               .vendor_name = "Digidesign",
               .product_name = "Eleven Rack",
               .ifnum = QUIRK_ANY_INTERFACE,
               .type = QUIRK_COMPOSITE,
               .data = & (const struct snd_usb_audio_quirk[]) {
                       {
                               .ifnum = 1,
                               .type = QUIRK_IGNORE_INTERFACE
                       },

                       {
                               .ifnum = 3,
                               .type = QUIRK_AUDIO_STANDARD_MIXER
                       },
                       {
                               .ifnum = 4,
                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
                       },
                       {
                               .ifnum = 5,
                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
                       },
                       {
                               .ifnum = -1
                       }
               }
       }
}

Will a quirk with no usbid work (assuming david didn't edit what clemens
posted) ?

My gut feeling is that the mixer is missing all the endpoint and route
stuff so we'll need to build a model of the mixer by sniffing the usb.

Grant.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
       [not found]       ` <CAOyn=DFig0m1zFRWyTE6Neimrcy12PPAoNL8BdFVaAUrYEYbGw@mail.gmail.com>
@ 2012-03-28 16:53         ` David Alexander
  2012-03-29  7:08         ` Clemens Ladisch
  1 sibling, 0 replies; 15+ messages in thread
From: David Alexander @ 2012-03-28 16:53 UTC (permalink / raw)
  To: alsa-devel

---------- Forwarded message ----------
From: "David Alexander" <lidxv0n@gmail.com>
Date: Mar 27, 2012 10:45 PM
Subject: Re: [alsa-devel] trying to get an eleven rack to work
To: "Clemens Ladisch" <clemens@ladisch.de>

Grant & Clemens,

Sorry for the delay in getting the dev box set up.   Here are the
errors listed from the
syslog with the suggested additions to quirks-table.h implemented:


kernel: [   74.128035] usb 2-4: new high speed USB device number 2
using ehci_hcd
mtp-probe: checking bus 2, device 2:
"/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-4"
mtp-probe: bus: 2, device: 2 was not an MTP device

kernel: [   74.634592] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type
0x09
kernel: [   74.634606] snd-usb-audio: probe of 2-4:1.0 failed with error -5
kernel: [   74.635228] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type
0x09
kernel: [   74.635246] snd-usb-audio: probe of 2-4:1.1 failed with error -5
kernel: [   74.635717] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type
0x09
kernel: [   74.635732] snd-usb-audio: probe of 2-4:1.2 failed with error -5
kernel: [   74.636515] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type
0x09
kernel: [   74.636529] snd-usb-audio: probe of 2-4:1.3 failed with error -5
kernel: [   74.636973] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type
0x09
kernel: [   74.636986] snd-usb-audio: probe of 2-4:1.4 failed with error -5
kernel: [   74.637027] usbcore: registered new interface driver
snd-usb-audio


Thank you,
David



On Tue, Mar 27, 2012 at 4:57 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
> Grant Diffey wrote:
>> my guess at the interface purposes from David's post are:
>>
>> Interface 1 is really custom (perhaps some sort of custom
control/management thing tho I would of thought they'd use midi sysex for
that)
>
> It's an audio control interface, just marked as vendor-specific.
>
>> Interface 3 looks like maybe a usb mixer without a descriptor? but
that's a guess.
>
> Interface 3 is audio output.
>
>> Interface 4 is potentially usb2 audio output // looks similar to the
maudioi fast track isosyncronous outputs
>
> Interface 4 is audio input, it has only an input endpoint.
>
>> Interface 5 is potentially usb2 audio input. // ""
>
> There is no interface 5.
>
>> can USB_DEVICE_VENDOR_SPEC deal with out of order compliant/quirked
interfaces or only sequencial??
>
> The one has nothing to do with the other.
>
>
> Regards,
> Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
       [not found]       ` <CAOyn=DFig0m1zFRWyTE6Neimrcy12PPAoNL8BdFVaAUrYEYbGw@mail.gmail.com>
  2012-03-28 16:53         ` David Alexander
@ 2012-03-29  7:08         ` Clemens Ladisch
  2012-03-29 14:02           ` David Alexander
  1 sibling, 1 reply; 15+ messages in thread
From: Clemens Ladisch @ 2012-03-29  7:08 UTC (permalink / raw)
  To: David Alexander, Daniel Mack; +Cc: alsa-devel

David Alexander wrote:
> kernel: [   74.128035] usb 2-4: new high speed USB device number 2
> kernel: [   74.634592] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> kernel: [   74.634606] snd-usb-audio: probe of 2-4:1.0 failed with error -5

0x09 is UAC2's EXTENSION_UNIT, which should not be a reason for failing.
Please try the patch below.


Regards,
Clemens


--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1926,7 +1926,7 @@ static int parse_audio_unit(struct mixer_build *state, int unitid)
 			return parse_audio_processing_unit(state, unitid, p1);
 	default:
 		snd_printk(KERN_ERR "usbaudio: unit %u: unexpected type 0x%02x\n", unitid, p1[2]);
-		return -EINVAL;
+		return 0;
 	}
 }

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-03-29  7:08         ` Clemens Ladisch
@ 2012-03-29 14:02           ` David Alexander
  2012-03-30 17:27             ` David Alexander
  0 siblings, 1 reply; 15+ messages in thread
From: David Alexander @ 2012-03-29 14:02 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: alsa-devel, Daniel Mack

Here is what I am getting after having changed the line in mixer.c:

[   92.284035] usb 2-4: new high speed USB device number 2 using ehci_hcd
[   92.815354] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   92.815382] snd-usb-audio: probe of 2-4:1.0 failed with error -5
[   92.816352] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   92.816372] snd-usb-audio: probe of 2-4:1.1 failed with error -5
[   92.816966] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   92.816980] snd-usb-audio: probe of 2-4:1.2 failed with error -5
[   92.817960] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   92.817972] snd-usb-audio: probe of 2-4:1.3 failed with error -5
[   92.818587] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   92.818598] snd-usb-audio: probe of 2-4:1.4 failed with error -5
[   92.818638] usbcore: registered new interface driver snd-usb-audio


I noticed that I am not getting an entry under /proc/asound that I had
before.  Before I got an entry called "Rack" with a sym link to card1:

/proc/asound$ ls -l
total 0
dr-xr-xr-x 5 root root 0 2012-03-29 09:52 card0
-r--r--r-- 1 root root 0 2012-03-29 10:01 cards
-r--r--r-- 1 root root 0 2012-03-29 10:01 devices
-r--r--r-- 1 root root 0 2012-03-29 10:01 hwdep
lrwxrwxrwx 1 root root 5 2012-03-29 10:01 Intel -> card0
-r--r--r-- 1 root root 0 2012-03-29 10:01 modules
-r--r--r-- 1 root root 0 2012-03-29 10:01 pcm
dr-xr-xr-x 2 root root 0 2012-03-29 10:01 seq
-r--r--r-- 1 root root 0 2012-03-29 10:01 timers
-r--r--r-- 1 root root 0 2012-03-29 10:01 version


Thank you,
David

On Thu, Mar 29, 2012 at 3:08 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
> David Alexander wrote:
>> kernel: [   74.128035] usb 2-4: new high speed USB device number 2
>> kernel: [   74.634592] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
>> kernel: [   74.634606] snd-usb-audio: probe of 2-4:1.0 failed with error -5
>
> 0x09 is UAC2's EXTENSION_UNIT, which should not be a reason for failing.
> Please try the patch below.
>
>
> Regards,
> Clemens
>
>
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -1926,7 +1926,7 @@ static int parse_audio_unit(struct mixer_build *state, int unitid)
>                        return parse_audio_processing_unit(state, unitid, p1);
>        default:
>                snd_printk(KERN_ERR "usbaudio: unit %u: unexpected type 0x%02x\n", unitid, p1[2]);
> -               return -EINVAL;
> +               return 0;
>        }
>  }
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-03-29 14:02           ` David Alexander
@ 2012-03-30 17:27             ` David Alexander
       [not found]               ` <CACckToX-kqDyM6sFW_9in64cgO5RQekA-J=EEHSXxgsxEuMk=Q@mail.gmail.com>
  0 siblings, 1 reply; 15+ messages in thread
From: David Alexander @ 2012-03-30 17:27 UTC (permalink / raw)
  To: alsa-devel

Grant,

You had mentioned something about the end point for the mixer.  I have
found this information from the trace I had performed:

>From a dispatch urb_function_get_descriptor_from_device message under
the fid_USBPORT_Endpoint_Descriptor:

fid_bLength 7
fid_bDescriptortype 5
fid_bEndpointAddress 0
fid_bmAttributes 0
fid_wMaxPacketSize 64
fid_bInterval 0

Is this what you were asking about, and does it help us?

thanks,
David



On Thu, Mar 29, 2012 at 10:02 AM, David Alexander <lidxv0n@gmail.com> wrote:
> Here is what I am getting after having changed the line in mixer.c:
>
> [   92.284035] usb 2-4: new high speed USB device number 2 using ehci_hcd
> [   92.815354] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   92.815382] snd-usb-audio: probe of 2-4:1.0 failed with error -5
> [   92.816352] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   92.816372] snd-usb-audio: probe of 2-4:1.1 failed with error -5
> [   92.816966] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   92.816980] snd-usb-audio: probe of 2-4:1.2 failed with error -5
> [   92.817960] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   92.817972] snd-usb-audio: probe of 2-4:1.3 failed with error -5
> [   92.818587] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   92.818598] snd-usb-audio: probe of 2-4:1.4 failed with error -5
> [   92.818638] usbcore: registered new interface driver snd-usb-audio
>
>
> I noticed that I am not getting an entry under /proc/asound that I had
> before.  Before I got an entry called "Rack" with a sym link to card1:
>
> /proc/asound$ ls -l
> total 0
> dr-xr-xr-x 5 root root 0 2012-03-29 09:52 card0
> -r--r--r-- 1 root root 0 2012-03-29 10:01 cards
> -r--r--r-- 1 root root 0 2012-03-29 10:01 devices
> -r--r--r-- 1 root root 0 2012-03-29 10:01 hwdep
> lrwxrwxrwx 1 root root 5 2012-03-29 10:01 Intel -> card0
> -r--r--r-- 1 root root 0 2012-03-29 10:01 modules
> -r--r--r-- 1 root root 0 2012-03-29 10:01 pcm
> dr-xr-xr-x 2 root root 0 2012-03-29 10:01 seq
> -r--r--r-- 1 root root 0 2012-03-29 10:01 timers
> -r--r--r-- 1 root root 0 2012-03-29 10:01 version
>
>
> Thank you,
> David
>
> On Thu, Mar 29, 2012 at 3:08 AM, Clemens Ladisch <clemens@ladisch.de> wrote:
>> David Alexander wrote:
>>> kernel: [   74.128035] usb 2-4: new high speed USB device number 2
>>> kernel: [   74.634592] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
>>> kernel: [   74.634606] snd-usb-audio: probe of 2-4:1.0 failed with error -5
>>
>> 0x09 is UAC2's EXTENSION_UNIT, which should not be a reason for failing.
>> Please try the patch below.
>>
>>
>> Regards,
>> Clemens
>>
>>
>> --- a/sound/usb/mixer.c
>> +++ b/sound/usb/mixer.c
>> @@ -1926,7 +1926,7 @@ static int parse_audio_unit(struct mixer_build *state, int unitid)
>>                        return parse_audio_processing_unit(state, unitid, p1);
>>        default:
>>                snd_printk(KERN_ERR "usbaudio: unit %u: unexpected type 0x%02x\n", unitid, p1[2]);
>> -               return -EINVAL;
>> +               return 0;
>>        }
>>  }
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
       [not found]               ` <CACckToX-kqDyM6sFW_9in64cgO5RQekA-J=EEHSXxgsxEuMk=Q@mail.gmail.com>
@ 2012-04-02 17:50                 ` David Alexander
  2012-04-03 15:36                   ` David Alexander
  0 siblings, 1 reply; 15+ messages in thread
From: David Alexander @ 2012-04-02 17:50 UTC (permalink / raw)
  To: Grant Diffey; +Cc: alsa-devel

Grant,

I had an entry using the USB_DEVICE which is very similar to the one
you suggested.  I changed it over to the USB_DEVICE_VENDOR_SPEC you
had listed.

I am getting:

[   60.952067] usb 2-4: new high speed USB device number 2 using ehci_hcd
[   61.468413] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   61.468433] snd-usb-audio: probe of 2-4:1.1 failed with error -5
[   61.469257] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   61.469266] snd-usb-audio: probe of 2-4:1.3 failed with error -5
[   61.469280] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
[   61.469285] snd-usb-audio: probe of 2-4:1.4 failed with error -5
[   61.469305] usbcore: registered new interface driver snd-usb-audio

and I have entries in /proc/asound as before:

ls -l
total 0
-r--r--r-- 1 root root 0 2012-04-02 13:47 id
-r--r--r-- 1 root root 0 2012-04-02 13:47 midi0
-r--r--r-- 1 root root 0 2012-04-02 13:47 usbbus
-r--r--r-- 1 root root 0 2012-04-02 13:47 usbid

Those entries had disappeared after making the changed to mixer.c.

It didn't seem to be the magic bullet though, as I need some sort of
pcm entries to be created?   What is the difference between the
usb_device and usb_device_vendor_spec?   Any other ideas?

thanks,
David

On Fri, Mar 30, 2012 at 5:02 PM, Grant Diffey <gdiffey@gmail.com> wrote:
>
> On Sat, Mar 31, 2012 at 4:27 AM, David Alexander <lidxv0n@gmail.com> wrote:
>>
>> Grant,
>>
>> You had mentioned something about the end point for the mixer.  I have
>> found this information from the trace I had performed:
>>
>> From a dispatch urb_function_get_descriptor_from_device message under
>> the fid_USBPORT_Endpoint_Descriptor:
>>
>> fid_bLength 7
>> fid_bDescriptortype 5
>> fid_bEndpointAddress 0
>> fid_bmAttributes 0
>> fid_wMaxPacketSize 64
>> fid_bInterval 0
>>
>> Is this what you were asking about, and does it help us?
>>
>> thanks,
>> David
>>
>>
>>
>
> What does the quirk look like that you have now? because what I wrote was
> wrong.
>
> it seems I can't count to 5 :)
>
> so based on what Clemens said and me re-reading the interface descriptor
>
> Interface 0 is dfu upload
> Interface 1 is a mixer
>
> Interface 2 is the midi
> Interface 3 is audio output
> Interface 4 is audio Input and provides clock data for output
>
> 0 and 2 were previously recognised so do not need to be quirked.
>
> so I think this is what the quirk should look like:
>
>
> USB_DEVICE_VENDOR_SPEC(0x0dba, 0xb011),
>
>        .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
>                .vendor_name = "Digidesign",
>                .product_name = "Eleven Rack",
>                .ifnum = QUIRK_ANY_INTERFACE,
>                .type = QUIRK_COMPOSITE,
>                .data = & (const struct snd_usb_audio_quirk[]) {
>
>                        {
>                                .ifnum = 1,
>                                .type = QUIRK_AUDIO_STANDARD_MIXER
>                        },
>                        {
>                                .ifnum = 3,
>                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
>
>                        },
>                        {
>                                .ifnum = 4,
>                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
>                        },
>                        {
>                                .ifnum = -1
>                        }
>                }
>        }
> }
>
> is that similar to what you have?
>
> Grant.
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-04-02 17:50                 ` David Alexander
@ 2012-04-03 15:36                   ` David Alexander
  2012-04-03 19:20                     ` Clemens Ladisch
  0 siblings, 1 reply; 15+ messages in thread
From: David Alexander @ 2012-04-03 15:36 UTC (permalink / raw)
  To: Grant Diffey; +Cc: alsa-devel

Grant & Clemens,

I have come across some code written for another device by the same
company for another product (Digidesign MBox 2).  It appears that for
this other device to function there is a boot sequence that needs to
be sent to the device to work.  From the comments in the code:
/* From USB Snoop,
                 *
                 * SetupPacket = RT RQ VHVL INDX SIZE
                 * RT = 0xRT Request Type
                 * RQ = 0xRQ Request
                 * VHVL = 0xVLVH Value in reverse byte order
                 * INDX = 0xDXIN Index in reverse byte order
                 * SIZE = 0xZESI Size in reverse byte order
                 *
                 * Magic boot code setup packet: c0 85 01 00 00 00 12 00
                 *           RQ    RT    VLVH    DXIN                 ZESI
                 * becomes 0x85, 0xc0, 0x0001, 0x0000, &RETURNDATA,
0x0012, TIMEOUT
                 * for snd_usb_ctl_msg()
                 */

I have a logfile from a usb snoop on windows and was wondering if you
could give me any pointers of what to look for if something like this
is also required for the eleven rack device.  I see a
urb_function_select_configuration, and many
urb_function_control_transfer with data that says the data is going
from the host to device.   Can you offer any suggestions as to
anything I should be looking for that might be outside of what is
"normal" and requires some sort of data string be sent to the device
to get it to operate normally?

Thank you,
David






On Mon, Apr 2, 2012 at 1:50 PM, David Alexander <lidxv0n@gmail.com> wrote:
> Grant,
>
> I had an entry using the USB_DEVICE which is very similar to the one
> you suggested.  I changed it over to the USB_DEVICE_VENDOR_SPEC you
> had listed.
>
> I am getting:
>
> [   60.952067] usb 2-4: new high speed USB device number 2 using ehci_hcd
> [   61.468413] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   61.468433] snd-usb-audio: probe of 2-4:1.1 failed with error -5
> [   61.469257] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   61.469266] snd-usb-audio: probe of 2-4:1.3 failed with error -5
> [   61.469280] ALSA mixer.c:1938 usbaudio: unit 32: unexpected type 0x09
> [   61.469285] snd-usb-audio: probe of 2-4:1.4 failed with error -5
> [   61.469305] usbcore: registered new interface driver snd-usb-audio
>
> and I have entries in /proc/asound as before:
>
> ls -l
> total 0
> -r--r--r-- 1 root root 0 2012-04-02 13:47 id
> -r--r--r-- 1 root root 0 2012-04-02 13:47 midi0
> -r--r--r-- 1 root root 0 2012-04-02 13:47 usbbus
> -r--r--r-- 1 root root 0 2012-04-02 13:47 usbid
>
> Those entries had disappeared after making the changed to mixer.c.
>
> It didn't seem to be the magic bullet though, as I need some sort of
> pcm entries to be created?   What is the difference between the
> usb_device and usb_device_vendor_spec?   Any other ideas?
>
> thanks,
> David
>
> On Fri, Mar 30, 2012 at 5:02 PM, Grant Diffey <gdiffey@gmail.com> wrote:
>>
>> On Sat, Mar 31, 2012 at 4:27 AM, David Alexander <lidxv0n@gmail.com> wrote:
>>>
>>> Grant,
>>>
>>> You had mentioned something about the end point for the mixer.  I have
>>> found this information from the trace I had performed:
>>>
>>> From a dispatch urb_function_get_descriptor_from_device message under
>>> the fid_USBPORT_Endpoint_Descriptor:
>>>
>>> fid_bLength 7
>>> fid_bDescriptortype 5
>>> fid_bEndpointAddress 0
>>> fid_bmAttributes 0
>>> fid_wMaxPacketSize 64
>>> fid_bInterval 0
>>>
>>> Is this what you were asking about, and does it help us?
>>>
>>> thanks,
>>> David
>>>
>>>
>>>
>>
>> What does the quirk look like that you have now? because what I wrote was
>> wrong.
>>
>> it seems I can't count to 5 :)
>>
>> so based on what Clemens said and me re-reading the interface descriptor
>>
>> Interface 0 is dfu upload
>> Interface 1 is a mixer
>>
>> Interface 2 is the midi
>> Interface 3 is audio output
>> Interface 4 is audio Input and provides clock data for output
>>
>> 0 and 2 were previously recognised so do not need to be quirked.
>>
>> so I think this is what the quirk should look like:
>>
>>
>> USB_DEVICE_VENDOR_SPEC(0x0dba, 0xb011),
>>
>>        .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
>>                .vendor_name = "Digidesign",
>>                .product_name = "Eleven Rack",
>>                .ifnum = QUIRK_ANY_INTERFACE,
>>                .type = QUIRK_COMPOSITE,
>>                .data = & (const struct snd_usb_audio_quirk[]) {
>>
>>                        {
>>                                .ifnum = 1,
>>                                .type = QUIRK_AUDIO_STANDARD_MIXER
>>                        },
>>                        {
>>                                .ifnum = 3,
>>                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
>>
>>                        },
>>                        {
>>                                .ifnum = 4,
>>                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
>>                        },
>>                        {
>>                                .ifnum = -1
>>                        }
>>                }
>>        }
>> }
>>
>> is that similar to what you have?
>>
>> Grant.
>>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-04-03 15:36                   ` David Alexander
@ 2012-04-03 19:20                     ` Clemens Ladisch
  2012-04-03 19:37                       ` David Alexander
  0 siblings, 1 reply; 15+ messages in thread
From: Clemens Ladisch @ 2012-04-03 19:20 UTC (permalink / raw)
  To: David Alexander; +Cc: Grant Diffey, alsa-devel, Daniel Mack

David Alexander wrote:
> I have come across some code written for another device by the same
> company for another product (Digidesign MBox 2).

The Mbox 2 uses a vendor-specific protocol; your device does not.

The Eleven Rack would work with the USB Audio 2.0 support of the Linux
driver, except that some parts of the USB Audio 2.0 specification are
not implemented.


Regards,
Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-04-03 19:20                     ` Clemens Ladisch
@ 2012-04-03 19:37                       ` David Alexander
  2012-04-04  4:33                         ` Grant Diffey
  2012-04-04 13:49                         ` Clemens Ladisch
  0 siblings, 2 replies; 15+ messages in thread
From: David Alexander @ 2012-04-03 19:37 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: Grant Diffey, alsa-devel, Daniel Mack

Clemens,

Thank you for the clarification.   Since we've tried the entries in
the quirks-table.h and the change to mixer.c, and
its still not working...have we went as far as we can until the other
parts of the specification are implemented?

Is there anything else device related that I can do, or is it a case
of waiting until the backend infrastructure is in place?

thank you,
David

On Tue, Apr 3, 2012 at 3:20 PM, Clemens Ladisch <clemens@ladisch.de> wrote:
> David Alexander wrote:
>> I have come across some code written for another device by the same
>> company for another product (Digidesign MBox 2).
>
> The Mbox 2 uses a vendor-specific protocol; your device does not.
>
> The Eleven Rack would work with the USB Audio 2.0 support of the Linux
> driver, except that some parts of the USB Audio 2.0 specification are
> not implemented.
>
>
> Regards,
> Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-04-03 19:37                       ` David Alexander
@ 2012-04-04  4:33                         ` Grant Diffey
  2012-04-04 13:49                         ` Clemens Ladisch
  1 sibling, 0 replies; 15+ messages in thread
From: Grant Diffey @ 2012-04-04  4:33 UTC (permalink / raw)
  To: David Alexander; +Cc: alsa-devel, Clemens Ladisch, Daniel Mack

David,

Can you please paste the current quirk definition you're using from
quirk-table.h ?

from what I understand it should work. like get sound in/out playback
syncronisation is likely to be bad due to snd-usb-audio not supporting
implicit feedback.

Grant.


On Wed, Apr 4, 2012 at 5:37 AM, David Alexander <lidxv0n@gmail.com> wrote:

> Clemens,
>
> Thank you for the clarification.   Since we've tried the entries in
> the quirks-table.h and the change to mixer.c, and
> its still not working...have we went as far as we can until the other
> parts of the specification are implemented?
>
> Is there anything else device related that I can do, or is it a case
> of waiting until the backend infrastructure is in place?
>
> thank you,
> David
>
> On Tue, Apr 3, 2012 at 3:20 PM, Clemens Ladisch <clemens@ladisch.de>
> wrote:
> > David Alexander wrote:
> >> I have come across some code written for another device by the same
> >> company for another product (Digidesign MBox 2).
> >
> > The Mbox 2 uses a vendor-specific protocol; your device does not.
> >
> > The Eleven Rack would work with the USB Audio 2.0 support of the Linux
> > driver, except that some parts of the USB Audio 2.0 specification are
> > not implemented.
> >
> >
> > Regards,
> > Clemens
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: trying to get an eleven rack to work
  2012-04-03 19:37                       ` David Alexander
  2012-04-04  4:33                         ` Grant Diffey
@ 2012-04-04 13:49                         ` Clemens Ladisch
  1 sibling, 0 replies; 15+ messages in thread
From: Clemens Ladisch @ 2012-04-04 13:49 UTC (permalink / raw)
  To: David Alexander; +Cc: Grant Diffey, alsa-devel, Daniel Mack

David Alexander wrote:
> is it a case of waiting until the backend infrastructure is in place?

Yes.


Regards,
Clemens

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-04-04 13:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-17 23:17 trying to get an eleven rack to work David Alexander
2012-03-19  7:19 ` Grant Diffey
2012-03-20 13:19 ` Clemens Ladisch
     [not found]   ` <CAOyn=DE6adyJA25wgy-NraAjkPUP2HC6FQ0m8p84XATXQphcrw@mail.gmail.com>
2012-03-22 15:13     ` Clemens Ladisch
2012-03-23  5:57   ` Grant Diffey
     [not found]     ` <4F718114.5020602@ladisch.de>
     [not found]       ` <CAOyn=DFig0m1zFRWyTE6Neimrcy12PPAoNL8BdFVaAUrYEYbGw@mail.gmail.com>
2012-03-28 16:53         ` David Alexander
2012-03-29  7:08         ` Clemens Ladisch
2012-03-29 14:02           ` David Alexander
2012-03-30 17:27             ` David Alexander
     [not found]               ` <CACckToX-kqDyM6sFW_9in64cgO5RQekA-J=EEHSXxgsxEuMk=Q@mail.gmail.com>
2012-04-02 17:50                 ` David Alexander
2012-04-03 15:36                   ` David Alexander
2012-04-03 19:20                     ` Clemens Ladisch
2012-04-03 19:37                       ` David Alexander
2012-04-04  4:33                         ` Grant Diffey
2012-04-04 13:49                         ` Clemens Ladisch

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.