Skip to content

amd-soundwire: dual TAS2783 on one link fails to prepare (Program params failed: -22, FW download failed: -110) on Strix Halo / ASUS ProArt PX13 #5824

Description

@iKyi

Filing a report for an AMD ACP SoundWire + dual TI TAS2783 prepare failure. I couldn't find a merged fix for this exact case; it looks adjacent to the recent AMD ACP7.0 SoundWire work (#5510 TAS2783A driver, #5796 / #5620). If there's an existing tracking issue, please point me at it and treat this as a hardware confirmation. Happy to build/test patches.

Hardware

  • ASUS ProArt PX13 HN7306EAC, BIOS HN7306EAC.304 (2025-12-24)
  • AMD Ryzen AI MAX+ 395 "Strix Halo" w/ Radeon 8060S
  • AMD Audio Coprocessor [1022:15e2] rev 70, amd-soundwire (ASoC card amdsoundwire)
  • Link SDW1 (sdw-master-0-1 / amd_sdw_manager.1) carries two TI TAS2783 SmartAmps plus a Realtek RT721 SDCA jack codec:
    • sdw:0:1:0102:0000:01:8 — TAS2783 (mfg 0x0102 = Texas Instruments)
    • sdw:0:1:0102:0000:01:b — TAS2783 (second amp on the same link)
    • sdw:0:1:025d:0721:01 — Realtek RT721 SDCA jack
  • Drivers: snd_soc_tas2783_sdw, soundwire_amd, snd_acp_sdw_legacy_mach, snd_sof

Software

  • Ubuntu 26.04 LTS, kernel 7.0.0-22-generic

Symptom

Intermittently at boot (and on stream prepare) the dual-TAS2783 link fails to program transport params and the ACP SoundWire manager drops into a bad state. journalctl -b -k:

amd_sdw_manager amd_sdw_manager.1: SDW1 cmd status retry failed
amd_sdw_manager amd_sdw_manager.1: command timeout for Slave 1
slave-tas2783 sdw:0:1:0102:0000:01:b: FW download failed: -110
slave-tas2783 sdw:0:1:0102:0000:01:b: fw with no files
amd_sdw_manager amd_sdw_manager.1: SDW1 manager is in bad state
soundwire sdw-master-0-1: trf on Slave 1 failed:-110 write addr 8088 count 32632
soundwire sdw-master-0-1: Program transport params failed: -22
soundwire sdw-master-0-1: Program params failed: -22
 SDW1-PIN4-CAPTURE-SmartAmp: ASoC error (-22): at snd_soc_link_prepare() on SDW1-PIN4-CAPTURE-SmartAmp
sdw_deprepare_stream: subdevice #0-Capture: inconsistent state state 1

~20 Program params failed: -22 per affected boot. On other boots the same desync presents as SDW_SCP_BUSCLOCK_SCALE register write failed instead of the -110 FW-download timeout — the constant is the dual-amp link failing to prepare.

Userspace impact

Each desync leaves the playback/capture node in SETUP; PipeWire then retries snd_pcm_prepare → "recover from error state SETUP" ~47×/s indefinitely, pegging pipewire + journald and emitting ~400k kernel log lines/hour with no audio workload — meaningful idle heat/power on a laptop. Masked downstream by forcing idle-suspend (WirePlumber session.suspend-timeout-seconds=5), but the kernel-side -22 desync still happens.

Notes / questions

  • Two amps on one link appears to be the trigger (consistent with other dual-amp reports).
  • slave-tas2783 …: fw with no files — the TAS2783 driver attempts a DSP firmware download that has no file on this platform, and the -110 timeout there precedes the manager going bad. Unsure if that download attempt is contributing or incidental.
  • Daily-driver machine, reproduces every few boots — happy to capture dynamic_debug traces (soundwire_bus, soundwire_amd, snd_soc_core) and bisect/test patches.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions