ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo ALC897 platform
authorKailang Yang <kailang@realtek.com>
Fri, 1 Mar 2024 07:29:50 +0000 (15:29 +0800)
committerTakashi Iwai <tiwai@suse.de>
Fri, 1 Mar 2024 10:44:28 +0000 (11:44 +0100)
Headset Mic will no show at resume back.
This patch will fix this issue.

Fixes: d7f32791a9fc ("ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform")
Cc: <stable@vger.kernel.org>
Signed-off-by: Kailang Yang <kailang@realtek.com>
Link: https://lore.kernel.org/r/4713d48a372e47f98bba0c6120fd8254@realtek.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 62701197a019b0c4faef3d4d72cad96e841d9cbc..d04f8e429ab2b905989e4579d3a799826c7032e4 100644 (file)
@@ -11684,8 +11684,7 @@ static void alc897_hp_automute_hook(struct hda_codec *codec,
 
        snd_hda_gen_hp_automute(codec, jack);
        vref = spec->gen.hp_jack_present ? (PIN_HP | AC_PINCTL_VREF_100) : PIN_HP;
-       snd_hda_codec_write(codec, 0x1b, 0, AC_VERB_SET_PIN_WIDGET_CONTROL,
-                           vref);
+       snd_hda_set_pin_ctl(codec, 0x1b, vref);
 }
 
 static void alc897_fixup_lenovo_headset_mic(struct hda_codec *codec,
@@ -11694,6 +11693,10 @@ static void alc897_fixup_lenovo_headset_mic(struct hda_codec *codec,
        struct alc_spec *spec = codec->spec;
        if (action == HDA_FIXUP_ACT_PRE_PROBE) {
                spec->gen.hp_automute_hook = alc897_hp_automute_hook;
+               spec->no_shutup_pins = 1;
+       }
+       if (action == HDA_FIXUP_ACT_PROBE) {
+               snd_hda_set_pin_ctl_cache(codec, 0x1a, PIN_IN | AC_PINCTL_VREF_100);
        }
 }