[PATCH] hwmon: (cros_ec): Hide unconfigured temperature thresholds
Daniel Schaefer via B4 Relay <[email protected]> Wed, 29 Jul 2026 00:38:16 +0800
| Newsgroups | dev.linux.lists.chrome-platform,org.kernel.feeds.b4-sent,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Daniel Schaefer <[email protected]> The EC reports a threshold of 0 K for host thresholds that are not configured. Most Framework Computer systems don't use all thresholds. E.g. temp_host_warn is left unset and stays at its -273 C / 0 K default), see the EC code in zephyr/shim/src/thermal.c: DT_PROP_OR(node_id, temp_host_warn, -273) Previously these unconfigured thresholds were exposed as sysfs limits that read back as -273.15 C, which userspace (e.g. s-tui) interpreted as a real, permanently-exceeded limit. To avoid this we can hide the sysfs attribute for that threshold. See truncated example below. Before: > sensors cros_ec-isa-000c cpu_f75303@4d: +36.9°C (crit = +74.8°C, emerg = +84.8°C) After: > sensors cros_ec-isa-000c cpu_f75303@4d: +36.9°C (high = -273.1°C, crit = +74.8°C) (emerg = +84.8°C) Cc: Tzung-Bi Shih <[email protected]> Cc: Thomas Weißschuh <[email protected]> Cc: [email protected] Signed-off-by: Daniel Schaefer <[email protected]> --- drivers/hwmon/cros_ec_hwmon.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/cros_ec_hwmon.c b/drivers/hwmon/cros_ec_hwmon.c index 03bfcc40bb7c..57158443dafe 100644 --- a/drivers/hwmon/cros_ec_hwmon.c +++ b/drivers/hwmon/cros_ec_hwmon.c @@ -319,6 +319,7 @@ static umode_t cros_ec_hwmon_is_visible(const void *data, enum hwmon_sensor_type u32 attr, int channel) { const struct cros_ec_hwmon_priv *priv = data; + u32 threshold; u16 speed; if (type == hwmon_fan) { @@ -334,8 +335,17 @@ static umode_t cros_ec_hwmon_is_visible(const void *data, enum hwmon_sensor_type } else if (type == hwmon_temp) { if (priv->temp_sensor_names[channel]) { if (cros_ec_hwmon_attr_is_temp_threshold(attr)) { - if (priv->temp_threshold_supported) - return 0444; + if (!priv->temp_threshold_supported) + return 0; + + if (cros_ec_hwmon_read_temp_threshold(priv->cros_ec, channel, + cros_ec_hwmon_attr_to_thres(attr), + &threshold) != 0) + return 0; + if (threshold == 0) + return 0; + + return 0444; } else { return 0444; } --- base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb change-id: 20260729-crosec-hwmon-warn-default-9f3ca86ed809 Best regards, -- Daniel Schaefer <[email protected]>