summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai2013-06-03 11:17:38 +0200
committerTakashi Iwai2013-06-03 11:33:16 +0200
commit5a6f294e87974e6ec68d7113553ffd975d83bf15 (patch)
tree0dbfe6b1cf27cfd7d65889e37f3de37171bb1c92
parentALSA: hda - Add keep_eapd_on flag to generic parser (diff)
downloadkernel-qcow2-linux-5a6f294e87974e6ec68d7113553ffd975d83bf15.tar.gz
kernel-qcow2-linux-5a6f294e87974e6ec68d7113553ffd975d83bf15.tar.xz
kernel-qcow2-linux-5a6f294e87974e6ec68d7113553ffd975d83bf15.zip
ALSA: hda/via - Fix wrongly cleared pins after suspend on VT1802
VIA driver has a special suspend handling only for VT1802 to reduce the pop noise. During the transition to the generic parser, the behavior of snd_hda_set_pin_ctl() was also changed to modify the cached values, too. And this caused a regression where the pin is still cleared even after the resume (including the resume from power save), resulting in the silent output. The fix is simply to replace snd_hda_set_pin_ctl() with the explicit call of snd_hda_codec_write() again. Reported-by: Alex Riesen <raa.lkml@gmail.com> Cc: <stable@vger.kernel.org> [v3.9] Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_via.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index a6c38568c9d5..e5245544eb52 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -484,7 +484,9 @@ static int via_suspend(struct hda_codec *codec)
/* Fix pop noise on headphones */
int i;
for (i = 0; i < spec->gen.autocfg.hp_outs; i++)
- snd_hda_set_pin_ctl(codec, spec->gen.autocfg.hp_pins[i], 0);
+ snd_hda_codec_write(codec, spec->gen.autocfg.hp_pins[i],
+ 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
+ 0x00);
}
return 0;