|
@@ -723,8 +723,19 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_
|
|
|
return 0;
|
|
|
}
|
|
|
case UAC1_PROCESSING_UNIT:
|
|
|
- case UAC1_EXTENSION_UNIT: {
|
|
|
+ case UAC1_EXTENSION_UNIT:
|
|
|
+ /* UAC2_PROCESSING_UNIT_V2 */
|
|
|
+ /* UAC2_EFFECT_UNIT */ {
|
|
|
struct uac_processing_unit_descriptor *d = p1;
|
|
|
+
|
|
|
+ if (state->mixer->protocol == UAC_VERSION_2 &&
|
|
|
+ hdr[2] == UAC2_EFFECT_UNIT) {
|
|
|
+ /* UAC2/UAC1 unit IDs overlap here in an
|
|
|
+ * uncompatible way. Ignore this unit for now.
|
|
|
+ */
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
if (d->bNrInPins) {
|
|
|
id = d->baSourceID[0];
|
|
|
break; /* continue to parse */
|