ALSA: hda - add capture mute led support in led_power_filter
authorHui Wang <hui.wang@canonical.com>
Tue, 8 Jul 2014 09:56:15 +0000 (17:56 +0800)
committerTakashi Iwai <tiwai@suse.de>
Tue, 8 Jul 2014 10:41:21 +0000 (12:41 +0200)
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>
sound/pci/hda/patch_realtek.c

index 73b175944a070769118dd85e92d9ac9f3e031292..512582b1f10ad11d1032bd2565555cc8e1562580 100644 (file)
@@ -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;
        }
 }