Message ID | 20230212145730.24247-1-vadimp@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [hwmon,1/1] hwmon: (mlxreg-fan) Return zero speed for broken fan | expand |
On 2/12/23 06:57, Vadim Pasternak wrote: > 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 <vadimp@nvidia.com> Applied. Thanks, Guenter > --- > drivers/hwmon/mlxreg-fan.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/hwmon/mlxreg-fan.c b/drivers/hwmon/mlxreg-fan.c > index b48bd7c961d6..96017cc8da7e 100644 > --- a/drivers/hwmon/mlxreg-fan.c > +++ b/drivers/hwmon/mlxreg-fan.c > @@ -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;
diff --git a/drivers/hwmon/mlxreg-fan.c b/drivers/hwmon/mlxreg-fan.c index b48bd7c961d6..96017cc8da7e 100644 --- a/drivers/hwmon/mlxreg-fan.c +++ b/drivers/hwmon/mlxreg-fan.c @@ -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;
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 <vadimp@nvidia.com> --- drivers/hwmon/mlxreg-fan.c | 6 ++++++ 1 file changed, 6 insertions(+)