Skip to content

Commit 1282ab3

Browse files
committed
Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Couple of regressions, couple of zero-day bugs, a minor enhancement. Nothing really major. * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (f75375s) Let f75375_update_device treat pwmX as a measured value hwmon: (f75375s) Fix bit shifting in f75375_write16 hwmon: (f75375s) Fix reading of wrong register when initializing the F75387 hwmon: (f75375s) Fix automatic pwm mode setting for F75373 & F75375 hwmon: (w83627ehf) Remove duplicate code
2 parents 19e00f2 + a1c1baf commit 1282ab3

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

drivers/hwmon/f75375s.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ static inline void f75375_write8(struct i2c_client *client, u8 reg,
172172
static inline void f75375_write16(struct i2c_client *client, u8 reg,
173173
u16 value)
174174
{
175-
int err = i2c_smbus_write_byte_data(client, reg, (value << 8));
175+
int err = i2c_smbus_write_byte_data(client, reg, (value >> 8));
176176
if (err)
177177
return;
178178
i2c_smbus_write_byte_data(client, reg + 1, (value & 0xFF));
@@ -200,9 +200,6 @@ static struct f75375_data *f75375_update_device(struct device *dev)
200200
f75375_read16(client, F75375_REG_FAN_MIN(nr));
201201
data->fan_target[nr] =
202202
f75375_read16(client, F75375_REG_FAN_EXP(nr));
203-
data->pwm[nr] = f75375_read8(client,
204-
F75375_REG_FAN_PWM_DUTY(nr));
205-
206203
}
207204
for (nr = 0; nr < 4; nr++) {
208205
data->in_max[nr] =
@@ -218,6 +215,8 @@ static struct f75375_data *f75375_update_device(struct device *dev)
218215
if (time_after(jiffies, data->last_updated + 2 * HZ)
219216
|| !data->valid) {
220217
for (nr = 0; nr < 2; nr++) {
218+
data->pwm[nr] = f75375_read8(client,
219+
F75375_REG_FAN_PWM_DUTY(nr));
221220
/* assign MSB, therefore shift it by 8 bits */
222221
data->temp11[nr] =
223222
f75375_read8(client, F75375_REG_TEMP(nr)) << 8;
@@ -369,7 +368,7 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val)
369368
fanmode |= (3 << FAN_CTRL_MODE(nr));
370369
break;
371370
case 2: /* AUTOMATIC*/
372-
fanmode |= (2 << FAN_CTRL_MODE(nr));
371+
fanmode |= (1 << FAN_CTRL_MODE(nr));
373372
break;
374373
case 3: /* fan speed */
375374
break;
@@ -723,7 +722,7 @@ static void f75375_init(struct i2c_client *client, struct f75375_data *data,
723722
if (data->kind == f75387) {
724723
bool manu, duty;
725724

726-
if (!(conf & (1 << F75387_FAN_CTRL_LINEAR(nr))))
725+
if (!(mode & (1 << F75387_FAN_CTRL_LINEAR(nr))))
727726
data->pwm_mode[nr] = 1;
728727

729728
manu = ((mode >> F75387_FAN_MANU_MODE(nr)) & 1);

drivers/hwmon/w83627ehf.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2349,11 +2349,6 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
23492349
/* Read fan clock dividers immediately */
23502350
w83627ehf_update_fan_div_common(dev, data);
23512351

2352-
/* Read pwm data to save original values */
2353-
w83627ehf_update_pwm_common(dev, data);
2354-
for (i = 0; i < data->pwm_num; i++)
2355-
data->pwm_enable_orig[i] = data->pwm_enable[i];
2356-
23572352
/* Read pwm data to save original values */
23582353
w83627ehf_update_pwm_common(dev, data);
23592354
for (i = 0; i < data->pwm_num; i++)

0 commit comments

Comments
 (0)