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>
This commit is contained in:

committed by
Rafael J. Wysocki

parent
d978e755aa
commit
0c2ddedd8b
@@ -104,6 +104,7 @@ struct reg_action {
|
||||
* @pcap_rapl_online: CPU hotplug state for each RAPL interface.
|
||||
* @reg_unit: Register for getting energy/power/time unit.
|
||||
* @regs: Register sets for different RAPL Domains.
|
||||
* @limits: Number of power limits supported by each domain.
|
||||
* @read_raw: Callback for reading RAPL interface specific
|
||||
* registers.
|
||||
* @write_raw: Callback for writing RAPL interface specific
|
||||
@@ -115,6 +116,7 @@ struct rapl_if_priv {
|
||||
enum cpuhp_state pcap_rapl_online;
|
||||
u64 reg_unit;
|
||||
u64 regs[RAPL_DOMAIN_MAX][RAPL_DOMAIN_REG_MAX];
|
||||
int limits[RAPL_DOMAIN_MAX];
|
||||
int (*read_raw)(int cpu, struct reg_action *ra);
|
||||
int (*write_raw)(int cpu, struct reg_action *ra);
|
||||
};
|
||||
|
Reference in New Issue
Block a user