[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3196fcbd-2c06-42c6-a597-8332951473dc@roeck-us.net>
Date: Sun, 31 Aug 2025 15:09:10 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Chris Packham <Chris.Packham@...iedtelesis.co.nz>,
"jdelvare@...e.com" <jdelvare@...e.com>, "robh@...nel.org"
<robh@...nel.org>, "krzk+dt@...nel.org" <krzk+dt@...nel.org>,
"conor+dt@...nel.org" <conor+dt@...nel.org>, "corbet@....net"
<corbet@....net>, "wenliang202407@....com" <wenliang202407@....com>,
"jre@...gutronix.de" <jre@...gutronix.de>
Cc: "linux-hwmon@...r.kernel.org" <linux-hwmon@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>
Subject: Re: [PATCH v3 2/4] hwmon: (ina238) Correctly clamp temperature
On 8/31/25 14:12, Chris Packham wrote:
>
> On 29/08/25 21:55, Guenter Roeck wrote:
>> On 8/28/25 20:05, Chris Packham wrote:
>>> ina238_write_temp() was attempting to clamp the user input but was
>>> throwing away the result. Ensure that we clamp the value to the
>>> appropriate range before it is converted into a register value.
>>>
>>> Fixes: 0d9f596b1fe3 ("hwmon: (ina238) Modify the calculation formula
>>> to adapt to different chips")
>>> Signed-off-by: Chris Packham <chris.packham@...iedtelesis.co.nz>
>>> ---
>>>
>>> Notes:
>>> Changes in v3:
>>> - New. Split off bugfix from main patch
>>>
>>> drivers/hwmon/ina238.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/hwmon/ina238.c b/drivers/hwmon/ina238.c
>>> index 5a394eeff676..4d3dc018ead9 100644
>>> --- a/drivers/hwmon/ina238.c
>>> +++ b/drivers/hwmon/ina238.c
>>> @@ -572,7 +572,7 @@ static int ina238_write_temp(struct device *dev,
>>> u32 attr, long val)
>>> return -EOPNOTSUPP;
>>> /* Signed */
>>> - regval = clamp_val(val, -40000, 125000);
>>> + val = clamp_val(val, -40000, 125000);
>>
>> That needs another correction: As it turns out, the default register
>> value
>> is 0x7ff0, or 255875. That means we need to accept that range. The
>> same is
>> probably true for negative temperatures, but I'll need to see the real
>> chip
>> to be sure.
>>
>> Yes, the chips only support a limited temperature range, but that is the
>> limit register, not the supported range. Other chips have a similar
>> problem.
>> It is ok to limit the input range if the chip has a reasonable default
>> set,
>> but if the actual chip default is 0x7ff0 or 255.875 degrees C we need to
>> support writing that value.
> I'm guessing that might change my introduction of temp_max in the next
> patch. I'll re-order my series to put the bugfix first with the changes
> mentioned.
Please wait a bit before resending; I have a series almost ready to send out
with various other changes.
Guenter
Powered by blists - more mailing lists