Patch from john stultz <johnstul@us.ibm.com>

        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 */

_