These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / mips / alchemy / devboards / bcsr.c
index c98c9ea..faeddf1 100644 (file)
@@ -8,6 +8,7 @@
  */
 
 #include <linux/interrupt.h>
+#include <linux/irqchip/chained_irq.h>
 #include <linux/module.h>
 #include <linux/spinlock.h>
 #include <linux/irq.h>
@@ -85,13 +86,14 @@ EXPORT_SYMBOL_GPL(bcsr_mod);
 /*
  * DB1200/PB1200 CPLD IRQ muxer
  */
-static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d)
+static void bcsr_csc_handler(struct irq_desc *d)
 {
        unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
+       struct irq_chip *chip = irq_desc_get_chip(d);
 
-       disable_irq_nosync(irq);
+       chained_irq_enter(chip, d);
        generic_handle_irq(bcsr_csc_base + __ffs(bisr));
-       enable_irq(irq);
+       chained_irq_exit(chip, d);
 }
 
 static void bcsr_irq_mask(struct irq_data *d)