diff options
Diffstat (limited to 'tools/power/cpupower/utils/helpers/cpuid.c')
-rw-r--r-- | tools/power/cpupower/utils/helpers/cpuid.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/tools/power/cpupower/utils/helpers/cpuid.c b/tools/power/cpupower/utils/helpers/cpuid.c index 944b2c1659d8..a97f091fcf2b 100644 --- a/tools/power/cpupower/utils/helpers/cpuid.c +++ b/tools/power/cpupower/utils/helpers/cpuid.c | |||
@@ -130,10 +130,37 @@ out: | |||
130 | cpu_info->caps |= CPUPOWER_CAP_AMD_CBP; | 130 | cpu_info->caps |= CPUPOWER_CAP_AMD_CBP; |
131 | } | 131 | } |
132 | 132 | ||
133 | /* Intel's perf-bias MSR support */ | ||
134 | if (cpu_info->vendor == X86_VENDOR_INTEL) { | 133 | if (cpu_info->vendor == X86_VENDOR_INTEL) { |
134 | /* Intel's perf-bias MSR support */ | ||
135 | if (cpuid_level >= 6 && (cpuid_ecx(6) & (1 << 3))) | 135 | if (cpuid_level >= 6 && (cpuid_ecx(6) & (1 << 3))) |
136 | cpu_info->caps |= CPUPOWER_CAP_PERF_BIAS; | 136 | cpu_info->caps |= CPUPOWER_CAP_PERF_BIAS; |
137 | |||
138 | /* Intel's Turbo Ratio Limit support */ | ||
139 | if (cpu_info->family == 6) { | ||
140 | switch (cpu_info->model) { | ||
141 | case 0x1A: /* Core i7, Xeon 5500 series | ||
142 | * Bloomfield, Gainstown NHM-EP | ||
143 | */ | ||
144 | case 0x1E: /* Core i7 and i5 Processor | ||
145 | * Clarksfield, Lynnfield, Jasper Forest | ||
146 | */ | ||
147 | case 0x1F: /* Core i7 and i5 Processor - Nehalem */ | ||
148 | case 0x25: /* Westmere Client | ||
149 | * Clarkdale, Arrandale | ||
150 | */ | ||
151 | case 0x2C: /* Westmere EP - Gulftown */ | ||
152 | cpu_info->caps |= CPUPOWER_CAP_HAS_TURBO_RATIO; | ||
153 | case 0x2A: /* SNB */ | ||
154 | case 0x2D: /* SNB Xeon */ | ||
155 | cpu_info->caps |= CPUPOWER_CAP_HAS_TURBO_RATIO; | ||
156 | cpu_info->caps |= CPUPOWER_CAP_IS_SNB; | ||
157 | break; | ||
158 | case 0x2E: /* Nehalem-EX Xeon - Beckton */ | ||
159 | case 0x2F: /* Westmere-EX Xeon - Eagleton */ | ||
160 | default: | ||
161 | break; | ||
162 | } | ||
163 | } | ||
137 | } | 164 | } |
138 | 165 | ||
139 | /* printf("ID: %u - Extid: 0x%x - Caps: 0x%llx\n", | 166 | /* printf("ID: %u - Extid: 0x%x - Caps: 0x%llx\n", |