1
0
Fork 0

ALSA: usb-audio: Add insertion control for UAC3 BADD

The HEADSET ADAPTER profile for BADD devices is meant to support
Insertion Control for the Input and Output Terminals of the headset.

This patch defines the BADD inferred input and output terminals and
builds the connector controls.

Signed-off-by: Jorge Sanjuan <jorge.sanjuan@codethink.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
hifive-unleashed-5.1
Jorge Sanjuan 2018-06-14 15:05:57 +01:00 committed by Takashi Iwai
parent 167e1fb121
commit 3528cd8f6a
1 changed files with 17 additions and 0 deletions

View File

@ -2918,6 +2918,23 @@ static int snd_usb_mixer_controls_badd(struct usb_mixer_interface *mixer,
UAC3_BADD_FU_ID7, map->map);
}
/* Insertion Control */
if (f->subclass == UAC3_FUNCTION_SUBCLASS_HEADSET_ADAPTER) {
struct usb_audio_term iterm, oterm;
/* Input Term - Insertion control */
memset(&iterm, 0, sizeof(iterm));
iterm.id = UAC3_BADD_IT_ID4;
iterm.type = UAC_BIDIR_TERMINAL_HEADSET;
build_connector_control(mixer, &iterm, true);
/* Output Term - Insertion control */
memset(&oterm, 0, sizeof(oterm));
oterm.id = UAC3_BADD_OT_ID3;
oterm.type = UAC_BIDIR_TERMINAL_HEADSET;
build_connector_control(mixer, &oterm, false);
}
return 0;
}