diff options
| author | Zhang Rui <rui.zhang@intel.com> | 2019-07-10 09:44:32 -0400 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-07-11 09:08:58 -0400 |
| commit | 0c2ddedd8bcb88c4100acb9e0fc5ac8752d09501 (patch) | |
| tree | bb83251e176c8f0ceef4c6d1622d68c909c00461 /include/linux/intel_rapl.h | |
| parent | d978e755aabe215cb67bf713e103ed3916ec306d (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.h | 2 |
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 | }; |
