Skip to content

[LNL][X1C13] RT1318 UNATTACHED: empty Cadence PING (no Device0) + continuous CTRL_CLASH after Speaker STOP #5929

Description

@aramsdale

Describe the bug

ThinkPad X1 Carbon Gen 13 21NS0012US (Lunar Lake, 8086:a828, sof-audio-pci-intel-lnl). Topology sof-lnl-rt713-l0-rt1318-l1-2ch.tplg, ADSPFW 2.14.1.1, kernel 7.1.9-arch1-2 (Omarchy 4.0.2).

Speakers worked for several days on a brand-new machine. On 2026-09-05 21:26:36 PDT, Speaker STOP on an already-running stream after s2idle/fingerprint USB activity produced link-1 DATA_CLASH + CTRL_CLASH, then DPN_PortCtrl -61, then clock-stop -110. Since then:

  • sdw:0:0:025d:0713:01 RT713 Attached (jack works)
  • sdw:0:1:025d:1318:01 RT1318 UNATTACHED
  • Cadence MCP_SLAVE_STAT link 1 = 0 (no device 0)
  • Cadence MCP_INTSTAT link 1 = 0x80000400 (IRQ + CTRL_CLASH)
  • Clash on every start_bus; every frame while the clock runs
  • Speakers also missing in Windows (FUNC_0713 only)

Not #3442 (PING agrees with sysfs). Not #5495 re-enum (needs Device0). Not #5914 (amps stayed Attached). Not #4535 (they had Device0). Not sof#10755 (card existed; speakers played).

Documentation/driver-api/soundwire/error_handling.rst says clash is log-only and some slave faults are likely unrecoverable. Asking whether any host recovery exists that is not another sdw_cdns_exit_reset(). If a clash during STOP can leave a soldered amp hung across OS boundaries, that is a fleet risk, not a mute/UCM ticket.

Distro companion: omacom/omarchy#10916

To Reproduce

Cannot reproduce the first death on demand. Hung state is persistent:

  1. Boot this X1C13 on current kernel/SOF.
  2. cat /sys/bus/soundwire/devices/sdw:0:1:025d:1318:01/statusUNATTACHED
  3. RPM-wake the link and read master-0-1/intel-sdw/cdns-registers: MCP_SLAVE_STAT=0, INTSTAT=0x80000400
  4. dmesg shows soundwire_intel.link.1: Bus clash for control word on first start_bus

Reproduction Rate

Hung state: 10/10 boots since 2026-09-05, including pack-off and Windows SST OED+BUS disable/enable.

Expected behavior

RT1318 answers PING as device 0 (or its sticky device number), enumerates, Speakers endpoint works. A clash during STOP should not leave the amp driving Col0 with no Device0 across reboot and OS switch.

Impact

Internal speakers dead on a new X1C13. Jack/USB-C/HDMI still work. If clash-without-Device0 is unrecoverable in software, this is a hardware-RMA class event that Linux can cause and cannot undo.

Environment

  • Kernel: 7.1.9-arch1-2 (LNL IRQ-before-exit_reset present)
  • SOF: ADSPFW 2.14.1.1
  • Topology: sof-lnl-rt713-l0-rt1318-l1-2ch.tplg
  • Platform: Lenovo ThinkPad X1 Carbon Gen 13 21NS0012US, BIOS N4BET77W (1.47)
  • Live clock-stop quirk: 2 on snd-sof-intel-hda-generic (experiment; default 8 also failed to attach). sdw_md_flags=0

Tried / please do not recommend repeating

cdns-hw-reset, PCI remove/rescan of 0000:00:1f.3 (#4809), pack-off, Windows SST OED+BUS disable/enable, sof#10755 2.11 overlay, RPM pin on.

Still unused (confirm-first, not expected to create Device0)

Cadence IP MCP_CONFIG dump at ip_offset 0x4000 (read-only). sof_debug=128 / skip_imr_boot. sdw_md_flags=0x700 on link 1 (looks like RPM pin on: continuous clash). Quirk=1 (same).

Questions

  1. Is there a host-side recovery for empty PING including device 0 + continuous CTRL_CLASH that is not another sdw_cdns_exit_reset() / start_bus()?
  2. Does live link-1 50×8 / 19.2 MHz vs ACPI 50×4 / 9.6 MHz matter once the slave is already fighting Col0, or is that a red herring?
  3. Should a manager that sees continuous CTRL_CLASH stop the clock rather than keep generating frames?
  4. If this is the unrecoverable electrical class ([MTL][SDW] rt1316-sdca sdw:2:025d:1316:01: SDW_SCP_INT1 (BUS_CLASH) read failed:-61 #4535 won't-fix, except they had Device0), please say so. Remaining path is Lenovo / system-board (RT1318 is soldered, HMM FRU Introducing virtual FE  #8).
  5. Is there anything userspace/distros should stop doing on LNL SoundWire after a clash (RPM hammering start_bus, PCI-level recover) so the next unit does not deepen a hung link?

Please do not suggest F10 UEFI audio (this SKU has no audio module), sof#10755 overlay, or sdw_link_mask (#4353 is a ghost link; SWD1 is real).

Console / register dump

sdw:0:0:025d:0713:01 Attached
sdw:0:1:025d:1318:01 UNATTACHED

link 0 MCP_SLAVE_STAT=0x1000  MCP_INTSTAT=0  FRAME ~50x4  CLK div 3
link 1 MCP_SLAVE_STAT=0       MCP_INTSTAT=0x80000400  FRAME ~50x8  CLK div 1
       MCP_CONTROL=0  CONFIG_UPDATE=0  INTMASK=0x8000f704 (Device0 unmasked)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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