diff options
| -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 | */ |
