From ac9f4bc9951e89d92bf01b1744de7847d0b0bf78 Mon Sep 17 00:00:00 2001 From: CVMagic <546352+CVMagic@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:34:45 -0400 Subject: [PATCH 1/2] Applying HDA pin fixes specific for the Loki MiniPro --- sound/pci/hda/patch_realtek.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7193d295ceeecd..342e60c65a1c2c 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7306,6 +7306,7 @@ enum { ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A, ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE, ALC269VB_FIXUP_AYANEO_SPKR_PIN_FIX, + ALC269VB_FIXUP_AYN_SPKR_PIN_FIX, ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, ALC269VB_FIXUP_ORDISSIMO_EVE2, ALC283_FIXUP_CHROME_BOOK, @@ -7549,16 +7550,22 @@ static void alc269_fixup_match_via_dmi(struct hda_codec *codec, { int alc269_fix_id; const char *board_name = dmi_get_system_info(DMI_BOARD_NAME); - + if (dmi_name_in_vendors("AYANEO") || dmi_name_in_vendors("AYADEVICE") || dmi_name_in_vendors("AYA DEVICE")) { + codec_dbg(codec, "Board Vendor: Ayaneo\n"); if (board_name && (strcmp(board_name, "AYANEO 2") || strcmp(board_name, "AYANEO 2S") || strcmp(board_name, "GEEK") || strcmp(board_name, "GEEK 1S"))) { + codec_dbg(codec, "Applying: ALC269_FIXUP_AYA_HEADSET_VOLUME\n"); alc269_fix_id = ALC269_FIXUP_AYA_HEADSET_VOLUME; } else { + codec_dbg(codec, "No matching board found. Applying default settings.\n"); return; } } else if (dmi_name_in_vendors("ayn") && strcmp(board_name, "Loki MiniPro")) { - alc269_fix_id = ALC269VB_FIXUP_AYANEO_SPKR_PIN_FIX; + codec_dbg(codec, "Board Vendor: Ayn\n"); + codec_dbg(codec, "Applying: ALC269VB_FIXUP_AYN_SPKR_PIN_FIX\n"); + alc269_fix_id = ALC269VB_FIXUP_AYN_SPKR_PIN_FIX; } else { + codec_dbg(codec, "No matching board found. Applying default settings.\n"); return; } __snd_hda_apply_fixup(codec, alc269_fix_id, action, 0); @@ -8050,6 +8057,14 @@ static const struct hda_fixup alc269_fixups[] = { { } }, }, + [ALC269VB_FIXUP_AYN_SPKR_PIN_FIX] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x14, 0x40f000f0 }, /* not connected */ + { 0x1a, 0x90170150 }, /* speaker */ + { } + }, + }, [ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_limit_int_mic_boost, @@ -10801,6 +10816,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = { {.id = ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A, .name = "asus-zenbook-ux31a"}, {.id = ALC269VB_FIXUP_ORDISSIMO_EVE2, .name = "ordissimo"}, {.id = ALC269VB_FIXUP_AYANEO_SPKR_PIN_FIX, .name = "ayaneo-speaker-pin-fix"}, + {.id = ALC269VB_FIXUP_AYN_SPKR_PIN_FIX, .name = "ayn-speaker-pin-fix"}, {.id = ALC282_FIXUP_ASUS_TX300, .name = "asus-tx300"}, {.id = ALC283_FIXUP_INT_MIC, .name = "alc283-int-mic"}, {.id = ALC290_FIXUP_MONO_SPEAKERS_HSJACK, .name = "mono-speakers"}, From 29e6669c5c5b186d8192e285241596b44cd8de6c Mon Sep 17 00:00:00 2001 From: CVMagic <546352+CVMagic@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:37:48 -0400 Subject: [PATCH 2/2] Update patch_realtek.c --- sound/pci/hda/patch_realtek.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 342e60c65a1c2c..f74561c8646657 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7550,7 +7550,7 @@ static void alc269_fixup_match_via_dmi(struct hda_codec *codec, { int alc269_fix_id; const char *board_name = dmi_get_system_info(DMI_BOARD_NAME); - + if (dmi_name_in_vendors("AYANEO") || dmi_name_in_vendors("AYADEVICE") || dmi_name_in_vendors("AYA DEVICE")) { codec_dbg(codec, "Board Vendor: Ayaneo\n"); if (board_name && (strcmp(board_name, "AYANEO 2") || strcmp(board_name, "AYANEO 2S") || strcmp(board_name, "GEEK") || strcmp(board_name, "GEEK 1S"))) {