Jiri Slaby 183451
From: Armin Wolf <W_Armin@gmx.de>
Jiri Slaby 183451
Date: Sat, 18 Feb 2023 12:53:18 +0100
Jiri Slaby 183451
Subject: [PATCH] platform/x86: dell-ddv: Fix temperature scaling
Jiri Slaby 183451
References: bsc#1012628
Jiri Slaby 183451
Patch-mainline: 6.2.7
Jiri Slaby 183451
Git-commit: 0331b1b0ba65376ecf1c69414aa7696fef0930cb
Jiri Slaby 183451
Jiri Slaby 183451
[ Upstream commit 0331b1b0ba65376ecf1c69414aa7696fef0930cb ]
Jiri Slaby 183451
Jiri Slaby 183451
After using the built-in UEFI hardware diagnostics to compare
Jiri Slaby 183451
the measured battery temperature, i noticed that the temperature
Jiri Slaby 183451
is actually expressed in tenth degree kelvin, similar to the
Jiri Slaby 183451
SBS-Data standard. For example, a value of 2992 is displayed as
Jiri Slaby 183451
26 degrees celsius.
Jiri Slaby 183451
Fix the scaling so that the correct values are being displayed.
Jiri Slaby 183451
Jiri Slaby 183451
Tested on a Dell Inspiron 3505.
Jiri Slaby 183451
Jiri Slaby 183451
Fixes: a77272c16041 ("platform/x86: dell: Add new dell-wmi-ddv driver")
Jiri Slaby 183451
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Jiri Slaby 183451
Link: https://lore.kernel.org/r/20230218115318.20662-2-W_Armin@gmx.de
Jiri Slaby 183451
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Jiri Slaby 183451
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Jiri Slaby 183451
Signed-off-by: Sasha Levin <sashal@kernel.org>
Jiri Slaby 183451
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby 183451
---
Jiri Slaby 183451
 drivers/platform/x86/dell/dell-wmi-ddv.c | 4 ++--
Jiri Slaby 183451
 1 file changed, 2 insertions(+), 2 deletions(-)
Jiri Slaby 183451
Jiri Slaby 183451
diff --git a/drivers/platform/x86/dell/dell-wmi-ddv.c b/drivers/platform/x86/dell/dell-wmi-ddv.c
Jiri Slaby 183451
index f99c4cb6..96fede24 100644
Jiri Slaby 183451
--- a/drivers/platform/x86/dell/dell-wmi-ddv.c
Jiri Slaby 183451
+++ b/drivers/platform/x86/dell/dell-wmi-ddv.c
Jiri Slaby 183451
@@ -14,7 +14,6 @@
Jiri Slaby 183451
 #include <linux/errno.h>
Jiri Slaby 183451
 #include <linux/kernel.h>
Jiri Slaby 183451
 #include <linux/kstrtox.h>
Jiri Slaby 183451
-#include <linux/math.h>
Jiri Slaby 183451
 #include <linux/module.h>
Jiri Slaby 183451
 #include <linux/limits.h>
Jiri Slaby 183451
 #include <linux/power_supply.h>
Jiri Slaby 183451
@@ -192,7 +191,8 @@ static ssize_t temp_show(struct device *dev, struct device_attribute *attr, char
Jiri Slaby 183451
 	if (ret < 0)
Jiri Slaby 183451
 		return ret;
Jiri Slaby 183451
 
Jiri Slaby 183451
-	return sysfs_emit(buf, "%d\n", DIV_ROUND_CLOSEST(value, 10));
Jiri Slaby 183451
+	/* Use 2731 instead of 2731.5 to avoid unnecessary rounding */
Jiri Slaby 183451
+	return sysfs_emit(buf, "%d\n", value - 2731);
Jiri Slaby 183451
 }
Jiri Slaby 183451
 
Jiri Slaby 183451
 static ssize_t eppid_show(struct device *dev, struct device_attribute *attr, char *buf)
Jiri Slaby 183451
-- 
Jiri Slaby 183451
2.35.3
Jiri Slaby 183451