diff options
| -rw-r--r-- | drivers/hwmon/lm85.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c index a02480be65f2..194b8fb52f0e 100644 --- a/drivers/hwmon/lm85.c +++ b/drivers/hwmon/lm85.c | |||
| @@ -519,10 +519,21 @@ static ssize_t show_pwm_enable(struct device *dev, struct device_attribute | |||
| 519 | { | 519 | { |
| 520 | int nr = to_sensor_dev_attr(attr)->index; | 520 | int nr = to_sensor_dev_attr(attr)->index; |
| 521 | struct lm85_data *data = lm85_update_device(dev); | 521 | struct lm85_data *data = lm85_update_device(dev); |
| 522 | int pwm_zone; | 522 | int pwm_zone, enable; |
| 523 | 523 | ||
| 524 | pwm_zone = ZONE_FROM_REG(data->autofan[nr].config); | 524 | pwm_zone = ZONE_FROM_REG(data->autofan[nr].config); |
| 525 | return sprintf(buf,"%d\n", (pwm_zone != 0 && pwm_zone != -1) ); | 525 | switch (pwm_zone) { |
| 526 | case -1: /* PWM is always at 100% */ | ||
| 527 | enable = 0; | ||
| 528 | break; | ||
| 529 | case 0: /* PWM is always at 0% */ | ||
| 530 | case -2: /* PWM responds to manual control */ | ||
| 531 | enable = 1; | ||
| 532 | break; | ||
| 533 | default: /* PWM in automatic mode */ | ||
| 534 | enable = 2; | ||
| 535 | } | ||
| 536 | return sprintf(buf, "%d\n", enable); | ||
| 526 | } | 537 | } |
| 527 | 538 | ||
| 528 | #define show_pwm_reg(offset) \ | 539 | #define show_pwm_reg(offset) \ |
