diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-03-23 11:08:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-23 13:21:02 -0400 |
commit | e585bef815c0315f2730d7bb4e15b82602454efd (patch) | |
tree | 914d777ba187e656a89075398f81e485885f0aab /arch/i386 | |
parent | 296d93cd0205433489b0689533426ce0a8cf2dec (diff) |
[PATCH] i386: add command line option "local_apic_timer_c2_ok"
It turned out that it is almost impossible to trust ACPI, BIOS & Co.
regarding the C states. This was the reason to switch the local apic
timer off in C2 state already. OTOH there are sane and well behaving
systems, which get punished by that decision.
Allow the user to confirm that the local apic timer is trustworthy in C2
state. This keeps the default behaviour on the safe side.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/apic.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 244c3fe9b8c3..e88415282a6f 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -64,6 +64,9 @@ static int enable_local_apic __initdata = 0; | |||
64 | static int local_apic_timer_verify_ok; | 64 | static int local_apic_timer_verify_ok; |
65 | /* Disable local APIC timer from the kernel commandline or via dmi quirk */ | 65 | /* Disable local APIC timer from the kernel commandline or via dmi quirk */ |
66 | static int local_apic_timer_disabled; | 66 | static int local_apic_timer_disabled; |
67 | /* Local APIC timer works in C2 */ | ||
68 | int local_apic_timer_c2_ok; | ||
69 | EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok); | ||
67 | 70 | ||
68 | /* | 71 | /* |
69 | * Debug level, exported for io_apic.c | 72 | * Debug level, exported for io_apic.c |
@@ -1232,6 +1235,13 @@ static int __init parse_disable_lapic_timer(char *arg) | |||
1232 | } | 1235 | } |
1233 | early_param("nolapic_timer", parse_disable_lapic_timer); | 1236 | early_param("nolapic_timer", parse_disable_lapic_timer); |
1234 | 1237 | ||
1238 | static int __init parse_lapic_timer_c2_ok(char *arg) | ||
1239 | { | ||
1240 | local_apic_timer_c2_ok = 1; | ||
1241 | return 0; | ||
1242 | } | ||
1243 | early_param("lapic_timer_c2_ok", parse_lapic_timer_c2_ok); | ||
1244 | |||
1235 | static int __init apic_set_verbosity(char *str) | 1245 | static int __init apic_set_verbosity(char *str) |
1236 | { | 1246 | { |
1237 | if (strcmp("debug", str) == 0) | 1247 | if (strcmp("debug", str) == 0) |