platform/x86: asus-wmi: Enhance detection of thermal data
authorYurii Pavlovskyi <yurii.pavlovskyi@gmail.com>
Tue, 14 May 2019 19:05:46 +0000 (21:05 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 17 Jun 2019 12:22:47 +0000 (15:22 +0300)
The obviously wrong value 1 for temperature device ID in this driver is
returned by at least some devices, including TUF Gaming series laptops,
instead of 0 as expected previously. Observable effect is that a
temp1_input in hwmon reads temperature near absolute zero.

Consider 0.1 K an erroneous value in addition to 0 K.

Signed-off-by: Yurii Pavlovskyi <yurii.pavlovskyi@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/asus-wmi.c

index 3a4e61c..a1d8566 100644 (file)
@@ -1428,8 +1428,11 @@ static umode_t asus_hwmon_sysfs_is_visible(struct kobject *kobj,
                else
                        ok = fan_attr <= asus->asus_hwmon_num_fans;
        } else if (dev_id == ASUS_WMI_DEVID_THERMAL_CTRL) {
-               /* If value is zero, something is clearly wrong */
-               if (!value)
+               /*
+                * If the temperature value in deci-Kelvin is near the absolute
+                * zero temperature, something is clearly wrong
+                */
+               if (value == 0 || value == 1)
                        ok = false;
        } else if (fan_attr <= asus->asus_hwmon_num_fans && fan_attr != -1) {
                ok = true;