sh: Let INTC set IRQF_VALID on ARM platforms.
authorMagnus Damm <damm@opensource.se>
Fri, 5 Feb 2010 11:15:25 +0000 (11:15 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 8 Feb 2010 03:45:48 +0000 (12:45 +0900)
Reuse the SuperH INTC code on ARM by using set_irq_flags()
to set IRQF_VALID on ARM platforms.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

drivers/sh/intc.c

index d5d7f23..926013b 100644 (file)
@@ -658,6 +658,10 @@ static void __init intc_register_irq(struct intc_desc *desc,
 
        if (desc->ack_regs)
                ack_handle[irq] = intc_ack_data(desc, d, enum_id);
+
+#ifdef CONFIG_ARM
+       set_irq_flags(irq, IRQF_VALID); /* Enable IRQ on ARM systems */
+#endif
 }
 
 static unsigned int __init save_reg(struct intc_desc_int *d,
@@ -902,8 +906,12 @@ static unsigned int create_irq_on_node(unsigned int irq_want, int node)
 out_unlock:
        spin_unlock_irqrestore(&vector_lock, flags);
 
-       if (irq > 0)
+       if (irq > 0) {
                dynamic_irq_init(irq);
+#ifdef CONFIG_ARM
+               set_irq_flags(irq, IRQF_VALID); /* Enable IRQ on ARM systems */
+#endif
+       }
 
        return irq;
 }