Thermal/int3403: Fix thermal hysteresis unit conversion
authorlan,Tianyu <tianyu.lan@intel.com>
Mon, 3 Nov 2014 09:53:01 +0000 (01:53 -0800)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 4 Nov 2014 23:17:32 +0000 (19:17 -0400)
Thermal hysteresis represents a temperature difference.
But the original code treats it as a temperature value,
Convert it from tenths of degree Kelvin to Milli-Celsius
by deducing 273200. This is not right.

Kelvin and Celsius have same degree size. From temperature
difference view, the conversion between tenths of degree
Kelvin unit and Milli-Celsius unit is just to multiply 100.

Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/int340x_thermal/int3403_thermal.c

index d20dba986f0f614c19f4b2c7061f129ece26ab27..6e9fb62eb8170213149de3800cca3fa858b3a3e1 100644 (file)
@@ -92,7 +92,13 @@ static int sys_get_trip_hyst(struct thermal_zone_device *tzone,
        if (ACPI_FAILURE(status))
                return -EIO;
 
-       *temp = DECI_KELVIN_TO_MILLI_CELSIUS(hyst, KELVIN_OFFSET);
+       /*
+        * Thermal hysteresis represents a temperature difference.
+        * Kelvin and Celsius have same degree size. So the
+        * conversion here between tenths of degree Kelvin unit
+        * and Milli-Celsius unit is just to multiply 100.
+        */
+       *temp = hyst * 100;
 
        return 0;
 }