diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/usb/quirks-table.h | 170 |
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 | */ |