aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/quirks-table.h170
1 files changed, 84 insertions, 86 deletions
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h
index 34547800b0f7..f652b10ce905 100644
--- a/sound/usb/quirks-table.h
+++ b/sound/usb/quirks-table.h
@@ -72,22 +72,21 @@
72 } 72 }
73}, 73},
74 74
75/* Creative/Toshiba Multimedia Center SB-0500 */ 75/* Creative/E-Mu devices */
76{ 76{
77 USB_DEVICE(0x041e, 0x3048), 77 USB_DEVICE(0x041e, 0x3010),
78 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { 78 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
79 .vendor_name = "Toshiba", 79 .vendor_name = "Creative Labs",
80 .product_name = "SB-0500", 80 .product_name = "Sound Blaster MP3+",
81 .ifnum = QUIRK_NO_INTERFACE 81 .ifnum = QUIRK_NO_INTERFACE
82 } 82 }
83}, 83},
84 84/* Creative/Toshiba Multimedia Center SB-0500 */
85/* Creative/E-Mu devices */
86{ 85{
87 USB_DEVICE(0x041e, 0x3010), 86 USB_DEVICE(0x041e, 0x3048),
88 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { 87 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
89 .vendor_name = "Creative Labs", 88 .vendor_name = "Toshiba",
90 .product_name = "Sound Blaster MP3+", 89 .product_name = "SB-0500",
91 .ifnum = QUIRK_NO_INTERFACE 90 .ifnum = QUIRK_NO_INTERFACE
92 } 91 }
93}, 92},
@@ -2521,17 +2520,17 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2521 } 2520 }
2522}, 2521},
2523{ 2522{
2524 USB_DEVICE(0x1235, 0x0018), 2523 USB_DEVICE(0x1235, 0x0010),
2525 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { 2524 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
2526 .vendor_name = "Novation", 2525 .vendor_name = "Focusrite",
2527 .product_name = "Twitch", 2526 .product_name = "Saffire 6 USB",
2528 .ifnum = QUIRK_ANY_INTERFACE, 2527 .ifnum = QUIRK_ANY_INTERFACE,
2529 .type = QUIRK_COMPOSITE, 2528 .type = QUIRK_COMPOSITE,
2530 .data = (const struct snd_usb_audio_quirk[]) { 2529 .data = (const struct snd_usb_audio_quirk[]) {
2531 { 2530 {
2532 .ifnum = 0, 2531 .ifnum = 0,
2533 .type = QUIRK_AUDIO_FIXED_ENDPOINT, 2532 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
2534 .data = & (const struct audioformat) { 2533 .data = &(const struct audioformat) {
2535 .formats = SNDRV_PCM_FMTBIT_S24_3LE, 2534 .formats = SNDRV_PCM_FMTBIT_S24_3LE,
2536 .channels = 4, 2535 .channels = 4,
2537 .iface = 0, 2536 .iface = 0,
@@ -2561,26 +2560,17 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2561 } 2560 }
2562}, 2561},
2563{ 2562{
2564 USB_DEVICE_VENDOR_SPEC(0x1235, 0x4661), 2563 USB_DEVICE(0x1235, 0x0018),
2565 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) { 2564 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
2566 .vendor_name = "Novation", 2565 .vendor_name = "Novation",
2567 .product_name = "ReMOTE25", 2566 .product_name = "Twitch",
2568 .ifnum = 0,
2569 .type = QUIRK_MIDI_NOVATION
2570 }
2571},
2572{
2573 USB_DEVICE(0x1235, 0x0010),
2574 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
2575 .vendor_name = "Focusrite",
2576 .product_name = "Saffire 6 USB",
2577 .ifnum = QUIRK_ANY_INTERFACE, 2567 .ifnum = QUIRK_ANY_INTERFACE,
2578 .type = QUIRK_COMPOSITE, 2568 .type = QUIRK_COMPOSITE,
2579 .data = (const struct snd_usb_audio_quirk[]) { 2569 .data = (const struct snd_usb_audio_quirk[]) {
2580 { 2570 {
2581 .ifnum = 0, 2571 .ifnum = 0,
2582 .type = QUIRK_AUDIO_FIXED_ENDPOINT, 2572 .type = QUIRK_AUDIO_FIXED_ENDPOINT,
2583 .data = &(const struct audioformat) { 2573 .data = & (const struct audioformat) {
2584 .formats = SNDRV_PCM_FMTBIT_S24_3LE, 2574 .formats = SNDRV_PCM_FMTBIT_S24_3LE,
2585 .channels = 4, 2575 .channels = 4,
2586 .iface = 0, 2576 .iface = 0,
@@ -2609,6 +2599,66 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2609 } 2599 }
2610 } 2600 }
2611}, 2601},
2602{
2603 USB_DEVICE_VENDOR_SPEC(0x1235, 0x4661),
2604 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
2605 .vendor_name = "Novation",
2606 .product_name = "ReMOTE25",
2607 .ifnum = 0,
2608 .type = QUIRK_MIDI_NOVATION
2609 }
2610},
2611{
2612 /*
2613 * Focusrite Scarlett 18i6
2614 *
2615 * Avoid mixer creation, which otherwise fails because some of
2616 * the interface descriptor subtypes for interface 0 are
2617 * unknown. That should be fixed or worked-around but this at
2618 * least allows the device to be used successfully with a DAW
2619 * and an external mixer. See comments below about other
2620 * ignored interfaces.
2621 */
2622 USB_DEVICE(0x1235, 0x8004),
2623 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
2624 .vendor_name = "Focusrite",
2625 .product_name = "Scarlett 18i6",
2626 .ifnum = QUIRK_ANY_INTERFACE,
2627 .type = QUIRK_COMPOSITE,
2628 .data = & (const struct snd_usb_audio_quirk[]) {
2629 {
2630 /* InterfaceSubClass 1 (Control Device) */
2631 .ifnum = 0,
2632 .type = QUIRK_IGNORE_INTERFACE
2633 },
2634 {
2635 .ifnum = 1,
2636 .type = QUIRK_AUDIO_STANDARD_INTERFACE
2637 },
2638 {
2639 .ifnum = 2,
2640 .type = QUIRK_AUDIO_STANDARD_INTERFACE
2641 },
2642 {
2643 /* InterfaceSubClass 1 (Control Device) */
2644 .ifnum = 3,
2645 .type = QUIRK_IGNORE_INTERFACE
2646 },
2647 {
2648 .ifnum = 4,
2649 .type = QUIRK_MIDI_STANDARD_INTERFACE
2650 },
2651 {
2652 /* InterfaceSubClass 1 (Device Firmware Update) */
2653 .ifnum = 5,
2654 .type = QUIRK_IGNORE_INTERFACE
2655 },
2656 {
2657 .ifnum = -1
2658 }
2659 }
2660 }
2661},
2612 2662
2613/* Access Music devices */ 2663/* Access Music devices */
2614{ 2664{
@@ -2711,7 +2761,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2711 } 2761 }
2712}, 2762},
2713{ 2763{
2714 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7240), 2764 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7210),
2715 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2765 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2716 USB_DEVICE_ID_MATCH_INT_CLASS | 2766 USB_DEVICE_ID_MATCH_INT_CLASS |
2717 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2767 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2719,13 +2769,13 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2719 .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL, 2769 .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
2720 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { 2770 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
2721 .vendor_name = "Hauppauge", 2771 .vendor_name = "Hauppauge",
2722 .product_name = "HVR-850", 2772 .product_name = "HVR-950Q",
2723 .ifnum = QUIRK_ANY_INTERFACE, 2773 .ifnum = QUIRK_ANY_INTERFACE,
2724 .type = QUIRK_AUDIO_ALIGN_TRANSFER, 2774 .type = QUIRK_AUDIO_ALIGN_TRANSFER,
2725 } 2775 }
2726}, 2776},
2727{ 2777{
2728 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7210), 2778 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7217),
2729 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2779 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2730 USB_DEVICE_ID_MATCH_INT_CLASS | 2780 USB_DEVICE_ID_MATCH_INT_CLASS |
2731 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2781 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2739,7 +2789,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2739 } 2789 }
2740}, 2790},
2741{ 2791{
2742 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7217), 2792 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721b),
2743 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2793 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2744 USB_DEVICE_ID_MATCH_INT_CLASS | 2794 USB_DEVICE_ID_MATCH_INT_CLASS |
2745 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2795 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2753,7 +2803,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2753 } 2803 }
2754}, 2804},
2755{ 2805{
2756 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721b), 2806 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721e),
2757 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2807 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2758 USB_DEVICE_ID_MATCH_INT_CLASS | 2808 USB_DEVICE_ID_MATCH_INT_CLASS |
2759 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2809 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2767,7 +2817,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2767 } 2817 }
2768}, 2818},
2769{ 2819{
2770 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721e), 2820 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721f),
2771 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2821 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2772 USB_DEVICE_ID_MATCH_INT_CLASS | 2822 USB_DEVICE_ID_MATCH_INT_CLASS |
2773 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2823 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2781,7 +2831,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2781 } 2831 }
2782}, 2832},
2783{ 2833{
2784 USB_DEVICE_VENDOR_SPEC(0x2040, 0x721f), 2834 USB_DEVICE_VENDOR_SPEC(0x2040, 0x7240),
2785 .match_flags = USB_DEVICE_ID_MATCH_DEVICE | 2835 .match_flags = USB_DEVICE_ID_MATCH_DEVICE |
2786 USB_DEVICE_ID_MATCH_INT_CLASS | 2836 USB_DEVICE_ID_MATCH_INT_CLASS |
2787 USB_DEVICE_ID_MATCH_INT_SUBCLASS, 2837 USB_DEVICE_ID_MATCH_INT_SUBCLASS,
@@ -2789,7 +2839,7 @@ YAMAHA_DEVICE(0x7010, "UB99"),
2789 .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL, 2839 .bInterfaceSubClass = USB_SUBCLASS_AUDIOCONTROL,
2790 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { 2840 .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) {
2791 .vendor_name = "Hauppauge", 2841 .vendor_name = "Hauppauge",
2792 .product_name = "HVR-950Q", 2842 .product_name = "HVR-850",
2793 .ifnum = QUIRK_ANY_INTERFACE, 2843 .ifnum = QUIRK_ANY_INTERFACE,
2794 .type = QUIRK_AUDIO_ALIGN_TRANSFER, 2844 .type = QUIRK_AUDIO_ALIGN_TRANSFER,
2795 } 2845 }
@@ -3094,58 +3144,6 @@ YAMAHA_DEVICE(0x7010, "UB99"),
3094 3144
3095{ 3145{
3096 /* 3146 /*
3097 * Focusrite Scarlett 18i6
3098 *
3099 * Avoid mixer creation, which otherwise fails because some of
3100 * the interface descriptor subtypes for interface 0 are
3101 * unknown. That should be fixed or worked-around but this at
3102 * least allows the device to be used successfully with a DAW
3103 * and an external mixer. See comments below about other
3104 * ignored interfaces.
3105 */
3106 USB_DEVICE(0x1235, 0x8004),
3107 .driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
3108 .vendor_name = "Focusrite",
3109 .product_name = "Scarlett 18i6",
3110 .ifnum = QUIRK_ANY_INTERFACE,
3111 .type = QUIRK_COMPOSITE,
3112 .data = & (const struct snd_usb_audio_quirk[]) {
3113 {
3114 /* InterfaceSubClass 1 (Control Device) */
3115 .ifnum = 0,
3116 .type = QUIRK_IGNORE_INTERFACE
3117 },
3118 {
3119 .ifnum = 1,
3120 .type = QUIRK_AUDIO_STANDARD_INTERFACE
3121 },
3122 {
3123 .ifnum = 2,
3124 .type = QUIRK_AUDIO_STANDARD_INTERFACE
3125 },
3126 {
3127 /* InterfaceSubClass 1 (Control Device) */
3128 .ifnum = 3,
3129 .type = QUIRK_IGNORE_INTERFACE
3130 },
3131 {
3132 .ifnum = 4,
3133 .type = QUIRK_MIDI_STANDARD_INTERFACE
3134 },
3135 {
3136 /* InterfaceSubClass 1 (Device Firmware Update) */
3137 .ifnum = 5,
3138 .type = QUIRK_IGNORE_INTERFACE
3139 },
3140 {
3141 .ifnum = -1
3142 }
3143 }
3144 }
3145},
3146
3147{
3148 /*
3149 * Some USB MIDI devices don't have an audio control interface, 3147 * Some USB MIDI devices don't have an audio control interface,
3150 * so we have to grab MIDI streaming interfaces here. 3148 * so we have to grab MIDI streaming interfaces here.
3151 */ 3149 */