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

Commit 7194cae6 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

[ALSA] hda-codec - Fix dmics on ALC268 in auto configuration



Fixed the handling of dmics on ALC268 in the auto-configuration mode.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 487145a1
Loading
Loading
Loading
Loading
+18 −9
Original line number Diff line number Diff line
@@ -6258,18 +6258,23 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec)

	for (i = 0; i < AUTO_PIN_LAST; i++) {
		hda_nid_t nid = spec->autocfg.input_pins[i];
		if (alc882_is_input_pin(nid)) {
		unsigned int vref;
		if (!nid)
			continue;
		vref = PIN_IN;
		if (1 /*i <= AUTO_PIN_FRONT_MIC*/) {
			if (snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP) &
			    AC_PINCAP_VREF_80)
				vref = PIN_VREF80;
		}
		snd_hda_codec_write(codec, nid, 0,
					    AC_VERB_SET_PIN_WIDGET_CONTROL,
					    i <= AUTO_PIN_FRONT_MIC ?
					    PIN_VREF80 : PIN_IN);
			if (nid != ALC882_PIN_CD_NID)
				    AC_VERB_SET_PIN_WIDGET_CONTROL, vref);
		if (get_wcaps(codec, nid) & AC_WCAP_OUT_AMP)
			snd_hda_codec_write(codec, nid, 0,
					    AC_VERB_SET_AMP_GAIN_MUTE,
					    AMP_OUT_MUTE);
	}
}
}

/* add mic boosts if needed */
static int alc_auto_add_mic_boost(struct hda_codec *codec)
@@ -10125,6 +10130,10 @@ static int alc268_auto_create_analog_input_ctls(struct alc_spec *spec,
		case 0x1c:	
			idx1 = 3;	/* CD */
			break;
		case 0x12:
		case 0x13:
			idx1 = 6;	/* digital mics */
			break;
		default:
			continue;
		}