[ARM] Fix Integrator and Versatile interrupt initialisation
Both Integrator and Versatile were using set_irq_handler() and enable_irq(), and working around the initialisation of the chained interrupt, instead of the more correct set_irq_chained_handler() function. Fix Integrator and Versatile to use the right function, and remove these work-arounds. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
e2f04e1894
commit
56f1319e87
2 changed files with 3 additions and 7 deletions
|
@ -232,8 +232,6 @@ static void __init intcp_init_irq(void)
|
||||||
for (i = IRQ_PIC_START; i <= IRQ_PIC_END; i++) {
|
for (i = IRQ_PIC_START; i <= IRQ_PIC_END; i++) {
|
||||||
if (i == 11)
|
if (i == 11)
|
||||||
i = 22;
|
i = 22;
|
||||||
if (i == IRQ_CP_CPPLDINT)
|
|
||||||
i++;
|
|
||||||
if (i == 29)
|
if (i == 29)
|
||||||
break;
|
break;
|
||||||
set_irq_chip(i, &pic_chip);
|
set_irq_chip(i, &pic_chip);
|
||||||
|
@ -259,8 +257,7 @@ static void __init intcp_init_irq(void)
|
||||||
set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
|
set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
|
||||||
}
|
}
|
||||||
|
|
||||||
set_irq_handler(IRQ_CP_CPPLDINT, sic_handle_irq);
|
set_irq_chained_handler(IRQ_CP_CPPLDINT, sic_handle_irq);
|
||||||
pic_unmask_irq(IRQ_CP_CPPLDINT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -112,10 +112,9 @@ void __init versatile_init_irq(void)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
vic_init(VA_VIC_BASE, IRQ_VIC_START, ~(1 << 31));
|
vic_init(VA_VIC_BASE, IRQ_VIC_START, ~0);
|
||||||
|
|
||||||
set_irq_handler(IRQ_VICSOURCE31, sic_handle_irq);
|
set_irq_chained_handler(IRQ_VICSOURCE31, sic_handle_irq);
|
||||||
enable_irq(IRQ_VICSOURCE31);
|
|
||||||
|
|
||||||
/* Do second interrupt controller */
|
/* Do second interrupt controller */
|
||||||
writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);
|
writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);
|
||||||
|
|
Loading…
Reference in a new issue