File lm_sensors-r6030-fix-power-interval-output.patch of Package sensors.openSUSE_12.1_Update

Fix power interval output

Power interval is measured in seconds, not Watt.

---
 prog/sensors/chips.c |   20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

--- lm_sensors-3.3.1.orig/prog/sensors/chips.c
+++ lm_sensors-3.3.1/prog/sensors/chips.c
@@ -564,11 +564,25 @@ static void print_chip_power(const senso
 	} else
 		printf("     N/A  ");
 
-	for (i = 0; i < sensor_count; i++)
-		scale_value(&sensors[i].value, &sensors[i].unit);
+	for (i = 0; i < sensor_count; i++) {
+		/*
+		 * Unit is W and needs to be scaled for all attributes except
+		 * interval, which does not need to be scaled and is reported in
+		 * seconds.
+		 */
+		if (strcmp(sensors[i].name, "interval")) {
+			char *tmpstr;
 
+			tmpstr = alloca(4);
+			scale_value(&sensors[i].value, &unit);
+			snprintf(tmpstr, 4, "%sW", unit);
+			sensors[i].unit = tmpstr;
+		} else {
+			sensors[i].unit = "s";
+		}
+	}
 	print_limits(sensors, sensor_count, alarms, alarm_count,
-		     label_size, "%s = %6.2f %sW");
+		     label_size, "%s = %6.2f %s");
 
 	printf("\n");
 }
openSUSE Build Service is sponsored by