Skip to contentSkip to conversation

thermal: sprd: Fix raw temperature clamping in sprd_thm_rawdata_to_temp

PATCH In review Thorsten Blum 2 participants 2 messages Dec 2, 2025 – Dec 3, 2025

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 thermal: sprd: Fix raw temperature clamping in sprd_thm_rawdata_to_temp

The raw temperature data was never clamped to SPRD_THM_RAW_DATA_LOW or SPRD_THM_RAW_DATA_HIGH because the return value of clamp() was not used. Fix this by assigning the clamped value to 'rawdata'.

Casting SPRD_THM_RAW_DATA_LOW and SPRD_THM_RAW_DATA_HIGH to u32 is also redundant and can be removed.

Fixes 554fdbaf19b1 ("thermal: sprd: Add Spreadtrum thermal driver support")
---
 drivers/thermal/sprd_thermal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/thermal/sprd_thermal.c +1 -1
index e546067c9621..f7fa83b2428e 100644
@@ -178,7 +178,7 @@ static int sprd_thm_sensor_calibration(struct device_node *np,
 static int sprd_thm_rawdata_to_temp(struct sprd_thermal_sensor *sen,
 				    u32 rawdata)
 {
-	clamp(rawdata, (u32)SPRD_THM_RAW_DATA_LOW, (u32)SPRD_THM_RAW_DATA_HIGH);
+	rawdata = clamp(rawdata, SPRD_THM_RAW_DATA_LOW, SPRD_THM_RAW_DATA_HIGH);
 
 	/*
 	 * According to the thermal datasheet, the formula of converting
Signature · 2 lines
Thorsten Blum <[email protected]>
GPG: 1D60 735E 8AEF 3BE4 73B6  9D84 7336 78FD 8DFE EAD4
Reviewed-by on v1 1/1
#1 lore raw
Quoted 19 lines · Thorsten Blum

The raw temperature data was never clamped to SPRD_THM_RAW_DATA_LOW or SPRD_THM_RAW_DATA_HIGH because the return value of clamp() was not used. Fix this by assigning the clamped value to 'rawdata'.

Casting SPRD_THM_RAW_DATA_LOW and SPRD_THM_RAW_DATA_HIGH to u32 is also redundant and can be removed.

Fixes 554fdbaf19b1 ("thermal: sprd: Add Spreadtrum thermal driver support")
---
  drivers/thermal/sprd_thermal.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
drivers/thermal/sprd_thermal.c +0 -0
index e546067c9621..f7fa83b2428e 100644

drivers/thermal/sprd_thermal.c static int sprd_thm_sensor_calibration(struct device_node *np, · line 184

Quoted 8 lines
drivers/thermal/sprd_thermal.c +1 -1
@@ -178,7 +178,7 @@ static int sprd_thm_sensor_calibration(struct device_node *np,
  static int sprd_thm_rawdata_to_temp(struct sprd_thermal_sensor *sen,
  				    u32 rawdata)
  {
-	clamp(rawdata, (u32)SPRD_THM_RAW_DATA_LOW, (u32)SPRD_THM_RAW_DATA_HIGH);
+	rawdata = clamp(rawdata, SPRD_THM_RAW_DATA_LOW, SPRD_THM_RAW_DATA_HIGH);
 
  	/*
  	 * According to the thermal datasheet, the formula of converting

Ah, good catch. Thanks.