[PATCH 1/2] hwmon: (peci/cputemp) Fix crit_hyst returning delta instead of absolute temperature

Pradhan, Sanman posted 2 patches 1 week, 4 days ago
[PATCH 1/2] hwmon: (peci/cputemp) Fix crit_hyst returning delta instead of absolute temperature
Posted by Pradhan, Sanman 1 week, 4 days ago
From: Sanman Pradhan <psanman@juniper.net>

The hwmon sysfs ABI expects tempN_crit_hyst to report the temperature at
which the critical condition clears, not the hysteresis delta from the
critical limit.

The peci cputemp driver currently returns tjmax - tcontrol for
crit_hyst_type, which is the hysteresis margin rather than the
corresponding absolute temperature.

Return tcontrol directly, and update the documentation accordingly.

Fixes: bf3608f338e9 ("hwmon: peci: Add cputemp driver")
Cc: stable@vger.kernel.org
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
---
 Documentation/hwmon/peci-cputemp.rst | 10 ++++++----
 drivers/hwmon/peci/cputemp.c         |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/Documentation/hwmon/peci-cputemp.rst b/Documentation/hwmon/peci-cputemp.rst
index fe0422248dc5e..266b62a46f49c 100644
--- a/Documentation/hwmon/peci-cputemp.rst
+++ b/Documentation/hwmon/peci-cputemp.rst
@@ -51,8 +51,9 @@ temp1_max		Provides thermal control temperature of the CPU package
 temp1_crit		Provides shutdown temperature of the CPU package which
 			is also known as the maximum processor junction
 			temperature, Tjmax or Tprochot.
-temp1_crit_hyst		Provides the hysteresis value from Tcontrol to Tjmax of
-			the CPU package.
+temp1_crit_hyst		Provides the hysteresis temperature of the CPU
+			package. Returns Tcontrol, the temperature at which
+			the critical condition clears.
 
 temp2_label		"DTS"
 temp2_input		Provides current temperature of the CPU package scaled
@@ -62,8 +63,9 @@ temp2_max		Provides thermal control temperature of the CPU package
 temp2_crit		Provides shutdown temperature of the CPU package which
 			is also known as the maximum processor junction
 			temperature, Tjmax or Tprochot.
-temp2_crit_hyst		Provides the hysteresis value from Tcontrol to Tjmax of
-			the CPU package.
+temp2_crit_hyst		Provides the hysteresis temperature of the CPU
+			package. Returns Tcontrol, the temperature at which
+			the critical condition clears.
 
 temp3_label		"Tcontrol"
 temp3_input		Provides current Tcontrol temperature of the CPU
diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c
index b2fc936851e14..badec53ff4461 100644
--- a/drivers/hwmon/peci/cputemp.c
+++ b/drivers/hwmon/peci/cputemp.c
@@ -131,7 +131,7 @@ static int get_temp_target(struct peci_cputemp *priv, enum peci_temp_target_type
 		*val = priv->temp.target.tjmax;
 		break;
 	case crit_hyst_type:
-		*val = priv->temp.target.tjmax - priv->temp.target.tcontrol;
+		*val = priv->temp.target.tcontrol;
 		break;
 	default:
 		ret = -EOPNOTSUPP;
-- 
2.34.1

Re: [PATCH 1/2] hwmon: (peci/cputemp) Fix crit_hyst returning delta instead of absolute temperature
Posted by Guenter Roeck 1 week, 4 days ago
On Mon, Mar 23, 2026 at 12:24:25AM +0000, Pradhan, Sanman wrote:
> From: Sanman Pradhan <psanman@juniper.net>
> 
> The hwmon sysfs ABI expects tempN_crit_hyst to report the temperature at
> which the critical condition clears, not the hysteresis delta from the
> critical limit.
> 
> The peci cputemp driver currently returns tjmax - tcontrol for
> crit_hyst_type, which is the hysteresis margin rather than the
> corresponding absolute temperature.
> 
> Return tcontrol directly, and update the documentation accordingly.
> 
> Fixes: bf3608f338e9 ("hwmon: peci: Add cputemp driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sanman Pradhan <psanman@juniper.net>

Applied.

Thanks,
Guenter

> ---
>  Documentation/hwmon/peci-cputemp.rst | 10 ++++++----
>  drivers/hwmon/peci/cputemp.c         |  2 +-
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/hwmon/peci-cputemp.rst b/Documentation/hwmon/peci-cputemp.rst
> index fe0422248dc5e..266b62a46f49c 100644
> --- a/Documentation/hwmon/peci-cputemp.rst
> +++ b/Documentation/hwmon/peci-cputemp.rst
> @@ -51,8 +51,9 @@ temp1_max		Provides thermal control temperature of the CPU package
>  temp1_crit		Provides shutdown temperature of the CPU package which
>  			is also known as the maximum processor junction
>  			temperature, Tjmax or Tprochot.
> -temp1_crit_hyst		Provides the hysteresis value from Tcontrol to Tjmax of
> -			the CPU package.
> +temp1_crit_hyst		Provides the hysteresis temperature of the CPU
> +			package. Returns Tcontrol, the temperature at which
> +			the critical condition clears.
>  
>  temp2_label		"DTS"
>  temp2_input		Provides current temperature of the CPU package scaled
> @@ -62,8 +63,9 @@ temp2_max		Provides thermal control temperature of the CPU package
>  temp2_crit		Provides shutdown temperature of the CPU package which
>  			is also known as the maximum processor junction
>  			temperature, Tjmax or Tprochot.
> -temp2_crit_hyst		Provides the hysteresis value from Tcontrol to Tjmax of
> -			the CPU package.
> +temp2_crit_hyst		Provides the hysteresis temperature of the CPU
> +			package. Returns Tcontrol, the temperature at which
> +			the critical condition clears.
>  
>  temp3_label		"Tcontrol"
>  temp3_input		Provides current Tcontrol temperature of the CPU
> diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c
> index b2fc936851e14..badec53ff4461 100644
> --- a/drivers/hwmon/peci/cputemp.c
> +++ b/drivers/hwmon/peci/cputemp.c
> @@ -131,7 +131,7 @@ static int get_temp_target(struct peci_cputemp *priv, enum peci_temp_target_type
>  		*val = priv->temp.target.tjmax;
>  		break;
>  	case crit_hyst_type:
> -		*val = priv->temp.target.tjmax - priv->temp.target.tcontrol;
> +		*val = priv->temp.target.tcontrol;
>  		break;
>  	default:
>  		ret = -EOPNOTSUPP;