ARM: irq: Call irqchip_init if no init_irq function is specified
[firefly-linux-kernel-4.4.55.git] / arch / arm / kernel / irq.c
index 8e4ef4c83a741bc0c5fd3a48735a9b6377a9ba71..9723d17b8f38552212b8540aaadc10dd4442fc2b 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/ioport.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
+#include <linux/irqchip.h>
 #include <linux/random.h>
 #include <linux/smp.h>
 #include <linux/init.h>
@@ -114,7 +115,10 @@ EXPORT_SYMBOL_GPL(set_irq_flags);
 
 void __init init_IRQ(void)
 {
-       machine_desc->init_irq();
+       if (IS_ENABLED(CONFIG_OF) && !machine_desc->init_irq)
+               irqchip_init();
+       else
+               machine_desc->init_irq();
 }
 
 #ifdef CONFIG_MULTI_IRQ_HANDLER