aboutsummaryrefslogtreecommitdiff
path: root/sound/pci
diff options
context:
space:
mode:
authorHui Wang <hui.wang@canonical.com>2014-07-08 17:56:15 +0800
committerTakashi Iwai <tiwai@suse.de>2014-07-08 12:41:21 +0200
commit50dd9050e45ce11c575eabcaee8a914caf78fb74 (patch)
treee948aa1234e02db07323322adcc43c3bab10efe3 /sound/pci
parentfc1fad93c95bed53f701a1169c556113341b43f0 (diff)
ALSA: hda - add capture mute led support in led_power_filter
Now the led_power_filter() needs to handle 3 situations: - only mute_led_nid is set - only cap_mute_led_nid is set - both mute_led_ind and cap_mute_led_nid are set BugLink: https://bugs.launchpad.net/bugs/1329580 Cc: David Henningsson <david.henningsson@canonical.com> Cc: Kailang Yang <kailang@realtek.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 73b175944a07..512582b1f10a 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3403,7 +3403,8 @@ static unsigned int led_power_filter(struct hda_codec *codec,
{
struct alc_spec *spec = codec->spec;
- if (power_state != AC_PWRST_D3 || nid != spec->mute_led_nid)
+ if (power_state != AC_PWRST_D3 || nid == 0 ||
+ (nid != spec->mute_led_nid && nid != spec->cap_mute_led_nid))
return power_state;
/* Set pin ctl again, it might have just been set to 0 */
@@ -3563,6 +3564,7 @@ static void alc269_fixup_hp_gpio_mic1_led(struct hda_codec *codec,
spec->gpio_led = 0;
spec->cap_mute_led_nid = 0x18;
snd_hda_add_verbs(codec, gpio_init);
+ codec->power_filter = led_power_filter;
}
}