linux-yocto/drivers/hwmon
Vadim Pasternak c07e759b3f hwmon: (mlxreg-fan) Separate methods of fan setting coming from different subsystems
[ Upstream commit c02e4644f8ac9c501077ef5ac53ae7fc51472d49 ]

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: da74944d3a ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-10-15 11:57:54 +02:00
..
occ hwmon: (occ) fix unaligned accesses 2025-06-27 11:09:01 +01:00
peci hwmon: (peci/dimmtemp) Do not provide fake thresholds data 2025-03-13 12:58:25 +01:00
pmbus hwmon: (pmbus/max34440) Fix support for max34451 2025-07-06 11:00:06 +02:00
abituguru.c
abituguru3.c
acpi_power_meter.c hwmon: (acpi_power_meter) Fix 4.29 MW bug 2023-12-13 18:45:14 +01:00
ad7314.c hwmon: (ad7314) Validate leading zero bits and return error 2025-03-13 12:58:29 +01:00
ad7414.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ad7418.c hwmon: (ad7418) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
adc128d818.c hwmon: (adc128d818) Fix underflows seen when writing limit attributes 2024-09-12 11:11:36 +02:00
adcxx.c
adm1021.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1025.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1026.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1029.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1031.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1177.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm9240.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ads7828.c hwmon: (ads7828) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
ads7871.c
adt7x10.c
adt7x10.h
adt7310.c
adt7410.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adt7411.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adt7462.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adt7470.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adt7475.c minmax: make generic MIN() and MAX() macros available everywhere 2025-10-02 13:42:55 +02:00
aht10.c hwmon: (aht10) Add support for compatible aht20 2023-06-08 06:41:18 -07:00
amc6821.c hwmon: (amc6821) add of_match table 2024-04-03 15:28:28 +02:00
applesmc.c
aquacomputer_d5next.c hwmon: (aquacomputer_d5next) Add selective 200ms delay after sending ctrl report 2023-08-09 21:09:47 -07:00
as370-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
asb100.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
asc7621.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
aspeed-pwm-tacho.c hwmon: (aspeed-pwm-tacho) mutex for tach reading 2024-02-16 19:10:49 +01:00
asus_atk0110.c
asus_wmi_sensors.c
asus-ec-sensors.c hwmon: (asus-ec-sensors) check sensor index in read_string() 2025-06-19 15:28:26 +02:00
atxp1.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
axi-fan-control.c hwmon: (axi-fan-control) Fix possible NULL pointer dereference 2023-11-20 11:59:07 +01:00
bt1-pvt.c hwmon: (bt1-pvt) Convert to devm_platform_ioremap_resource() 2023-08-21 06:04:29 -07:00
bt1-pvt.h
coretemp.c hwmon: (coretemp) Enlarge per package core count limit 2024-03-01 13:34:55 +01:00
corsair-cpro.c hwmon: (corsair-cpro) Validate the size of the received input buffer 2025-07-24 08:53:18 +02:00
corsair-psu.c hwmon: corsair-psu: add USB id of HX1200i Series 2023 psu 2024-08-14 13:58:41 +02:00
da9052-hwmon.c
da9055-hwmon.c
dell-smm-hwmon.c hwmon: (dell-smm) Increment the number of fans 2025-06-04 14:42:00 +02:00
dme1737.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
drivetemp.c hwmon: (drivetemp) Set scsi command timeout to 10s 2025-02-01 18:37:51 +01:00
ds620.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ds1621.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
emc6w201.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
emc1403.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
emc2103.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
emc2305.c hwmon: (emc2305) Set initial PWM minimum value during probe based on thermal state 2025-08-28 16:28:26 +02:00
f71805f.c
f71882fg.c hwmon: (f71882fg) prevent possible division by zero 2023-05-19 05:59:37 -07:00
f75375s.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
fam15h_power.c
fschmd.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ftsteutates.c hwmon: (ftsteutates) Fix TOCTOU race in fts_read() 2025-06-27 11:08:48 +01:00
g760a.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
g762.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
gl518sm.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
gl520sm.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
gpio-fan.c hwmon: (gpio-fan) Add missing mutex locks 2025-06-04 14:42:03 +02:00
gsc-hwmon.c hwmon: (gsc-hwmon) fix fan pwm setpoint show functions 2025-08-28 16:28:36 +02:00
gxp-fan-ctrl.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
hih6130.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
hp-wmi-sensors.c hwmon: (hp-wmi-sensors) Check if WMI event data exists 2024-09-12 11:11:33 +02:00
hs3001.c hwmon: Add driver for Renesas HS3001 2023-08-21 06:04:30 -07:00
hwmon-vid.c
hwmon.c hwmon: (core) Finish renaming groups parameter in API to extra_groups 2023-06-08 06:41:18 -07:00
i5k_amb.c
i5500_temp.c
ibmaem.c
ibmpex.c
ibmpowernv.c
iio_hwmon.c
ina2xx.c hwmon: (ina2xx) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
ina209.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ina238.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ina3221.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
intel-m10-bmc-hwmon.c hwmon: intel-m10-bmc-hwmon: relabel Columbiaville to CVL Die Temperature 2024-10-17 15:24:32 +02:00
it87.c hwmon: (it87) Add support to detect sensor type AMDTSI 2023-08-21 06:04:29 -07:00
jc42.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
k8temp.c
k10temp.c x86/amd_nb: Add new PCI IDs for AMD family 1Ah model 60h 2024-10-17 15:24:22 +02:00
Kconfig hwmon: (adt7470) Add missing dependency on REGMAP_I2C 2024-10-17 15:24:32 +02:00
lan966x-hwmon.c hwmon: (lan966x) Use the devm_clk_get_enabled() helper function 2023-08-21 06:04:29 -07:00
lineage-pem.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm63.c hwmon: (lm63) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
lm70.c
lm73.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm75.c hwmon: (lm75) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
lm75.h
lm77.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm78.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm80.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm83.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm85.c hwmon: (lm85) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
lm87.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm90.c hwmon: (lm90) fix Wvoid-pointer-to-enum-cast warning 2023-08-21 06:04:30 -07:00
lm92.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm93.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm95234.c hwmon: (lm95234) Fix underflows seen when writing limit attributes 2024-09-12 11:11:36 +02:00
lm95241.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lm95245.c hwmon: (lm95245) Use maple tree register cache 2023-06-10 07:37:02 -07:00
lochnagar-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
ltc2945.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2947-core.c
ltc2947-i2c.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2947-spi.c
ltc2947.h
ltc2990.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2992.c hwmon: (ltc2992) Fix memory leak in ltc2992_parse_dt() 2024-08-29 17:33:57 +02:00
ltc4151.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc4215.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc4222.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc4245.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc4260.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc4261.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltq-cputemp.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
Makefile hwmon: Add driver for Renesas HS3001 2023-08-21 06:04:30 -07:00
max127.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max197.c
max1111.c ARM: pxa: fix missing-prototypes warnings 2023-05-26 13:33:05 +02:00
max1619.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max1668.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max6620.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max6621.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
max6639.c hwmon: (max6639) Add compatible string 2023-08-21 06:04:30 -07:00
max6642.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max6650.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max6697.c hwmon: (max6697) Fix swapped temp{1,8} critical alarms 2024-08-03 08:53:23 +02:00
max16065.c hwmon: (max16065) Fix alarm attributes 2024-10-04 16:29:06 +02:00
max31722.c
max31730.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
max31760.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max31790.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max31827.c hwmon: max31827: Switch back to use struct i2c_driver::probe 2023-06-26 06:45:54 -07:00
mc34vr500.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mc13783-adc.c
mcp3021.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
menf21bmc_hwmon.c
mlxreg-fan.c hwmon: (mlxreg-fan) Separate methods of fan setting coming from different subsystems 2025-10-15 11:57:54 +02:00
mr75203.c
nct6683.c hwmon: (nct6683) Add another customer ID for NCT6687D sensor chip on some MSI boards. 2023-06-08 06:41:17 -07:00
nct6775-core.c hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9} 2025-04-10 14:37:38 +02:00
nct6775-i2c.c hwmon: (nct6755) Add support for NCT6799D 2023-06-17 20:50:30 -07:00
nct6775-platform.c hwmon: (nct6775) Add 665-ACE/600M-CL to ASUS WMI monitoring list 2024-12-14 19:59:59 +01:00
nct6775.h hwmon: (nct6775) Additional TEMP registers for nct6799 2023-08-21 06:04:30 -07:00
nct7802.c hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled 2023-07-24 07:01:40 -07:00
nct7904.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
npcm750-pwm-fan.c hwmon: npcm750-pwm: constify pointers to hwmon_channel_info 2023-04-19 07:08:37 -07:00
nsa320-hwmon.c hwmon: (nsa320-hwmon) Remove redundant of_match_ptr() 2023-08-21 06:04:31 -07:00
ntc_thermistor.c hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table 2025-03-13 12:58:29 +01:00
nzxt-kraken2.c hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe() 2023-12-13 18:45:15 +01:00
nzxt-smart2.c hwmon: nzxt: constify pointers to hwmon_channel_info 2023-04-19 07:08:37 -07:00
oxp-sensors.c hwmon: (oxp-sensors) Move board detection to the init function 2023-08-21 06:04:29 -07:00
pc87360.c hwmon: (pc87360) Bounds check data->innr usage 2024-08-29 17:33:31 +02:00
pc87427.c
pcf8591.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
powr1220.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pwm-fan.c pwm: Rename pwm_apply_state() to pwm_apply_might_sleep() 2024-06-12 11:12:24 +02:00
raspberrypi-hwmon.c hwmon: raspberrypi: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
sbrmi.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
sbtsi_temp.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
sch56xx-common.c Revert "hwmon: (sch56xx-common) Add automatic module loading on supported devices" 2023-11-20 11:59:07 +01:00
sch56xx-common.h
sch5627.c hwmon: (sch5627) Disallow write access if virtual registers are locked 2023-11-20 11:59:08 +01:00
sch5636.c
scmi-hwmon.c
scpi-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
sfctemp.c hwmon: (sfctemp) Simplify error message 2023-04-19 07:08:40 -07:00
sht3x.c hwmon: (sht3x) convert some of sysfs interface to hwmon 2023-08-21 06:04:30 -07:00
sht4x.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
sht15.c
sht21.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
shtc1.c hwmon: (shtc1) Fix property misspelling 2024-06-12 11:13:00 +02:00
sis5595.c hwmon: (sis5595) Do PCI error checks on own line 2023-08-25 06:20:53 -07:00
sl28cpld-hwmon.c hwmon: sl28cpld: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
smpro-hwmon.c hwmon: smpro: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
smsc47b397.c
smsc47m1.c
smsc47m192.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
sparx5-temp.c hwmon: sparx5-temp: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
stts751.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
sy7636a-hwmon.c hwmon: sy7636a: constify pointers to hwmon_channel_info 2023-04-19 07:08:38 -07:00
tc74.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tc654.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
thmc50.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tmp102.c hwmon: (tmp102) Use maple tree register cache 2023-06-10 07:37:02 -07:00
tmp103.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tmp108.c hwmon: (tmp108) Use maple tree register cache 2023-06-10 07:37:02 -07:00
tmp401.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tmp421.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
tmp464.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
tmp513.c hwmon: (tmp513) Fix division of negative numbers 2025-01-23 17:21:12 +01:00
tps23861.c hwmon: (tps23861) Fix reporting of negative temperatures 2024-12-09 10:32:30 +01:00
ultra45_env.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
vexpress-hwmon.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
via-cputemp.c
via686a.c hwmon: (via686a) Do PCI error checks on own line 2023-08-25 06:18:09 -07:00
vt1211.c
vt8231.c hwmon: (vt8231) Do PCI error checks on own line 2023-08-25 06:19:29 -07:00
w83l785ts.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83l786ng.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83627ehf.c hwmon: (w83627ehf) Fix underflows seen when writing limit attributes 2024-09-12 11:11:36 +02:00
w83627hf.c
w83773g.c hwmon: Explicitly include correct DT includes 2023-08-21 06:04:29 -07:00
w83781d.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83791d.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83792d.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83793.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
w83795.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
wm831x-hwmon.c
wm8350-hwmon.c
xgene-hwmon.c hwmon: (xgene-hwmon) use appropriate type for the latency value 2025-06-04 14:42:12 +02:00