summaryrefslogtreecommitdiff
path: root/drivers/hwmon/mlxreg-fan.c
diff options
context:
space:
mode:
authorVadim Pasternak <vadimp@nvidia.com>2021-09-26 08:35:40 +0300
committerGuenter Roeck <linux@roeck-us.net>2021-10-12 07:22:41 -0700
commitb1c24237341f6fb910c6cb15489222a9f47258d6 (patch)
tree2503a7f069fe1cbb88632836e8162adf5888df20 /drivers/hwmon/mlxreg-fan.c
parent1508fb29157e85ce7b4de3743fdf196a4ecfab2f (diff)
hwmon: (mlxreg-fan) Modify PWM connectivity validation
Validate PWM connectivity only for additional PWM - "pwm1" is connected on all systems, while "pwm2" - "pwm4" are optional. Validate connectivity only for optional attributes by reading of related "pwm{n}" registers - in case "pwm{n}" is not connected, register value is supposed to be 0xff. Signed-off-by: Vadim Pasternak <vadimp@nvidia.com> Link: https://lore.kernel.org/r/20210926053541.1806937-2-vadimp@nvidia.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/mlxreg-fan.c')
-rw-r--r--drivers/hwmon/mlxreg-fan.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/hwmon/mlxreg-fan.c b/drivers/hwmon/mlxreg-fan.c
index feab9ec6a6ca..8e5cd6991929 100644
--- a/drivers/hwmon/mlxreg-fan.c
+++ b/drivers/hwmon/mlxreg-fan.c
@@ -488,9 +488,14 @@ static int mlxreg_fan_config(struct mlxreg_fan *fan,
return -EINVAL;
}
- err = mlxreg_pwm_connect_verify(fan, data);
- if (err)
- return err;
+ /* Validate if more then one PWM is connected. */
+ if (pwm_num) {
+ err = mlxreg_pwm_connect_verify(fan, data);
+ if (err < 0)
+ return err;
+ else if (!err)
+ continue;
+ }
fan->pwm[pwm_num].reg = data->reg;
fan->pwm[pwm_num].connected = true;