ALSA: hda/realtek - fixed headset Mic not show
authorKailang Yang <kailang@realtek.com>
Mon, 13 May 2024 08:38:11 +0000 (16:38 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 13 May 2024 09:42:05 +0000 (11:42 +0200)
ALC256 run on SOF mode. Boot with plugged headset, the Headset Mic will be gone.
Plugged headset after boot. It had partial fail with Headset Mic detect.
Add spec->en_3kpull_low = false will solve all issues.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Link: https://lore.kernel.org/r/c8b638590c5f45a6a5c6aeb20c31fd5b@realtek.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 8c39bbdc6c5e28e3102074c95dfee017efdb9bee..cd49b3e217283d2ae7c8e6418c8acbd7ff9d8ba5 100644 (file)
@@ -6527,6 +6527,20 @@ static void alc295_fixup_chromebook(struct hda_codec *codec,
        }
 }
 
+static void alc256_fixup_chromebook(struct hda_codec *codec,
+                                   const struct hda_fixup *fix, int action)
+{
+       struct alc_spec *spec = codec->spec;
+
+       switch (action) {
+       case HDA_FIXUP_ACT_PRE_PROBE:
+               spec->gen.suppress_auto_mute = 1;
+               spec->gen.suppress_auto_mic = 1;
+               spec->en_3kpull_low = false;
+               break;
+       }
+}
+
 static void alc_fixup_disable_mic_vref(struct hda_codec *codec,
                                  const struct hda_fixup *fix, int action)
 {
@@ -7505,6 +7519,7 @@ enum {
        ALC285_FIXUP_ASUS_GU605_SPI_2_HEADSET_MIC,
        ALC285_FIXUP_ASUS_GU605_SPI_SPEAKER2_TO_DAC1,
        ALC287_FIXUP_LENOVO_THKPAD_WH_ALC1318,
+       ALC256_FIXUP_CHROME_BOOK,
 };
 
 /* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9787,6 +9802,12 @@ static const struct hda_fixup alc269_fixups[] = {
                .chained = true,
                .chain_id = ALC269_FIXUP_THINKPAD_ACPI
        },
+       [ALC256_FIXUP_CHROME_BOOK] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc256_fixup_chromebook,
+               .chained = true,
+               .chain_id = ALC225_FIXUP_HEADSET_JACK
+       },
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -10753,6 +10774,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
        {.id = ALC295_FIXUP_HP_X360, .name = "alc295-hp-x360"},
        {.id = ALC225_FIXUP_HEADSET_JACK, .name = "alc-headset-jack"},
        {.id = ALC295_FIXUP_CHROME_BOOK, .name = "alc-chrome-book"},
+       {.id = ALC256_FIXUP_CHROME_BOOK, .name = "alc-2024y-chromebook"},
        {.id = ALC299_FIXUP_PREDATOR_SPK, .name = "predator-spk"},
        {.id = ALC298_FIXUP_HUAWEI_MBX_STEREO, .name = "huawei-mbx-stereo"},
        {.id = ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE, .name = "alc256-medion-headset"},