From b1c24237341f6fb910c6cb15489222a9f47258d6 Mon Sep 17 00:00:00 2001 From: Vadim Pasternak Date: Sun, 26 Sep 2021 08:35:40 +0300 Subject: [PATCH] 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 Link: https://lore.kernel.org/r/20210926053541.1806937-2-vadimp@nvidia.com Signed-off-by: Guenter Roeck --- drivers/hwmon/mlxreg-fan.c | 11 ++++++++--- 1 file 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; -- 2.25.1