summaryrefslogtreecommitdiff
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-04-03 11:51:21 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-06 07:55:27 -0700
commitdb6338e0efa1cfe54b9f3e6557292419ff2c47e6 (patch)
tree389bfb63eeb7d8b63eafb39cd11e93d7e89a82f5 /sound/pci
parentf13dbe1e97b98c5d2c315b8e3d21e04fa49937d1 (diff)
downloadlinux-3.10-db6338e0efa1cfe54b9f3e6557292419ff2c47e6.tar.gz
linux-3.10-db6338e0efa1cfe54b9f3e6557292419ff2c47e6.tar.bz2
linux-3.10-db6338e0efa1cfe54b9f3e6557292419ff2c47e6.zip
ALSA: hda - Fix silent speaker output due to mute LED fixup
commit 415d555e6b398b00fc1733f0113065a54df9106a upstream. The recent fixups for HP laptops to support the mute LED made the speaker output silent on some machines. It turned out that they use the NID 0x18 for the speaker while it's also used for controlling the LED via VREF bits although the current driver code blindly assumes that such a node is a mic pin (where 0x18 is usually so). This patch fixes the problem by only changing the VREF bits and keeping the other pin ctl bits. Reported-and-tested-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index d7ef023a282..d756f12ffc3 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2859,8 +2859,9 @@ static void alc269_fixup_mic_mute_hook(void *private_data, int enabled)
if (spec->mute_led_polarity)
enabled = !enabled;
- pinval = AC_PINCTL_IN_EN |
- (enabled ? AC_PINCTL_VREF_HIZ : AC_PINCTL_VREF_80);
+ pinval = snd_hda_codec_get_pin_target(codec, spec->mute_led_nid);
+ pinval &= ~AC_PINCTL_VREFEN;
+ pinval |= enabled ? AC_PINCTL_VREF_HIZ : AC_PINCTL_VREF_80;
if (spec->mute_led_nid)
snd_hda_set_pin_ctl_cache(codec, spec->mute_led_nid, pinval);
}