Skip to content

Instantly share code, notes, and snippets.

@waltercool
Forked from sankao/z13-audio-fix-summary.md
Created July 16, 2026 15:17
Show Gist options
  • Select an option

  • Save waltercool/a827c597b33a24019159df0a266358d0 to your computer and use it in GitHub Desktop.

Select an option

Save waltercool/a827c597b33a24019159df0a266358d0 to your computer and use it in GitHub Desktop.
ROG Flow Z13 2025 Audio fix

ROG Flow Z13 2025 Audio fix

ROG Flow Z13 2025 (ai max 395) Audio Fix

Disclaimer: I don't know much about kernel development, this fix was figured out with AI assistance.
My problem was that the speakers work but are way quieter than Windows. Kernel logs show:

cs35l41-hda: Falling back to default firmware.

The fix is simple: copy-paste the ROG Ally entry with a different device ID. It solves the audio problem subjectively (we're far from amazing sound, but at least twice as loud).

The Z13 2025 subsystem ID (10431FB3) is missing from cs35l41_hda_property.c. The Realtek quirk was added in 6.18, but the CS35L41 entry is still missing in 6.19-rc3 as far as I can tell.

File: sound/hda/codecs/side-codecs/cs35l41_hda_property.c

Add to cs35l41_config_table[] (right after the ROG Ally 104317F3 entry):

{ "10431FB3", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },

Add to cs35l41_prop_model_table[]:

{ "CSC3551", "10431FB3", generic_dsd_config },

Same values as ROG Ally except the device identifier for rog flow z13.

Before:

cs35l41-hda: Falling back to default firmware.

After:

cs35l41-hda: Adding DSD properties for 10431FB3
cs35l41-hda: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431fb3.wmfw
cs35l41-hda: DSP1: spk-prot: ...\10431FB3_241018_V01_A0
cs35l41-hda: Calibration applied: R0=7052

Also needed: Firmware Symlinks

SPKID detection fails (SPKID: -19), so also needed:

cd /lib/firmware/cirrus
ln -sf cs35l41-dsp1-spk-prot-10431fb3-spkid0-l0.bin.zst cs35l41-dsp1-spk-prot-10431fb3-l0.bin.zst
ln -sf cs35l41-dsp1-spk-prot-10431fb3-spkid0-r0.bin.zst cs35l41-dsp1-spk-prot-10431fb3-r0.bin.zst

Optional

You can also tweak gain at runtime with bincfg symlinks (available: 14_5dB, 16_5dB, 19_5dB):

cd /lib/firmware/cirrus
sudo ln -sf cs35l41/bincfgs/cs35l41-dsp1-19_5dB.bincfg.zst cs35l41-dsp1-spk-prot-10431fb3-l0.bincfg.zst
sudo ln -sf cs35l41/bincfgs/cs35l41-dsp1-19_5dB.bincfg.zst cs35l41-dsp1-spk-prot-10431fb3-r0.bincfg.zst
# reload: sudo rmmod snd_hda_scodec_cs35l41_i2c snd_hda_scodec_cs35l41 && sudo modprobe snd_hda_scodec_cs35l41_i2c

I measured with an iPhone SPL meter app playing the same Spotify track:

  • 19_5dB → 76.5 dB (Gain: 19 in journalctl)
  • 16_5dB → 74.1 dB (Gain: 16 in journalctl)
  • no bincfg → default Gain: 17

Links

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