diff options
| author | Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> | 2009-12-14 03:57:00 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-12-14 04:38:41 -0500 |
| commit | 70fe440718d9f42bf963c2cffe12008eb5556165 (patch) | |
| tree | d9c1e3e4edce356ba4ee3480576682ab76c0716f | |
| parent | 485a2e1973fd9f98c2c6776e66ac4721882b69e0 (diff) | |
x86, mce: Clean up thermal init by introducing intel_thermal_supported()
It looks better to have a common function. No change in functionality.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
LKML-Reference: <4B25FDDC.407@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
| -rw-r--r-- | arch/x86/kernel/cpu/mcheck/therm_throt.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c index 0a9b57702be4..81c499eceb21 100644 --- a/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c | |||
| @@ -256,6 +256,16 @@ asmlinkage void smp_thermal_interrupt(struct pt_regs *regs) | |||
| 256 | ack_APIC_irq(); | 256 | ack_APIC_irq(); |
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | /* Thermal monitoring depends on APIC, ACPI and clock modulation */ | ||
| 260 | static int intel_thermal_supported(struct cpuinfo_x86 *c) | ||
| 261 | { | ||
| 262 | if (!cpu_has_apic) | ||
| 263 | return 0; | ||
| 264 | if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC)) | ||
| 265 | return 0; | ||
| 266 | return 1; | ||
| 267 | } | ||
| 268 | |||
| 259 | void __init mcheck_intel_therm_init(void) | 269 | void __init mcheck_intel_therm_init(void) |
| 260 | { | 270 | { |
| 261 | /* | 271 | /* |
| @@ -263,8 +273,7 @@ void __init mcheck_intel_therm_init(void) | |||
| 263 | * LVT value on BSP and use that value to restore APs' thermal LVT | 273 | * LVT value on BSP and use that value to restore APs' thermal LVT |
| 264 | * entry BIOS programmed later | 274 | * entry BIOS programmed later |
| 265 | */ | 275 | */ |
| 266 | if (cpu_has(&boot_cpu_data, X86_FEATURE_ACPI) && | 276 | if (intel_thermal_supported(&boot_cpu_data)) |
| 267 | cpu_has(&boot_cpu_data, X86_FEATURE_ACC)) | ||
| 268 | lvtthmr_init = apic_read(APIC_LVTTHMR); | 277 | lvtthmr_init = apic_read(APIC_LVTTHMR); |
| 269 | } | 278 | } |
| 270 | 279 | ||
| @@ -274,9 +283,7 @@ void intel_init_thermal(struct cpuinfo_x86 *c) | |||
| 274 | int tm2 = 0; | 283 | int tm2 = 0; |
| 275 | u32 l, h; | 284 | u32 l, h; |
| 276 | 285 | ||
| 277 | /* Thermal monitoring depends on APIC, ACPI and clock modulation */ | 286 | if (!intel_thermal_supported(c)) |
| 278 | if (!cpu_has_apic || !cpu_has(c, X86_FEATURE_ACPI) || | ||
| 279 | !cpu_has(c, X86_FEATURE_ACC)) | ||
| 280 | return; | 287 | return; |
| 281 | 288 | ||
| 282 | /* | 289 | /* |
