Patch from john stultz This patch simply enables the existing timer_cyclone code for Summit/x440 systems. It depends on the previously posted cyclone-fixes_A1. i386/kernel/timers/Makefile | 2 +- i386/kernel/timers/timer.c | 7 ++++++- asm-i386/fixmap.h | 2 +- asm-i386/mach-summit/mach_mpparse.h | 10 ++++++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff -puN arch/i386/kernel/timers/Makefile~enable-timer_cyclone arch/i386/kernel/timers/Makefile --- 25/arch/i386/kernel/timers/Makefile~enable-timer_cyclone 2003-02-05 19:49:42.000000000 -0800 +++ 25-akpm/arch/i386/kernel/timers/Makefile 2003-02-05 19:49:42.000000000 -0800 @@ -4,4 +4,4 @@ obj-y := timer.o timer_none.o timer_tsc.o timer_pit.o -obj-$(CONFIG_X86_CYCLONE) += timer_cyclone.o +obj-$(CONFIG_X86_SUMMIT) += timer_cyclone.o diff -puN arch/i386/kernel/timers/timer.c~enable-timer_cyclone arch/i386/kernel/timers/timer.c --- 25/arch/i386/kernel/timers/timer.c~enable-timer_cyclone 2003-02-05 19:49:42.000000000 -0800 +++ 25-akpm/arch/i386/kernel/timers/timer.c 2003-02-05 19:49:42.000000000 -0800 @@ -4,9 +4,14 @@ /* list of externed timers */ extern struct timer_opts timer_pit; extern struct timer_opts timer_tsc; - +#ifdef CONFIG_X86_SUMMIT +extern struct timer_opts timer_cyclone; +#endif /* list of timers, ordered by preference, NULL terminated */ static struct timer_opts* timers[] = { +#ifdef CONFIG_X86_SUMMIT + &timer_cyclone, +#endif &timer_tsc, &timer_pit, NULL, diff -puN include/asm-i386/fixmap.h~enable-timer_cyclone include/asm-i386/fixmap.h --- 25/include/asm-i386/fixmap.h~enable-timer_cyclone 2003-02-05 19:49:42.000000000 -0800 +++ 25-akpm/include/asm-i386/fixmap.h 2003-02-05 19:49:42.000000000 -0800 @@ -60,7 +60,7 @@ enum fixed_addresses { #ifdef CONFIG_X86_F00F_BUG FIX_F00F_IDT, /* Virtual mapping for IDT */ #endif -#ifdef CONFIG_X86_CYCLONE +#ifdef CONFIG_X86_SUMMIT FIX_CYCLONE_TIMER, /*cyclone timer register*/ #endif #ifdef CONFIG_HIGHMEM diff -puN include/asm-i386/mach-summit/mach_mpparse.h~enable-timer_cyclone include/asm-i386/mach-summit/mach_mpparse.h --- 25/include/asm-i386/mach-summit/mach_mpparse.h~enable-timer_cyclone 2003-02-05 19:49:42.000000000 -0800 +++ 25-akpm/include/asm-i386/mach-summit/mach_mpparse.h 2003-02-05 19:49:42.000000000 -0800 @@ -1,6 +1,8 @@ #ifndef __ASM_MACH_MPPARSE_H #define __ASM_MACH_MPPARSE_H +extern int use_cyclone; + static inline void mpc_oem_bus_info(struct mpc_config_bus *m, char *name, struct mpc_config_translation *translation) { @@ -17,14 +19,18 @@ static inline void mps_oem_check(struct { if (!strncmp(oem, "IBM ENSW", 8) && (!strncmp(productid, "VIGIL SMP", 9) - || !strncmp(productid, "RUTHLESS SMP", 12))) + || !strncmp(productid, "RUTHLESS SMP", 12))){ x86_summit = 1; + use_cyclone = 1; /*enable cyclone-timer*/ + } } /* Hook from generic ACPI tables.c */ static inline void acpi_madt_oem_check(char *oem_id, char *oem_table_id) { - if (!strncmp(oem_id, "IBM", 3) && !strncmp(oem_table_id, "SERVIGIL", 8)) + if (!strncmp(oem_id, "IBM", 3) && !strncmp(oem_table_id, "SERVIGIL", 8)){ x86_summit = 1; + use_cyclone = 1; /*enable cyclone-timer*/ + } } #endif /* __ASM_MACH_MPPARSE_H */ _