I own a Beelink SER9 Pro (Ryzen AI 9 HX 370, BIOS/EC T408), running Fedora Linux, and I’d like to report a confirmed and diagnosed bug: after resume from suspend (s2idle/S0i3), the fan gets stuck at high/maximum RPM and stops responding to CPU temperature, until the machine is fully rebooted.
Reproduction (A/B tested):
- Fresh boot: fan is quiet at idle (32°C), ramps up under load, calms down as it cools — the fan curve works correctly.
- After any suspend/resume cycle: fan runs at fixed high RPM — noticeably higher than a fresh boot under full CPU load — and does not react to temperature at all afterward.
What I ruled out:
- BIOS fan curve settings are correct and applied properly on cold boot (Fan off <40°C, start 45°C, full 90°C). Switching CPU Smart Fan Mode to Manual or Full-on in BIOS does not help (Manual/Full-on only makes it worse; the bug persists regardless of mode).
- This is not a Linux driver gap in the usual sense — there are no pwm/fan nodes in hwmon at all, no ACPI fan objects, and platform_profile is unavailable. Fan control is fully internal to the EC firmware with no exposed interface.
ACPI/DSDT investigation (2026-07-11):
I dumped and decompiled the full ACPI tables (acpidump → acpixtract → iasl -d, DSDT + 28 SSDTs) specifically looking for any fan-control ACPI object I could invoke manually (e.g., via acpi_call) to force the EC to reapply the fan curve after resume, as a workaround. Findings:
- No standard ACPI fan-control objects (FIF/FPS/_FST) exist anywhere in the tables.
- The THERMAL0 SSDT only exposes a ThermalZone (TZ01) used for CPU passive-cooling/throttling policy (TMP/PSL/_CRT), not physical fan speed control.
- The only EC register exposed to ACPI (OperationRegion (ECRM, EmbeddedControl, Zero, 0xFF)) names a single byte at offset 0xCC (PBCN, appears power-button related) — the rest of the 256-byte EC address space is completely unnamed/unexposed to ACPI.
- No _Qxx (EC Query) method in the DSDT references fan/PWM in any way.
Conclusion: there is no software-side hook (ACPI, kernel, or otherwise) available to work around this — fan control after resume is entirely governed by closed EC firmware logic that simply fails to reapply the configured fan curve on wake. This can only be fixed in an EC firmware update.
Ask: could you confirm whether this is a known issue being tracked for T408 (or a future EC revision), and whether there’s an ETA for a fix? Happy to provide further diagnostics (dmesg, ACPI dumps, etc.) if useful for your firmware team.