summaryrefslogtreecommitdiffstats
path: root/include/asm-mips64
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@engr.sgi.com>2001-03-02 03:04:55 +0000
committerKanoj Sarcar <kanoj@engr.sgi.com>2001-03-02 03:04:55 +0000
commit1a811c4fbfd1671c78b64382cf16261ab75cd3ca (patch)
tree8cc441e6d168446065f704102700c4cb098f5585 /include/asm-mips64
parentaf5b47439685fb1522e9bc75a2ac941cd3482008 (diff)
Cleanup the code that handles (bridge) intr path setup. Come up with a
better per node scheme to associate Linux irqs with cpu intr levels.
Diffstat (limited to 'include/asm-mips64')
-rw-r--r--include/asm-mips64/irq.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/include/asm-mips64/irq.h b/include/asm-mips64/irq.h
index 719667e0f..b1db38fa3 100644
--- a/include/asm-mips64/irq.h
+++ b/include/asm-mips64/irq.h
@@ -6,15 +6,32 @@
* Copyright (C) 1994 by Waldorf GMBH, written by Ralf Baechle
* Copyright (C) 1995, 96, 97, 98, 1999, 2000 by Ralf Baechle
* Copyright (C) 1999, 2000 Silicon Graphics, Inc.
+ * Copyright (C) 2001 Kanoj Sarcar
*/
#ifndef _ASM_IRQ_H
#define _ASM_IRQ_H
#include <linux/config.h>
+#include <asm/sn/arch.h>
#define NR_IRQS 256
-#define TIMER_IRQ 0
+/*
+ * Number of levels in INT_PEND0. Can be set to 128 if we also
+ * consider INT_PEND1.
+ */
+#define PERNODE_LEVELS 64
+
+extern int node_level_to_irq[MAX_COMPACT_NODES][PERNODE_LEVELS];
+
+/*
+ * we need to map irq's up to at least bit 7 of the INT_MASK0_A register
+ * since bits 0-6 are pre-allocated for other purposes.
+ */
+#define LEAST_LEVEL 7
+#define FAST_IRQ_TO_LEVEL(i) ((i) + LEAST_LEVEL)
+#define LEVEL_TO_IRQ(c, l) \
+ (node_level_to_irq[CPUID_TO_COMPACT_NODEID(c)][(l)])
#ifdef CONFIG_I8259
static inline int irq_cannonicalize(int irq)