x86, VisWS: turn into generic arch, install proper PCI quirk

Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/mach-visws/setup_visws.c b/arch/x86/mach-visws/setup_visws.c
index 8401208..bbc149f 100644
--- a/arch/x86/mach-visws/setup_visws.c
+++ b/arch/x86/mach-visws/setup_visws.c
@@ -28,6 +28,11 @@
 char visws_board_type	= -1;
 char visws_board_rev	= -1;
 
+int is_visws_box(void)
+{
+	return visws_board_type >= 0;
+}
+
 static int __init visws_time_init_quirk(void)
 {
 	printk(KERN_INFO "Starting Cobalt Timer system clock\n");
diff --git a/arch/x86/pci/visws.c b/arch/x86/pci/visws.c
index 2e02221..9b88389 100644
--- a/arch/x86/pci/visws.c
+++ b/arch/x86/pci/visws.c
@@ -8,6 +8,7 @@
 #include <linux/pci.h>
 #include <linux/init.h>
 
+#include <asm/setup.h>
 #include "cobalt.h"
 #include "lithium.h"
 
@@ -107,7 +108,11 @@
 
 static __init int pci_subsys_init(void)
 {
-	return -1;
+	if (!is_visws_box())
+		return -1;
+
+	pcibios_enable_irq = &pci_visws_enable_irq;
+	pcibios_disable_irq = &pci_visws_disable_irq;
 
 	pci_visws_init();
 	pcibios_init();
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index 1ad7eae..90ab222 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -10,8 +10,10 @@
 
 #ifdef CONFIG_X86_VISWS
 extern void visws_early_detect(void);
+extern int is_visws_box(void);
 #else
 static inline void visws_early_detect(void) { }
+static inline int is_visws_box(void) { return 0; }
 #endif
 
 /*