summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Jardin <vjardin@free.fr>2026-10-01 23:47:39 +0200
committerGuenter Roeck <linux@roeck-us.net>2026-11-02 07:00:04 -0800
commitd4f272230f0b18b59fbbd1c4b5ef357aba01a4d2 (patch)
tree5e201e7f1b71597adc94ee75feeec59ec9f5a967
parentcf8f81babd2e96087dedbb74985bc1781c98f73d (diff)
hwmon: (pmbus/core) Register the thermal sensors with a 0-based index
Since commit 3aa74796cfd0 ("hwmon: (pmbus) Register with thermal for PSC_TEMPERATURE") pmbus_core registers each temperature input with the thermal core using its hwmon index as the sensor id. That index starts at 1, so temp1 is registered as sensor 1. The thermal core expects a 0-based id, which is what the hwmon core passes for the drivers that set HWMON_C_REGISTER_TZ: thermal_of matches a thermal-sensors phandle without cells as id 0, so a PMBus device with a single temperature input cannot use #thermal-sensor-cells = <0>. Cc: stable+noautosel@kernel.org # changes the DT-visible sensor id, no in-tree user Fixes: 3aa74796cfd0 ("hwmon: (pmbus) Register with thermal for PSC_TEMPERATURE") Signed-off-by: Vincent Jardin <vjardin@free.fr> Link: https://patch.msgid.link/20261001-for-upstream-dt-mpq8785-thermal-sensor-cells-v3-1-bfafba9fcc95@free.fr Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r--drivers/hwmon/pmbus/pmbus_core.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
index d69f1bde1795..af13408c62f9 100644
--- a/drivers/hwmon/pmbus/pmbus_core.c
+++ b/drivers/hwmon/pmbus/pmbus_core.c
@@ -1524,7 +1524,12 @@ static int pmbus_thermal_add_sensor(struct pmbus_data *pmbus_data,
tdata->sensor = sensor;
tdata->pmbus_data = pmbus_data;
- tzd = devm_thermal_of_zone_register(dev, index, tdata,
+ /*
+ * The PMBus core numbers its temperature sensors from 1, as the
+ * hwmon tempN attributes, while the thermal core expects a 0-based
+ * sensor index.
+ */
+ tzd = devm_thermal_of_zone_register(dev, index - 1, tdata,
&pmbus_thermal_ops);
/*
* If CONFIG_THERMAL_OF is disabled, this returns -ENODEV,