Re: [BUG] ALC285 + CS35L56 (ASUS ROG Zephyrus G14 2025, GA403WR, SSID 1043:1024), no speaker output despite correct routing, gain, and DSP state
Richard Fitzgerald <[email protected]> Tue, 28 Jul 2026 14:24:37 +0100
| Newsgroups | org.alsa-project.alsa-devel |
|---|---|
| Message-ID | <[email protected]> |
On 28/07/2026 1:57 pm, Aditya Sharma wrote:
> Hi,
>
> I'm seeing complete silence from the built-in speakers on an ASUS ROG
> Zephyrus G14 2025 (GA403WR), despite every layer of the audio signal chain
> checking out correct on inspection. Headphones work perfectly. The same
> physical hardware produces normal speaker output under Windows (dual-boot),
> which rules out a hardware fault.
>
> *Hardware:*
>
> - ASUS ROG Zephyrus G14 2025, GA403WR_GA403WR, BIOS GA403WR.309
> - Realtek ALC285 codec, PCI SSID 1043:1024
> - 2x Cirrus Logic CS35L56 amplifiers (i2c-CSC3556:00-cs35l56-hda.0/.1)
>
> *Kernel:* 7.1.5-1-cachyos (CachyOS, based on stable v7.1.5)
>
> *What I've verified, in order, all confirmed correct:*
>
> 1. *Kernel quirk applies correctly.* ALC285_FIXUP_ASUS_GA403U_HEADSET_MIC
> is present in the fixup table for SSID 1043:1024 and its chained
> alc285_fixup_speaker2_to_dac1 executes — confirmed via
> /proc/asound/card2/codec#0, Node 0x17 connection list shows 0x02*
> selected (the expected DAC1 override), matching what the fixup function
> sets. (Note: the "picked fixup [blank] for PCI SSID" dmesg line is
> misleading — the fixup name is only populated with
> CONFIG_SND_DEBUG_VERBOSE, which is off by default; the fixup ID itself
> is still applied regardless.)
> 2. *EAPD correctly asserted* on both speaker pins (0x14, 0x1b) —
> confirmed via hda-verb ... GET_EAPD_BTLENABLE returning 0x2.
> 3. *No amp faults logged* — dmesg | grep cs35l56 shows clean firmware
> load, no fault/error/protect/thermal messages.
> 4. *CS35L56 DSP firmware fully operational on both amps* — via debugfs (
> /sys/kernel/debug/sound/i2c-CSC3556:00-cs35l56-hda.{0,1}/DSP1/): booted=Y,
> running=Y, hibernating=N, fw_id=0x001a00d6, fw_version=0x00030b10.
> 5. *Hardware-strapped speaker ID correctly detected* as spkid0 (read
> from onchip GPIO straps per cs35l56_read_onchip_spkid()), and the
> matching tuning files (cs35l56-b0-dsp1-misc-10431024-spkid0*) load
> without error.
> 6. *PCM stream actively running* — /proc/asound/card2/pcm0p/sub0/status
> shows state: RUNNING with moving hw_ptr/appl_ptr during speaker-test.
> 7. *DAC-level gain register confirmed at full scale* — Node 0x02
> (Speaker Playback Volume): Amp-Out vals: [0x57 0x57] (max, 0dB), after
> setting via amixer. ALSA-level Speaker, Master, Bass Speaker mixer
> controls all unmuted at 100%. AMP1/AMP2 Speaker DSP-side gain controls
> also confirmed at 85% (-4.75dB), non-zero.
>
> Despite all of the above, no audible output whatsoever from the internal
> speakers. Headphones (Node 0x21) work normally at all volume levels.
>
> Full alsa-info.sh dump (codec proc dump, amixer state, dmesg, alsactl
> state) is here:
> https://alsa-project.org/db/?f=cc6c08116d9a9c466039679d2142d0df1c12fa77
>
> Given that routing, EAPD, DSP state, hardware ID, and gain all check out
> correct at every layer I can inspect from userspace, but Windows produces
> correct output on the same hardware, I suspect there's an initialization
> step or register sequence the Linux driver isn't replicating that Windows'
> Cirrus driver performs — possibly something not exposed via the standard
> ALSA controls (an additional calibration/init step, a missed I2C write
> sequence, or something specific to this board's implementation of the
> two-amp DAC1-shared configuration).
>
> Happy to test patches, pull additional debugfs/regmap dumps, or compare
> against a Windows-side driver trace if that would help narrow this down.
>
> Thanks,
> Aditya :]
>
Your alsa-info.sh dump shows that speaker output is muted.
Simple mixer control 'Speaker',0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 87
Mono:
Front Left: Playback 0 [0%] [-65.25dB] [on]
Front Right: Playback 0 [0%] [-65.25dB] [on]