summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvelyn Ali <evelynali99@gmail.com>2026-06-02 17:41:22 -0400
committerTakashi Iwai <tiwai@suse.de>2026-06-04 10:12:57 +0200
commitdef5e78a4e003c83adc9a8b4b72534def3a49641 (patch)
treebf18892b5039d2cf2b04f81a30ef320d2d85247d
parent611f538253d970f4d152003841544e875828d015 (diff)
downloadlinux-def5e78a4e003c83adc9a8b4b72534def3a49641.tar.gz
linux-def5e78a4e003c83adc9a8b4b72534def3a49641.zip
ALSA: hda/realtek: ALC882: Fixup for Clevo P775TM1
Clevo P775TM1 laptops come with an ESS Sabre HiFi DAC. Setting 0x1b pin VREF to 80% enables said DAC output. Signed-off-by: Evelyn Ali <evelynali99@gmail.com> Link: https://patch.msgid.link/20260602214122.78020-1-evelynali99@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/hda/codecs/realtek/alc882.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sound/hda/codecs/realtek/alc882.c b/sound/hda/codecs/realtek/alc882.c
index 529fecd5baa0..fd466b6985f0 100644
--- a/sound/hda/codecs/realtek/alc882.c
+++ b/sound/hda/codecs/realtek/alc882.c
@@ -61,6 +61,7 @@ enum {
ALC887_FIXUP_ASUS_HMIC,
ALCS1200A_FIXUP_MIC_VREF,
ALC888VD_FIXUP_MIC_100VREF,
+ ALC898_FIXUP_CLEVO_P775TM1,
};
static void alc889_fixup_coef(struct hda_codec *codec,
@@ -236,6 +237,19 @@ static void alc1220_fixup_clevo_pb51ed(struct hda_codec *codec,
alc_fixup_headset_mode_no_hp_mic(codec, fix, action);
}
+/* On Clevo P775TM1, VREF of pin 0x1b enables the external headphone amp */
+static void alc898_fixup_clevo_p775tm1(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ struct alc_spec *spec = codec->spec;
+
+ if (action != HDA_FIXUP_ACT_PRE_PROBE)
+ return;
+
+ snd_hda_set_pin_ctl_cache(codec, 0x1b, PIN_VREF80);
+ spec->gen.keep_vref_in_automute = 1;
+}
+
static void alc887_asus_hp_automute_hook(struct hda_codec *codec,
struct hda_jack_callback *jack)
{
@@ -560,6 +574,12 @@ static const struct hda_fixup alc882_fixups[] = {
{}
}
},
+ [ALC898_FIXUP_CLEVO_P775TM1] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc898_fixup_clevo_p775tm1,
+ .chained = true,
+ .chain_id = ALC882_FIXUP_EAPD,
+ },
};
static const struct hda_quirk alc882_fixup_tbl[] = {
@@ -664,6 +684,7 @@ static const struct hda_quirk alc882_fixup_tbl[] = {
SND_PCI_QUIRK(0x1558, 0x67f1, "Clevo PC70H[PRS]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
SND_PCI_QUIRK(0x1558, 0x67f5, "Clevo PD70PN[NRT]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
SND_PCI_QUIRK(0x1558, 0x70d1, "Clevo PC70[ER][CDF]", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
+ SND_PCI_QUIRK(0x1558, 0x7709, "Clevo P775TM1", ALC898_FIXUP_CLEVO_P775TM1),
SND_PCI_QUIRK(0x1558, 0x7714, "Clevo X170SM", ALC1220_FIXUP_CLEVO_PB51ED_PINS),
SND_PCI_QUIRK(0x1558, 0x7715, "Clevo X170KM-G", ALC1220_FIXUP_CLEVO_PB51ED),
SND_PCI_QUIRK(0x1558, 0x9501, "Clevo P950HR", ALC1220_FIXUP_CLEVO_P950),
@@ -719,6 +740,7 @@ static const struct hda_model_fixup alc882_fixup_models[] = {
{.id = ALC1220_FIXUP_GB_DUAL_CODECS, .name = "dual-codecs"},
{.id = ALC1220_FIXUP_GB_X570, .name = "gb-x570"},
{.id = ALC1220_FIXUP_CLEVO_P950, .name = "clevo-p950"},
+ {.id = ALC898_FIXUP_CLEVO_P775TM1, .name = "clevo-p775tm1"},
{}
};