* [PATCH 1/2] ALSA: hda/realtek: Add quirk for HP Pavilion All-in-One 27-ca1xxx
@ 2026-07-21 11:35 Zhang Heng
2026-07-22 11:29 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Zhang Heng @ 2026-07-21 11:35 UTC (permalink / raw)
To: tiwai, perex, kailang; +Cc: linux-sound, linux-kernel, Zhang Heng
This HP All-in-One desktop (model 27-ca1xxx) uses an ALC274 codec
and has no sound from either the internal speakers or the headphone
jack. The audio output requires a combination of a specific verb
setup and GPIO configuration to become functional. Additionally,
the power_save feature must be disabled; otherwise, audible clicks
or pops occur during power state transitions.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=220694
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
sound/hda/codecs/realtek/alc269.c | 35 +++++++++++++++++++++++++++++++
sound/hda/controllers/intel.c | 2 ++
2 files changed, 37 insertions(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index d2c546b81f40..4589b748b0a3 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -3866,6 +3866,16 @@ static void alc288_fixup_surface_swap_dacs(struct hda_codec *codec,
spec->gen.preferred_dacs = preferred_pairs;
}
+static void alc274_fixup_hp_89e9_amp(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ if (action == HDA_FIXUP_ACT_INIT) {
+ /* need to toggle GPIO to enable the amp */
+ snd_hda_codec_set_gpio(codec, 0x03, 0x03, 0x03, 0);
+ msleep(100);
+ snd_hda_codec_set_gpio(codec, 0x03, 0x03, 0x00, 0);
+ }
+}
enum {
ALC269_FIXUP_GPIO2,
ALC269_FIXUP_SONY_VAIO,
@@ -4217,6 +4227,8 @@ enum {
ALC245_FIXUP_HP_ENVY_X360_15_FH0XXX,
ALC287_FIXUP_ACER_MICMUTE_LED,
ALC236_FIXUP_DELL_HP_POP_NOISE,
+ ALC274_FIXUP_HP_89E9_GPIO,
+ ALC274_FIXUP_HP_VERBS,
};
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -6866,6 +6878,28 @@ static const struct hda_fixup alc269_fixups[] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc285_fixup_invalidate_dacs,
},
+ [ALC274_FIXUP_HP_89E9_GPIO] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc274_fixup_hp_89e9_amp,
+ },
+ [ALC274_FIXUP_HP_VERBS] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x0b },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x7778 },
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0xc580 },
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x5757 },
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x62 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0xa007 },
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x6b },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x0060 },
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC274_FIXUP_HP_89E9_GPIO,
+ },
};
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -7238,6 +7272,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x103c, 0x8a3d, "HP Victus 15-fb0xxx (MB 8A3D)", ALC245_FIXUP_HP_MUTE_LED_V2_COEFBIT),
SND_PCI_QUIRK(0x103c, 0x8a4f, "HP Victus 15-fa0xxx (MB 8A4F)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
SND_PCI_QUIRK(0x103c, 0x8a50, "HP Victus 15-fa0xxx (MB 8A50)", ALC245_FIXUP_HP_MUTE_LED_COEFBIT),
+ SND_PCI_QUIRK(0x103c, 0x8a6b, "HP Pavilion All-in-One Desktop 27-ca1xxx", ALC274_FIXUP_HP_VERBS),
SND_PCI_QUIRK(0x103c, 0x8a6e, "HP EDNA 360", ALC287_FIXUP_CS35L41_I2C_4),
SND_PCI_QUIRK(0x103c, 0x8a74, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
SND_PCI_QUIRK(0x103c, 0x8a75, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
diff --git a/sound/hda/controllers/intel.c b/sound/hda/controllers/intel.c
index 192f5c044b7a..9a5c61f43011 100644
--- a/sound/hda/controllers/intel.c
+++ b/sound/hda/controllers/intel.c
@@ -2314,6 +2314,8 @@ static const struct snd_pci_quirk power_save_denylist[] = {
SND_PCI_QUIRK(0x1028, 0x0962, "Dell ALC3271", 0),
/* https://bugzilla.kernel.org/show_bug.cgi?id=220210 */
SND_PCI_QUIRK(0x17aa, 0x5079, "Lenovo Thinkpad E15", 0),
+ /* https://bugzilla.kernel.org/show_bug.cgi?id=220694 */
+ SND_PCI_QUIRK(0x103c, 0x8a6b, "HP 89E9", 0),
{}
};
--
2.25.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 1/2] ALSA: hda/realtek: Add quirk for HP Pavilion All-in-One 27-ca1xxx
2026-07-21 11:35 [PATCH 1/2] ALSA: hda/realtek: Add quirk for HP Pavilion All-in-One 27-ca1xxx Zhang Heng
@ 2026-07-22 11:29 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-07-22 11:29 UTC (permalink / raw)
To: Zhang Heng; +Cc: tiwai, perex, kailang, linux-sound, linux-kernel
On Tue, 21 Jul 2026 13:35:38 +0200,
Zhang Heng wrote:
>
> This HP All-in-One desktop (model 27-ca1xxx) uses an ALC274 codec
> and has no sound from either the internal speakers or the headphone
> jack. The audio output requires a combination of a specific verb
> setup and GPIO configuration to become functional. Additionally,
> the power_save feature must be disabled; otherwise, audible clicks
> or pops occur during power state transitions.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=220694
> Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Applied now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-22 11:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-21 11:35 [PATCH 1/2] ALSA: hda/realtek: Add quirk for HP Pavilion All-in-One 27-ca1xxx Zhang Heng
2026-07-22 11:29 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®