From 6fa5cba2e3f744dfe981d1a9a618749c1e979091 Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Wed, 27 Dec 2023 14:53:05 +0100 Subject: [PATCH] sysfs: Do not prescale frequency to MHz Add autoscaling in the output instead. Fixes: 54363271 ("libsensors + sensors: Add freq_input support") --- lib/sysfs.c | 1 - prog/sensors/chips.c | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/sysfs.c b/lib/sysfs.c index 63950d37..20e8d2a3 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -163,7 +163,6 @@ int get_type_scaling(sensors_subfeature_type type) return 1000; case SENSORS_SUBFEATURE_POWER_AVERAGE: case SENSORS_SUBFEATURE_ENERGY_INPUT: - case SENSORS_SUBFEATURE_FREQ_INPUT: return 1000000; } diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 0fc1063a..8aee8b87 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -905,6 +905,7 @@ static void print_chip_freq(const sensors_chip_name *name, const sensors_subfeature *sf; double val; char *label; + const char *unit; if (!(label = sensors_get_label(name, feature))) { fprintf(stderr, "ERROR: Can't get label of feature %s!\n", @@ -917,7 +918,8 @@ static void print_chip_freq(const sensors_chip_name *name, sf = sensors_get_subfeature(name, feature, SENSORS_SUBFEATURE_FREQ_INPUT); if (sf && get_input_value(name, sf, &val) == 0) { - printf("%4.0f %s", val, "MHz"); + scale_value(&val, &unit); + printf("%4.0f %sHz%*s", val, unit, 2 - (int)strlen(unit), ""); } else { printf(" N/A "); }