* [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes
@ 2012-01-13 14:51 Jean Delvare
2012-01-13 15:13 ` Guenter Roeck
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jean Delvare @ 2012-01-13 14:51 UTC (permalink / raw)
To: lm-sensors
Add support for fan[1-*]_max, fan[1-*]_min_alarm and fan[1-*]_max_alarm
attributes. These are defined in the standard sysfs interface for quite
some time, and at least three drivers (max6650, lm63 and applesmc)
implement them so we should support them.
---
doc/libsensors-API.txt | 3 +++
lib/sensors.h | 3 +++
lib/sysfs.c | 3 +++
prog/sensors/chips.c | 38 +++++++++++++++++++++++++-------------
4 files changed, 34 insertions(+), 13 deletions(-)
--- lm-sensors.orig/lib/sensors.h 2012-01-09 18:33:55.000000000 +0100
+++ lm-sensors/lib/sensors.h 2012-01-13 13:48:42.000000000 +0100
@@ -169,11 +169,14 @@ typedef enum sensors_subfeature_type {
SENSORS_SUBFEATURE_FAN_INPUT = SENSORS_FEATURE_FAN << 8,
SENSORS_SUBFEATURE_FAN_MIN,
+ SENSORS_SUBFEATURE_FAN_MAX,
SENSORS_SUBFEATURE_FAN_ALARM = (SENSORS_FEATURE_FAN << 8) | 0x80,
SENSORS_SUBFEATURE_FAN_FAULT,
SENSORS_SUBFEATURE_FAN_DIV,
SENSORS_SUBFEATURE_FAN_BEEP,
SENSORS_SUBFEATURE_FAN_PULSES,
+ SENSORS_SUBFEATURE_FAN_MIN_ALARM,
+ SENSORS_SUBFEATURE_FAN_MAX_ALARM,
SENSORS_SUBFEATURE_TEMP_INPUT = SENSORS_FEATURE_TEMP << 8,
SENSORS_SUBFEATURE_TEMP_MAX,
--- lm-sensors.orig/lib/sysfs.c 2012-01-09 18:33:55.000000000 +0100
+++ lm-sensors/lib/sysfs.c 2012-01-13 13:49:18.000000000 +0100
@@ -269,9 +269,12 @@ static const struct subfeature_type_matc
static const struct subfeature_type_match fan_matches[] = {
{ "input", SENSORS_SUBFEATURE_FAN_INPUT },
{ "min", SENSORS_SUBFEATURE_FAN_MIN },
+ { "max", SENSORS_SUBFEATURE_FAN_MAX },
{ "div", SENSORS_SUBFEATURE_FAN_DIV },
{ "pulses", SENSORS_SUBFEATURE_FAN_PULSES },
{ "alarm", SENSORS_SUBFEATURE_FAN_ALARM },
+ { "min_alarm", SENSORS_SUBFEATURE_FAN_MIN_ALARM },
+ { "max_alarm", SENSORS_SUBFEATURE_FAN_MAX_ALARM },
{ "fault", SENSORS_SUBFEATURE_FAN_FAULT },
{ "beep", SENSORS_SUBFEATURE_FAN_BEEP },
{ NULL, 0 }
--- lm-sensors.orig/prog/sensors/chips.c 2012-01-13 10:40:50.000000000 +0100
+++ lm-sensors/prog/sensors/chips.c 2012-01-13 15:41:58.000000000 +0100
@@ -408,7 +408,7 @@ static void print_chip_fan(const sensors
const sensors_feature *feature,
int label_size)
{
- const sensors_subfeature *sf, *sfmin, *sfdiv;
+ const sensors_subfeature *sf, *sfmin, *sfmax, *sfdiv;
double val;
char *label;
@@ -435,24 +435,36 @@ static void print_chip_fan(const sensors
sfmin = sensors_get_subfeature(name, feature,
SENSORS_SUBFEATURE_FAN_MIN);
+ sfmax = sensors_get_subfeature(name, feature,
+ SENSORS_SUBFEATURE_FAN_MAX);
sfdiv = sensors_get_subfeature(name, feature,
SENSORS_SUBFEATURE_FAN_DIV);
- if (sfmin && sfdiv)
- printf(" (min = %4.0f RPM, div = %1.0f)",
- get_value(name, sfmin),
- get_value(name, sfdiv));
- else if (sfmin)
- printf(" (min = %4.0f RPM)",
- get_value(name, sfmin));
- else if (sfdiv)
- printf(" (div = %1.0f)",
- get_value(name, sfdiv));
+ if (sfmin || sfmax || sfdiv) {
+ printf(" (");
+ if (sfmin)
+ printf("min = %4.0f RPM",
+ get_value(name, sfmin));
+ if (sfmax)
+ printf("%smax = %4.0f RPM",
+ sfmin ? ", " : "",
+ get_value(name, sfmax));
+ if (sfdiv)
+ printf("%sdiv = %1.0f",
+ (sfmin || sfmax) ? ", " : "",
+ get_value(name, sfdiv));
+ printf(")");
+ }
sf = sensors_get_subfeature(name, feature,
SENSORS_SUBFEATURE_FAN_ALARM);
- if (sf && get_value(name, sf)) {
+ sfmin = sensors_get_subfeature(name, feature,
+ SENSORS_SUBFEATURE_FAN_MIN_ALARM);
+ sfmax = sensors_get_subfeature(name, feature,
+ SENSORS_SUBFEATURE_FAN_MAX_ALARM);
+ if ((sf && get_value(name, sf)) ||
+ (sfmin && get_value(name, sfmin)) ||
+ (sfmax && get_value(name, sfmax)))
printf(" ALARM");
- }
printf("\n");
}
--- lm-sensors.orig/doc/libsensors-API.txt 2012-01-09 18:33:55.000000000 +0100
+++ lm-sensors/doc/libsensors-API.txt 2012-01-13 15:47:52.000000000 +0100
@@ -16,6 +16,9 @@ SVN HEAD
enum sensors_subfeature_type SENSORS_SUBFEATURE_CURR_AVERAGE
enum sensors_subfeature_type SENSORS_SUBFEATURE_CURR_LOWEST
enum sensors_subfeature_type SENSORS_SUBFEATURE_CURR_HIGHEST
+ enum sensors_subfeature_type SENSORS_SUBFEATURE_FAN_MAX
+ enum sensors_subfeature_type SENSORS_SUBFEATURE_FAN_MIN_ALARM
+ enum sensors_subfeature_type SENSORS_SUBFEATURE_FAN_MAX_ALARM
0x431 lm-sensors 3.3.0 to 3.3.1
* Added support for intrusion detection
enum sensors_feature_type SENSORS_FEATURE_INTRUSION
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes
2012-01-13 14:51 [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes Jean Delvare
@ 2012-01-13 15:13 ` Guenter Roeck
2012-01-13 15:21 ` Jean Delvare
2012-01-13 16:04 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2012-01-13 15:13 UTC (permalink / raw)
To: lm-sensors
On Fri, Jan 13, 2012 at 09:51:00AM -0500, Jean Delvare wrote:
> Add support for fan[1-*]_max, fan[1-*]_min_alarm and fan[1-*]_max_alarm
> attributes. These are defined in the standard sysfs interface for quite
> some time, and at least three drivers (max6650, lm63 and applesmc)
> implement them so we should support them.
> ---
> doc/libsensors-API.txt | 3 +++
> lib/sensors.h | 3 +++
> lib/sysfs.c | 3 +++
> prog/sensors/chips.c | 38 +++++++++++++++++++++++++-------------
> 4 files changed, 34 insertions(+), 13 deletions(-)
>
Looks good.
Maybe I should try to re-do that using the table based generic code. Wonder why I didn't earlier.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes
2012-01-13 14:51 [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes Jean Delvare
2012-01-13 15:13 ` Guenter Roeck
@ 2012-01-13 15:21 ` Jean Delvare
2012-01-13 16:04 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Jean Delvare @ 2012-01-13 15:21 UTC (permalink / raw)
To: lm-sensors
On Fri, 13 Jan 2012 07:13:36 -0800, Guenter Roeck wrote:
> On Fri, Jan 13, 2012 at 09:51:00AM -0500, Jean Delvare wrote:
> > Add support for fan[1-*]_max, fan[1-*]_min_alarm and fan[1-*]_max_alarm
> > attributes. These are defined in the standard sysfs interface for quite
> > some time, and at least three drivers (max6650, lm63 and applesmc)
> > implement them so we should support them.
> > ---
> > doc/libsensors-API.txt | 3 +++
> > lib/sensors.h | 3 +++
> > lib/sysfs.c | 3 +++
> > prog/sensors/chips.c | 38 +++++++++++++++++++++++++-------------
> > 4 files changed, 34 insertions(+), 13 deletions(-)
> >
> Looks good.
>
> Maybe I should try to re-do that using the table based generic code. Wonder why I didn't earlier.
To be honest, I considered it first, and then saw that it was broken,
so we should fix it first. But lacking the time and energy to do that
today, I took the short path to where I needed to go.
The problem I see in the generic code is with power limits, "interval"
is considered a limit and will thus be printed with unit "W" instead of
"s". Likewise fan[1-*]_div would show up with unit RPM which is no
good. Apparently we need a way to force unit (or lack thereof) on a
per-limit basis. Maybe we can leverage the work done for temperatures
(°C vs. °F), but I'm not sure.
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes
2012-01-13 14:51 [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes Jean Delvare
2012-01-13 15:13 ` Guenter Roeck
2012-01-13 15:21 ` Jean Delvare
@ 2012-01-13 16:04 ` Guenter Roeck
2 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2012-01-13 16:04 UTC (permalink / raw)
To: lm-sensors
T24gRnJpLCAyMDEyLTAxLTEzIGF0IDEwOjIxIC0wNTAwLCBKZWFuIERlbHZhcmUgd3JvdGU6Cj4g
T24gRnJpLCAxMyBKYW4gMjAxMiAwNzoxMzozNiAtMDgwMCwgR3VlbnRlciBSb2VjayB3cm90ZToK
PiA+IE9uIEZyaSwgSmFuIDEzLCAyMDEyIGF0IDA5OjUxOjAwQU0gLTA1MDAsIEplYW4gRGVsdmFy
ZSB3cm90ZToKPiA+ID4gQWRkIHN1cHBvcnQgZm9yIGZhblsxLSpdX21heCwgZmFuWzEtKl1fbWlu
X2FsYXJtIGFuZCBmYW5bMS0qXV9tYXhfYWxhcm0KPiA+ID4gYXR0cmlidXRlcy4gVGhlc2UgYXJl
IGRlZmluZWQgaW4gdGhlIHN0YW5kYXJkIHN5c2ZzIGludGVyZmFjZSBmb3IgcXVpdGUKPiA+ID4g
c29tZSB0aW1lLCBhbmQgYXQgbGVhc3QgdGhyZWUgZHJpdmVycyAobWF4NjY1MCwgbG02MyBhbmQg
YXBwbGVzbWMpCj4gPiA+IGltcGxlbWVudCB0aGVtIHNvIHdlIHNob3VsZCBzdXBwb3J0IHRoZW0u
Cj4gPiA+IC0tLQo+ID4gPiAgZG9jL2xpYnNlbnNvcnMtQVBJLnR4dCB8ICAgIDMgKysrCj4gPiA+
ICBsaWIvc2Vuc29ycy5oICAgICAgICAgIHwgICAgMyArKysKPiA+ID4gIGxpYi9zeXNmcy5jICAg
ICAgICAgICAgfCAgICAzICsrKwo+ID4gPiAgcHJvZy9zZW5zb3JzL2NoaXBzLmMgICB8ICAgMzgg
KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiA+ID4gIDQgZmlsZXMgY2hh
bmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gTG9va3Mg
Z29vZC4KPiA+IAo+ID4gTWF5YmUgSSBzaG91bGQgdHJ5IHRvIHJlLWRvIHRoYXQgdXNpbmcgdGhl
IHRhYmxlIGJhc2VkIGdlbmVyaWMgY29kZS4gV29uZGVyIHdoeSBJIGRpZG4ndCBlYXJsaWVyLgo+
IAo+IFRvIGJlIGhvbmVzdCwgSSBjb25zaWRlcmVkIGl0IGZpcnN0LCBhbmQgdGhlbiBzYXcgdGhh
dCBpdCB3YXMgYnJva2VuLAo+IHNvIHdlIHNob3VsZCBmaXggaXQgZmlyc3QuIEJ1dCBsYWNraW5n
IHRoZSB0aW1lIGFuZCBlbmVyZ3kgdG8gZG8gdGhhdAo+IHRvZGF5LCBJIHRvb2sgdGhlIHNob3J0
IHBhdGggdG8gd2hlcmUgSSBuZWVkZWQgdG8gZ28uCj4gCj4gVGhlIHByb2JsZW0gSSBzZWUgaW4g
dGhlIGdlbmVyaWMgY29kZSBpcyB3aXRoIHBvd2VyIGxpbWl0cywgImludGVydmFsIgo+IGlzIGNv
bnNpZGVyZWQgYSBsaW1pdCBhbmQgd2lsbCB0aHVzIGJlIHByaW50ZWQgd2l0aCB1bml0ICJXIiBp
bnN0ZWFkIG9mCj4gInMiLiBMaWtld2lzZSBmYW5bMS0qXV9kaXYgd291bGQgc2hvdyB1cCB3aXRo
IHVuaXQgUlBNIHdoaWNoIGlzIG5vCj4gZ29vZC4gQXBwYXJlbnRseSB3ZSBuZWVkIGEgd2F5IHRv
IGZvcmNlIHVuaXQgKG9yIGxhY2sgdGhlcmVvZikgb24gYQo+IHBlci1saW1pdCBiYXNpcy4gTWF5
YmUgd2UgY2FuIGxldmVyYWdlIHRoZSB3b3JrIGRvbmUgZm9yIHRlbXBlcmF0dXJlcwo+ICjCsEMg
dnMuIMKwRiksIGJ1dCBJJ20gbm90IHN1cmUuCj4gCk9vcHMgOykuIEknbGwgdGhpbmsgYWJvdXQg
dGhhdC4gTm8gaWRlYSByaWdodCBub3cgaG93IHRvIGZpeCBpdC4KCkd1ZW50ZXIKCgoKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWls
aW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29y
cy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-01-13 16:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-13 14:51 [lm-sensors] [PATCH] libsensors: Add support for extra fan attributes Jean Delvare
2012-01-13 15:13 ` Guenter Roeck
2012-01-13 15:21 ` Jean Delvare
2012-01-13 16:04 ` Guenter Roeck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.