gpio: dwapb: set default handler to be handle_bad_irq()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 15 Apr 2020 14:15:24 +0000 (17:15 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 17 Apr 2020 10:30:05 +0000 (12:30 +0200)
We switch the default handler to be handle_bad_irq() instead of
handle_level_irq(), though for now apply it later in the code,
to make the difference between IRQ chips more visible.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Serge Semin <fancer.lancer@gmail.com>
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Link: https://lore.kernel.org/r/20200415141534.31240-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-dwapb.c

index f61139f..588d5c6 100644 (file)
@@ -400,7 +400,7 @@ static void dwapb_configure_irqs(struct dwapb_gpio *gpio,
                return;
 
        err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2,
-                                            DWAPB_DRIVER_NAME, handle_level_irq,
+                                            DWAPB_DRIVER_NAME, handle_bad_irq,
                                             IRQ_NOREQUEST, 0,
                                             IRQ_GC_INIT_NESTED_LOCK);
        if (err) {
@@ -439,6 +439,7 @@ static void dwapb_configure_irqs(struct dwapb_gpio *gpio,
        }
 
        irq_gc->chip_types[0].type = IRQ_TYPE_LEVEL_MASK;
+       irq_gc->chip_types[0].handler = handle_level_irq;
        irq_gc->chip_types[1].type = IRQ_TYPE_EDGE_BOTH;
        irq_gc->chip_types[1].handler = handle_edge_irq;