[PATCH v4 0/2] Support temperature trips by HWMON core and LM90 driver

From: Dmitry Osipenko
Date: Mon Jun 21 2021 - 17:33:17 EST


Hi,

It's typical for embedded devices to use LM90-compatible sensor for
monitoring of CPU core and skin temperatures. The sensor is often
used by thermal zone that performs passive cooling and emergency
shutdown on overheat, hence it's more optimal to use interrupt for
a faster notification about temperature changes. Thermal framework
provides set_trips() callback for programming of temperature trips,
let's support it by HWMON.

Changelog:

v4: - Extended commit message of the set_trips() patch, saying that
it has no effect on sensors that can't set trips. This was
suggested by Guenter Roeck.

- The channels are now iterated starting from 0 instead of 1 in the
set_trips() callback. This was suggested by Guenter Roeck.

- Moved out declaration of the err variable into the upper scope of
set_trips(), like it was suggested by Guenter Roeck. The checkpatch
normally warns about missing empty line after a declaration, but it
couldn't detect this case here.

- Replaced the err < 0 comparisons with err != 0, since write callback
of the chip ops isn't supposed to return positive values. This was
suggested by Guenter Roeck.

v3: - Improved patch that fixes integer overflows by fixing the hysteresis
underflow and improving the commit message, telling that min/max/crit
fixes are only related to the LM99 sensor. Thanks to Guenter Roeck
for the suggestion.

v2: - Reworked set_trips() by making it generic. Now callback invokes
the min/max temperature write method directly, instead of using
additional new hwmon callback. This was suggested by Guenter Roeck.

- Added new patch that fixes integer overflows in the LM90 driver.
The fixes are necessary for supporting set_trips().

Dmitry Osipenko (2):
hwmon: (lm90) Prevent integer underflows of temperature calculations
hwmon: Support set_trips() of thermal device ops

drivers/hwmon/hwmon.c | 33 +++++++++++++++++++++++++++++++++
drivers/hwmon/lm90.c | 9 +++++++++
2 files changed, 42 insertions(+)

--
2.30.2