irqchip: orion: use handle_edge_irq on bridge irqs
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Thu, 23 Jan 2014 22:38:05 +0000 (23:38 +0100)
committerJason Cooper <jason@lakedaemon.net>
Thu, 6 Feb 2014 18:03:22 +0000 (18:03 +0000)
Bridge irqs are edge-triggered, i.e. they get asserted on low-to-high
transitions and not on the level of the downstream interrupt line.
This replaces handle_level_irq by the more appropriate handle_edge_irq.

Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Tested-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: <stable@vger.kernel.org>: f56c0738b5c2: "irqchip: orion: clear bridge cause register on init"
Cc: <stable@vger.kernel.org> # v3.10+
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
drivers/irqchip/irq-orion.c

index 4137c3d..1f636f7 100644 (file)
@@ -143,7 +143,7 @@ static int __init orion_bridge_irq_init(struct device_node *np,
        }
 
        ret = irq_alloc_domain_generic_chips(domain, nrirqs, 1, np->name,
-                            handle_level_irq, clr, 0, IRQ_GC_INIT_MASK_CACHE);
+                            handle_edge_irq, clr, 0, IRQ_GC_INIT_MASK_CACHE);
        if (ret) {
                pr_err("%s: unable to alloc irq domain gc\n", np->name);
                return ret;