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 | ||
