aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/intel_rapl.h
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2019-07-10 09:44:32 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2019-07-11 09:08:58 -0400
commit0c2ddedd8bcb88c4100acb9e0fc5ac8752d09501 (patch)
treebb83251e176c8f0ceef4c6d1622d68c909c00461 /include/linux/intel_rapl.h
parentd978e755aabe215cb67bf713e103ed3916ec306d (diff)
intel_rapl: support two power limits for every RAPL domain
RAPL MSR interface supports 2 power limits for package domain, and 1 power limit for other domains, while RAPL MMIO interface supports 2 power limits for both package and dram domains. And when 2 power limits are supported, the FW_LOCK bit is in bit 63 of the register, instead of bit 31. Remove the assumption that only pakcage domain supports 2 power limits. And allow the RAPL interface driver to specify the number of power limits supported, for every single RAPL domain it owns.. Reviewed-by: Pandruvada, Srinivas <srinivas.pandruvada@intel.com> Tested-by: Pandruvada, Srinivas <srinivas.pandruvada@intel.com> Signed-off-by: Zhang Rui <rui.zhang@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.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/intel_rapl.h b/include/linux/intel_rapl.h
index 649e19981eb0..0c179d92d110 100644
--- a/include/linux/intel_rapl.h
+++ b/include/linux/intel_rapl.h
@@ -104,6 +104,7 @@ struct reg_action {
104 * @pcap_rapl_online: CPU hotplug state for each RAPL interface. 104 * @pcap_rapl_online: CPU hotplug state for each RAPL interface.
105 * @reg_unit: Register for getting energy/power/time unit. 105 * @reg_unit: Register for getting energy/power/time unit.
106 * @regs: Register sets for different RAPL Domains. 106 * @regs: Register sets for different RAPL Domains.
107 * @limits: Number of power limits supported by each domain.
107 * @read_raw: Callback for reading RAPL interface specific 108 * @read_raw: Callback for reading RAPL interface specific
108 * registers. 109 * registers.
109 * @write_raw: Callback for writing RAPL interface specific 110 * @write_raw: Callback for writing RAPL interface specific
@@ -115,6 +116,7 @@ struct rapl_if_priv {
115 enum cpuhp_state pcap_rapl_online; 116 enum cpuhp_state pcap_rapl_online;
116 u64 reg_unit; 117 u64 reg_unit;
117 u64 regs[RAPL_DOMAIN_MAX][RAPL_DOMAIN_REG_MAX]; 118 u64 regs[RAPL_DOMAIN_MAX][RAPL_DOMAIN_REG_MAX];
119 int limits[RAPL_DOMAIN_MAX];
118 int (*read_raw)(int cpu, struct reg_action *ra); 120 int (*read_raw)(int cpu, struct reg_action *ra);
119 int (*write_raw)(int cpu, struct reg_action *ra); 121 int (*write_raw)(int cpu, struct reg_action *ra);
120}; 122};