Skip to contentSkip to conversation

ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 (ALC256, 19e5:320d)

PATCH In review Guobing Yin 2 participants 2 messages Oct 29 – Oct 31 Sound

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 (ALC256, 19e5:320d)

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 <[email protected]>

From: yinguobing <[email protected]>
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.

---
 sound/hda/codecs/realtek/alc269.c | 1 +
 1 file changed, 1 insertion(+)
sound/hda/codecs/realtek/alc269.c +1 -0
@@ -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),
Signature · 1 line
2.43.0
#1 lore raw
Quoted 75 lines · Guobing Yin

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 <[email protected]>
From: yinguobing <[email protected]>
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.

Quoted 3 lines

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

Applied now. Thanks.

Takashi