Summary
On a Lenovo ThinkPad X1 Carbon Gen 13 (21NTA06ECD) with Intel Lunar Lake Utral 7 258V, the 3.5mm headphone jack produces no audio output under Linux(ubuntu26.04 or ubuntu24.04). The same hardware works correctly under Windows using the Realtek audio driver. Speaker output (via RT1318) works fine. A USB Type-C to 3.5mm adapter (Realtek USB Audio) also works correctly in Linux.
The DAPM path appears fully connected and powers up during playback, ALSA mixer controls show unmuted state with volume at max, and speaker-test completes without errors — but no sound reaches the headphones.
Hardware
- Machine: Lenovo ThinkPad X1 Carbon Gen 13
- Model: 21NTA06ECD
- BIOS: N4BET73W (1.43)
- Audio Controller: Intel Lunar Lake-M HD Audio Controller [8086:a828] (rev 10)
- SoundWire Codecs:
sdw:0:0:025d:0713:01 — Realtek RT713-SDCA (headphone/headset jack + DMIC)
sdw:0:1:025d:1318:01 — Realtek RT1318 (speaker amplifier)
- HDA Codec Mask:
mask 4 (only Intel HDMI codec at address 2; no HDA Realtek codec detected)
Software
- OS: Ubuntu 26.04 LTS (Resolute)
- Kernel: 7.0.0-14-generic (PREEMPT_DYNAMIC)
- SOF Firmware: firmware-sof-signed 2025.12.2-1
- Firmware:
intel/sof-ipc4/lnl/sof-lnl.ri (version 2.14.1.1)
- Topology:
intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
- Topology ABI: 3:29:1 (Kernel ABI 3:23:1)
- ALSA UCM: alsa-ucm-conf 1.2.15.3-1ubuntu1
- PipeWire: 1.6.2
- WirePlumber: 1.6.2
- Codec driver:
snd_soc_rt712_sdca (RT713 is handled by the RT712-SDCA driver)
Symptoms
- 3.5mm headphone jack: No audio output. Jack detection works (
Headphone Jack: values=on), DAPM widgets power up during playback, PCM enters RUNNING state, but no sound is heard.
- Built-in speakers (RT1318): Work correctly.
- USB Type-C to 3.5mm adapter: Works correctly (shows as Realtek USB2.0 Audio).
- Windows dual-boot: The same 3.5mm jack works with the Realtek driver.
Detailed Diagnostics
Sound Card and Playback Devices
$ cat /proc/asound/cards
0 [sofsoundwire ]: sof-soundwire - sof-soundwire
LENOVO-21NTA06ECD-ThinkPadX1CarbonGen13
$ aplay -l
card 0: sofsoundwire [sof-soundwire], device 0: Jack Out (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 2: Speaker (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: sofsoundwire [sof-soundwire], device 5: HDMI1 (*) [HDMI 1]
card 0: sofsoundwire [sof-soundwire], device 6: HDMI2 (*) [HDMI 2]
card 0: sofsoundwire [sof-soundwire], device 7: HDMI3 (*) [HDMI 3]
card 0: sofsoundwire [sof-soundwire], device 31: Deepbuffer Jack Out (*) []
Jack Detection (Working)
$ amixer -c 0 cget name='Headphone Jack'
numid=9,iface=CARD,name='Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
Mixer Controls (All Unmuted, Volume Max)
$ amixer -c 0 cget name='Headphone Switch'
: values=on
$ amixer -c 0 cget name='rt713 FU05 Playback Switch'
: values=on,on
$ amixer -c 0 cget name='rt713 FU05 Playback Volume'
: values=87,87 (max, 0dB)
$ amixer -c 0 cget name='Post Mixer Jack Out Playback Volume'
: values=45,45 (max)
$ amixer -c 0 cget name='Pre Mixer Jack Out Playback Volume'
: values=45,45 (max)
DAPM Widget States (Idle — No Playback)
rt713 HP: Off in 0 out 1
widget-type output
out "static" "Headphone" "(null)"
in "static" "rt713 FU 05" "sdw:0:0:025d:0713:01"
in "static" "rt713 PDE 40" "sdw:0:0:025d:0713:01"
rt713 FU 05: Off in 0 out 1
widget-type dac
out "static" "rt713 HP" "sdw:0:0:025d:0713:01"
in "static" "rt713 DP1RX" "sdw:0:0:025d:0713:01"
rt713 PDE 40: Off in 0 out 0
widget-type supply
out "static" "rt713 HP" "sdw:0:0:025d:0713:01"
rt713 DP1RX: Off in 0 out 1
stream DP1 Playback inactive
widget-type aif_in
out "static" "rt713 FU 05" "sdw:0:0:025d:0713:01"
in "static" "rt713 DP1 Playback" "sdw:0:0:025d:0713:01"
rt713 DP1 Playback: Off in 0 out 1
stream DP1 Playback inactive
widget-type dai_in
out "static" "rt713 DP1RX" "sdw:0:0:025d:0713:01"
in "static" "alh-copier.SDW0-Playback.0" "0000:00:1f.3"
DAPM Widget States (During speaker-test -c 2 -D plughw:0,0)
All widgets power up correctly during playback:
rt713 HP: On in 1 out 1
rt713 FU 05: On in 1 out 1
rt713 PDE 40: On in 0 out 1
rt713 DP1RX: On in 1 out 1
alh-copier.SDW0-Playback.0: On in 1 out 1
stream SDW0-Playback active
PCM status: RUNNING
hw_params: access MMAP_INTERLEAVED, format S16_LE, rate 48000, channels 2
RT713 Codec Registers (via regmap, non-XXXX values)
02000004: aa81 # ANALOG_BIAS_CTL3
0200000e: a1e0 # LDO2_3_CTL1
0200004a: 8830
02000067: f100
05b00000: 0407
05b00005: 0000
05b00029: 0000
05b0002a: 0000
05f00008: 0000
06100000: 04e4
0610000e: 0006
06100022: 4040 # DAC03_HP_PDE_FLOAT_CTL
06100023: 3412 # MIC2_LINE2_PDE_FLOAT_CTL
06100026: 1112 # ADC0A_08_PDE_FLOAT_CTL
06100045: 0c60
06100046: 0009
06100053: 0fff
06100055: 0000
06100060: 1100
06100064: 8000
06100065: fff0
06100067: 0f12
40400291: 0000 # SDCA FU05 Mute CH1 (0=unmuted)
40400292: 0000 # SDCA FU05 Mute CH2 (0=unmuted)
40400791: 1980 # SDCA FU05 Volume CH1 (0dB)
40400792: 1980 # SDCA FU05 Volume CH2 (0dB)
40600259: 0000
4060025a: 0000
40800ad9: 0000
40800ada: 0000
40800adb: 0000
40800adc: 0000
40800f11: 0000
40800f12: 0000
40800f13: 0000
40800f14: 0000
41000311: 0000 # PDE40 power state (PS0 = full power)
41000312: 0000
Kernel Audio Messages (dmesg)
[ 3.582008] sof-audio-pci-intel-lnl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[ 3.582022] sof-audio-pci-intel-lnl 0000:00:1f.3: enabling device (0004 -> 0006)
[ 3.582487] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 5.096108] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[ 5.103290] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[ 5.123285] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 4
[ 5.123292] sof-audio-pci-intel-lnl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[ 5.123296] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 5.125708] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
[ 5.126185] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.14.1.1
[ 5.394106] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.14.1.1
[ 5.414790] sof-audio-pci-intel-lnl 0000:00:1f.3: loading topology: intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
[ 5.414882] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 5.415401] sof_sdw sof_sdw: ASoC: Parent card not yet available, widget card binding deferred
[ 5.475873] sof_sdw sof_sdw: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
[ 5.489728] input: sof-soundwire Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_sdw/sound/card0/input16
Loaded Kernel Modules (Audio-Related)
snd_soc_rt712_sdca 69632 1
snd_soc_rt1318_sdw 32768 1
snd_sof_pci_intel_lnl 16384 0
snd_sof_pci_intel_mtl 36864 1 snd_sof_pci_intel_lnl
snd_sof_intel_hda_common 200704 4
snd_sof 438272 8
snd_hda_intel 65536 0
snd_hda_codec_hdmi 65536 1
soundwire_intel 86016 3
soundwire_bus 1183744 8
regmap_sdw 12288 2 snd_soc_rt712_sdca,snd_soc_rt1318_sdw
regmap_sdw_mbq 16384 1 snd_soc_rt712_sdca
WirePlumber Sink Status
Audio Sinks:
59. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 3 Output [vol: 1.00]
60. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 2 Output [vol: 1.00]
61. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 1 Output [vol: 1.00]
62. Lunar Lake-M HD Audio Controller Speaker [vol: 0.19]
* 63. Lunar Lake-M HD Audio Controller Headphones [vol: 0.70]
PCI Subsystem Info
$ lspci -nn | grep audio
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Lunar Lake-M HD Audio Controller [8086:a828] (rev 10)
Subsystem: Lenovo Device 2339
Analysis
The entire digital audio path from PipeWire → SOF DSP → SoundWire → RT713 codec appears to be functioning:
- Jack detection correctly identifies headphone insertion
- DAPM widgets all power up during playback
- PCM stream enters RUNNING state
- SDCA function unit registers show unmuted state and 0dB volume
- PDE40 is in PS0 (full power)
Despite all of this, no analog audio signal reaches the headphones. This suggests the issue is in the RT713 codec's analog output stage — either:
- Missing vendor-specific register initialization for the analog HP amplifier that the Windows Realtek driver performs but the Linux
snd_soc_rt712_sdca driver does not.
- Calibration issue — the
rt712_sdca_calibration routine may not be correctly configuring the analog output path for this specific hardware variant.
- Topology mismatch — the topology
sof-lnl-rt713-l0-rt1318-l1-2ch.tplg may be missing a required analog output enable widget or connection.
Note: The HDA codec mask is 4 (only HDMI codec at address 2), confirming there is no separate HDA Realtek codec — the 3.5mm jack is indeed wired to the RT713 SoundWire codec, which is the same Realtek silicon that works under Windows with the Realtek driver.
Steps to Reproduce
- Install Ubuntu 26.04 on ThinkPad X1 Carbon Gen 13 (21NTA06ECD)
- Plug in 3.5mm headphones
- Verify jack detection:
amixer -c 0 cget name='Headphone Jack' → values=on
- Play audio:
speaker-test -c 2 -D plughw:0,0 -t sine -f 440 -l 1
- Observe: no sound in headphones (speaker-test completes without error)
Expected Behavior
Audio should be heard through the 3.5mm headphones, as it is under Windows with the same hardware.
Workaround
Using a USB Type-C to 3.5mm audio adapter works (detected as Realtek USB2.0 Audio).
Summary
On a Lenovo ThinkPad X1 Carbon Gen 13 (21NTA06ECD) with Intel Lunar Lake Utral 7 258V, the 3.5mm headphone jack produces no audio output under Linux(ubuntu26.04 or ubuntu24.04). The same hardware works correctly under Windows using the Realtek audio driver. Speaker output (via RT1318) works fine. A USB Type-C to 3.5mm adapter (Realtek USB Audio) also works correctly in Linux.
The DAPM path appears fully connected and powers up during playback, ALSA mixer controls show unmuted state with volume at max, and
speaker-testcompletes without errors — but no sound reaches the headphones.Hardware
sdw:0:0:025d:0713:01— Realtek RT713-SDCA (headphone/headset jack + DMIC)sdw:0:1:025d:1318:01— Realtek RT1318 (speaker amplifier)mask 4(only Intel HDMI codec at address 2; no HDA Realtek codec detected)Software
intel/sof-ipc4/lnl/sof-lnl.ri(version 2.14.1.1)intel/sof-ipc4-tplg/sof-lnl-rt713-l0-rt1318-l1-2ch.tplgsnd_soc_rt712_sdca(RT713 is handled by the RT712-SDCA driver)Symptoms
Headphone Jack: values=on), DAPM widgets power up during playback, PCM enters RUNNING state, but no sound is heard.Detailed Diagnostics
Sound Card and Playback Devices
Jack Detection (Working)
Mixer Controls (All Unmuted, Volume Max)
DAPM Widget States (Idle — No Playback)
DAPM Widget States (During
speaker-test -c 2 -D plughw:0,0)All widgets power up correctly during playback:
RT713 Codec Registers (via regmap, non-XXXX values)
Kernel Audio Messages (dmesg)
Loaded Kernel Modules (Audio-Related)
WirePlumber Sink Status
PCI Subsystem Info
Analysis
The entire digital audio path from PipeWire → SOF DSP → SoundWire → RT713 codec appears to be functioning:
Despite all of this, no analog audio signal reaches the headphones. This suggests the issue is in the RT713 codec's analog output stage — either:
snd_soc_rt712_sdcadriver does not.rt712_sdca_calibrationroutine may not be correctly configuring the analog output path for this specific hardware variant.sof-lnl-rt713-l0-rt1318-l1-2ch.tplgmay be missing a required analog output enable widget or connection.Note: The HDA codec mask is
4(only HDMI codec at address 2), confirming there is no separate HDA Realtek codec — the 3.5mm jack is indeed wired to the RT713 SoundWire codec, which is the same Realtek silicon that works under Windows with the Realtek driver.Steps to Reproduce
amixer -c 0 cget name='Headphone Jack'→values=onspeaker-test -c 2 -D plughw:0,0 -t sine -f 440 -l 1Expected Behavior
Audio should be heard through the 3.5mm headphones, as it is under Windows with the same hardware.
Workaround
Using a USB Type-C to 3.5mm audio adapter works (detected as Realtek USB2.0 Audio).