diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-06-03 11:17:38 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-06-03 11:33:16 +0200 |
commit | 5a6f294e87974e6ec68d7113553ffd975d83bf15 (patch) | |
tree | 0dbfe6b1cf27cfd7d65889e37f3de37171bb1c92 /sound/pci | |
parent | 05909d5c679cf7c9a8a5bc663677c066a546894f (diff) | |
download | op-kernel-dev-5a6f294e87974e6ec68d7113553ffd975d83bf15.zip op-kernel-dev-5a6f294e87974e6ec68d7113553ffd975d83bf15.tar.gz |
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>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_via.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index a6c3856..e524554 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; |