hwmon: (nct6775) Fix fan speed set failure in automatic mode
authorXing Tong Wu <xingtong.wu@siemens.com>
Tue, 21 Nov 2023 08:16:04 +0000 (16:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Feb 2024 20:14:28 +0000 (20:14 +0000)
[ Upstream commit 8b3800256abad20e91c2698607f9b28591407b19 ]

Setting the fan speed is only valid in manual mode; it is not possible
to set the fan's speed in automatic mode.
Return error when attempting to set the fan speed in automatic mode.

Signed-off-by: Xing Tong Wu <xingtong.wu@siemens.com>
Link: https://lore.kernel.org/r/20231121081604.2499-3-xingtong_wu@163.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hwmon/nct6775-core.c

index d928eb8..92a49fa 100644 (file)
@@ -2553,6 +2553,13 @@ store_pwm(struct device *dev, struct device_attribute *attr, const char *buf,
        int err;
        u16 reg;
 
+       /*
+        * The fan control mode should be set to manual if the user wants to adjust
+        * the fan speed. Otherwise, it will fail to set.
+        */
+       if (index == 0 && data->pwm_enable[nr] > manual)
+               return -EBUSY;
+
        err = kstrtoul(buf, 10, &val);
        if (err < 0)
                return err;