vserver 2.0 rc7
[linux-2.6.git] / sound / usb / usbquirks.h
index e79721c..88bbd94 100644 (file)
@@ -72,6 +72,8 @@ YAMAHA_DEVICE(0x1007, "MOTIF8"),
 YAMAHA_DEVICE(0x1008, "UX96"),
 YAMAHA_DEVICE(0x1009, "UX16"),
 YAMAHA_INTERFACE(0x100a, 3, "EOS BX"),
+YAMAHA_DEVICE(0x100c, "UC-MX"),
+YAMAHA_DEVICE(0x100d, "UC-KX"),
 YAMAHA_DEVICE(0x100e, "S08"),
 YAMAHA_DEVICE(0x100f, "CLP-150"),
 YAMAHA_DEVICE(0x1010, "CLP-170"),
@@ -86,6 +88,7 @@ YAMAHA_DEVICE(0x1019, "CVP-208"),
 YAMAHA_DEVICE(0x101a, "CVP-210"),
 YAMAHA_DEVICE(0x101b, "PSR-1100"),
 YAMAHA_DEVICE(0x101c, "PSR-2100"),
+YAMAHA_DEVICE(0x101d, "CLP-175"),
 YAMAHA_DEVICE(0x101e, "PSR-K1"),
 YAMAHA_DEVICE(0x1020, "EZ-250i"),
 YAMAHA_DEVICE(0x1021, "MOTIF ES 6"),
@@ -125,9 +128,12 @@ YAMAHA_DEVICE(0x5005, "ACU16-C"),
 YAMAHA_DEVICE(0x5006, "NHB32-C"),
 YAMAHA_DEVICE(0x5007, "DM1000"),
 YAMAHA_DEVICE(0x5008, "01V96"),
+YAMAHA_DEVICE(0x5009, "SPX2000"),
 YAMAHA_DEVICE(0x500a, "PM5D"),
 YAMAHA_DEVICE(0x500b, "DME64N"),
 YAMAHA_DEVICE(0x500c, "DME24N"),
+YAMAHA_DEVICE(0x500d, NULL),
+YAMAHA_DEVICE(0x500e, NULL),
 YAMAHA_DEVICE(0x7000, "DTX"),
 YAMAHA_DEVICE(0x7010, "UB99"),
 #undef YAMAHA_DEVICE
@@ -628,6 +634,19 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                }
        }
 },
+{
+       USB_DEVICE(0x0582, 0x0042),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Roland",
+               .product_name = "RS-70",
+               .ifnum = 0,
+               .type = QUIRK_MIDI_FIXED_ENDPOINT,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x0001,
+                       .in_cables  = 0x0001
+               }
+       }
+},
 {
        USB_DEVICE(0x0582, 0x0044),
        .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
@@ -684,19 +703,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                }
        }
 },
-{
-       USB_DEVICE(0x0582, 0x0065),
-       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
-               .vendor_name = "EDIROL",
-               .product_name = "PCR-1",
-               .ifnum = 0,
-               .type = QUIRK_MIDI_FIXED_ENDPOINT,
-               .data = & (const snd_usb_midi_endpoint_info_t) {
-                       .out_cables = 0x0001,
-                       .in_cables  = 0x0003
-               }
-       }
-},
 {
        /*
         * This quirk is for the "Advanced Driver" mode. If off, the UA-3FX
@@ -732,6 +738,45 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                .type = QUIRK_MIDI_STANDARD_INTERFACE
        }
 },
+{
+       USB_DEVICE(0x0582, 0x0065),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "EDIROL",
+               .product_name = "PCR-1",
+               .ifnum = 0,
+               .type = QUIRK_MIDI_FIXED_ENDPOINT,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x0001,
+                       .in_cables  = 0x0003
+               }
+       }
+},
+{
+       USB_DEVICE_VENDOR_SPEC(0x0582, 0x006a),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Roland",
+               .product_name = "SP-606",
+               .ifnum = 3,
+               .type = QUIRK_MIDI_FIXED_ENDPOINT,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x0001,
+                       .in_cables  = 0x0001
+               }
+       }
+},
+{
+       USB_DEVICE(0x0582, 0x006d),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Roland",
+               .product_name = "FANTOM-X",
+               .ifnum = 0,
+               .type = QUIRK_MIDI_FIXED_ENDPOINT,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x0001,
+                       .in_cables  = 0x0001
+               }
+       }
+},
 {      /*
         * This quirk is for the "Advanced" modes of the Edirol UA-25.
         * If the switch is not in an advanced setting, the UA-25 has
@@ -763,6 +808,19 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                }
        }
 },
+{
+       USB_DEVICE(0x0582, 0x0075),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "BOSS",
+               .product_name = "DR-880",
+               .ifnum = 0,
+               .type = QUIRK_MIDI_FIXED_ENDPOINT,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x0001,
+                       .in_cables  = 0x0001
+               }
+       }
+},
 
 /* Midiman/M-Audio devices */
 {
@@ -875,6 +933,22 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                         * Ignore them.  The other interfaces can do 24 bits,
                         * but captured samples are big-endian (see usbaudio.c).
                         */
+                       {
+                               .ifnum = 0,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 1,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 2,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 3,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
                        {
                                .ifnum = 4,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
@@ -883,6 +957,10 @@ YAMAHA_DEVICE(0x7010, "UB99"),
                                .ifnum = 5,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
                        },
+                       {
+                               .ifnum = 6,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
                        {
                                .ifnum = 7,
                                .type = QUIRK_AUDIO_STANDARD_INTERFACE
@@ -936,27 +1014,81 @@ YAMAHA_DEVICE(0x7010, "UB99"),
        .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
                .vendor_name = "M-Audio",
                .product_name = "OmniStudio",
-               .ifnum = 9,
-               .type = QUIRK_MIDI_MIDIMAN,
-               .data = & (const snd_usb_midi_endpoint_info_t) {
-                       .out_cables = 0x0001,
-                       .in_cables  = 0x0001
+               .ifnum = QUIRK_ANY_INTERFACE,
+               .type = QUIRK_COMPOSITE,
+               .data = & (const snd_usb_audio_quirk_t[]) {
+                       {
+                               .ifnum = 0,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 1,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 2,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 3,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 4,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 5,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 6,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = 7,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 8,
+                               .type = QUIRK_AUDIO_STANDARD_INTERFACE
+                       },
+                       {
+                               .ifnum = 9,
+                               .type = QUIRK_MIDI_MIDIMAN,
+                               .data = & (const snd_usb_midi_endpoint_info_t) {
+                                       .out_cables = 0x0001,
+                                       .in_cables  = 0x0001
+                               }
+                       },
+                       {
+                               .ifnum = -1
+                       }
                }
        }
 },
 
 /* Mark of the Unicorn devices */
 {
-       /* thanks to Woodley Packard <sweaglesw@thibs.menloschool.org> */
+       /* thanks to Robert A. Lerche <ral 'at' msbit.com> */
        USB_DEVICE(0x07fd, 0x0001),
        .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
                .vendor_name = "MOTU",
                .product_name = "Fastlane",
-               .ifnum = 1,
-               .type = QUIRK_MIDI_FIXED_ENDPOINT,
-               .data = & (const snd_usb_midi_endpoint_info_t) {
-                       .out_cables = 0x0003,
-                       .in_cables  = 0x0003
+               .ifnum = QUIRK_ANY_INTERFACE,
+               .type = QUIRK_COMPOSITE,
+               .data = & (const snd_usb_audio_quirk_t[]) {
+                       {
+                               .ifnum = 0,
+                               .type = QUIRK_MIDI_MOTU
+                       },
+                       {
+                               .ifnum = 1,
+                               .type = QUIRK_IGNORE_INTERFACE
+                       },
+                       {
+                               .ifnum = -1
+                       }
                }
        }
 },
@@ -972,6 +1104,47 @@ YAMAHA_DEVICE(0x7010, "UB99"),
        
 },
 
+/* Emagic devices */
+{
+       USB_DEVICE(0x086a, 0x0001),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Emagic",
+               /* .product_name = "Unitor8", */
+               .ifnum = 2,
+               .type = QUIRK_MIDI_EMAGIC,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x80ff,
+                       .in_cables  = 0x80ff
+               }
+       }
+},
+{
+       USB_DEVICE(0x086a, 0x0002),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Emagic",
+               /* .product_name = "AMT8", */
+               .ifnum = 2,
+               .type = QUIRK_MIDI_EMAGIC,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x80ff,
+                       .in_cables  = 0x80ff
+               }
+       }
+},
+{
+       USB_DEVICE(0x086a, 0x0003),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Emagic",
+               /* .product_name = "MT4", */
+               .ifnum = 2,
+               .type = QUIRK_MIDI_EMAGIC,
+               .data = & (const snd_usb_midi_endpoint_info_t) {
+                       .out_cables = 0x800f,
+                       .in_cables  = 0x8003
+               }
+       }
+},
+
 {
        USB_DEVICE_VENDOR_SPEC(0x0ccd, 0x0013),
        .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
@@ -982,6 +1155,35 @@ YAMAHA_DEVICE(0x7010, "UB99"),
        }
 },
 
+/* Novation EMS devices */
+{
+       USB_DEVICE_VENDOR_SPEC(0x1235, 0x0001),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Novation",
+               .product_name = "ReMOTE Audio/XStation",
+               .ifnum = 4,
+               .type = QUIRK_MIDI_NOVATION
+       }
+},
+{
+       USB_DEVICE_VENDOR_SPEC(0x1235, 0x0002),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Novation",
+               .product_name = "Speedio",
+               .ifnum = 3,
+               .type = QUIRK_MIDI_NOVATION
+       }
+},
+{
+       USB_DEVICE_VENDOR_SPEC(0x1235, 0x4661),
+       .driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
+               .vendor_name = "Novation",
+               .product_name = "ReMOTE25",
+               .ifnum = 0,
+               .type = QUIRK_MIDI_NOVATION
+       }
+},
+
 {
        /*
         * Some USB MIDI devices don't have an audio control interface,