
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>
40 lines
798 B
C
40 lines
798 B
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Copyright (C) 2003 by Ralf Baechle
|
|
*/
|
|
#ifndef __ASM_MACH_GENERIC_IRQ_H
|
|
#define __ASM_MACH_GENERIC_IRQ_H
|
|
|
|
#ifndef NR_IRQS
|
|
#define NR_IRQS 128
|
|
#endif
|
|
|
|
#ifdef CONFIG_IRQ_CPU
|
|
|
|
#ifndef MIPS_CPU_IRQ_BASE
|
|
#ifdef CONFIG_I8259
|
|
#define MIPS_CPU_IRQ_BASE 16
|
|
#else
|
|
#define MIPS_CPU_IRQ_BASE 0
|
|
#endif /* CONFIG_I8259 */
|
|
#endif
|
|
|
|
#ifdef CONFIG_IRQ_CPU_RM7K
|
|
#ifndef RM7K_CPU_IRQ_BASE
|
|
#define RM7K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+8)
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef CONFIG_IRQ_CPU_RM9K
|
|
#ifndef RM9K_CPU_IRQ_BASE
|
|
#define RM9K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+12)
|
|
#endif
|
|
#endif
|
|
|
|
#endif /* CONFIG_IRQ_CPU */
|
|
|
|
#endif /* __ASM_MACH_GENERIC_IRQ_H */
|