All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.