Message ID | 20240701073252.317397-1-chineweff@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: (adt7475) Fix default duty on fan is disabled | expand |
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),
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),
On 7/2/24 03:31, Wayne Tung wrote: > I'm using adt7475 on the x86 system. > I found that when I tried to probe the driver manually, fans would run full speed (It's in disabled mode by default). > So I traced the driver and found the issue. > Thanks for the update. It is interesting to learn that this chip is still actively used. Guenter
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),
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(-)