On Wed, Feb 22, 2012 at 05:14:22PM -0800, Guenter Roeck wrote: > On Wed, Feb 22, 2012 at 05:18:44PM -0500, Nikolaus Schulz wrote: > > From: Nikolaus Schulz <schulz@xxxxxxxxxxx> > > > > By hwmon sysfs interface convention, setting pwm_enable to zero sets a fan > > to full speed. In the f75375s driver, this need be done by enabling > > manual fan control, plus duty mode for the F875387 chip, and then setting > > the maximum duty cycle. Fix a bug where the two necessary register writes > > were swapped, effectively discarding the setting to full-speed. > > > > Signed-off-by: Nikolaus Schulz <mail@xxxxxxxxxxxxxx> > > --- > > drivers/hwmon/f75375s.c | 7 +++---- > > 1 files changed, 3 insertions(+), 4 deletions(-) > > > Nikolaus, > > this patch modifies register write order for the other chips as well. > Does that have any impact on the other chips ? Or, in other words, > is this patch also necessary for stable ? I think so, although I have tested it only on the F75387. (For stable kernels it needs to be backported.) Nikolaus > > diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c > > index faf66c8..5dae122 100644 > > --- a/drivers/hwmon/f75375s.c > > +++ b/drivers/hwmon/f75375s.c > > @@ -340,8 +340,6 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val) > > fanmode |= (1 << F75387_FAN_MANU_MODE(nr)); > > fanmode |= (1 << F75387_FAN_DUTY_MODE(nr)); > > data->pwm[nr] = 255; > > - f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), > > - data->pwm[nr]); > > break; > > case 1: /* PWM */ > > fanmode |= (1 << F75387_FAN_MANU_MODE(nr)); > > @@ -361,8 +359,6 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val) > > case 0: /* full speed */ > > fanmode |= (3 << FAN_CTRL_MODE(nr)); > > data->pwm[nr] = 255; > > - f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), > > - data->pwm[nr]); > > break; > > case 1: /* PWM */ > > fanmode |= (3 << FAN_CTRL_MODE(nr)); > > @@ -377,6 +373,9 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val) > > > > f75375_write8(client, F75375_REG_FAN_TIMER, fanmode); > > data->pwm_enable[nr] = val; > > + if (val == 0) > > + f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr), > > + data->pwm[nr]); > > return 0; > > } > > > > -- > > 1.7.9.1 > > > _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors