[PATCH] hwmon: (adt7475) Fix default duty on fan is disabled

Wayne Tung posted 1 patch 1 year, 5 months ago
drivers/hwmon/adt7475.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] hwmon: (adt7475) Fix default duty on fan is disabled
Posted by Wayne Tung 1 year, 5 months ago
According to the comments on fan is disabled, we change to manual mode
and set the duty cycle to 0.
For setting the duty cycle part, the register is wrong. Fix it.

Signed-off-by: Wayne Tung <chineweff@gmail.com>
---
 drivers/hwmon/adt7475.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
index 4224ffb30483..ec3336804720 100644
--- a/drivers/hwmon/adt7475.c
+++ b/drivers/hwmon/adt7475.c
@@ -1900,7 +1900,7 @@ static void adt7475_read_pwm(struct i2c_client *client, int index)
 		data->pwm[CONTROL][index] &= ~0xE0;
 		data->pwm[CONTROL][index] |= (7 << 5);
 
-		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
+		i2c_smbus_write_byte_data(client, PWM_REG(index),
 					  data->pwm[INPUT][index]);
 
 		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
-- 
2.34.1
Re: [PATCH] hwmon: (adt7475) Fix default duty on fan is disabled
Posted by Guenter Roeck 1 year, 5 months ago
On Mon, Jul 01, 2024 at 03:32:52PM +0800, Wayne Tung wrote:
> According to the comments on fan is disabled, we change to manual mode
> and set the duty cycle to 0.
> For setting the duty cycle part, the register is wrong. Fix it.
> 
> Signed-off-by: Wayne Tung <chineweff@gmail.com>
> ---

Applied. 

Curious - how did you find that ? That bug existed since the driver was
introduced.

Thanks,
Guenter

>  drivers/hwmon/adt7475.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
> index 4224ffb30483..ec3336804720 100644
> --- a/drivers/hwmon/adt7475.c
> +++ b/drivers/hwmon/adt7475.c
> @@ -1900,7 +1900,7 @@ static void adt7475_read_pwm(struct i2c_client *client, int index)
>  		data->pwm[CONTROL][index] &= ~0xE0;
>  		data->pwm[CONTROL][index] |= (7 << 5);
>  
> -		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
> +		i2c_smbus_write_byte_data(client, PWM_REG(index),
>  					  data->pwm[INPUT][index]);
>  
>  		i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
Re: [PATCH] hwmon: (adt7475) Fix default duty on fan is disabled
Posted by Wayne Tung 1 year, 5 months ago
I'm using adt7475 on the x86 system.
When I tried to probe the driver manually, fans would run at full
speed (It's in disabled mode by default).
It's not the expected behavior.
I traced the driver and found the issue.

Thanks,
Wayne

Guenter Roeck <linux@roeck-us.net> 於 2024年7月2日 週二 上午6:45寫道:
>
> On Mon, Jul 01, 2024 at 03:32:52PM +0800, Wayne Tung wrote:
> > According to the comments on fan is disabled, we change to manual mode
> > and set the duty cycle to 0.
> > For setting the duty cycle part, the register is wrong. Fix it.
> >
> > Signed-off-by: Wayne Tung <chineweff@gmail.com>
> > ---
>
> Applied.
>
> Curious - how did you find that ? That bug existed since the driver was
> introduced.
>
> Thanks,
> Guenter
>
> >  drivers/hwmon/adt7475.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/hwmon/adt7475.c b/drivers/hwmon/adt7475.c
> > index 4224ffb30483..ec3336804720 100644
> > --- a/drivers/hwmon/adt7475.c
> > +++ b/drivers/hwmon/adt7475.c
> > @@ -1900,7 +1900,7 @@ static void adt7475_read_pwm(struct i2c_client *client, int index)
> >               data->pwm[CONTROL][index] &= ~0xE0;
> >               data->pwm[CONTROL][index] |= (7 << 5);
> >
> > -             i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
> > +             i2c_smbus_write_byte_data(client, PWM_REG(index),
> >                                         data->pwm[INPUT][index]);
> >
> >               i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),