Skip to content

Commit 0124dd7

Browse files
Jean DelvareMark M. Hoffman
Jean Delvare
authored and
Mark M. Hoffman
committed
hwmon: (it87) Add individual alarm files
The new libsensors needs this. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
1 parent f1d8e33 commit 0124dd7

File tree

1 file changed

+66
-9
lines changed

1 file changed

+66
-9
lines changed

drivers/hwmon/it87.c

+66-9
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
Sis950 A clone of the IT8705F
1919
2020
Copyright (C) 2001 Chris Gauthron
21-
Copyright (C) 2005-2006 Jean Delvare <khali@linux-fr.org>
21+
Copyright (C) 2005-2007 Jean Delvare <khali@linux-fr.org>
2222
2323
This program is free software; you can redistribute it and/or modify
2424
it under the terms of the GNU General Public License as published by
@@ -780,6 +780,30 @@ static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, ch
780780
}
781781
static DEVICE_ATTR(alarms, S_IRUGO, show_alarms, NULL);
782782

783+
static ssize_t show_alarm(struct device *dev, struct device_attribute *attr,
784+
char *buf)
785+
{
786+
int bitnr = to_sensor_dev_attr(attr)->index;
787+
struct it87_data *data = it87_update_device(dev);
788+
return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1);
789+
}
790+
static SENSOR_DEVICE_ATTR(in0_alarm, S_IRUGO, show_alarm, NULL, 8);
791+
static SENSOR_DEVICE_ATTR(in1_alarm, S_IRUGO, show_alarm, NULL, 9);
792+
static SENSOR_DEVICE_ATTR(in2_alarm, S_IRUGO, show_alarm, NULL, 10);
793+
static SENSOR_DEVICE_ATTR(in3_alarm, S_IRUGO, show_alarm, NULL, 11);
794+
static SENSOR_DEVICE_ATTR(in4_alarm, S_IRUGO, show_alarm, NULL, 12);
795+
static SENSOR_DEVICE_ATTR(in5_alarm, S_IRUGO, show_alarm, NULL, 13);
796+
static SENSOR_DEVICE_ATTR(in6_alarm, S_IRUGO, show_alarm, NULL, 14);
797+
static SENSOR_DEVICE_ATTR(in7_alarm, S_IRUGO, show_alarm, NULL, 15);
798+
static SENSOR_DEVICE_ATTR(fan1_alarm, S_IRUGO, show_alarm, NULL, 0);
799+
static SENSOR_DEVICE_ATTR(fan2_alarm, S_IRUGO, show_alarm, NULL, 1);
800+
static SENSOR_DEVICE_ATTR(fan3_alarm, S_IRUGO, show_alarm, NULL, 2);
801+
static SENSOR_DEVICE_ATTR(fan4_alarm, S_IRUGO, show_alarm, NULL, 3);
802+
static SENSOR_DEVICE_ATTR(fan5_alarm, S_IRUGO, show_alarm, NULL, 6);
803+
static SENSOR_DEVICE_ATTR(temp1_alarm, S_IRUGO, show_alarm, NULL, 16);
804+
static SENSOR_DEVICE_ATTR(temp2_alarm, S_IRUGO, show_alarm, NULL, 17);
805+
static SENSOR_DEVICE_ATTR(temp3_alarm, S_IRUGO, show_alarm, NULL, 18);
806+
783807
static ssize_t
784808
show_vrm_reg(struct device *dev, struct device_attribute *attr, char *buf)
785809
{
@@ -841,6 +865,14 @@ static struct attribute *it87_attributes[] = {
841865
&sensor_dev_attr_in5_max.dev_attr.attr,
842866
&sensor_dev_attr_in6_max.dev_attr.attr,
843867
&sensor_dev_attr_in7_max.dev_attr.attr,
868+
&sensor_dev_attr_in0_alarm.dev_attr.attr,
869+
&sensor_dev_attr_in1_alarm.dev_attr.attr,
870+
&sensor_dev_attr_in2_alarm.dev_attr.attr,
871+
&sensor_dev_attr_in3_alarm.dev_attr.attr,
872+
&sensor_dev_attr_in4_alarm.dev_attr.attr,
873+
&sensor_dev_attr_in5_alarm.dev_attr.attr,
874+
&sensor_dev_attr_in6_alarm.dev_attr.attr,
875+
&sensor_dev_attr_in7_alarm.dev_attr.attr,
844876

845877
&sensor_dev_attr_temp1_input.dev_attr.attr,
846878
&sensor_dev_attr_temp2_input.dev_attr.attr,
@@ -854,6 +886,9 @@ static struct attribute *it87_attributes[] = {
854886
&sensor_dev_attr_temp1_type.dev_attr.attr,
855887
&sensor_dev_attr_temp2_type.dev_attr.attr,
856888
&sensor_dev_attr_temp3_type.dev_attr.attr,
889+
&sensor_dev_attr_temp1_alarm.dev_attr.attr,
890+
&sensor_dev_attr_temp2_alarm.dev_attr.attr,
891+
&sensor_dev_attr_temp3_alarm.dev_attr.attr,
857892

858893
&dev_attr_alarms.attr,
859894
&dev_attr_name.attr,
@@ -886,6 +921,12 @@ static struct attribute *it87_attributes_opt[] = {
886921
&sensor_dev_attr_fan3_min.dev_attr.attr,
887922
&sensor_dev_attr_fan3_div.dev_attr.attr,
888923

924+
&sensor_dev_attr_fan1_alarm.dev_attr.attr,
925+
&sensor_dev_attr_fan2_alarm.dev_attr.attr,
926+
&sensor_dev_attr_fan3_alarm.dev_attr.attr,
927+
&sensor_dev_attr_fan4_alarm.dev_attr.attr,
928+
&sensor_dev_attr_fan5_alarm.dev_attr.attr,
929+
889930
&sensor_dev_attr_pwm1_enable.dev_attr.attr,
890931
&sensor_dev_attr_pwm2_enable.dev_attr.attr,
891932
&sensor_dev_attr_pwm3_enable.dev_attr.attr,
@@ -1031,35 +1072,45 @@ static int __devinit it87_probe(struct platform_device *pdev)
10311072
if ((err = device_create_file(dev,
10321073
&sensor_dev_attr_fan1_input16.dev_attr))
10331074
|| (err = device_create_file(dev,
1034-
&sensor_dev_attr_fan1_min16.dev_attr)))
1075+
&sensor_dev_attr_fan1_min16.dev_attr))
1076+
|| (err = device_create_file(dev,
1077+
&sensor_dev_attr_fan1_alarm.dev_attr)))
10351078
goto ERROR4;
10361079
}
10371080
if (data->has_fan & (1 << 1)) {
10381081
if ((err = device_create_file(dev,
10391082
&sensor_dev_attr_fan2_input16.dev_attr))
10401083
|| (err = device_create_file(dev,
1041-
&sensor_dev_attr_fan2_min16.dev_attr)))
1084+
&sensor_dev_attr_fan2_min16.dev_attr))
1085+
|| (err = device_create_file(dev,
1086+
&sensor_dev_attr_fan2_alarm.dev_attr)))
10421087
goto ERROR4;
10431088
}
10441089
if (data->has_fan & (1 << 2)) {
10451090
if ((err = device_create_file(dev,
10461091
&sensor_dev_attr_fan3_input16.dev_attr))
10471092
|| (err = device_create_file(dev,
1048-
&sensor_dev_attr_fan3_min16.dev_attr)))
1093+
&sensor_dev_attr_fan3_min16.dev_attr))
1094+
|| (err = device_create_file(dev,
1095+
&sensor_dev_attr_fan3_alarm.dev_attr)))
10491096
goto ERROR4;
10501097
}
10511098
if (data->has_fan & (1 << 3)) {
10521099
if ((err = device_create_file(dev,
10531100
&sensor_dev_attr_fan4_input16.dev_attr))
10541101
|| (err = device_create_file(dev,
1055-
&sensor_dev_attr_fan4_min16.dev_attr)))
1102+
&sensor_dev_attr_fan4_min16.dev_attr))
1103+
|| (err = device_create_file(dev,
1104+
&sensor_dev_attr_fan4_alarm.dev_attr)))
10561105
goto ERROR4;
10571106
}
10581107
if (data->has_fan & (1 << 4)) {
10591108
if ((err = device_create_file(dev,
10601109
&sensor_dev_attr_fan5_input16.dev_attr))
10611110
|| (err = device_create_file(dev,
1062-
&sensor_dev_attr_fan5_min16.dev_attr)))
1111+
&sensor_dev_attr_fan5_min16.dev_attr))
1112+
|| (err = device_create_file(dev,
1113+
&sensor_dev_attr_fan5_alarm.dev_attr)))
10631114
goto ERROR4;
10641115
}
10651116
} else {
@@ -1070,7 +1121,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
10701121
|| (err = device_create_file(dev,
10711122
&sensor_dev_attr_fan1_min.dev_attr))
10721123
|| (err = device_create_file(dev,
1073-
&sensor_dev_attr_fan1_div.dev_attr)))
1124+
&sensor_dev_attr_fan1_div.dev_attr))
1125+
|| (err = device_create_file(dev,
1126+
&sensor_dev_attr_fan1_alarm.dev_attr)))
10741127
goto ERROR4;
10751128
}
10761129
if (data->has_fan & (1 << 1)) {
@@ -1079,7 +1132,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
10791132
|| (err = device_create_file(dev,
10801133
&sensor_dev_attr_fan2_min.dev_attr))
10811134
|| (err = device_create_file(dev,
1082-
&sensor_dev_attr_fan2_div.dev_attr)))
1135+
&sensor_dev_attr_fan2_div.dev_attr))
1136+
|| (err = device_create_file(dev,
1137+
&sensor_dev_attr_fan2_alarm.dev_attr)))
10831138
goto ERROR4;
10841139
}
10851140
if (data->has_fan & (1 << 2)) {
@@ -1088,7 +1143,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
10881143
|| (err = device_create_file(dev,
10891144
&sensor_dev_attr_fan3_min.dev_attr))
10901145
|| (err = device_create_file(dev,
1091-
&sensor_dev_attr_fan3_div.dev_attr)))
1146+
&sensor_dev_attr_fan3_div.dev_attr))
1147+
|| (err = device_create_file(dev,
1148+
&sensor_dev_attr_fan3_alarm.dev_attr)))
10921149
goto ERROR4;
10931150
}
10941151
}

0 commit comments

Comments
 (0)