| From f37fabb8643eaf8e3b613333a72f683770c85eca Mon Sep 17 00:00:00 2001 |
| From: Krzysztof Kozlowski <krzk@kernel.org> |
| Date: Tue, 22 Nov 2016 19:22:44 +0200 |
| Subject: thermal: hwmon: Properly report critical temperature in sysfs |
| |
| From: Krzysztof Kozlowski <krzk@kernel.org> |
| |
| commit f37fabb8643eaf8e3b613333a72f683770c85eca upstream. |
| |
| In the critical sysfs entry the thermal hwmon was returning wrong |
| temperature to the user-space. It was reporting the temperature of the |
| first trip point instead of the temperature of critical trip point. |
| |
| For example: |
| /sys/class/hwmon/hwmon0/temp1_crit:50000 |
| /sys/class/thermal/thermal_zone0/trip_point_0_temp:50000 |
| /sys/class/thermal/thermal_zone0/trip_point_0_type:active |
| /sys/class/thermal/thermal_zone0/trip_point_3_temp:120000 |
| /sys/class/thermal/thermal_zone0/trip_point_3_type:critical |
| |
| Since commit e68b16abd91d ("thermal: add hwmon sysfs I/F") the driver |
| have been registering a sysfs entry if get_crit_temp() callback was |
| provided. However when accessed, it was calling get_trip_temp() instead |
| of the get_crit_temp(). |
| |
| Fixes: e68b16abd91d ("thermal: add hwmon sysfs I/F") |
| Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> |
| Signed-off-by: Zhang Rui <rui.zhang@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/thermal/thermal_hwmon.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/thermal/thermal_hwmon.c |
| +++ b/drivers/thermal/thermal_hwmon.c |
| @@ -98,7 +98,7 @@ temp_crit_show(struct device *dev, struc |
| int temperature; |
| int ret; |
| |
| - ret = tz->ops->get_trip_temp(tz, 0, &temperature); |
| + ret = tz->ops->get_crit_temp(tz, &temperature); |
| if (ret) |
| return ret; |
| |