OSDN Git Service

hwmon: (mlxreg-fan) Modify PWM connectivity validation
authorVadim Pasternak <vadimp@nvidia.com>
Sun, 26 Sep 2021 05:35:40 +0000 (08:35 +0300)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 12 Oct 2021 14:22:41 +0000 (07:22 -0700)
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>
drivers/hwmon/mlxreg-fan.c

index feab9ec..8e5cd69 100644 (file)
@@ -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;