Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
[kernel/audio] Internal speakers silent: left CS35L41 amp fails OTP_BOOT_DONE (-121) on HP Envy x360 13-bf0xxx
Reported by zeriabit · filed Sep 24, 2026Closed upstream on 2026-10-08 by its own reporter zeriabit. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- Not yet mapped to any requirement or component.
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.
Original report
Summary
No sound from internal speakers on HP ENVY x360 2-in-1 Laptop 13-bf0xxx (SSID 103C8A28, ALC245 + two Cirrus CS35L41 smart amps). The left amp (i2c-CSC3551:00-cs35l41-hda.0) fails to boot with Failed waiting for OTP_BOOT_DONE / probe with driver cs35l41-hda failed with error -121 at cold boot, and never recovers with retries. When that amp is unbound, the whole Speaker output is silent (no audio at all from the internal speakers).
Environment
- Omarchy
4.0.4-1 - Kernel
7.2.5-3-omarchy(x86_64) - HP ENVY x360 2-in-1 Laptop 13-bf0xxx, mobo
8A28, BIOS/EC Insyde F.36 - Audio:
sof-audio-pci-intel-tgl/skl_hda_dsp_generic, codecRealtek ALC245 - Amps: 2x
CS35L41on I2C bus 16, HIDCSC3551(side-codecsnd-hda-scodec-cs35l41-i2c)
Expected behavior
Internal speakers produce sound after every boot.
Actual behavior
At (most) cold boots the left amp probe fails and stays failed all session:
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Adding DSD properties for 103C8A28
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Using extra _DSD properties, bypassing _DSD in ACPI
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Failed waiting for OTP_BOOT_DONE
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: probe with driver cs35l41-hda failed with error -121
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Adding DSD properties for 103C8A28
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Using extra _DSD properties, bypassing _DSD in ACPI
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2The right amp (.1) always binds and loads DSP firmware. The left amp (.0) remains unbound (/sys/bus/i2c/drivers/cs35l41-hda/i2c-CSC3551:00-cs35l41-hda.0 never appears). With .0 missing, the internal "Speaker" sink stays silent even though playback runs without error through the DSP.
Reproduction
- Not deterministic: succeeds on some boots, fails on others. Has failed across multiple cold boots, after systemd suspend/resume,
modprobe -r snd-hda-scodec-cs35l41-i2c && modprobe ...reloads, repeated/sys/bus/i2c/drivers/cs35l41-hda/bindattempts (each returnsRemote I/O error), and after a full power-off (AC-unplugged) power cycle. Recovered exactly once (after ~1 hour uptime + suspend/resume + module reload), then failed again on all subsequent boots the same day. otpfailure is exclusive to.0;.1is always healthy.- Headphones (codec-direct), HDMI/DP and Bluetooth outputs work fine, confirming only the speaker amp path is affected.
Workaround in effect
A local systemd oneshot (cs35l41-retry.service) retries the amp bind on boot; it has not succeeded this boot.
Notes for maintainers
- The chip's reset GPIO (
cs35l41-reset) is observed deasserted (out hi); no regulator/PMIC errors in the journal. - This matches the known CS35L41
OTP_BOOT_DONErace reported for HP/Asus laptops. Upstream recently fixed a related issue where a redundant software reset is performed after the hardware reset during probe/resume, see kernel patch "ALSA: hda: cs35l41: Fix errors caused by software reset" (bugzilla.kernel.org bz 221161) — worth verifyinglinux-omarchycarries that fix and checking whether the probe timeout/poll can be made resilient to a slow/non-responding amp.
View raw text
## Summary No sound from internal speakers on HP ENVY x360 2-in-1 Laptop 13-bf0xxx (SSID `103C8A28`, ALC245 + two Cirrus CS35L41 smart amps). The **left** amp (`i2c-CSC3551:00-cs35l41-hda.0`) fails to boot with `Failed waiting for OTP_BOOT_DONE` / `probe with driver cs35l41-hda failed with error -121` at cold boot, and never recovers with retries. When that amp is unbound, the whole Speaker output is silent (no audio at all from the internal speakers). ## Environment - Omarchy `4.0.4-1` - Kernel `7.2.5-3-omarchy` (x86_64) - HP ENVY x360 2-in-1 Laptop 13-bf0xxx, mobo `8A28`, BIOS/EC Insyde F.36 - Audio: `sof-audio-pci-intel-tgl` / `skl_hda_dsp_generic`, codec `Realtek ALC245` - Amps: 2x `CS35L41` on I2C bus 16, HID `CSC3551` (side-codec `snd-hda-scodec-cs35l41-i2c`) ## Expected behavior Internal speakers produce sound after every boot. ## Actual behavior At (most) cold boots the left amp probe fails and stays failed all session: ``` cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Adding DSD properties for 103C8A28 cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Using extra _DSD properties, bypassing _DSD in ACPI cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Failed waiting for OTP_BOOT_DONE cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: probe with driver cs35l41-hda failed with error -121 cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Adding DSD properties for 103C8A28 cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Using extra _DSD properties, bypassing _DSD in ACPI cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2 ``` The right amp (`.1`) always binds and loads DSP firmware. The left amp (`.0`) remains unbound (`/sys/bus/i2c/drivers/cs35l41-hda/i2c-CSC3551:00-cs35l41-hda.0` never appears). With `.0` missing, the internal "Speaker" sink stays silent even though playback runs without error through the DSP. ## Reproduction - Not deterministic: succeeds on some boots, fails on others. Has failed across multiple cold boots, after systemd suspend/resume, `modprobe -r snd-hda-scodec-cs35l41-i2c && modprobe ...` reloads, repeated `/sys/bus/i2c/drivers/cs35l41-hda/bind` attempts (each returns `Remote I/O error`), and after a full power-off (AC-unplugged) power cycle. Recovered exactly once (after ~1 hour uptime + suspend/resume + module reload), then failed again on all subsequent boots the same day. - `otp` failure is exclusive to `.0`; `.1` is always healthy. - Headphones (codec-direct), HDMI/DP and Bluetooth outputs work fine, confirming only the speaker amp path is affected. ## Workaround in effect A local systemd oneshot (`cs35l41-retry.service`) retries the amp bind on boot; it has not succeeded this boot. ## Notes for maintainers - The chip's reset GPIO (`cs35l41-reset`) is observed deasserted (`out hi`); no regulator/PMIC errors in the journal. - This matches the known CS35L41 `OTP_BOOT_DONE` race reported for HP/Asus laptops. Upstream recently fixed a related issue where a redundant software reset is performed after the hardware reset during probe/resume, see kernel patch *"ALSA: hda: cs35l41: Fix errors caused by software reset"* (bugzilla.kernel.org bz 221161) — worth verifying `linux-omarchy` carries that fix and checking whether the probe timeout/poll can be made resilient to a slow/non-responding amp.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
No decision has been recorded yet.