[REGRESSION] thermal: per-zone hwmon names break Steam Deck fan control

Matthew Schwartz <[email protected]> Wed, 29 Jul 2026 13:49:43 -0700
Newsgroups dev.linux.lists.regressions,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-pm,org.kernel.vger.stable
Message-ID <[email protected]>
Hello,

After upgrading my Steam Deck OLED to a 7.2-rc kernel, the userspace fan control daemon that I use stopped working. I bisected the regression to d6323469bcfb ("thermal: hwmon: Register a hwmon device for each thermal zone").

Before this commit, the ACPI thermal-zone hwmon name was acpitz, while after the change it is now acpitz_0.

The device profiles for fan control rely on the exact `acpitz` hwmon naming like the below code snippet:

devices:
  - hwmon_name: acpitz
    nice_name: CPU
    max_temp: 90
    temp_hysteresis: 0
    sensor_name: temp1

So now, the profile fails to load with:

fancontrol.py[40528]: Warning: hwmons not fully loaded, retrying...
fancontrol.py[40528]: Warning: hwmons not fully loaded, retrying...
fancontrol.py[40528]: Warning: hwmons not fully loaded, retrying...
fancontrol.py[40528]: Traceback (most recent call last):
fancontrol.py[40528]:   File "/usr/share/jupiter-fan-control/fancontrol.py", line 606, in <module>
fancontrol.py[40528]:     raise FileNotFoundError("Failed to load hwmons after 10 attempts.")
fancontrol.py[40528]: FileNotFoundError: Failed to load hwmons after 10 attempts.

Because initialization fails, the daemon never enters its fan-control loop or writes the requested fan target.

This change was also backported to Linux 7.1.5 as commit 996957016bc1, so the regression is present there as well and has led to a userspace ABI regression. I can look at accommodating the change on the userspace side, but it still seemed worth reporting as a kernel regression.

Thanks,
Matt

#regzbot introduced: d6323469bcfbda91f0aa89b7b39ad45fe822ca5d