• Hui Wang's avatar
    ALSA: hda: generic: Fix the micmute led init state · 2bf44e0e
    Hui Wang authored
    Recently we found the micmute led init state is not correct after
    freshly installing the ubuntu linux on a Lenovo AIO machine. The
    internal mic is not muted, but the micmute led is on and led mode is
    'follow mute'. If we mute internal mic, the led is keeping on, then
    unmute the internal mic, the led is off. And from then on, the
    micmute led will work correctly.
    
    So the micmute led init state is not correct. The led is controlled
    by codec gpio (ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY), in the
    patch_realtek, the gpio data is set to 0x4 initially and the led is
    on with this data. In the hda_generic, the led_value is set to
    0 initially, suppose users set the 'capture switch' to on from
    user space and the micmute led should change to be off with this
    operation, but the check "if (val == spec->micmute_led.led_value)" in
    the call_micmute_led_update() will skip the led setting.
    
    To guarantee the led state will be set by the 1st time of changing
    "Capture Switch", set -1 to the init led_value.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20210312041408.3776-1-hui.wang@canonical.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    2bf44e0e
hda_generic.c 166 KB