irqchip: versatile-fpga: Add IRQCHIP_DECLARE support
authorRob Herring <robh@kernel.org>
Thu, 29 May 2014 21:39:43 +0000 (16:39 -0500)
committerRob Herring <robh@kernel.org>
Tue, 24 Jun 2014 19:15:58 +0000 (14:15 -0500)
Add support for initialization using IRQCHIP_DECLARE. This also requires
that the controller initialization set the handle_irq function pointer
itself when it is a primary controller.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
drivers/irqchip/irq-versatile-fpga.c

index 3ae2bb8..8e0bb56 100644 (file)
@@ -14,6 +14,8 @@
 #include <asm/exception.h>
 #include <asm/mach/irq.h>
 
+#include "irqchip.h"
+
 #define IRQ_STATUS             0x00
 #define IRQ_RAW_STATUS         0x04
 #define IRQ_ENABLE_SET         0x08
@@ -201,8 +203,10 @@ int __init fpga_irq_of_init(struct device_node *node,
 
        /* Some chips are cascaded from a parent IRQ */
        parent_irq = irq_of_parse_and_map(node, 0);
-       if (!parent_irq)
+       if (!parent_irq) {
+               set_handle_irq(fpga_handle_irq);
                parent_irq = -1;
+       }
 
        fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node);
 
@@ -211,4 +215,5 @@ int __init fpga_irq_of_init(struct device_node *node,
 
        return 0;
 }
+IRQCHIP_DECLARE(arm_fpga, "arm,versatile-fpga-irq", fpga_irq_of_init);
 #endif