diff options
-rw-r--r-- | drivers/hwmon/sis5595.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/drivers/hwmon/sis5595.c b/drivers/hwmon/sis5595.c index 7e2d9787babc..9b04d226111a 100644 --- a/drivers/hwmon/sis5595.c +++ b/drivers/hwmon/sis5595.c | |||
@@ -435,6 +435,22 @@ static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, ch | |||
435 | } | 435 | } |
436 | static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL); | 436 | static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL); |
437 | 437 | ||
438 | static ssize_t show_alarm(struct device *dev, struct device_attribute *da, | ||
439 | char *buf) | ||
440 | { | ||
441 | struct sis5595_data *data = sis5595_update_device(dev); | ||
442 | int nr = to_sensor_dev_attr(da)->index; | ||
443 | return sprintf(buf, "%u\n", (data->alarms >> nr) & 1); | ||
444 | } | ||
445 | static SENSOR_DEVICE_ATTR(in0_alarm, S_IRUGO, show_alarm, NULL, 0); | ||
446 | static SENSOR_DEVICE_ATTR(in1_alarm, S_IRUGO, show_alarm, NULL, 1); | ||
447 | static SENSOR_DEVICE_ATTR(in2_alarm, S_IRUGO, show_alarm, NULL, 2); | ||
448 | static SENSOR_DEVICE_ATTR(in3_alarm, S_IRUGO, show_alarm, NULL, 3); | ||
449 | static SENSOR_DEVICE_ATTR(in4_alarm, S_IRUGO, show_alarm, NULL, 15); | ||
450 | static SENSOR_DEVICE_ATTR(fan1_alarm, S_IRUGO, show_alarm, NULL, 6); | ||
451 | static SENSOR_DEVICE_ATTR(fan2_alarm, S_IRUGO, show_alarm, NULL, 7); | ||
452 | static SENSOR_DEVICE_ATTR(temp1_alarm, S_IRUGO, show_alarm, NULL, 15); | ||
453 | |||
438 | static ssize_t show_name(struct device *dev, struct device_attribute *attr, | 454 | static ssize_t show_name(struct device *dev, struct device_attribute *attr, |
439 | char *buf) | 455 | char *buf) |
440 | { | 456 | { |
@@ -447,22 +463,28 @@ static struct attribute *sis5595_attributes[] = { | |||
447 | &sensor_dev_attr_in0_input.dev_attr.attr, | 463 | &sensor_dev_attr_in0_input.dev_attr.attr, |
448 | &sensor_dev_attr_in0_min.dev_attr.attr, | 464 | &sensor_dev_attr_in0_min.dev_attr.attr, |
449 | &sensor_dev_attr_in0_max.dev_attr.attr, | 465 | &sensor_dev_attr_in0_max.dev_attr.attr, |
466 | &sensor_dev_attr_in0_alarm.dev_attr.attr, | ||
450 | &sensor_dev_attr_in1_input.dev_attr.attr, | 467 | &sensor_dev_attr_in1_input.dev_attr.attr, |
451 | &sensor_dev_attr_in1_min.dev_attr.attr, | 468 | &sensor_dev_attr_in1_min.dev_attr.attr, |
452 | &sensor_dev_attr_in1_max.dev_attr.attr, | 469 | &sensor_dev_attr_in1_max.dev_attr.attr, |
470 | &sensor_dev_attr_in1_alarm.dev_attr.attr, | ||
453 | &sensor_dev_attr_in2_input.dev_attr.attr, | 471 | &sensor_dev_attr_in2_input.dev_attr.attr, |
454 | &sensor_dev_attr_in2_min.dev_attr.attr, | 472 | &sensor_dev_attr_in2_min.dev_attr.attr, |
455 | &sensor_dev_attr_in2_max.dev_attr.attr, | 473 | &sensor_dev_attr_in2_max.dev_attr.attr, |
474 | &sensor_dev_attr_in2_alarm.dev_attr.attr, | ||
456 | &sensor_dev_attr_in3_input.dev_attr.attr, | 475 | &sensor_dev_attr_in3_input.dev_attr.attr, |
457 | &sensor_dev_attr_in3_min.dev_attr.attr, | 476 | &sensor_dev_attr_in3_min.dev_attr.attr, |
458 | &sensor_dev_attr_in3_max.dev_attr.attr, | 477 | &sensor_dev_attr_in3_max.dev_attr.attr, |
478 | &sensor_dev_attr_in3_alarm.dev_attr.attr, | ||
459 | 479 | ||
460 | &sensor_dev_attr_fan1_input.dev_attr.attr, | 480 | &sensor_dev_attr_fan1_input.dev_attr.attr, |
461 | &sensor_dev_attr_fan1_min.dev_attr.attr, | 481 | &sensor_dev_attr_fan1_min.dev_attr.attr, |
462 | &sensor_dev_attr_fan1_div.dev_attr.attr, | 482 | &sensor_dev_attr_fan1_div.dev_attr.attr, |
483 | &sensor_dev_attr_fan1_alarm.dev_attr.attr, | ||
463 | &sensor_dev_attr_fan2_input.dev_attr.attr, | 484 | &sensor_dev_attr_fan2_input.dev_attr.attr, |
464 | &sensor_dev_attr_fan2_min.dev_attr.attr, | 485 | &sensor_dev_attr_fan2_min.dev_attr.attr, |
465 | &sensor_dev_attr_fan2_div.dev_attr.attr, | 486 | &sensor_dev_attr_fan2_div.dev_attr.attr, |
487 | &sensor_dev_attr_fan2_alarm.dev_attr.attr, | ||
466 | 488 | ||
467 | &dev_attr_alarms.attr, | 489 | &dev_attr_alarms.attr, |
468 | &dev_attr_name.attr, | 490 | &dev_attr_name.attr, |
@@ -477,10 +499,12 @@ static struct attribute *sis5595_attributes_opt[] = { | |||
477 | &sensor_dev_attr_in4_input.dev_attr.attr, | 499 | &sensor_dev_attr_in4_input.dev_attr.attr, |
478 | &sensor_dev_attr_in4_min.dev_attr.attr, | 500 | &sensor_dev_attr_in4_min.dev_attr.attr, |
479 | &sensor_dev_attr_in4_max.dev_attr.attr, | 501 | &sensor_dev_attr_in4_max.dev_attr.attr, |
502 | &sensor_dev_attr_in4_alarm.dev_attr.attr, | ||
480 | 503 | ||
481 | &dev_attr_temp1_input.attr, | 504 | &dev_attr_temp1_input.attr, |
482 | &dev_attr_temp1_max.attr, | 505 | &dev_attr_temp1_max.attr, |
483 | &dev_attr_temp1_max_hyst.attr, | 506 | &dev_attr_temp1_max_hyst.attr, |
507 | &sensor_dev_attr_temp1_alarm.dev_attr.attr, | ||
484 | NULL | 508 | NULL |
485 | }; | 509 | }; |
486 | 510 | ||
@@ -545,7 +569,9 @@ static int __devinit sis5595_probe(struct platform_device *pdev) | |||
545 | || (err = device_create_file(&pdev->dev, | 569 | || (err = device_create_file(&pdev->dev, |
546 | &sensor_dev_attr_in4_min.dev_attr)) | 570 | &sensor_dev_attr_in4_min.dev_attr)) |
547 | || (err = device_create_file(&pdev->dev, | 571 | || (err = device_create_file(&pdev->dev, |
548 | &sensor_dev_attr_in4_max.dev_attr))) | 572 | &sensor_dev_attr_in4_max.dev_attr)) |
573 | || (err = device_create_file(&pdev->dev, | ||
574 | &sensor_dev_attr_in4_alarm.dev_attr))) | ||
549 | goto exit_remove_files; | 575 | goto exit_remove_files; |
550 | } else { | 576 | } else { |
551 | if ((err = device_create_file(&pdev->dev, | 577 | if ((err = device_create_file(&pdev->dev, |
@@ -553,7 +579,9 @@ static int __devinit sis5595_probe(struct platform_device *pdev) | |||
553 | || (err = device_create_file(&pdev->dev, | 579 | || (err = device_create_file(&pdev->dev, |
554 | &dev_attr_temp1_max)) | 580 | &dev_attr_temp1_max)) |
555 | || (err = device_create_file(&pdev->dev, | 581 | || (err = device_create_file(&pdev->dev, |
556 | &dev_attr_temp1_max_hyst))) | 582 | &dev_attr_temp1_max_hyst)) |
583 | || (err = device_create_file(&pdev->dev, | ||
584 | &sensor_dev_attr_temp1_alarm.dev_attr))) | ||
557 | goto exit_remove_files; | 585 | goto exit_remove_files; |
558 | } | 586 | } |
559 | 587 | ||