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

Commit defb5ab2 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Fix yet another auto-mic bug in ALC268

Since patch_alc268() doesn't call set_capture_mixer() (due to its h/w
design different from other siblings), it needs to call fixup_automic_adc()
explicitly to set up the auto-mic routing.  Otherwise the indices for
int/ext mics aren't set properly.

Reference: Novell bnc#544899
	http://bugzilla.novell.com/show_bug.cgi?id=544899



Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 01d4825d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -12859,12 +12859,15 @@ static int patch_alc268(struct hda_codec *codec)
		unsigned int wcap = get_wcaps(codec, 0x07);
		int i;
		spec->capsrc_nids = alc268_capsrc_nids;
		/* get type */
		wcap = get_wcaps_type(wcap);
		if (spec->auto_mic ||
		    wcap != AC_WID_AUD_IN || spec->input_mux->num_items == 1) {
			spec->adc_nids = alc268_adc_nids_alt;
			spec->num_adc_nids = ARRAY_SIZE(alc268_adc_nids_alt);
			if (spec->auto_mic)
				fixup_automic_adc(codec);
			if (spec->auto_mic || spec->input_mux->num_items == 1)
				add_mixer(spec, alc268_capture_nosrc_mixer);
			else
@@ -12874,7 +12877,6 @@ static int patch_alc268(struct hda_codec *codec)
			spec->num_adc_nids = ARRAY_SIZE(alc268_adc_nids);
			add_mixer(spec, alc268_capture_mixer);
		}
		spec->capsrc_nids = alc268_capsrc_nids;
		/* set default input source */
		for (i = 0; i < spec->num_adc_nids; i++)
			snd_hda_codec_write_cache(codec, alc268_capsrc_nids[i],