* [RFC PATCH] ALSA: hda/realtek: Fix speakers on ASUS PM3406CHA
@ 2026-09-24 14:45 Muhtasham Nawr al-Mahmud
2026-09-29 9:27 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Muhtasham Nawr al-Mahmud @ 2026-09-24 14:45 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai
Cc: Kailang Yang, linux-sound, linux-kernel, Muhtasham Nawr al-Mahmud
The ASUS ExpertBook PM3406CHA uses an ALC256 codec with subsystem
ID 1043:1664. On Linux boot, the internal speakers are silent even
though playback is routed to the codec and the speaker pin is
configured for output.
The codec starts with coefficient 0x10 set to 0x1d20. Writing 0x7f20
to coefficient 0x10 immediately restores internal speaker output.
This was reproduced on the affected hardware from a fresh boot using
hda-verb. Reducing a larger initialization sequence showed that this
coefficient write alone is sufficient; no GPIO, EAPD, pin-control, or
other coefficient changes are required. After applying the coefficient
in userspace, speaker output also remains functional across suspend
and resume.
Add a machine-specific HDA fixup that writes the required coefficient.
The fixup has been compile-tested, but could not be boot-tested because
the affected hardware is no longer available.
Closes: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/2162718
Signed-off-by: Muhtasham Nawr al-Mahmud <muhtaseem2005@gmail.com>
---
sound/hda/codecs/realtek/alc269.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 5127a111c59c..89679ed73484 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -4384,6 +4384,7 @@ enum {
ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN_HEADSET,
ALC285_LENOVO_DAC_RENAME,
ALC287_FIXUP_YOGA9_SPEAKER2_TO_DAC1,
+ ALC256_FIXUP_ASUS_PM3406CHA,
};
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -4481,6 +4482,14 @@ static const struct hda_fixup alc269_fixups[] = {
{}
}
},
+ [ALC256_FIXUP_ASUS_PM3406CHA] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x10 },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x7f20 },
+ {}
+ }
+ },
[ALC269_FIXUP_SKU_IGNORE] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc_fixup_sku_ignore,
@@ -7814,6 +7823,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x1652, "ASUS ROG Zephyrus Do 15 SE", ALC289_FIXUP_ASUS_ZEPHYRUS_DUAL_SPK),
SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK),
SND_PCI_QUIRK(0x1043, 0x1663, "ASUS GU603ZI/ZJ/ZQ/ZU/ZV", ALC285_FIXUP_ASUS_HEADSET_MIC),
+ SND_PCI_QUIRK(0x1043, 0x1664, "ASUS ExpertBook PM3406CHA", ALC256_FIXUP_ASUS_PM3406CHA),
SND_PCI_QUIRK(0x1043, 0x1683, "ASUS UM3402YAR", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x1043, 0x16a3, "ASUS UX3402VA", ALC245_FIXUP_CS35L41_SPI_2),
SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401),
base-commit: f49a343b305c0b6c19a3b50c0bbf10bcd0e2e8fd
--
2.54.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [RFC PATCH] ALSA: hda/realtek: Fix speakers on ASUS PM3406CHA
2026-09-24 14:45 [RFC PATCH] ALSA: hda/realtek: Fix speakers on ASUS PM3406CHA Muhtasham Nawr al-Mahmud
@ 2026-09-29 9:27 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2026-09-29 9:27 UTC (permalink / raw)
To: Muhtasham Nawr al-Mahmud
Cc: Jaroslav Kysela, Takashi Iwai, Kailang Yang, linux-sound, linux-kernel
On Thu, 24 Sep 2026 16:45:12 +0200,
Muhtasham Nawr al-Mahmud wrote:
>
> The ASUS ExpertBook PM3406CHA uses an ALC256 codec with subsystem
> ID 1043:1664. On Linux boot, the internal speakers are silent even
> though playback is routed to the codec and the speaker pin is
> configured for output.
>
> The codec starts with coefficient 0x10 set to 0x1d20. Writing 0x7f20
> to coefficient 0x10 immediately restores internal speaker output.
>
> This was reproduced on the affected hardware from a fresh boot using
> hda-verb. Reducing a larger initialization sequence showed that this
> coefficient write alone is sufficient; no GPIO, EAPD, pin-control, or
> other coefficient changes are required. After applying the coefficient
> in userspace, speaker output also remains functional across suspend
> and resume.
>
> Add a machine-specific HDA fixup that writes the required coefficient.
>
> The fixup has been compile-tested, but could not be boot-tested because
> the affected hardware is no longer available.
>
> Closes: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/2162718
> Signed-off-by: Muhtasham Nawr al-Mahmud <muhtaseem2005@gmail.com>
The code change looks OK, so I applied this now. Thanks.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-29 9:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-24 14:45 [RFC PATCH] ALSA: hda/realtek: Fix speakers on ASUS PM3406CHA Muhtasham Nawr al-Mahmud
2026-09-29 9:27 ` 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®