Skip to content
This repository was archived by the owner on May 1, 2026. It is now read-only.
This repository was archived by the owner on May 1, 2026. It is now read-only.

Request: enable CONFIG_CROS_EC_DEBUGFS for Chromebook suspend support #45

Description

@miaulightouch

Problem

Hi, I'm running Bazzite on a Chromebook (Google Redrix) and ran into S0ix suspend crashes caused by cros_ec_lpcs sending a default 10-second hang detection timeout to the EC. The EC then escalates (forced wake → SysRq panic → chipset reset).

The upstream kernel has a debugfs interface (/sys/kernel/debug/cros_ec/suspend_timeout_ms) that allows configuring this from userspace, but it requires CONFIG_CROS_EC_DEBUGFS, which is currently disabled in the Bazzite kernel:

# CONFIG_CROS_EC_DEBUGFS is not set

Without it, I had to resort to a custom out-of-tree kernel module to patch the value directly — it works, but it's fragile and needs recompilation on every kernel update.

Request

Would it be possible to enable CONFIG_CROS_EC_DEBUGFS=m in the kernel-bazzite config?

Why this might make sense

  • Upstream Kconfig defaults to ON: The option declares default MFD_CROS_EC_DEV, so upstream seems to expect it to follow MFD_CROS_EC_DEV (which is already =m in Bazzite). It looks like Fedora's stock config explicitly overrides this to off, which Bazzite inherits.
  • Fedora debug kernel has it: Fedora 43's debug kernel ships with CONFIG_CROS_EC_DEBUGFS=m, so the module is at least tested in that context.
  • CachyOS ships it by default: Both linux-cachyos and linux-cachyos-bore include CONFIG_CROS_EC_DEBUGFS=m in their stock (non-debug) configs.
  • Module, not built-in: As a =m tristate, it would only load on systems with Chrome EC hardware. It shouldn't affect non-Chromebook users at all.
  • Useful beyond suspend: The module also exposes console_log, panicinfo, and other EC internals that are helpful for diagnosing Chromebook-specific issues.

Context

The S0ix crash affects multiple Chromebook models running non-ChromeOS Linux. More details on the root cause and current workaround here: MrChromebox/firmware#851.

If CONFIG_CROS_EC_DEBUGFS were available, the fix would simplify to a oneshot systemd service:

# /etc/systemd/system/cros-ec-suspend-timeout.service
[Unit]
Description=Set cros_ec suspend timeout to INFINITE
After=sys-kernel-debug.mount

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c 'echo 65535 > /sys/kernel/debug/cros_ec/suspend_timeout_ms'

[Install]
WantedBy=multi-user.target

No out-of-tree module, no DKMS, no recompilation on kernel updates.

Environment

  • Device: Google Redrix (HP Elite Dragonfly Chromebook), i7-1265U
  • OS: Bazzite 43.20260309.0 (Kinoite)
  • Kernel: 6.17.7-ba28.fc43.x86_64
  • Boot: MrChromebox RW_LEGACY

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions