summaryrefslogtreecommitdiff
path: root/include/linux/intel_rapl.h
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2023-04-19 05:44:11 +0300
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2023-05-24 19:46:19 +0300
commit045610c383bd6b740bb7e7c780d6f7729249e60d (patch)
treece53e9c4e85e00d2adc29fa19624a163b56cb1d0 /include/linux/intel_rapl.h
parent11edbe5c66d624e2e1eec8929d3668d76a574c3b (diff)
downloadlinux-045610c383bd6b740bb7e7c780d6f7729249e60d.tar.xz
powercap: intel_rapl: Change primitive order
The same set of operations are shared by different Powert Limits, including Power Limit get/set, Power Limit enable/disable, clamping enable/disable, time window get/set, and max power get/set, etc. But the same operation for different Power Limit has different primitives because they use different registers/register bits. A lot of dirty/duplicate code was introduced to handle this difference. Instead of using hardcoded primitive name directly, using Power Limit id + operation type is much cleaner. For this sense, move POWER_LIMIT1/POWER_LIMIT2/POWER_LIMIT4 to the beginning of enum rapl_primitives so that they can be reused as Power Limit ids. No functional change. Signed-off-by: Zhang Rui <rui.zhang@intel.com> Tested-by: Wang Wendy <wendy.wang@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/linux/intel_rapl.h')
-rw-r--r--include/linux/intel_rapl.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/intel_rapl.h b/include/linux/intel_rapl.h
index 936fb8c3082c..bbd03b17dc8d 100644
--- a/include/linux/intel_rapl.h
+++ b/include/linux/intel_rapl.h
@@ -37,10 +37,10 @@ enum rapl_domain_reg_id {
struct rapl_domain;
enum rapl_primitives {
- ENERGY_COUNTER,
POWER_LIMIT1,
POWER_LIMIT2,
POWER_LIMIT4,
+ ENERGY_COUNTER,
FW_LOCK,
PL1_ENABLE, /* power limit 1, aka long term */
@@ -75,7 +75,8 @@ struct rapl_domain_data {
unsigned long timestamp;
};
-#define NR_POWER_LIMITS (3)
+#define NR_POWER_LIMITS (POWER_LIMIT4 + 1)
+
struct rapl_power_limit {
struct powercap_zone_constraint *constraint;
int prim_id; /* primitive ID used to enable */