+1
-2
drivers/hwmon/ads1015.c
+1
-2
drivers/hwmon/ads1015.c
···
271
271
continue;
272
272
err = device_create_file(&client->dev, &ads1015_in[k].dev_attr);
273
273
if (err)
274
-
goto exit_free;
274
+
goto exit_remove;
275
275
}
276
276
277
277
data->hwmon_dev = hwmon_device_register(&client->dev);
···
285
285
exit_remove:
286
286
for (k = 0; k < ADS1015_CHANNELS; ++k)
287
287
device_remove_file(&client->dev, &ads1015_in[k].dev_attr);
288
-
exit_free:
289
288
kfree(data);
290
289
exit:
291
290
return err;
+3
-4
drivers/hwmon/f75375s.c
+3
-4
drivers/hwmon/f75375s.c
···
340
340
fanmode |= (1 << F75387_FAN_MANU_MODE(nr));
341
341
fanmode |= (1 << F75387_FAN_DUTY_MODE(nr));
342
342
data->pwm[nr] = 255;
343
-
f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
344
-
data->pwm[nr]);
345
343
break;
346
344
case 1: /* PWM */
347
345
fanmode |= (1 << F75387_FAN_MANU_MODE(nr));
···
359
361
case 0: /* full speed */
360
362
fanmode |= (3 << FAN_CTRL_MODE(nr));
361
363
data->pwm[nr] = 255;
362
-
f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
363
-
data->pwm[nr]);
364
364
break;
365
365
case 1: /* PWM */
366
366
fanmode |= (3 << FAN_CTRL_MODE(nr));
···
373
377
374
378
f75375_write8(client, F75375_REG_FAN_TIMER, fanmode);
375
379
data->pwm_enable[nr] = val;
380
+
if (val == 0)
381
+
f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
382
+
data->pwm[nr]);
376
383
return 0;
377
384
}
378
385
+12
-10
drivers/hwmon/max6639.c
+12
-10
drivers/hwmon/max6639.c
···
72
72
73
73
static const int rpm_ranges[] = { 2000, 4000, 8000, 16000 };
74
74
75
-
#define FAN_FROM_REG(val, div, rpm_range) ((val) == 0 ? -1 : \
76
-
(val) == 255 ? 0 : (rpm_ranges[rpm_range] * 30) / ((div + 1) * (val)))
75
+
#define FAN_FROM_REG(val, rpm_range) ((val) == 0 || (val) == 255 ? \
76
+
0 : (rpm_ranges[rpm_range] * 30) / (val))
77
77
#define TEMP_LIMIT_TO_REG(val) SENSORS_LIMIT((val) / 1000, 0, 255)
78
78
79
79
/*
···
333
333
return PTR_ERR(data);
334
334
335
335
return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index],
336
-
data->ppr, data->rpm_range));
336
+
data->rpm_range));
337
337
}
338
338
339
339
static ssize_t show_alarm(struct device *dev,
···
429
429
struct max6639_data *data = i2c_get_clientdata(client);
430
430
struct max6639_platform_data *max6639_info =
431
431
client->dev.platform_data;
432
-
int i = 0;
432
+
int i;
433
433
int rpm_range = 1; /* default: 4000 RPM */
434
-
int err = 0;
434
+
int err;
435
435
436
436
/* Reset chip to default values, see below for GCONFIG setup */
437
437
err = i2c_smbus_write_byte_data(client, MAX6639_REG_GCONFIG,
···
446
446
else
447
447
data->ppr = 2;
448
448
data->ppr -= 1;
449
-
err = i2c_smbus_write_byte_data(client,
450
-
MAX6639_REG_FAN_PPR(i),
451
-
data->ppr << 5);
452
-
if (err)
453
-
goto exit;
454
449
455
450
if (max6639_info)
456
451
rpm_range = rpm_range_to_reg(max6639_info->rpm_range);
457
452
data->rpm_range = rpm_range;
458
453
459
454
for (i = 0; i < 2; i++) {
455
+
456
+
/* Set Fan pulse per revolution */
457
+
err = i2c_smbus_write_byte_data(client,
458
+
MAX6639_REG_FAN_PPR(i),
459
+
data->ppr << 6);
460
+
if (err)
461
+
goto exit;
460
462
461
463
/* Fans config PWM, RPM */
462
464
err = i2c_smbus_write_byte_data(client,