From 88f6c5ec9b1838823fa21126a7ad27d6d6500a4d Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Thu, 12 Aug 2021 15:07:38 +1200 Subject: [PATCH] sensors: Add support for rated values Sysfs attributes for rated values were recently added to the kernel[1]. This adds support for displaying them in lm-sensors. [1] - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e8e61235 Signed-off-by: Chris Packham --- lib/sensors.h | 6 ++++++ lib/sysfs.c | 6 ++++++ prog/sensors/chips.c | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/lib/sensors.h b/lib/sensors.h index 94f6f230..99373be9 100644 --- a/lib/sensors.h +++ b/lib/sensors.h @@ -163,6 +163,8 @@ typedef enum sensors_subfeature_type { SENSORS_SUBFEATURE_IN_AVERAGE, SENSORS_SUBFEATURE_IN_LOWEST, SENSORS_SUBFEATURE_IN_HIGHEST, + SENSORS_SUBFEATURE_IN_RATED_MIN, + SENSORS_SUBFEATURE_IN_RATED_MAX, SENSORS_SUBFEATURE_IN_ALARM = (SENSORS_FEATURE_IN << 8) | 0x80, SENSORS_SUBFEATURE_IN_MIN_ALARM, SENSORS_SUBFEATURE_IN_MAX_ALARM, @@ -217,6 +219,8 @@ typedef enum sensors_subfeature_type { SENSORS_SUBFEATURE_POWER_CRIT, SENSORS_SUBFEATURE_POWER_MIN, SENSORS_SUBFEATURE_POWER_LCRIT, + SENSORS_SUBFEATURE_POWER_RATED_MIN, + SENSORS_SUBFEATURE_POWER_RATED_MAX, SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL = (SENSORS_FEATURE_POWER << 8) | 0x80, SENSORS_SUBFEATURE_POWER_ALARM, SENSORS_SUBFEATURE_POWER_CAP_ALARM, @@ -235,6 +239,8 @@ typedef enum sensors_subfeature_type { SENSORS_SUBFEATURE_CURR_AVERAGE, SENSORS_SUBFEATURE_CURR_LOWEST, SENSORS_SUBFEATURE_CURR_HIGHEST, + SENSORS_SUBFEATURE_CURR_RATED_MIN, + SENSORS_SUBFEATURE_CURR_RATED_MAX, SENSORS_SUBFEATURE_CURR_ALARM = (SENSORS_FEATURE_CURR << 8) | 0x80, SENSORS_SUBFEATURE_CURR_MIN_ALARM, SENSORS_SUBFEATURE_CURR_MAX_ALARM, diff --git a/lib/sysfs.c b/lib/sysfs.c index 9516cec4..c81663dd 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -251,6 +251,8 @@ static const struct subfeature_type_match in_matches[] = { { "lcrit_alarm", SENSORS_SUBFEATURE_IN_LCRIT_ALARM }, { "crit_alarm", SENSORS_SUBFEATURE_IN_CRIT_ALARM }, { "beep", SENSORS_SUBFEATURE_IN_BEEP }, + { "rated_min", SENSORS_SUBFEATURE_IN_RATED_MIN }, + { "rated_max", SENSORS_SUBFEATURE_IN_RATED_MAX }, { NULL, 0 } }; @@ -288,6 +290,8 @@ static const struct subfeature_type_match power_matches[] = { { "crit_alarm", SENSORS_SUBFEATURE_POWER_CRIT_ALARM }, { "lcrit_alarm", SENSORS_SUBFEATURE_POWER_LCRIT_ALARM }, { "average_interval", SENSORS_SUBFEATURE_POWER_AVERAGE_INTERVAL }, + { "rated_min", SENSORS_SUBFEATURE_POWER_RATED_MIN }, + { "rated_max", SENSORS_SUBFEATURE_POWER_RATED_MAX }, { NULL, 0 } }; @@ -311,6 +315,8 @@ static const struct subfeature_type_match curr_matches[] = { { "lcrit_alarm", SENSORS_SUBFEATURE_CURR_LCRIT_ALARM }, { "crit_alarm", SENSORS_SUBFEATURE_CURR_CRIT_ALARM }, { "beep", SENSORS_SUBFEATURE_CURR_BEEP }, + { "rated_min", SENSORS_SUBFEATURE_CURR_RATED_MIN }, + { "rated_max", SENSORS_SUBFEATURE_CURR_RATED_MAX }, { NULL, 0 } }; diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 0eb07418..63c255f9 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -428,6 +428,8 @@ static const struct sensor_subfeature_list voltage_sensors[] = { { SENSORS_SUBFEATURE_IN_AVERAGE, NULL, 0, "avg" }, { SENSORS_SUBFEATURE_IN_LOWEST, NULL, 0, "lowest" }, { SENSORS_SUBFEATURE_IN_HIGHEST, NULL, 0, "highest" }, + { SENSORS_SUBFEATURE_IN_RATED_MIN, NULL, 0, "rated min" }, + { SENSORS_SUBFEATURE_IN_RATED_MAX, NULL, 0, "rated max" }, { -1, NULL, 0, NULL } }; @@ -584,6 +586,8 @@ static const struct sensor_subfeature_list power_common_sensors[] = { { SENSORS_SUBFEATURE_POWER_LCRIT, NULL, 0, "lcrit" }, { SENSORS_SUBFEATURE_POWER_CRIT, NULL, 0, "crit" }, { SENSORS_SUBFEATURE_POWER_CAP, NULL, 0, "cap" }, + { SENSORS_SUBFEATURE_POWER_RATED_MIN, NULL, 0, "rated min" }, + { SENSORS_SUBFEATURE_POWER_RATED_MAX, NULL, 0, "rated max" }, { -1, NULL, 0, NULL } }; @@ -788,6 +792,8 @@ static const struct sensor_subfeature_list current_sensors[] = { { SENSORS_SUBFEATURE_CURR_AVERAGE, NULL, 0, "avg" }, { SENSORS_SUBFEATURE_CURR_LOWEST, NULL, 0, "lowest" }, { SENSORS_SUBFEATURE_CURR_HIGHEST, NULL, 0, "highest" }, + { SENSORS_SUBFEATURE_CURR_RATED_MIN, NULL, 0, "rated min" }, + { SENSORS_SUBFEATURE_CURR_RATED_MAX, NULL, 0, "rated max" }, { -1, NULL, 0, NULL } };