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

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

ALSA: hda - Flush dirty amp caches before writing inv_dmic fix



The inverted dmic fix overwrites the right channel amp value, but it
would work only when the amp values have been already actually
written.  Put snd_hda_codec_resume_amp() before the amp write for
flushing caches.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3bcce5c0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -633,6 +633,9 @@ static void alc_inv_dmic_sync_adc(struct hda_codec *codec, int adc_idx)
	parm = AC_AMP_SET_RIGHT |
		(dir == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT);

	/* flush all cached amps at first */
	snd_hda_codec_resume_amp(codec);

	/* we care only right channel */
	val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0);
	if (val & 0x80) /* if already muted, we don't need to touch */