]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: hda - Fix silent speaker output due to mute LED fixup
authorTakashi Iwai <tiwai@suse.de>
Thu, 3 Apr 2014 09:51:21 +0000 (11:51 +0200)
committerJiri Slaby <jslaby@suse.cz>
Thu, 15 May 2014 07:54:47 +0000 (09:54 +0200)
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: Jiri Slaby <jslaby@suse.cz>
sound/pci/hda/patch_realtek.c

index 69ae2ef1b13854b9eee9c0daee8c6dc1086b2c08..27d7af5a430b975d7ae8b720929e4b777fa981f1 100644 (file)
@@ -3050,8 +3050,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);
 }