[alsa-devel] trying to get an eleven rack to work

David Alexander lidxv0n at gmail.com
Mon Apr 2 19:50:18 CEST 2012


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 at gmail.com> wrote:
>
> On Sat, Mar 31, 2012 at 4:27 AM, David Alexander <lidxv0n at 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.
>


More information about the Alsa-devel mailing list