mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 15:50:59 +07:00
hwmon: (w83l786ng) Fix fan speed control mode setting and reporting
The wrong mask is used, which causes some fan speed control modes (pwmX_enable) to be incorrectly reported, and some modes to be impossible to set. [JD: add subject and description.] Signed-off-by: Brian Carnes <bmcarnes@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
3d489ac07e
commit
cf7559bc05
@ -510,7 +510,7 @@ store_pwm_enable(struct device *dev, struct device_attribute *attr,
|
||||
mutex_lock(&data->update_lock);
|
||||
reg = w83l786ng_read_value(client, W83L786NG_REG_FAN_CFG);
|
||||
data->pwm_enable[nr] = val;
|
||||
reg &= ~(0x02 << W83L786NG_PWM_ENABLE_SHIFT[nr]);
|
||||
reg &= ~(0x03 << W83L786NG_PWM_ENABLE_SHIFT[nr]);
|
||||
reg |= (val - 1) << W83L786NG_PWM_ENABLE_SHIFT[nr];
|
||||
w83l786ng_write_value(client, W83L786NG_REG_FAN_CFG, reg);
|
||||
mutex_unlock(&data->update_lock);
|
||||
@ -776,7 +776,7 @@ static struct w83l786ng_data *w83l786ng_update_device(struct device *dev)
|
||||
((pwmcfg >> W83L786NG_PWM_MODE_SHIFT[i]) & 1)
|
||||
? 0 : 1;
|
||||
data->pwm_enable[i] =
|
||||
((pwmcfg >> W83L786NG_PWM_ENABLE_SHIFT[i]) & 2) + 1;
|
||||
((pwmcfg >> W83L786NG_PWM_ENABLE_SHIFT[i]) & 3) + 1;
|
||||
data->pwm[i] = w83l786ng_read_value(client,
|
||||
W83L786NG_REG_PWM[i]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user