diff options
| author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2007-01-07 12:14:29 -0500 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-06 11:53:08 -0500 |
| commit | 97dcb82de6cc99a5669eb8e342efc24cceb1e77e (patch) | |
| tree | e195fd57deda8d38652c746c04a7c374cdf951a0 /include/asm-mips/mach-generic | |
| parent | b6ec8f069bf202d2bd888aa9137b2cc3aad4c573 (diff) | |
[MIPS] Define MIPS_CPU_IRQ_BASE in generic header
The irq_base for {mips,rm7k,rm9k}_cpu_irq_init() are constant on all
platforms and are same value on most platforms (0 or 16, depends on
CONFIG_I8259). Define them in asm-mips/mach-generic/irq.h and make
them customizable. This will save a few cycle on each CPU interrupt.
A good side effect is removing some dependencies to MALTA in generic
SMTC code.
Although MIPS_CPU_IRQ_BASE is customizable, this patch changes irq
mappings on DDB5477, EMMA2RH and MIPS_SIM, since really customizing
them might cause some header dependency problem and there seems no
good reason to customize it. So currently only VR41XX is using custom
MIPS_CPU_IRQ_BASE value, which is 0 regardless of CONFIG_I8259.
Testing this patch on those platforms is greatly appreciated. Thank
you.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips/mach-generic')
| -rw-r--r-- | include/asm-mips/mach-generic/irq.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/asm-mips/mach-generic/irq.h b/include/asm-mips/mach-generic/irq.h index 500e10ff24de..91e6778907fe 100644 --- a/include/asm-mips/mach-generic/irq.h +++ b/include/asm-mips/mach-generic/irq.h | |||
| @@ -8,6 +8,32 @@ | |||
| 8 | #ifndef __ASM_MACH_GENERIC_IRQ_H | 8 | #ifndef __ASM_MACH_GENERIC_IRQ_H |
| 9 | #define __ASM_MACH_GENERIC_IRQ_H | 9 | #define __ASM_MACH_GENERIC_IRQ_H |
| 10 | 10 | ||
| 11 | #ifndef NR_IRQS | ||
| 11 | #define NR_IRQS 128 | 12 | #define NR_IRQS 128 |
| 13 | #endif | ||
| 14 | |||
| 15 | #ifdef CONFIG_IRQ_CPU | ||
| 16 | |||
| 17 | #ifndef MIPS_CPU_IRQ_BASE | ||
| 18 | #ifdef CONFIG_I8259 | ||
| 19 | #define MIPS_CPU_IRQ_BASE 16 | ||
| 20 | #else | ||
| 21 | #define MIPS_CPU_IRQ_BASE 0 | ||
| 22 | #endif /* CONFIG_I8259 */ | ||
| 23 | #endif | ||
| 24 | |||
| 25 | #ifdef CONFIG_IRQ_CPU_RM7K | ||
| 26 | #ifndef RM7K_CPU_IRQ_BASE | ||
| 27 | #define RM7K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+8) | ||
| 28 | #endif | ||
| 29 | #endif | ||
| 30 | |||
| 31 | #ifdef CONFIG_IRQ_CPU_RM9K | ||
| 32 | #ifndef RM9K_CPU_IRQ_BASE | ||
| 33 | #define RM9K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+12) | ||
| 34 | #endif | ||
| 35 | #endif | ||
| 36 | |||
| 37 | #endif /* CONFIG_IRQ_CPU */ | ||
| 12 | 38 | ||
| 13 | #endif /* __ASM_MACH_GENERIC_IRQ_H */ | 39 | #endif /* __ASM_MACH_GENERIC_IRQ_H */ |
