diff options
author | Andi Kleen <ak@suse.de> | 2006-01-11 16:42:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 22:01:12 -0500 |
commit | 39b3a7910556005a7a0d042ecb7ff98bfa84ea57 (patch) | |
tree | efcb2602e6fd198c9af34e726741eb389fa4e292 /arch/i386/kernel/cpu/amd.c | |
parent | 2d52ede9876ba566b583f255fdc43800eea81baa (diff) |
[PATCH] i386/x86-64: Generalize X86_FEATURE_CONSTANT_TSC flag
Define it for i386 too.
This is a synthetic flag that signifies that the CPU's TSC runs
at a constant P state invariant frequency.
Fix up the logic on x86-64/i386 to set it on all known CPUs.
Use the AMD defined bit to set it on future AMD CPUs.
Cc: venkatesh.pallipadi@intel.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/cpu/amd.c')
-rw-r--r-- | arch/i386/kernel/cpu/amd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index e7697e077f6b..4397f61705e2 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
@@ -216,6 +216,11 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
216 | c->x86_max_cores = 1; | 216 | c->x86_max_cores = 1; |
217 | } | 217 | } |
218 | 218 | ||
219 | if (cpuid_eax(0x80000000) >= 0x80000007) { | ||
220 | if (cpuid_edx(0x80000007) & (1<<8)) | ||
221 | set_bit(X86_FEATURE_CONSTANT_TSC, &c->x86_capability); | ||
222 | } | ||
223 | |||
219 | #ifdef CONFIG_X86_HT | 224 | #ifdef CONFIG_X86_HT |
220 | /* | 225 | /* |
221 | * On a AMD dual core setup the lower bits of the APIC id | 226 | * On a AMD dual core setup the lower bits of the APIC id |
@@ -233,6 +238,7 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
233 | cpu, c->x86_max_cores, cpu_core_id[cpu]); | 238 | cpu, c->x86_max_cores, cpu_core_id[cpu]); |
234 | } | 239 | } |
235 | #endif | 240 | #endif |
241 | |||
236 | } | 242 | } |
237 | 243 | ||
238 | static unsigned int amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) | 244 | static unsigned int amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) |