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"); }