diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2007-12-03 11:17:10 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2007-12-03 11:17:10 -0500 |
commit | c86c7fbc829e27e2a4093f98ded9fbd75e515adb (patch) | |
tree | 310d217b4b2e582d84798e65dac309f1d173f1ad /arch/x86/kernel/reboot_32.c | |
parent | 92d499d991ec4f5cbd00d6f33967eab9d3ee8d6c (diff) |
x86: disable hpet on shutdown
If HPET was enabled by pci quirks, we use i8253 as initial clockevent
because pci quirks doesn't run until pci is initialized.
The above means the kernel (or something) is assuming HPET legacy
replacement is disabled and can use i8253 at boot.
If we used kexec, it isn't true. So, this patch disables HPET legacy
replacement for kexec in machine_shutdown().
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/reboot_32.c')
-rw-r--r-- | arch/x86/kernel/reboot_32.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/reboot_32.c b/arch/x86/kernel/reboot_32.c index 9e2269d00918..bb1a0f889c5e 100644 --- a/arch/x86/kernel/reboot_32.c +++ b/arch/x86/kernel/reboot_32.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/reboot.h> | 11 | #include <linux/reboot.h> |
12 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
13 | #include <asm/apic.h> | 13 | #include <asm/apic.h> |
14 | #include <asm/hpet.h> | ||
14 | #include <asm/desc.h> | 15 | #include <asm/desc.h> |
15 | #include "mach_reboot.h" | 16 | #include "mach_reboot.h" |
16 | #include <asm/reboot_fixups.h> | 17 | #include <asm/reboot_fixups.h> |
@@ -326,6 +327,9 @@ static void native_machine_shutdown(void) | |||
326 | #ifdef CONFIG_X86_IO_APIC | 327 | #ifdef CONFIG_X86_IO_APIC |
327 | disable_IO_APIC(); | 328 | disable_IO_APIC(); |
328 | #endif | 329 | #endif |
330 | #ifdef CONFIG_HPET_TIMER | ||
331 | hpet_disable(); | ||
332 | #endif | ||
329 | } | 333 | } |
330 | 334 | ||
331 | void __attribute__((weak)) mach_reboot_fixups(void) | 335 | void __attribute__((weak)) mach_reboot_fixups(void) |