summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2025-08-29 06:49:51 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-09-09 19:02:38 +0200
commit6bc941d24524607840954e43bb44bb99284b031b (patch)
tree696e6d3c94de5cce023f0006d739f603f7fbbb34
parent765c24377ba87c9d3de0948737487eb6cfad17e3 (diff)
hwmon: (ina238) Correctly clamp shunt voltage limit
[ Upstream commit bd7e7bc2cc2024035dfbc8239c9f4d8675793445 ] When clamping a register value, the result needs to be masked against the register size. This was missing, resulting in errors when trying to write negative limits. Fix by masking the clamping result against the register size. Fixes: eacb52f010a80 ("hwmon: Driver for Texas Instruments INA238") Cc: Nathan Rossi <nathan.rossi@digi.com> Cc: Chris Packham <chris.packham@alliedtelesis.co.nz> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/hwmon/ina238.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/hwmon/ina238.c b/drivers/hwmon/ina238.c
index a2cb615fa278..0562f9a4dcf1 100644
--- a/drivers/hwmon/ina238.c
+++ b/drivers/hwmon/ina238.c
@@ -300,7 +300,7 @@ static int ina238_write_in(struct device *dev, u32 attr, int channel,
regval = clamp_val(val, -163, 163);
regval = (regval * 1000 * 4) /
(INA238_SHUNT_VOLTAGE_LSB * data->gain);
- regval = clamp_val(regval, S16_MIN, S16_MAX);
+ regval = clamp_val(regval, S16_MIN, S16_MAX) & 0xffff;
switch (attr) {
case hwmon_in_max: