diff options
Diffstat (limited to 'sound/usb/quirks-table.h')
-rw-r--r-- | sound/usb/quirks-table.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/sound/usb/quirks-table.h b/sound/usb/quirks-table.h index 49f9af995d7a..cdcf6b45e8a8 100644 --- a/sound/usb/quirks-table.h +++ b/sound/usb/quirks-table.h | |||
@@ -99,6 +99,42 @@ | |||
99 | }, | 99 | }, |
100 | 100 | ||
101 | /* | 101 | /* |
102 | * HP Wireless Audio | ||
103 | * When not ignored, causes instability issues for some users, forcing them to | ||
104 | * blacklist the entire module. | ||
105 | */ | ||
106 | { | ||
107 | USB_DEVICE(0x0424, 0xb832), | ||
108 | .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { | ||
109 | .vendor_name = "Standard Microsystems Corp.", | ||
110 | .product_name = "HP Wireless Audio", | ||
111 | .ifnum = QUIRK_ANY_INTERFACE, | ||
112 | .type = QUIRK_COMPOSITE, | ||
113 | .data = (const struct snd_usb_audio_quirk[]) { | ||
114 | /* Mixer */ | ||
115 | { | ||
116 | .ifnum = 0, | ||
117 | .type = QUIRK_IGNORE_INTERFACE, | ||
118 | }, | ||
119 | /* Playback */ | ||
120 | { | ||
121 | .ifnum = 1, | ||
122 | .type = QUIRK_IGNORE_INTERFACE, | ||
123 | }, | ||
124 | /* Capture */ | ||
125 | { | ||
126 | .ifnum = 2, | ||
127 | .type = QUIRK_IGNORE_INTERFACE, | ||
128 | }, | ||
129 | /* HID Device, .ifnum = 3 */ | ||
130 | { | ||
131 | .ifnum = -1, | ||
132 | } | ||
133 | } | ||
134 | } | ||
135 | }, | ||
136 | |||
137 | /* | ||
102 | * Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface | 138 | * Logitech QuickCam: bDeviceClass is vendor-specific, so generic interface |
103 | * class matches do not take effect without an explicit ID match. | 139 | * class matches do not take effect without an explicit ID match. |
104 | */ | 140 | */ |
@@ -2885,6 +2921,93 @@ YAMAHA_DEVICE(0x7010, "UB99"), | |||
2885 | 2921 | ||
2886 | } | 2922 | } |
2887 | }, | 2923 | }, |
2924 | |||
2925 | /* DIGIDESIGN MBOX 2 */ | ||
2926 | { | ||
2927 | USB_DEVICE(0x0dba, 0x3000), | ||
2928 | .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { | ||
2929 | .vendor_name = "Digidesign", | ||
2930 | .product_name = "Mbox 2", | ||
2931 | .ifnum = QUIRK_ANY_INTERFACE, | ||
2932 | .type = QUIRK_COMPOSITE, | ||
2933 | .data = (const struct snd_usb_audio_quirk[]) { | ||
2934 | { | ||
2935 | .ifnum = 0, | ||
2936 | .type = QUIRK_IGNORE_INTERFACE | ||
2937 | }, | ||
2938 | { | ||
2939 | .ifnum = 1, | ||
2940 | .type = QUIRK_IGNORE_INTERFACE | ||
2941 | }, | ||
2942 | { | ||
2943 | .ifnum = 2, | ||
2944 | .type = QUIRK_AUDIO_FIXED_ENDPOINT, | ||
2945 | .data = &(const struct audioformat) { | ||
2946 | .formats = SNDRV_PCM_FMTBIT_S24_3BE, | ||
2947 | .channels = 2, | ||
2948 | .iface = 2, | ||
2949 | .altsetting = 2, | ||
2950 | .altset_idx = 1, | ||
2951 | .attributes = 0x00, | ||
2952 | .endpoint = 0x03, | ||
2953 | .ep_attr = USB_ENDPOINT_SYNC_ASYNC, | ||
2954 | .maxpacksize = 0x128, | ||
2955 | .rates = SNDRV_PCM_RATE_48000, | ||
2956 | .rate_min = 48000, | ||
2957 | .rate_max = 48000, | ||
2958 | .nr_rates = 1, | ||
2959 | .rate_table = (unsigned int[]) { | ||
2960 | 48000 | ||
2961 | } | ||
2962 | } | ||
2963 | }, | ||
2964 | { | ||
2965 | .ifnum = 3, | ||
2966 | .type = QUIRK_IGNORE_INTERFACE | ||
2967 | }, | ||
2968 | { | ||
2969 | .ifnum = 4, | ||
2970 | .type = QUIRK_AUDIO_FIXED_ENDPOINT, | ||
2971 | .data = &(const struct audioformat) { | ||
2972 | .formats = SNDRV_PCM_FMTBIT_S24_3BE, | ||
2973 | .channels = 2, | ||
2974 | .iface = 4, | ||
2975 | .altsetting = 2, | ||
2976 | .altset_idx = 1, | ||
2977 | .attributes = UAC_EP_CS_ATTR_SAMPLE_RATE, | ||
2978 | .endpoint = 0x85, | ||
2979 | .ep_attr = USB_ENDPOINT_SYNC_SYNC, | ||
2980 | .maxpacksize = 0x128, | ||
2981 | .rates = SNDRV_PCM_RATE_48000, | ||
2982 | .rate_min = 48000, | ||
2983 | .rate_max = 48000, | ||
2984 | .nr_rates = 1, | ||
2985 | .rate_table = (unsigned int[]) { | ||
2986 | 48000 | ||
2987 | } | ||
2988 | } | ||
2989 | }, | ||
2990 | { | ||
2991 | .ifnum = 5, | ||
2992 | .type = QUIRK_IGNORE_INTERFACE | ||
2993 | }, | ||
2994 | { | ||
2995 | .ifnum = 6, | ||
2996 | .type = QUIRK_MIDI_MBOX2, | ||
2997 | .data = &(const struct snd_usb_midi_endpoint_info) { | ||
2998 | .out_ep = 0x02, | ||
2999 | .out_cables = 0x0001, | ||
3000 | .in_ep = 0x81, | ||
3001 | .in_interval = 0x01, | ||
3002 | .in_cables = 0x0001 | ||
3003 | } | ||
3004 | }, | ||
3005 | { | ||
3006 | .ifnum = -1 | ||
3007 | } | ||
3008 | } | ||
3009 | } | ||
3010 | }, | ||
2888 | { | 3011 | { |
2889 | /* Tascam US122 MKII - playback-only support */ | 3012 | /* Tascam US122 MKII - playback-only support */ |
2890 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, | 3013 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, |