Hartmut Geissbauer wrote:
> I own a piece of hardware called Noah EX. It's a "tactive
> instrument modeller".
> My goal is to get this device working with the alsa usb driver,
> because the output of lsusb -v leads me to the hope, that it has a
> standard usb audio interface.
> ...
> Interface Descriptor:
>   bInterfaceClass         1 Audio
>   bInterfaceSubClass      1 Control Device
>   ...
>   bInterfaceSubClass      2 Streaming       (= PCM)
>   ...
>   bInterfaceSubClass      3 Non Streaming   (= MIDI)

Well, this device indeed has standard descriptors.

> What I discoverd yet, is that the device is offering two
> configurations. And the second is the audio and midi related one.
> The first seems to be the configuration "channel".

> Feb  5 00:28:33 chief kernel: usb 1-2.4: configuration #1 chosen from 2 choices

The problem is that the kernel automatically selects the first
configuration.  Please try the patch below.


HTH
Clemens

-- 

Index: alsa-kernel/usb/usbquirks.h
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbquirks.h,v
retrieving revision 1.27
diff -u -r1.27 usbquirks.h
--- alsa-kernel/usb/usbquirks.h 11 Feb 2004 12:15:55 -0000      1.27
+++ alsa-kernel/usb/usbquirks.h 12 Feb 2004 10:56:21 -0000
@@ -698,4 +698,13 @@
        }
 },

+{
+       USB_DEVICE_VENDOR_SPEC(0x1107, 0x0102),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "CreamWare",
+               .product_name = "Noah",
+               .ifnum = QUIRK_NO_INTERFACE
+       }
+},
+
 #undef USB_DEVICE_VENDOR_SPEC
Index: alsa-kernel/usb/usbaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/usb/usbaudio.c,v
retrieving revision 1.79
diff -u -r1.79 usbaudio.c
--- alsa-kernel/usb/usbaudio.c  9 Feb 2004 16:25:38 -0000       1.79
+++ alsa-kernel/usb/usbaudio.c  12 Feb 2004 10:56:21 -0000
@@ -2820,6 +2820,14 @@
                        goto __err_val;
                config = dev->actconfig;
        }
+       /* Creamware Noah needs to be set to the second configuration */
+       if (dev->descriptor.idVendor == 0x1107 && dev->descriptor.idProduct == 0x0102 
&&
+           ifnum == 0) {
+               if (get_cfg_desc(dev->actconfig)->bConfigurationValue == 1)
+                       usb_set_configuration(dev, 2);
+               /* but don't actually claim interface 0 */
+               goto __err_val;
+       }

        /*
         * found a config.  now register to ALSA




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to