Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-124GitHub issuePublicReceived

[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.

Received and recorded verbatim. Nothing has been checked yet.

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

[kernel/audio] Internal speakers silent: left CS35L41 amp fails OTP_BOOT_DONE (-121) on HP Envy x360 13-bf0xxxrevision 1 · captured 2026-09-28 21:23 UTC via poll

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.
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.