Commit 1f08af7ea95e0f4ec632664b9f21a687426df658
Committed by
Mark M. Hoffman
1 parent
71062ffcd5
Exists in
master
and in
7 other branches
hwmon: (smsc47m1) Add individual alarm files
The new libsensors needs these individual alarm files. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Juerg Haefliger <juergh at gmail.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Showing 1 changed file with 22 additions and 3 deletions Side-by-side Diff
drivers/hwmon/smsc47m1.c
... | ... | @@ -198,6 +198,14 @@ |
198 | 198 | return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[attr->index])); |
199 | 199 | } |
200 | 200 | |
201 | +static ssize_t get_fan_alarm(struct device *dev, struct device_attribute | |
202 | + *devattr, char *buf) | |
203 | +{ | |
204 | + int bitnr = to_sensor_dev_attr(devattr)->index; | |
205 | + struct smsc47m1_data *data = smsc47m1_update_device(dev, 0); | |
206 | + return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1); | |
207 | +} | |
208 | + | |
201 | 209 | static ssize_t get_pwm(struct device *dev, struct device_attribute |
202 | 210 | *devattr, char *buf) |
203 | 211 | { |
... | ... | @@ -347,6 +355,8 @@ |
347 | 355 | get_fan_min, set_fan_min, offset - 1); \ |
348 | 356 | static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \ |
349 | 357 | get_fan_div, set_fan_div, offset - 1); \ |
358 | +static SENSOR_DEVICE_ATTR(fan##offset##_alarm, S_IRUGO, get_fan_alarm, \ | |
359 | + NULL, offset - 1); \ | |
350 | 360 | static SENSOR_DEVICE_ATTR(pwm##offset, S_IRUGO | S_IWUSR, \ |
351 | 361 | get_pwm, set_pwm, offset - 1); \ |
352 | 362 | static SENSOR_DEVICE_ATTR(pwm##offset##_enable, S_IRUGO | S_IWUSR, \ |
353 | 363 | |
354 | 364 | |
... | ... | @@ -374,12 +384,15 @@ |
374 | 384 | &sensor_dev_attr_fan1_input.dev_attr.attr, |
375 | 385 | &sensor_dev_attr_fan1_min.dev_attr.attr, |
376 | 386 | &sensor_dev_attr_fan1_div.dev_attr.attr, |
387 | + &sensor_dev_attr_fan1_alarm.dev_attr.attr, | |
377 | 388 | &sensor_dev_attr_fan2_input.dev_attr.attr, |
378 | 389 | &sensor_dev_attr_fan2_min.dev_attr.attr, |
379 | 390 | &sensor_dev_attr_fan2_div.dev_attr.attr, |
391 | + &sensor_dev_attr_fan2_alarm.dev_attr.attr, | |
380 | 392 | &sensor_dev_attr_fan3_input.dev_attr.attr, |
381 | 393 | &sensor_dev_attr_fan3_min.dev_attr.attr, |
382 | 394 | &sensor_dev_attr_fan3_div.dev_attr.attr, |
395 | + &sensor_dev_attr_fan3_alarm.dev_attr.attr, | |
383 | 396 | |
384 | 397 | &sensor_dev_attr_pwm1.dev_attr.attr, |
385 | 398 | &sensor_dev_attr_pwm1_enable.dev_attr.attr, |
... | ... | @@ -533,7 +546,9 @@ |
533 | 546 | || (err = device_create_file(dev, |
534 | 547 | &sensor_dev_attr_fan1_min.dev_attr)) |
535 | 548 | || (err = device_create_file(dev, |
536 | - &sensor_dev_attr_fan1_div.dev_attr))) | |
549 | + &sensor_dev_attr_fan1_div.dev_attr)) | |
550 | + || (err = device_create_file(dev, | |
551 | + &sensor_dev_attr_fan1_alarm.dev_attr))) | |
537 | 552 | goto error_remove_files; |
538 | 553 | } else |
539 | 554 | dev_dbg(dev, "Fan 1 not enabled by hardware, skipping\n"); |
... | ... | @@ -544,7 +559,9 @@ |
544 | 559 | || (err = device_create_file(dev, |
545 | 560 | &sensor_dev_attr_fan2_min.dev_attr)) |
546 | 561 | || (err = device_create_file(dev, |
547 | - &sensor_dev_attr_fan2_div.dev_attr))) | |
562 | + &sensor_dev_attr_fan2_div.dev_attr)) | |
563 | + || (err = device_create_file(dev, | |
564 | + &sensor_dev_attr_fan2_alarm.dev_attr))) | |
548 | 565 | goto error_remove_files; |
549 | 566 | } else |
550 | 567 | dev_dbg(dev, "Fan 2 not enabled by hardware, skipping\n"); |
... | ... | @@ -555,7 +572,9 @@ |
555 | 572 | || (err = device_create_file(dev, |
556 | 573 | &sensor_dev_attr_fan3_min.dev_attr)) |
557 | 574 | || (err = device_create_file(dev, |
558 | - &sensor_dev_attr_fan3_div.dev_attr))) | |
575 | + &sensor_dev_attr_fan3_div.dev_attr)) | |
576 | + || (err = device_create_file(dev, | |
577 | + &sensor_dev_attr_fan3_alarm.dev_attr))) | |
559 | 578 | goto error_remove_files; |
560 | 579 | } else if (data->type == smsc47m2) |
561 | 580 | dev_dbg(dev, "Fan 3 not enabled by hardware, skipping\n"); |