lkml.org 
[lkml]   [2020]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 014/172] ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
    Date
    From: Kai-Heng Feng <kai.heng.feng@canonical.com>

    [ Upstream commit dbd13179780555ecd3c992dea1222ca31920e892 ]

    Currently mute LED and micmute LED share the same GPIO polarity.

    So split the polarity for mute and micmute, in case they have different
    polarities.

    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20200430083255.5093-1-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/pci/hda/patch_realtek.c | 14 ++++++++------
    1 file changed, 8 insertions(+), 6 deletions(-)

    diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
    index b06f7d52faad..9ab82ead1825 100644
    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -94,6 +94,7 @@ struct alc_spec {

    /* mute LED for HP laptops, see alc269_fixup_mic_mute_hook() */
    int mute_led_polarity;
    + int micmute_led_polarity;
    hda_nid_t mute_led_nid;
    hda_nid_t cap_mute_led_nid;

    @@ -3862,11 +3863,9 @@ static void alc269_fixup_hp_mute_led_mic3(struct hda_codec *codec,

    /* update LED status via GPIO */
    static void alc_update_gpio_led(struct hda_codec *codec, unsigned int mask,
    - bool enabled)
    + int polarity, bool enabled)
    {
    - struct alc_spec *spec = codec->spec;
    -
    - if (spec->mute_led_polarity)
    + if (polarity)
    enabled = !enabled;
    alc_update_gpio_data(codec, mask, !enabled); /* muted -> LED on */
    }
    @@ -3877,7 +3876,8 @@ static void alc_fixup_gpio_mute_hook(void *private_data, int enabled)
    struct hda_codec *codec = private_data;
    struct alc_spec *spec = codec->spec;

    - alc_update_gpio_led(codec, spec->gpio_mute_led_mask, enabled);
    + alc_update_gpio_led(codec, spec->gpio_mute_led_mask,
    + spec->mute_led_polarity, enabled);
    }

    /* turn on/off mic-mute LED via GPIO per capture hook */
    @@ -3886,6 +3886,7 @@ static void alc_gpio_micmute_update(struct hda_codec *codec)
    struct alc_spec *spec = codec->spec;

    alc_update_gpio_led(codec, spec->gpio_mic_led_mask,
    + spec->micmute_led_polarity,
    spec->gen.micmute_led.led_value);
    }

    @@ -5476,7 +5477,8 @@ static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,

    snd_hda_gen_hp_automute(codec, jack);
    /* mute_led_polarity is set to 0, so we pass inverted value here */
    - alc_update_gpio_led(codec, 0x10, !spec->gen.hp_jack_present);
    + alc_update_gpio_led(codec, 0x10, spec->mute_led_polarity,
    + !spec->gen.hp_jack_present);
    }

    /* Manage GPIOs for HP EliteBook Folio 9480m.
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-18 03:26    [W:4.094 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site