Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a358a0ef authored by Johan Rastén's avatar Johan Rastén Committed by Takashi Iwai
Browse files

ALSA: usb-audio: Set the Control Selector to SU_SELECTOR_CONTROL for UAC2



Specified in section 5.2.5.6.1 of the USB Audio Class 2.0 definition.

Solves the following error for C-Media 6632A (Asus Xonar U7):
[ 8219.676164] cannot get ctl value: req = 0x81, wValue = 0x0, wIndex = 0x1400, type = 3

Signed-off-by: default avatarJohan Rastén <johan@oljud.se>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 6e84a8d7
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -2033,10 +2033,11 @@ static int parse_audio_selector_unit(struct mixer_build *state, int unitid,
	cval->res = 1;
	cval->initialized = 1;

	if (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR)
		cval->control = UAC2_CX_CLOCK_SELECTOR;
	else
	if (state->mixer->protocol == UAC_VERSION_1)
		cval->control = 0;
	else /* UAC_VERSION_2 */
		cval->control = (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR) ?
			UAC2_CX_CLOCK_SELECTOR : UAC2_SU_SELECTOR;

	namelist = kmalloc(sizeof(char *) * desc->bNrInPins, GFP_KERNEL);
	if (!namelist) {