summaryrefslogtreecommitdiff
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-12-20 10:33:20 (GMT)
committerTakashi Iwai <tiwai@suse.de>2013-01-12 07:33:57 (GMT)
commitc4f3ebed3c5bc59c88eb2ccda825a12686b58341 (patch)
tree97205db06f0ca8597edf3443d4d400116caec02d /sound/pci/hda/patch_realtek.c
parent3bcce5c0d931bf623adc5974200e4d7636b10bef (diff)
downloadlinux-c4f3ebed3c5bc59c88eb2ccda825a12686b58341.tar.xz
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: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 896bc2c..caf6fa5 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -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 */