* [PATCH v1] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA
@ 2026-10-04 21:26 Scott Gauche
2026-10-05 10:27 ` Takashi Iwai
0 siblings, 1 reply; 4+ messages in thread
From: Scott Gauche @ 2026-10-04 21:26 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai; +Cc: linux-sound, linux-kernel, Scott Gauche
The ASUS Vivobook S 14 Q423SA-U5512 (DMI family S5406SA) with the
ALC294 codec has working analog audio when booted directly after a full
shutdown. After a warm reboot from Windows 11, audio works briefly during
Linux startup, then both the internal speakers and headphones become
silent. PCM playback continues without errors.
Coefficient 0x1b is 0x4e4b on a direct cold boot, but 0x4a4b after the
Windows warm reboot. Restoring bit 10 changes it back to 0x4e4b and
immediately enables both analog outputs. Speaker playback, headphone
playback, jack switching, cold boot, and suspend/resume were tested
successfully. The same 0x4a4b state and immediate recovery with 0x4e4b
were independently confirmed on another S5406SA with subsystem 1043:10c4.
The same coefficient write is already used by
ALC294_FIXUP_ASUS_COEF_1B for the ASUS UX431DA. That fixup cannot be
reused here because it chains to ALC289_FIXUP_ASUS_GA401 and applies
unrelated DAC routing and microphone pin configuration.
Add a model-specific fixup for subsystem 1043:10c4 and chain it to the
existing ALC2XX_FIXUP_HEADSET_MIC fixup instead.
Link: https://github.com/thesofproject/sof/issues/11051
Signed-off-by: Scott Gauche <scott-dev@scottgauche.com>
---
sound/hda/codecs/realtek/alc269.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index be5482530a..90ba8dd2a2 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -4193,6 +4193,7 @@ enum {
ALC294_FIXUP_ASUS_I2C_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPI_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPK,
+ ALC294_FIXUP_ASUS_Q423SA,
ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
ALC255_FIXUP_ACER_HEADSET_MIC,
@@ -5669,6 +5670,17 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
+ [ALC294_FIXUP_ASUS_Q423SA] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ /* Restore bit 10 lost after reboot from Windows */
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x1b },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x4e4b },
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC2XX_FIXUP_HEADSET_MIC,
+ },
[ALC295_FIXUP_CHROME_BOOK] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc295_fixup_chromebook,
@@ -7819,7 +7831,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK),
SND_PCI_QUIRK(0x1043, 0x10a4, "ASUS TP3407SA", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x1043, 0x10c0, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
- SND_PCI_QUIRK(0x1043, 0x10c4, "ASUS Vivobook S14 S5406SA", ALC2XX_FIXUP_HEADSET_MIC),
+ SND_PCI_QUIRK(0x1043, 0x10c4, "ASUS S5406SA/Q423SA", ALC294_FIXUP_ASUS_Q423SA),
SND_PCI_QUIRK(0x1043, 0x10d0, "ASUS X540LA/X540LJ", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1043, 0x10d3, "ASUS K6500ZC", ALC294_FIXUP_ASUS_SPK),
SND_PCI_QUIRK(0x1043, 0x1154, "ASUS TP3607SH", ALC287_FIXUP_TAS2781_I2C),
--
2.53.0
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v1] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA
2026-10-04 21:26 [PATCH v1] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA Scott Gauche
@ 2026-10-05 10:27 ` Takashi Iwai
2026-10-05 15:40 ` [PATCH v2] " Scott Gauche
0 siblings, 1 reply; 4+ messages in thread
From: Takashi Iwai @ 2026-10-05 10:27 UTC (permalink / raw)
To: Scott Gauche; +Cc: Jaroslav Kysela, Takashi Iwai, linux-sound, linux-kernel
On Sun, 04 Oct 2026 23:26:23 +0200,
Scott Gauche wrote:
>
> The ASUS Vivobook S 14 Q423SA-U5512 (DMI family S5406SA) with the
> ALC294 codec has working analog audio when booted directly after a full
> shutdown. After a warm reboot from Windows 11, audio works briefly during
> Linux startup, then both the internal speakers and headphones become
> silent. PCM playback continues without errors.
>
> Coefficient 0x1b is 0x4e4b on a direct cold boot, but 0x4a4b after the
> Windows warm reboot. Restoring bit 10 changes it back to 0x4e4b and
> immediately enables both analog outputs. Speaker playback, headphone
> playback, jack switching, cold boot, and suspend/resume were tested
> successfully. The same 0x4a4b state and immediate recovery with 0x4e4b
> were independently confirmed on another S5406SA with subsystem 1043:10c4.
>
> The same coefficient write is already used by
> ALC294_FIXUP_ASUS_COEF_1B for the ASUS UX431DA. That fixup cannot be
> reused here because it chains to ALC289_FIXUP_ASUS_GA401 and applies
> unrelated DAC routing and microphone pin configuration.
>
> Add a model-specific fixup for subsystem 1043:10c4 and chain it to the
> existing ALC2XX_FIXUP_HEADSET_MIC fixup instead.
>
> Link: https://github.com/thesofproject/sof/issues/11051
> Signed-off-by: Scott Gauche <scott-dev@scottgauche.com>
As this looks like correcting an existing quirk, could you point to
the commit introducing the original quirk via Fixes tag?
At best, please resubmit v2 with it.
thanks,
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA
2026-10-05 10:27 ` Takashi Iwai
@ 2026-10-05 15:40 ` Scott Gauche
2026-10-05 16:06 ` Takashi Iwai
0 siblings, 1 reply; 4+ messages in thread
From: Scott Gauche @ 2026-10-05 15:40 UTC (permalink / raw)
To: Takashi Iwai, Jaroslav Kysela; +Cc: linux-sound, linux-kernel, Scott Gauche
The ASUS Vivobook S 14 Q423SA-U5512 (DMI family S5406SA) with the
ALC294 codec has working analog audio when booted directly after a full
shutdown. After a warm reboot from Windows 11, audio works briefly during
Linux startup, then both the internal speakers and headphones become
silent. PCM playback continues without errors.
Coefficient 0x1b is 0x4e4b on a direct cold boot, but 0x4a4b after the
Windows warm reboot. Restoring bit 10 changes it back to 0x4e4b and
immediately enables both analog outputs. Speaker playback, headphone
playback, jack switching, cold boot, and suspend/resume were tested
successfully. The same 0x4a4b state and immediate recovery with 0x4e4b
were independently confirmed on another S5406SA with subsystem 1043:10c4.
The same coefficient write is already used by
ALC294_FIXUP_ASUS_COEF_1B for the ASUS UX431DA. That fixup cannot be
reused here because it chains to ALC289_FIXUP_ASUS_GA401 and applies
unrelated DAC routing and microphone pin configuration.
Add a model-specific fixup for subsystem 1043:10c4 and chain it to the
existing ALC2XX_FIXUP_HEADSET_MIC fixup instead.
Link: https://github.com/thesofproject/sof/issues/11051
Fixes: f2d08f3651fb ("ALSA: hda/realtek: Fix headset mic on ASUS Vivobook S14 S5406SA")
Signed-off-by: Scott Gauche <scott-dev@scottgauche.com>
---
Changes in v2:
- Add Fixes tag for the original 1043:10c4 quirk.
sound/hda/codecs/realtek/alc269.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index be5482530a..90ba8dd2a2 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -4193,6 +4193,7 @@ enum {
ALC294_FIXUP_ASUS_I2C_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPI_HEADSET_MIC,
ALC294_FIXUP_ASUS_SPK,
+ ALC294_FIXUP_ASUS_Q423SA,
ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
ALC255_FIXUP_ACER_HEADSET_MIC,
@@ -5669,6 +5670,17 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
},
+ [ALC294_FIXUP_ASUS_Q423SA] = {
+ .type = HDA_FIXUP_VERBS,
+ .v.verbs = (const struct hda_verb[]) {
+ /* Restore bit 10 lost after reboot from Windows */
+ { 0x20, AC_VERB_SET_COEF_INDEX, 0x1b },
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x4e4b },
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC2XX_FIXUP_HEADSET_MIC,
+ },
[ALC295_FIXUP_CHROME_BOOK] = {
.type = HDA_FIXUP_FUNC,
.v.func = alc295_fixup_chromebook,
@@ -7819,7 +7831,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK),
SND_PCI_QUIRK(0x1043, 0x10a4, "ASUS TP3407SA", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x1043, 0x10c0, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
- SND_PCI_QUIRK(0x1043, 0x10c4, "ASUS Vivobook S14 S5406SA", ALC2XX_FIXUP_HEADSET_MIC),
+ SND_PCI_QUIRK(0x1043, 0x10c4, "ASUS S5406SA/Q423SA", ALC294_FIXUP_ASUS_Q423SA),
SND_PCI_QUIRK(0x1043, 0x10d0, "ASUS X540LA/X540LJ", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1043, 0x10d3, "ASUS K6500ZC", ALC294_FIXUP_ASUS_SPK),
SND_PCI_QUIRK(0x1043, 0x1154, "ASUS TP3607SH", ALC287_FIXUP_TAS2781_I2C),
--
2.53.0
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH v2] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA
2026-10-05 15:40 ` [PATCH v2] " Scott Gauche
@ 2026-10-05 16:06 ` Takashi Iwai
0 siblings, 0 replies; 4+ messages in thread
From: Takashi Iwai @ 2026-10-05 16:06 UTC (permalink / raw)
To: Scott Gauche; +Cc: Takashi Iwai, Jaroslav Kysela, linux-sound, linux-kernel
On Mon, 05 Oct 2026 17:40:17 +0200,
Scott Gauche wrote:
>
> The ASUS Vivobook S 14 Q423SA-U5512 (DMI family S5406SA) with the
> ALC294 codec has working analog audio when booted directly after a full
> shutdown. After a warm reboot from Windows 11, audio works briefly during
> Linux startup, then both the internal speakers and headphones become
> silent. PCM playback continues without errors.
>
> Coefficient 0x1b is 0x4e4b on a direct cold boot, but 0x4a4b after the
> Windows warm reboot. Restoring bit 10 changes it back to 0x4e4b and
> immediately enables both analog outputs. Speaker playback, headphone
> playback, jack switching, cold boot, and suspend/resume were tested
> successfully. The same 0x4a4b state and immediate recovery with 0x4e4b
> were independently confirmed on another S5406SA with subsystem 1043:10c4.
>
> The same coefficient write is already used by
> ALC294_FIXUP_ASUS_COEF_1B for the ASUS UX431DA. That fixup cannot be
> reused here because it chains to ALC289_FIXUP_ASUS_GA401 and applies
> unrelated DAC routing and microphone pin configuration.
>
> Add a model-specific fixup for subsystem 1043:10c4 and chain it to the
> existing ALC2XX_FIXUP_HEADSET_MIC fixup instead.
>
> Link: https://github.com/thesofproject/sof/issues/11051
> Fixes: f2d08f3651fb ("ALSA: hda/realtek: Fix headset mic on ASUS Vivobook S14 S5406SA")
> Signed-off-by: Scott Gauche <scott-dev@scottgauche.com>
Applied to for-next branch. Thanks.
Takashi
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-05 16:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-04 21:26 [PATCH v1] ALSA: hda/realtek: Fix audio after Windows reboot on ASUS Q423SA Scott Gauche
2026-10-05 10:27 ` Takashi Iwai
2026-10-05 15:40 ` [PATCH v2] " Scott Gauche
2026-10-05 16:06 ` 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®