From: Hui Wang Date: Tue, 8 Jul 2014 09:56:15 +0000 (+0800) Subject: ALSA: hda - add capture mute led support in led_power_filter X-Git-Tag: firefly_0821_release~176^2~3158^2~45^2~14 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=50dd9050e45ce11c575eabcaee8a914caf78fb74;p=firefly-linux-kernel-4.4.55.git 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 Cc: Kailang Yang Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai --- 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; } }