Skip to contentSkip to conversation

libsensors: Add support for instantaneous

PATCH In review Jean Delvare 3 participants 3 messages Oct 22, 2008 – Apr 20, 2014 Library code

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 libsensors: Add support for instantaneous

Add support for instantaneous power sensors.
---
I'd appreciate review and testing of this patch. Darrick, please test that this doesn't break support of your IBM chips.

 doc/libsensors-API.txt |    6 ++++++
 lib/sensors.h          |    6 ++++--
 lib/sysfs.c            |    3 +++
 prog/sensors/chips.c   |   28 +++++++++++++++++++++-------
 4 files changed, 34 insertions(+), 9 deletions(-)
lib/sensors.h +4 -2
@@ -31,7 +31,7 @@
    when the API + ABI breaks), the third digit is incremented to track small
    API additions like new flags / enum values. The second digit is for tracking
    larger additions like new methods. */
-#define SENSORS_API_VERSION		0x401
+#define SENSORS_API_VERSION		0x402
 
 #define SENSORS_CHIP_NAME_PREFIX_ANY	NULL
 #define SENSORS_CHIP_NAME_ADDR_ANY	(-1)
@@ -175,7 +175,9 @@ typedef enum sensors_subfeature_type {
 	SENSORS_SUBFEATURE_POWER_AVERAGE = SENSORS_FEATURE_POWER << 8,
 	SENSORS_SUBFEATURE_POWER_AVERAGE_HIGHEST,
 	SENSORS_SUBFEATURE_POWER_AVERAGE_LOWEST,
-
+	SENSORS_SUBFEATURE_POWER_INPUT,
+	SENSORS_SUBFEATURE_POWER_INPUT_HIGHEST,
+	SENSORS_SUBFEATURE_POWER_INPUT_LOWEST,
 	SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL = (SENSORS_FEATURE_POWER << 8) | 0x80,
 
 	SENSORS_SUBFEATURE_ENERGY_INPUT = SENSORS_FEATURE_ENERGY << 8,
lib/sysfs.c +3 -0
@@ -247,6 +247,9 @@ static const struct subfeature_type_matc
 	{ "average", SENSORS_SUBFEATURE_POWER_AVERAGE },
 	{ "average_highest", SENSORS_SUBFEATURE_POWER_AVERAGE_HIGHEST },
 	{ "average_lowest", SENSORS_SUBFEATURE_POWER_AVERAGE_LOWEST },
+	{ "input", SENSORS_SUBFEATURE_POWER_INPUT },
+	{ "input_highest", SENSORS_SUBFEATURE_POWER_INPUT_HIGHEST },
+	{ "input_lowest", SENSORS_SUBFEATURE_POWER_INPUT_LOWEST },
 	{ "average_interval", SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL },
 	{ NULL, 0 }
 };
prog/sensors/chips.c +21 -7
@@ -449,8 +449,28 @@ static void print_chip_power(const senso
 	print_label(label, label_size);
 	free(label);
 
+	/* Power sensors come in 2 flavors: instantaneous and averaged.
+	   To keep things simple, we assume that each sensor only implements
+	   one flavor. */
 	sf = sensors_get_subfeature(name, feature,
-				    SENSORS_SUBFEATURE_POWER_AVERAGE);
+				    SENSORS_SUBFEATURE_POWER_INPUT);
+	if (sf) {
+		sfmin = sensors_get_subfeature(name, feature,
+					       SENSORS_SUBFEATURE_POWER_INPUT_HIGHEST);
+		sfmax = sensors_get_subfeature(name, feature,
+					       SENSORS_SUBFEATURE_POWER_INPUT_LOWEST);
+		sfint = NULL;
+	} else {
+		sf = sensors_get_subfeature(name, feature,
+					    SENSORS_SUBFEATURE_POWER_AVERAGE);
+		sfmin = sensors_get_subfeature(name, feature,
+					       SENSORS_SUBFEATURE_POWER_AVERAGE_HIGHEST);
+		sfmax = sensors_get_subfeature(name, feature,
+					       SENSORS_SUBFEATURE_POWER_AVERAGE_LOWEST);
+		sfint = sensors_get_subfeature(name, feature,
+					       SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL);
+	}
+
 	if (sf) {
 		val = get_value(name, sf);
 		scale_value(&val, &unit);
@@ -458,12 +478,6 @@ static void print_chip_power(const senso
 	} else
 		printf("     N/A");
 
-	sfmin = sensors_get_subfeature(name, feature,
-				      SENSORS_SUBFEATURE_POWER_AVERAGE_HIGHEST);
-	sfmax = sensors_get_subfeature(name, feature,
-				       SENSORS_SUBFEATURE_POWER_AVERAGE_LOWEST);
-	sfint = sensors_get_subfeature(name, feature,
-				     SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL);
 	if (sfmin || sfmax || sfint) {
 		printf("  (");
 
doc/libsensors-API.txt +6 -0
@@ -6,6 +6,12 @@ over time. This document summarizes thes
 authors can quickly figure out how to test for the availability of a
 given new feature.
 
+0x402	lm-sensors SVN
+* Added support for instantaneous power sensors
+  enum sensors_subfeature_type SENSORS_SUBFEATURE_POWER_INPUT
+  enum sensors_subfeature_type SENSORS_SUBFEATURE_POWER_INPUT_HIGHEST
+  enum sensors_subfeature_type SENSORS_SUBFEATURE_POWER_INPUT_LOWEST
+
 0x401	lm-sensors 3.0.2 to 3.0.3
 * Added bus type "virtual":
   #define SENSORS_BUS_TYPE_VIRTUAL
Signature · 6 lines
Jean Delvare

_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
#1 lore raw

PATCH 1/2 libsensors: Add support for temp[1-*]_min_hyst and temp[1-*]_lcrit_hyst

Add support for sysfs attributes temp[1-*]_min_hyst (already implemented by drivers adt7x10, lm77 and lm92) and temp[1-*]_lcrit_hyst (no known users yet.)

---
 doc/libsensors-API.txt |    3 +++
 lib/sensors.h          |    2 ++
 lib/sysfs.c            |    2 ++
 3 files changed, 7 insertions(+)
lib/sensors.h +2 -0
@@ -190,6 +190,8 @@ typedef enum sensors_subfeature_type {
 	SENSORS_SUBFEATURE_TEMP_EMERGENCY_HYST,
 	SENSORS_SUBFEATURE_TEMP_LOWEST,
 	SENSORS_SUBFEATURE_TEMP_HIGHEST,
+	SENSORS_SUBFEATURE_TEMP_MIN_HYST,
+	SENSORS_SUBFEATURE_TEMP_LCRIT_HYST,
 	SENSORS_SUBFEATURE_TEMP_ALARM = (SENSORS_FEATURE_TEMP << 8) | 0x80,
 	SENSORS_SUBFEATURE_TEMP_MAX_ALARM,
 	SENSORS_SUBFEATURE_TEMP_MIN_ALARM,
lib/sysfs.c +2 -0
@@ -214,9 +214,11 @@ static const struct subfeature_type_matc
 	{ "max", SENSORS_SUBFEATURE_TEMP_MAX },
 	{ "max_hyst", SENSORS_SUBFEATURE_TEMP_MAX_HYST },
 	{ "min", SENSORS_SUBFEATURE_TEMP_MIN },
+	{ "min_hyst", SENSORS_SUBFEATURE_TEMP_MIN_HYST },
 	{ "crit", SENSORS_SUBFEATURE_TEMP_CRIT },
 	{ "crit_hyst", SENSORS_SUBFEATURE_TEMP_CRIT_HYST },
 	{ "lcrit", SENSORS_SUBFEATURE_TEMP_LCRIT },
+	{ "lcrit_hyst", SENSORS_SUBFEATURE_TEMP_LCRIT_HYST },
 	{ "emergency", SENSORS_SUBFEATURE_TEMP_EMERGENCY },
 	{ "emergency_hyst", SENSORS_SUBFEATURE_TEMP_EMERGENCY_HYST },
 	{ "lowest", SENSORS_SUBFEATURE_TEMP_LOWEST },
doc/libsensors-API.txt +3 -0
@@ -9,6 +9,9 @@ given new feature.
 0x440	lm-sensors 3.4.0
 * Defined SENSORS_FEATURE_MAX
   enum sensors_feature_type SENSORS_FEATURE_MAX
+* Added support for temp min and temp critical min hysteresis
+  enum sensors_subfeature_type SENSORS_SUBFEATURE_TEMP_MIN_HYST
+  enum sensors_subfeature_type SENSORS_SUBFEATURE_TEMP_LCRIT_HYST
 
 0x432	lm-sensors 3.3.2 to 3.3.5
 * Added support for new sysfs attributes
Signature · 7 lines
Jean Delvare
SUSE L3 Support

_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Reviewed-by on v1 1/2
#2 lore raw

Re: [lm-sensors] [PATCH 1/2] libsensors: Add support for temp[1-*]_min_hyst and temp[1-*]_lcrit_hyst

In reply to Jean Delvare
Quoted 3 lines · Jean Delvare

Add support for sysfs attributes temp[1-*]_min_hyst (already implemented by drivers adt7x10, lm77 and lm92) and temp[1-*]_lcrit_hyst (no known users yet.)

Looks good. I'll see if I can test and the next patch later today or tomorrow.

For both patches:

_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors