ACPI: update thermal temperature
authorZhang, Rui <rui.zhang@intel.com>
Thu, 10 Apr 2008 08:20:23 +0000 (16:20 +0800)
committerLen Brown <len.brown@intel.com>
Tue, 29 Apr 2008 06:53:42 +0000 (02:53 -0400)
Fix the problem that thermal_get_temp returns the cached value,
which causes the temperature in generic thermal never updates.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/thermal.c

index 5e9641c..782c225 100644 (file)
@@ -884,10 +884,15 @@ static void acpi_thermal_check(void *data)
 static int thermal_get_temp(struct thermal_zone_device *thermal, char *buf)
 {
        struct acpi_thermal *tz = thermal->devdata;
+       int result;
 
        if (!tz)
                return -EINVAL;
 
+       result = acpi_thermal_get_temperature(tz);
+       if (result)
+               return result;
+
        return sprintf(buf, "%ld\n", KELVIN_TO_MILLICELSIUS(tz->temperature));
 }