]> Git Repo - linux.git/commitdiff
hwmon: (mlxreg-fan) Return zero speed for broken fan
authorVadim Pasternak <[email protected]>
Sun, 12 Feb 2023 14:57:30 +0000 (16:57 +0200)
committerGuenter Roeck <[email protected]>
Sun, 12 Feb 2023 15:21:40 +0000 (07:21 -0800)
Currently for broken fan driver returns value calculated based on error
code (0xFF) in related fan speed register.
Thus, for such fan user gets fan{n}_fault to 1 and fan{n}_input with
misleading value.

Add check for fan fault prior return speed value and return zero if
fault is detected.

Fixes: 65afb4c8e7e4 ("hwmon: (mlxreg-fan) Add support for Mellanox FAN driver")
Signed-off-by: Vadim Pasternak <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Guenter Roeck <[email protected]>
drivers/hwmon/mlxreg-fan.c

index b48bd7c961d665c4bab51f627f524f88ae415cf6..96017cc8da7ecd5b79e9068bccce9be1315f674e 100644 (file)
@@ -155,6 +155,12 @@ mlxreg_fan_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
                        if (err)
                                return err;
 
+                       if (MLXREG_FAN_GET_FAULT(regval, tacho->mask)) {
+                               /* FAN is broken - return zero for FAN speed. */
+                               *val = 0;
+                               return 0;
+                       }
+
                        *val = MLXREG_FAN_GET_RPM(regval, fan->divider,
                                                  fan->samples);
                        break;
This page took 0.051608 seconds and 4 git commands to generate.