Re: [PATCH 2/3] hwmon: (nct6775) Fix logic error for PWM enable

From: Guenter Roeck
Date: Thu Nov 16 2023 - 03:07:15 EST


On Thu, Nov 16, 2023 at 10:23:29AM +0800, Xing Tong Wu wrote:
> From: Xing Tong Wu <xingtong.wu@xxxxxxxxxxx>
>
> The determination of the "pwm_enable" should be based solely on the mode,
> regardless of the pwm value.
> According to the specification, the default values for pwm and pwm_enable
> are 255 and 0 respectively. However, there is a bug in the code where the
> fan control is actually enabled, but the file "pwm_enable" incorrectly
> displays "off", indicating that fan control is disabled. This contradiction
> needs to be addressed and resolved.
> Solution: Update the logic so that "pwm_enable" is determined by mode + 1,
> remove the "off" value for "pwm_enable" since it is not specified in the
> documentation.

The chip specification is irrelevant. What is relevant is the hwmon ABI,
which says

What: /sys/class/hwmon/hwmonX/pwmY_enable
Description:
Fan speed control method:

- 0: no fan speed control (i.e. fan at full speed)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 1: manual fan speed control enabled (using `pwmY`)
- 2+: automatic fan speed control enabled

which is what the code currently implements or at least tries to
implement.

Guenter

>
> Signed-off-by: Xing Tong Wu <xingtong.wu@xxxxxxxxxxx>
> ---
> drivers/hwmon/nct6775-core.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/hwmon/nct6775-core.c b/drivers/hwmon/nct6775-core.c
> index 2111f0cd9787..575db6cb96e9 100644
> --- a/drivers/hwmon/nct6775-core.c
> +++ b/drivers/hwmon/nct6775-core.c
> @@ -900,8 +900,6 @@ static const u16 NCT6116_REG_TSI_TEMP[] = { 0x59, 0x5b };
>
> static enum pwm_enable reg_to_pwm_enable(int pwm, int mode)
> {
> - if (mode == 0 && pwm == 255)
> - return off;
> return mode + 1;
> }
>
> --
> 2.25.1
>