aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/sh/intc.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-02-16 22:37:42 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-02-16 22:37:42 -0500
commit4d2185d93c670902b6e4716b360e2bcb7d2f7b2f (patch)
treec64add5c030ff50660af80664d5e294d6c3f2e9d /drivers/sh/intc.c
parent319c2cc761505ee54a9536c5d0b9c2ee3fb33866 (diff)
sh: Use dummy_irq_chip for INTC redirect vectors.
Presently there's an ordering issue with the chained handler change which places the set_irq_chip() after set_irq_chained_handler(). This causes a warning to be emitted as the IRQ chip needs to be set first. However, there is the caveat that redirect IRQs can't use the parent IRQ's irq chip as they are just dummy redirects, resulting in intc_enable() blowing up when set_irq_chained_handler() attempts to start up the redirect IRQ. In these cases we can just use dummy_irq_chip directly, as we already extract the parent IRQ and chip from the redirect handler. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/sh/intc.c')
-rw-r--r--drivers/sh/intc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/sh/intc.c b/drivers/sh/intc.c
index 1da1edef2221..3a5a17db9474 100644
--- a/drivers/sh/intc.c
+++ b/drivers/sh/intc.c
@@ -899,8 +899,8 @@ void __init register_intc_controller(struct intc_desc *desc)
899 vect2->enum_id = 0; 899 vect2->enum_id = 0;
900 900
901 /* redirect this interrupts to the first one */ 901 /* redirect this interrupts to the first one */
902 set_irq_chip(irq2, &dummy_irq_chip);
902 set_irq_chained_handler(irq2, intc_redirect_irq); 903 set_irq_chained_handler(irq2, intc_redirect_irq);
903 set_irq_chip(irq2, &d->chip);
904 set_irq_data(irq2, (void *)irq); 904 set_irq_data(irq2, (void *)irq);
905 } 905 }
906 } 906 }