Skip to content

[BUG][LNL][HDA] Headset microphone (3.5mm jack, ALC294) produces no audio on ASUS Vivobook S14 S5406SA (subsystem 0x104310c4, Lunar Lake) #5729

@bernardosts

Description

@bernardosts

Summary

The 3.5mm combo headset jack microphone produces no audio on the ASUS Vivobook S14 S5406SA (Intel Lunar Lake, Realtek ALC294, subsystem ID 0x104310c4). The headset speakers work correctly. The system recognises a "Headphones Stereo Microphone" source in PipeWire but capturing from it yields silence. No analog capture mixer controls are exposed by the SOF driver — only DMIC controls exist — indicating the HDA analog capture pipeline is not being instantiated for this platform/codec combination.


A note on how this report was prepared

I am not a kernel developer. I investigated this issue with the assistance of Claude (Anthropic's AI assistant), which helped me run the right diagnostic commands, interpret the output, and structure the findings into a coherent report. All commands were executed on my actual hardware and all output is genuine.

Developers should treat the root cause analysis and suggested fix directions as informed speculation rather than authoritative diagnosis — the AI helped me connect the dots from publicly available information and similar bug reports, but people with actual knowledge of the SOF and HDA internals will know far better than either of us where the real problem lies.

I am sharing this transparently so you can calibrate accordingly.


Hardware

Field Value
Machine ASUS Vivobook S14 S5406SA
BIOS string ASUSTeKCOMPUTERINC.-ASUSVivobookS14S5406SA_S5406SA-1.0-S5406SA
CPU Intel Core Ultra (Lunar Lake, LNL)
Audio controller Intel Lunar Lake-M HD Audio Controller [8086:a828]
Audio codec Realtek ALC294
Vendor ID 0x10ec0294
Subsystem ID 0x104310c4
Kernel driver sof-audio-pci-intel-lnl
SOF firmware version 2.13.0.1
Machine driver skl_hda_dsp_generic
DMIC count 2 (cfg-dmics:2)

Software environment

  • OS: Linux Mint 22 (Ubuntu 24.04 Noble base)
  • Kernel: 6.17.0-20-generic
  • PipeWire: 1.0.5
  • WirePlumber: 1.0.5
  • firmware-sof-signed: 2023.12.1-1ubuntu1.10
  • linux-firmware: 20240318.git3b128b60-0ubuntu2.26

Symptom

Plugging a known-good 4-pole CTIA headset (JBL T110) into the 3.5mm combo jack:

  • Headset speakers work correctly
  • Headset microphone produces silence — no audio captured regardless of volume level
  • PipeWire source ASoC: SOF: fix a typo #60 "sof-hda-dsp Headphones Stereo Microphone" appears and can be set as default, but captures only silence
$ wpctl status | grep -A5 "Sources"
 ├─ Sources:
 │  *   60. sof-hda-dsp Headphones Stereo Microphone [vol: 1.00]
 │      61. sof-hda-dsp Digital Microphone      [vol: 0.70]

Root cause analysis

AI-assisted interpretation — please verify independently.

No analog capture mixer controls exposed

Only DMIC mixer controls exist. There are zero analog capture controls:

$ amixer -c 0 controls | grep -i "cap\|mic\|input\|source"
numid=37,iface=MIXER,name='Analog Capture IIR Eq'
numid=43,iface=MIXER,name='DMIC0 Capture IIR Eq'
numid=41,iface=MIXER,name='Dmic0 Capture DRC bytes'
numid=42,iface=MIXER,name='Dmic0 Capture DRC switch'
numid=45,iface=MIXER,name='Dmic0 Capture Switch'
numid=40,iface=MIXER,name='Dmic0 Capture TDFB angle set enum'
numid=39,iface=MIXER,name='Dmic0 Capture TDFB beam switch'
numid=38,iface=MIXER,name='Dmic0 Capture TDFB bytes'
numid=44,iface=MIXER,name='Dmic0 Capture Volume'

No Capture Volume, Capture Switch, Input Source, Mic Boost or similar controls exist for the analog path. The SOF DSP pipeline for HDA analog capture does not appear to be instantiated.

Pin 0x19 is disabled at codec level

The headset mic pin (Node 0x19) shows Pin Default 0x411111f0 — "N/A, Speaker at Ext Rear, NO_PRESENCE" — meaning the codec has not configured this pin as a mic input:

Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Pincap 0x00003724: IN Detect
    Vref caps: HIZ 50 GRD 80 100
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear  <-- should be headset mic
  Pin-ctls: 0x20: IN VREF_HIZ                        <-- not configured as mic input

No HDA topology file for LNL in sof-bin v2025.05.1

Inspecting sof-bin v2025.05.1, there is no sof-lnl-hda*.tplg topology file. All LNL topologies target SoundWire codecs (rt711, rt722, rt713, cs42l43, etc.). The HDA analog capture pipeline for Lunar Lake + ALC294 via the classic HDA path appears to have no SOF topology defined.

hda-verb and HDAjackRetask are ineffective

Direct codec manipulation via hda-verb is silently intercepted by the SOF layer and does not reach the codec hardware. HDAjackRetask firmware overrides are similarly ignored because SOF loads its own firmware pipeline independently.

UCM2 config has no EnableSequence for analog mic

The UCM2 config at /usr/share/alsa/ucm2/HDA/HiFi-analog.conf falls into the False branch of If.monomic (no Input Source control exists), resulting in the Mic2 device having no EnableSequence — nothing activates pin 0x19 when the headset mic source is selected.


What works

  • Internal DMIC (digital microphone) — works correctly
  • Headset speakers via 3.5mm jack — work correctly
  • External USB/USB-C audio — works correctly
  • HDMI audio — works correctly

What does not work

  • 3.5mm headset microphone — silence, no analog capture pipeline

Full codec dump (relevant nodes)

$ cat /proc/asound/card0/codec#0 | head -5
Codec: Realtek ALC294
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0294
Subsystem Id: 0x104310c4

Node 0x12 [Pin Complex] - DMIC (internal)
  Pin Default 0x40000000

Node 0x17 [Pin Complex] - Speaker
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
  Pin-ctls: 0x40: OUT

Node 0x19 [Pin Complex] - Headset Mic (problem node)
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
  Pin-ctls: 0x20: IN VREF_HIZ

Node 0x21 [Pin Complex] - Headphone out
  Pin Default 0x03211020: [Jack] HP Out at Ext Left
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1

Loaded kernel modules (audio-related)

snd_soc_skl_hda_dsp
snd_soc_intel_sof_board_helpers
snd_hda_codec_alc269
snd_hda_codec_realtek_lib
snd_hda_codec_generic
snd_hda_intel
snd_sof_pci_intel_lnl
snd_sof_intel_hda_generic
snd_sof_intel_hda_common
snd_hda_codec
snd_hda_core
snd_sof

Related reports


Possible fix directions

Offered as starting points only — developers will know far better than I do which approach is appropriate given the Lunar Lake SOF architecture. These are patterns observed in similar resolved issues, not authoritative diagnosis.

Based on research into similar issues resolved for other ASUS/ALC294 combinations, a fix may involve one or both of:

  1. A SND_PCI_QUIRK or SND_HDA_PIN_QUIRK entry for subsystem ID 0x104310c4 in sound/pci/hda/patch_realtek.c, applying ALC294_FIXUP_ASUS_HEADSET_MIC (or equivalent) to properly configure pin 0x19 as a headset mic input with appropriate VREF bias

  2. A SOF IPC4 topology file for Lunar Lake + HDA codec that instantiates the analog capture pipeline alongside the existing DMIC pipeline — analogous to the sof-hda-generic topologies that exist for older Intel platforms


Closing note

I am not able to monitor this issue daily, but I will do my best to respond to requests for additional diagnostics when time allows. Thank you sincerely to everyone who looks into this. The work you do — maintaining the Linux audio stack for free, for everyone — is genuinely remarkable. This report is my small attempt to give you something useful in return.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions