summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2005-09-23 06:43:22 +0200
committerStephen Rothwell <sfr@canb.auug.org.au>2005-09-23 06:43:22 +0200
commitba293fff085fde5b9f1b5a57c8abb1a8098d0c59 (patch)
treea5fdbb59380facc566adcfc3c4a2dea947324473
parentppc64 iSeries: Move iSeries ppc_md functions into a machdep_calls struct (diff)
downloadlinux-ba293fff085fde5b9f1b5a57c8abb1a8098d0c59.tar.xz
linux-ba293fff085fde5b9f1b5a57c8abb1a8098d0c59.zip
ppc46 iSeries: Make some generic irq code compile for iSeries
In order to call finish_device_tree() on iSeries we need to define virt_irq_create_mapping(). We also need to set ppc64_interrupt_controller to something other than zero. If we want to do interrupt setup via the device tree on iSeries this code will need some serious work, but it's harmless to have it there as long as the nodes in the iSeries device tree don't cause it to be invoked. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
-rw-r--r--arch/ppc64/kernel/iSeries_irq.c13
-rw-r--r--arch/ppc64/kernel/iSeries_setup.c2
-rw-r--r--include/asm-ppc64/processor.h1
3 files changed, 16 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/iSeries_irq.c b/arch/ppc64/kernel/iSeries_irq.c
index 77376c1bd611..0170682a8ca5 100644
--- a/arch/ppc64/kernel/iSeries_irq.c
+++ b/arch/ppc64/kernel/iSeries_irq.c
@@ -351,3 +351,16 @@ int __init iSeries_allocate_IRQ(HvBusNumber busNumber,
irq_desc[virtirq].handler = &iSeries_IRQ_handler;
return virtirq;
}
+
+int virt_irq_create_mapping(unsigned int real_irq)
+{
+ BUG(); /* Don't call this on iSeries, yet */
+
+ return 0;
+}
+
+void virt_irq_init(void)
+{
+ return;
+}
+
diff --git a/arch/ppc64/kernel/iSeries_setup.c b/arch/ppc64/kernel/iSeries_setup.c
index b5dcb08547bd..75d8db4eaac6 100644
--- a/arch/ppc64/kernel/iSeries_setup.c
+++ b/arch/ppc64/kernel/iSeries_setup.c
@@ -321,6 +321,8 @@ static void __init iSeries_init_early(void)
ppcdbg_initialize();
+ ppc64_interrupt_controller = IC_ISERIES;
+
#if defined(CONFIG_BLK_DEV_INITRD)
/*
* If the init RAM disk has been configured and there is
diff --git a/include/asm-ppc64/processor.h b/include/asm-ppc64/processor.h
index 4146189006e3..fe5cd2f5868a 100644
--- a/include/asm-ppc64/processor.h
+++ b/include/asm-ppc64/processor.h
@@ -291,6 +291,7 @@
#define IC_OPEN_PIC 1
#define IC_PPC_XIC 2
#define IC_BPA_IIC 3
+#define IC_ISERIES 4
#define XGLUE(a,b) a##b
#define GLUE(a,b) XGLUE(a,b)