diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-11-19 11:15:40 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-11-19 11:15:40 -0800 |
commit | cd7fa3e1b0bc9c210eba23edbe8d6884f0368281 (patch) | |
tree | 859cd405c35b35d1d8f560eb310f1cdb06da4a8a /include/uapi | |
parent | ad52c55e1d3a2e85e05e47b6d7056c662a9c0246 (diff) | |
parent | 0104dcdaad3a7afd141e79a5fb817a92ada910ac (diff) |
Merge tag 'thermal-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull thermal control updates from Rafael Wysocki:
"These are thermal core changes, including the addition of support for
temperature thresholds that can be set from user space, fixes related
to thermal zone initialization, suspend/resume and exit, locking
rework and rearrangement of the code handling thermal zone temperature
updates.
Specifics:
- Add support for thermal thresholds that can be added and removed
from user space via netlink along with a related library update
(Daniel Lezcano)
- Fix thermal zone initialization, suspend/resume and exit
synchronization issues (Rafael Wysocki)
- Rearrange locking in the thermal core to use guards (Rafael
Wysocki)
- Make the code handling thermal zone temperature updates use sorted
lists of trip points to reduce the number of trip points table
walks in the thermal core (Rafael Wysocki)
- Fix and clean up the thermal testing facility code (Rafael Wysocki)
- Fix a Power Allocator thermal governor issue (ZhengShaobo)"
* tag 'thermal-6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (45 commits)
thermal: testing: Initialize some variables annoteded with _free()
thermal: testing: Use DEFINE_FREE() and __free() to simplify code
thermal: testing: Simplify tt_get_tt_zone()
thermal: gov_power_allocator: Granted power set to max when nobody request power
thermal: core: Relocate thermal zone initialization routine
thermal: core: Use trip lists for trip crossing detection
thermal: core: Eliminate thermal_zone_trip_down()
thermal: core: Relocate functions that update trip points
thermal: core: Move some trip processing to thermal_trip_crossed()
thermal: core: Pass trip descriptor to thermal_trip_crossed()
thermal: core: Rearrange __thermal_zone_device_update()
thermal: core: Prepare for moving trips between sorted lists
thermal: core: Rename trip list node in struct thermal_trip_desc
thermal: core: Build sorted lists instead of sorting them later
thermal/lib: Fix memory leak on error in thermal_genl_auto()
thermal: thresholds: Fix thermal lock annotation issue
tools/thermal/thermal-engine: Take into account the thresholds API
tools/lib/thermal: Add the threshold netlink ABI
tools/lib/thermal: Make more generic the command encoding function
thermal: netlink: Add the commands and the events for the thresholds
...
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/linux/thermal.h | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/include/uapi/linux/thermal.h b/include/uapi/linux/thermal.h index fc78bf3aead7..ba8604bdf206 100644 --- a/include/uapi/linux/thermal.h +++ b/include/uapi/linux/thermal.h @@ -3,6 +3,8 @@ #define _UAPI_LINUX_THERMAL_H #define THERMAL_NAME_LENGTH 20 +#define THERMAL_THRESHOLD_WAY_UP BIT(0) +#define THERMAL_THRESHOLD_WAY_DOWN BIT(1) enum thermal_device_mode { THERMAL_DEVICE_DISABLED = 0, @@ -18,7 +20,7 @@ enum thermal_trip_type { /* Adding event notification support elements */ #define THERMAL_GENL_FAMILY_NAME "thermal" -#define THERMAL_GENL_VERSION 0x01 +#define THERMAL_GENL_VERSION 0x02 #define THERMAL_GENL_SAMPLING_GROUP_NAME "sampling" #define THERMAL_GENL_EVENT_GROUP_NAME "event" @@ -28,6 +30,7 @@ enum thermal_genl_attr { THERMAL_GENL_ATTR_TZ, THERMAL_GENL_ATTR_TZ_ID, THERMAL_GENL_ATTR_TZ_TEMP, + THERMAL_GENL_ATTR_TZ_PREV_TEMP, THERMAL_GENL_ATTR_TZ_TRIP, THERMAL_GENL_ATTR_TZ_TRIP_ID, THERMAL_GENL_ATTR_TZ_TRIP_TYPE, @@ -48,6 +51,9 @@ enum thermal_genl_attr { THERMAL_GENL_ATTR_CPU_CAPABILITY_ID, THERMAL_GENL_ATTR_CPU_CAPABILITY_PERFORMANCE, THERMAL_GENL_ATTR_CPU_CAPABILITY_EFFICIENCY, + THERMAL_GENL_ATTR_THRESHOLD, + THERMAL_GENL_ATTR_THRESHOLD_TEMP, + THERMAL_GENL_ATTR_THRESHOLD_DIRECTION, __THERMAL_GENL_ATTR_MAX, }; #define THERMAL_GENL_ATTR_MAX (__THERMAL_GENL_ATTR_MAX - 1) @@ -75,6 +81,11 @@ enum thermal_genl_event { THERMAL_GENL_EVENT_CDEV_STATE_UPDATE, /* Cdev state updated */ THERMAL_GENL_EVENT_TZ_GOV_CHANGE, /* Governor policy changed */ THERMAL_GENL_EVENT_CPU_CAPABILITY_CHANGE, /* CPU capability changed */ + THERMAL_GENL_EVENT_THRESHOLD_ADD, /* A thresold has been added */ + THERMAL_GENL_EVENT_THRESHOLD_DELETE, /* A thresold has been deleted */ + THERMAL_GENL_EVENT_THRESHOLD_FLUSH, /* All thresolds have been deleted */ + THERMAL_GENL_EVENT_THRESHOLD_UP, /* A thresold has been crossed the way up */ + THERMAL_GENL_EVENT_THRESHOLD_DOWN, /* A thresold has been crossed the way down */ __THERMAL_GENL_EVENT_MAX, }; #define THERMAL_GENL_EVENT_MAX (__THERMAL_GENL_EVENT_MAX - 1) @@ -82,12 +93,16 @@ enum thermal_genl_event { /* Commands supported by the thermal_genl_family */ enum thermal_genl_cmd { THERMAL_GENL_CMD_UNSPEC, - THERMAL_GENL_CMD_TZ_GET_ID, /* List of thermal zones id */ - THERMAL_GENL_CMD_TZ_GET_TRIP, /* List of thermal trips */ - THERMAL_GENL_CMD_TZ_GET_TEMP, /* Get the thermal zone temperature */ - THERMAL_GENL_CMD_TZ_GET_GOV, /* Get the thermal zone governor */ - THERMAL_GENL_CMD_TZ_GET_MODE, /* Get the thermal zone mode */ - THERMAL_GENL_CMD_CDEV_GET, /* List of cdev id */ + THERMAL_GENL_CMD_TZ_GET_ID, /* List of thermal zones id */ + THERMAL_GENL_CMD_TZ_GET_TRIP, /* List of thermal trips */ + THERMAL_GENL_CMD_TZ_GET_TEMP, /* Get the thermal zone temperature */ + THERMAL_GENL_CMD_TZ_GET_GOV, /* Get the thermal zone governor */ + THERMAL_GENL_CMD_TZ_GET_MODE, /* Get the thermal zone mode */ + THERMAL_GENL_CMD_CDEV_GET, /* List of cdev id */ + THERMAL_GENL_CMD_THRESHOLD_GET, /* List of thresholds */ + THERMAL_GENL_CMD_THRESHOLD_ADD, /* Add a threshold */ + THERMAL_GENL_CMD_THRESHOLD_DELETE, /* Delete a threshold */ + THERMAL_GENL_CMD_THRESHOLD_FLUSH, /* Flush all the thresholds */ __THERMAL_GENL_CMD_MAX, }; #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1) |