From: "Andi Kleen" resume PIT for x86_64 Signed-off-by: Luming Yu Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/arch/x86_64/kernel/i8259.c | 6 ++++++ 25-akpm/arch/x86_64/kernel/time.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff -puN arch/x86_64/kernel/i8259.c~x86_64-resume-pit-for-x86_64 arch/x86_64/kernel/i8259.c --- 25/arch/x86_64/kernel/i8259.c~x86_64-resume-pit-for-x86_64 Wed Mar 23 15:38:53 2005 +++ 25-akpm/arch/x86_64/kernel/i8259.c Wed Mar 23 15:38:53 2005 @@ -477,6 +477,7 @@ void reschedule_interrupt(void); void call_function_interrupt(void); void invalidate_interrupt(void); void thermal_interrupt(void); +void i8254_timer_resume(void); static void setup_timer(void) { @@ -493,6 +494,11 @@ static int timer_resume(struct sys_devic return 0; } +void i8254_timer_resume(void) +{ + setup_timer(); +} + static struct sysdev_class timer_sysclass = { set_kset_name("timer"), .resume = timer_resume, diff -puN arch/x86_64/kernel/time.c~x86_64-resume-pit-for-x86_64 arch/x86_64/kernel/time.c --- 25/arch/x86_64/kernel/time.c~x86_64-resume-pit-for-x86_64 Wed Mar 23 15:38:53 2005 +++ 25-akpm/arch/x86_64/kernel/time.c Wed Mar 23 15:38:53 2005 @@ -46,7 +46,7 @@ EXPORT_SYMBOL(jiffies_64); #ifdef CONFIG_CPU_FREQ static void cpufreq_delayed_get(void); #endif - +extern void i8254_timer_resume(void); extern int using_apic_timer; DEFINE_SPINLOCK(rtc_lock); @@ -980,6 +980,8 @@ static int timer_resume(struct sys_devic if (vxtime.hpet_address) hpet_reenable(); + else + i8254_timer_resume(); sec = ctime + clock_cmos_diff; write_seqlock_irqsave(&xtime_lock,flags); _