diff options
author | Kanoj Sarcar <kanoj@engr.sgi.com> | 2001-03-02 03:04:55 +0000 |
---|---|---|
committer | Kanoj Sarcar <kanoj@engr.sgi.com> | 2001-03-02 03:04:55 +0000 |
commit | 1a811c4fbfd1671c78b64382cf16261ab75cd3ca (patch) | |
tree | 8cc441e6d168446065f704102700c4cb098f5585 /include/asm-mips64 | |
parent | af5b47439685fb1522e9bc75a2ac941cd3482008 (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.h | 19 |
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) |