]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/irqchip/irq-tb10x.c
Merge tag 'regmap-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / drivers / irqchip / irq-tb10x.c
index accc20036a3c6580eb7320554f4603306c72b1ac..848d782a2a3bdc6a7d3d3c66732da1f205cc8581 100644 (file)
 #include <linux/interrupt.h>
 #include <linux/irqdomain.h>
 #include <linux/irq.h>
+#include <linux/irqchip.h>
 #include <linux/of_irq.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/io.h>
 #include <linux/slab.h>
 #include <linux/bitops.h>
-#include "irqchip.h"
 
 #define AB_IRQCTL_INT_ENABLE   0x00
 #define AB_IRQCTL_INT_STATUS   0x04
@@ -97,9 +97,10 @@ static int tb10x_irq_set_type(struct irq_data *data, unsigned int flow_type)
        return IRQ_SET_MASK_OK;
 }
 
-static void tb10x_irq_cascade(unsigned int irq, struct irq_desc *desc)
+static void tb10x_irq_cascade(struct irq_desc *desc)
 {
        struct irq_domain *domain = irq_desc_get_handler_data(desc);
+       unsigned int irq = irq_desc_get_irq(desc);
 
        generic_handle_irq(irq_find_mapping(domain, irq));
 }
@@ -173,8 +174,8 @@ static int __init of_tb10x_init_irq(struct device_node *ictl,
        for (i = 0; i < nrirqs; i++) {
                unsigned int irq = irq_of_parse_and_map(ictl, i);
 
-               irq_set_handler_data(irq, domain);
-               irq_set_chained_handler(irq, tb10x_irq_cascade);
+               irq_set_chained_handler_and_data(irq, tb10x_irq_cascade,
+                                                domain);
        }
 
        ab_irqctl_writereg(gc, AB_IRQCTL_INT_ENABLE, 0);