diff --git a/arch/mips/include/asm/mach-jz4740/irq.h b/arch/mips/include/asm/mach-jz4740/irq.h index df50736749c1..5ce430218e42 100644 --- a/arch/mips/include/asm/mach-jz4740/irq.h +++ b/arch/mips/include/asm/mach-jz4740/irq.h @@ -54,4 +54,6 @@ #define NR_IRQS (JZ4740_IRQ_ADC_BASE + 6) +extern void __init jz4740_intc_init(void); + #endif diff --git a/arch/mips/jz4740/irq.c b/arch/mips/jz4740/irq.c index a2452bb80e1d..bac1f52d327f 100644 --- a/arch/mips/jz4740/irq.c +++ b/arch/mips/jz4740/irq.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -78,13 +77,11 @@ static struct irqaction jz4740_cascade_action = { .name = "JZ4740 cascade interrupt", }; -void __init arch_init_irq(void) +void __init jz4740_intc_init(void) { struct irq_chip_generic *gc; struct irq_chip_type *ct; - irqchip_init(); - jz_intc_base = ioremap(JZ4740_INTC_BASE_ADDR, 0x14); /* Mask all irqs */ diff --git a/arch/mips/jz4740/setup.c b/arch/mips/jz4740/setup.c index d6bb7a39fafe..480873031007 100644 --- a/arch/mips/jz4740/setup.c +++ b/arch/mips/jz4740/setup.c @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -24,6 +25,7 @@ #include #include +#include #include "reset.h" @@ -78,3 +80,9 @@ const char *get_system_type(void) { return "JZ4740"; } + +void __init arch_init_irq(void) +{ + irqchip_init(); + jz4740_intc_init(); +}