hwmon: (mlxreg-fan) Separate methods of fan setting coming from different subsystems
authorVadim Pasternak <vadimp@nvidia.com>
Mon, 13 Jan 2025 08:48:58 +0000 (10:48 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Thu, 25 Sep 2025 15:08:14 +0000 (08:08 -0700)
commitc02e4644f8ac9c501077ef5ac53ae7fc51472d49
tree82500d8b7d61b85cc92c0a8eeb3ddc7556685900
parent5798b62867b47b6ace287d31172ce748ad70d869
hwmon: (mlxreg-fan) Separate methods of fan setting coming from different subsystems

Distinct between fan speed setting request coming for hwmon and
thermal subsystems.

There are fields 'last_hwmon_state' and 'last_thermal_state' in the
structure 'mlxreg_fan_pwm', which respectively store the cooling state
set by the 'hwmon' and 'thermal' subsystem.
The purpose is to make arbitration of fan speed setting. For example, if
fan speed required to be not lower than some limit, such setting is to
be performed through 'hwmon' subsystem, thus 'thermal' subsystem will
not set fan below this limit.

Currently, the 'last_thermal_state' is also be updated by 'hwmon' causing
cooling state to never be set to a lower value.

Eliminate update of 'last_thermal_state', when request is coming from
'hwmon' subsystem.

Fixes: da74944d3a46 ("hwmon: (mlxreg-fan) Use pwm attribute for setting fan speed low limit")
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Link: https://lore.kernel.org/r/20250113084859.27064-2-vadimp@nvidia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/mlxreg-fan.c