V4L/DVB: s2255drv: return if vdev not found
[safe/jmp/linux-2.6] / drivers / sh / intc.c
index b8983fe..94ad6bd 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/io.h>
+#include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/sh_intc.h>
 #include <linux/sysdev.h>
@@ -788,6 +789,10 @@ static void __init intc_register_irq(struct intc_desc *desc,
 
        if (desc->hw.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,
@@ -1053,8 +1058,12 @@ unsigned int create_irq_nr(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;
 }