Asus Rog Strix G16 Audio Problem

[HELP] ASUS ROG Strix G16 (2025) — No speaker audio, TAS2781 firmware not loading (SSID 1043:3f20)

System Info

Device ASUS ROG Strix G16 (2025)
OS CachyOS
Kernel 7.0.2-2-cachyos
Audio engine Intel 800 Series ACE (Audio Context Engine)
Codec Realtek ALC285
Amplifier Texas Instruments TAS2781 (TXNW2781)
PCI SSID 1043:3f20
Audio server PipeWire 1.6.4 + WirePlumber

Problem

Audio works on the Live ISO but no sound from internal speakers or headphone jack after installation. PipeWire detects the device correctly, volume is not muted, but no audio output.

This seems related to Issue #752 (ASUS ROG Strix G615LR, same SSID), but that issue was closed without a confirmed fix.


What I’ve Tried

1. Confirmed the sink exists but stays SUSPENDED

pactl list sinks short
→ alsa_output.pci-0000_80_1f.3.analog-stereo  PipeWire  s32le 2ch 48000Hz  SUSPENDED

2. No UCM profile for Intel ACE / ASUS ROG

find /usr/share/alsa/ucm2/ -name "*ACE*" -o -name "*ROG*"
→ (no results)

Installed alsa-ucm-conf-git — still no matching profile for SSID 1043:3f20.

3. Root cause found — TAS2781 I2C registration failing

dmesg:
i2c i2c-0: Failed to register i2c client tas2781-hda at 0x39 (-16)
Serial bus multi instantiate TXNW2781:00: error -EBUSY: Error creating i2c-client

The snd_hda_scodec_tas2781_spi driver was locking I2C address 0x39, preventing the I2C driver from binding.

Fix: Blacklisted the SPI driver:

# /etc/modprobe.d/tas2781-fix.conf
blacklist snd_hda_scodec_tas2781_spi
blacklist snd_soc_tas2781_i2c

After reboot, the amplifier now instantiates correctly:

TXNW2781:00: Instantiated 3 I2C devices.  ✅
/sys/bus/i2c/devices/i2c-TXNW2781:00-tas2781-hda.0  ✅
/sys/bus/i2c/devices/i2c-TXNW2781:00-tas2781-hda.1  ✅
/sys/bus/i2c/devices/i2c-TXNW2781:00-tas2781-hda.2  ✅

4. Still no audio — firmware not loading

Even with the I2C fix, the driver logs:

tas2781-hda i2c-TXNW2781:00-tas2781-hda.0: tasdevice_prmg_load: Firmware is NULL

I extracted the driver binary to check the firmware naming pattern:

zstd -d snd-hda-scodec-tas2781-i2c.ko.zst -o /tmp/tas2781-hda.ko
strings /tmp/tas2781-hda.ko | grep -iE '\.bin|TAS2XXX'

→ TAS2XXX%04X%d.bin   (e.g. TAS2XXX3F200.bin, TAS2XXX3F201.bin ...)
→ TAS2XXX%04X.bin     (e.g. TAS2XXX3F20.bin)

From snd-soc-tas2781-comlib-i2c.ko.zst:

→ %s-%sRCA%d.bin
→ %sRCA%d.bin          (e.g. TXNW2781RCA0.bin)

Firmware files exist at /lib/firmware/ti/audio/tas2781/:

TXNW2781RCA0.bin.zst
TXNW2781RCA1.bin.zst → TXNW2781RCA0.bin.zst (symlink)

I tried copying/decompressing these to various paths (/lib/firmware/, /lib/firmware/TAS2XXX3F20*.bin, etc.) but the error persists.

5. Suspicious DSDT mismatch

strings /sys/firmware/acpi/tables/DSDT | grep TXNW
→ TXNW3643

The DSDT references TXNW3643 but the driver bound is TXNW2781. Not sure if this is relevant.

6. ALC285 pin status (via hda-verb)

Node 0x17 Speaker:    Amp-Out vals [0x00 0x00]  ← muted by default
Node 0x21 Headphone:  Amp-Out vals [0x80 0x80]  ← muted by default

Manually unmuting via hda-verb doesn’t produce audio — the amplifier is the bottleneck.


Current State

  • TAS2781 I2C devices bind successfully :white_check_mark:

  • runtime_status is active when forced on :white_check_mark:

  • Firmware loads as NULL — amplifier never initializes :cross_mark:

  • No UCM profile for this hardware :cross_mark:

  • Speaker and headphone output silent :cross_mark:


Questions

  1. Is there a known working kernel patch or quirk for SSID 1043:3f20 + TAS2781 that I’m missing?

  2. Which firmware file path does snd-hda-scodec-tas2781-i2c actually look for at runtime? The naming pattern in the binary suggests TAS2XXX3F20*.bin or TXNW2781RCA*.bin but neither seems to be found.

  3. Is the TXNW3643 vs TXNW2781 DSDT mismatch significant?

  4. Would switching to the linux-cachyos-lts kernel (6.18.x) make a difference, or is this purely a firmware/UCM issue?

Any help appreciated. Happy to provide more dmesg output or run additional diagnostics.


References