summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2004-02-06 14:34:35 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2004-02-06 14:34:35 +1100
commit3e74492e6c6cee6a96dadebda156982776ba4d5c (patch)
tree416f4773e7b5c309383122a34a64a6f4a26ee0f7 /include
parente286560c9e184c28608cc127f9ad5b7e92c2b0b1 (diff)
ppc32: PowerMac G5 interrupt management
The cascaded northbridge MPIC is currently dealt with a special modified version of open_pic.c (open_pic2.c). A better mecanism will have to be found for 2.7
Diffstat (limited to 'include')
-rw-r--r--include/asm-ppc/open_pic.h27
1 files changed, 24 insertions, 3 deletions
diff --git a/include/asm-ppc/open_pic.h b/include/asm-ppc/open_pic.h
index 1986cddd13e4..094f45e9be6c 100644
--- a/include/asm-ppc/open_pic.h
+++ b/include/asm-ppc/open_pic.h
@@ -21,8 +21,8 @@
* Non-offset'ed vector numbers
*/
-#define OPENPIC_VEC_TIMER 64 /* and up */
-#define OPENPIC_VEC_IPI 72 /* and up */
+#define OPENPIC_VEC_TIMER 110 /* and up */
+#define OPENPIC_VEC_IPI 118 /* and up */
#define OPENPIC_VEC_SPURIOUS 127
/* OpenPIC IRQ controller structure */
@@ -51,6 +51,7 @@ extern void openpic_setup_ISU(int isu_num, unsigned long addr);
extern void openpic_cause_IPI(u_int ipi, u_int cpumask);
extern void smp_openpic_message_pass(int target, int msg, unsigned long data,
int wait);
+extern void openpic_set_k2_cascade(int irq);
extern inline int openpic_to_irq(int irq)
{
@@ -64,5 +65,25 @@ extern inline int openpic_to_irq(int irq)
return 0;
}
}
-/*extern int open_pic_irq_offset;*/
+/* Support for second openpic on G5 macs */
+
+// FIXME: To be replaced by sane cascaded controller management */
+
+#define PMAC_OPENPIC2_OFFSET 128
+
+#define OPENPIC2_VEC_TIMER 110 /* and up */
+#define OPENPIC2_VEC_IPI 118 /* and up */
+#define OPENPIC2_VEC_SPURIOUS 127
+
+
+extern void* OpenPIC2_Addr;
+
+/* Exported functions */
+extern void openpic2_set_sources(int first_irq, int num_irqs, void *isr);
+extern void openpic2_init(int linux_irq_offset);
+extern void openpic2_init_nmi_irq(u_int irq);
+extern u_int openpic2_irq(void);
+extern void openpic2_eoi(void);
+extern int openpic2_get_irq(struct pt_regs *regs);
+extern void openpic2_setup_ISU(int isu_num, unsigned long addr);
#endif /* _PPC_KERNEL_OPEN_PIC_H */