Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 (ALC256, 19e5:320d)
@ 2026-10-29  8:13 Guobing Yin
  2026-10-31 15:52 ` Takashi Iwai
  0 siblings, 1 reply; 2+ messages in thread
From: Guobing Yin @ 2026-10-29  8:13 UTC (permalink / raw)
  To: alsa-devel; +Cc: linux-sound, tiwai, perex

[-- Attachment #1: Type: text/plain, Size: 1882 bytes --]

Hi,

this is a one-line quirk addition for a Huawei MateBook WRT-WX9 whose
Realtek ALC256 codec reports subsystem ID 19e5:320d.  The patch is
attached.

Problem: headphone insertion is never detected.  The "Headphone Jack"
control stays off, PipeWire keeps the speaker route selected, and audio
comes out of the internal speakers and the headphones at the same time.
Unplugging the headphones leaves the speakers working, so only insertion
detection is broken.

Cause: the existing quirk for this machine family is registered for
19e5:320f only, so this variant receives no fixup at all.  Applying
ALC269_FIXUP_HEADSET_MODE makes jack detection work.

Evidence from the affected machine (kernel 7.0.0-38-generic):

  lspci -nn:
    00:1f.3 Audio device [0403]: Intel Corporation Cannon Point-LP
    High Definition Audio Controller [8086:9dc8] (rev 30)

  codec:  Realtek ALC256, vendor 0x10ec0256, subsystem 0x19e5320d
  DMI:    HUAWEI WRT-WX9 / WRT-WX9-PCB, BIOS 1.39

  Without the fixup:
    $ amixer -c0 cget numid=12 | tail -1
      : values=off            # headphones are plugged in
    $ hda-verb /dev/snd/hwC0D0 0x21 0x0f09 0x0
      value = 0x0             # pin sense never reports presence
    PipeWire: analog-output-headphones -> "not available"

  Booting with snd-hda-intel.model=headset-mode (the same
  ALC269_FIXUP_HEADSET_MODE fixup):
    $ amixer -c0 cget numid=12 | tail -1
      : values=on
    $ hda-verb /dev/snd/hwC0D0 0x21 0x0f09 0x0
      value = 0x80000000
    PipeWire: analog-output-headphones -> "available"; the speaker is
    muted automatically on insertion and unplugging restores speaker
    output.

  HDMI audio profiles and the internal microphone keep working with the
  fixup applied.

The attached patch just maps 19e5:320d to that fixup.

I am not subscribed to the list, please keep me in Cc.

Thanks,
yinguobing <yinguobing@gmail.com>

[-- Attachment #2: huawei-wrt-wx9-alc256-quirk.patch --]
[-- Type: text/x-patch, Size: 2028 bytes --]

From: yinguobing <yinguobing@gmail.com>
Date: Thu, 29 Oct 2026 16:08:00 +0800
Subject: [PATCH] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 (ALC256, 19e5:320d)

On the Huawei MateBook WRT-WX9 whose ALC256 codec reports subsystem ID
19e5:320d, headphone jack presence detection never works: the
"Headphone Jack" control stays off, PipeWire keeps the speaker route
active, and audio plays from the internal speakers and the headphones at
the same time.  Unplugging the headphones leaves the speakers working, so
only insertion detection is broken.

The existing quirk for this machine family is registered for 19e5:320f
only, so this variant receives no fixup at all.  ALC256 on this board
needs ALC269_FIXUP_HEADSET_MODE; without it the codec's jack detection is
never enabled and GET_PIN_SENSE on the headphone pin (0x21) always reads 0.

Verified on the affected machine by booting with
snd-hda-intel.model=headset-mode, which applies the same fixup: the
"Headphone Jack" control then reports "on" when a plug is inserted,
GET_PIN_SENSE on pin 0x21 returns 0x80000000, the "Headphones" port
becomes available in PipeWire, and the speaker is muted automatically on
insertion.  HDMI audio profiles and the internal microphone keep working.

Add a SND_PCI_QUIRK entry for 19e5:320d using ALC269_FIXUP_HEADSET_MODE.

Signed-off-by: yinguobing <yinguobing@gmail.com>
---
 sound/hda/codecs/realtek/alc269.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -8560,3 +8560,4 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
+	SND_PCI_QUIRK(0x19e5, 0x320d, "Huawei WRT-WX9", ALC269_FIXUP_HEADSET_MODE),
 	SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x19e5, 0x3212, "Huawei KLV-WX9 ", ALC256_FIXUP_ACER_HEADSET_MIC),
-- 
2.43.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-31 15:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-29  8:13 [PATCH] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 (ALC256, 19e5:320d) Guobing Yin
2026-10-31 15:52 ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox