Skip to content

ThinkPad X1 Carbon Gen 13 (Lunar Lake) - 3.5mm headphone jack no audio output via RT713-SDCA / sof-soundwire #207

@wangjt23

Description

@wangjt23

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

  1. 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.
  2. Built-in speakers (RT1318): Work correctly.
  3. USB Type-C to 3.5mm adapter: Works correctly (shows as Realtek USB2.0 Audio).
  4. 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:

  1. 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.
  2. Calibration issue — the rt712_sdca_calibration routine may not be correctly configuring the analog output path for this specific hardware variant.
  3. 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

  1. Install Ubuntu 26.04 on ThinkPad X1 Carbon Gen 13 (21NTA06ECD)
  2. Plug in 3.5mm headphones
  3. Verify jack detection: amixer -c 0 cget name='Headphone Jack'values=on
  4. Play audio: speaker-test -c 2 -D plughw:0,0 -t sine -f 440 -l 1
  5. 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).

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