diff options
Diffstat (limited to 'tools/power/cpupower/utils/helpers/msr.c')
-rw-r--r-- | tools/power/cpupower/utils/helpers/msr.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/power/cpupower/utils/helpers/msr.c b/tools/power/cpupower/utils/helpers/msr.c index 93d48bd56e57..7869ca64dfd3 100644 --- a/tools/power/cpupower/utils/helpers/msr.c +++ b/tools/power/cpupower/utils/helpers/msr.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #define MSR_IA32_PERF_STATUS 0x198 | 11 | #define MSR_IA32_PERF_STATUS 0x198 |
12 | #define MSR_IA32_MISC_ENABLES 0x1a0 | 12 | #define MSR_IA32_MISC_ENABLES 0x1a0 |
13 | #define MSR_IA32_ENERGY_PERF_BIAS 0x1b0 | 13 | #define MSR_IA32_ENERGY_PERF_BIAS 0x1b0 |
14 | #define MSR_NEHALEM_TURBO_RATIO_LIMIT 0x1ad | ||
14 | 15 | ||
15 | /* | 16 | /* |
16 | * read_msr | 17 | * read_msr |
@@ -79,6 +80,7 @@ int msr_intel_has_boost_support(unsigned int cpu) | |||
79 | ret = read_msr(cpu, MSR_IA32_MISC_ENABLES, &misc_enables); | 80 | ret = read_msr(cpu, MSR_IA32_MISC_ENABLES, &misc_enables); |
80 | if (ret) | 81 | if (ret) |
81 | return ret; | 82 | return ret; |
83 | |||
82 | return (misc_enables >> 38) & 0x1; | 84 | return (misc_enables >> 38) & 0x1; |
83 | } | 85 | } |
84 | 86 | ||
@@ -119,4 +121,18 @@ int msr_intel_set_perf_bias(unsigned int cpu, unsigned int val) | |||
119 | return ret; | 121 | return ret; |
120 | return 0; | 122 | return 0; |
121 | } | 123 | } |
124 | |||
125 | unsigned long long msr_intel_get_turbo_ratio(unsigned int cpu) | ||
126 | { | ||
127 | unsigned long long val; | ||
128 | int ret; | ||
129 | |||
130 | if (!(cpupower_cpu_info.caps & CPUPOWER_CAP_HAS_TURBO_RATIO)) | ||
131 | return -1; | ||
132 | |||
133 | ret = read_msr(cpu, MSR_NEHALEM_TURBO_RATIO_LIMIT, &val); | ||
134 | if (ret) | ||
135 | return ret; | ||
136 | return val; | ||
137 | } | ||
122 | #endif | 138 | #endif |