Commit c4f3ebed authored by Takashi Iwai's avatar Takashi Iwai

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
...@@ -633,6 +633,9 @@ static void alc_inv_dmic_sync_adc(struct hda_codec *codec, int adc_idx) ...@@ -633,6 +633,9 @@ static void alc_inv_dmic_sync_adc(struct hda_codec *codec, int adc_idx)
parm = AC_AMP_SET_RIGHT | parm = AC_AMP_SET_RIGHT |
(dir == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT); (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 */ /* we care only right channel */
val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0); val = snd_hda_codec_amp_read(codec, nid, 1, dir, 0);
if (val & 0x80) /* if already muted, we don't need to touch */ if (val & 0x80) /* if already muted, we don't need to touch */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment