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)
committerJiri Slaby <jslaby@suse.cz>
Wed, 5 Mar 2014 16:13:52 +0000 (17:13 +0100)
commit 5f40067fc86f0e49329ad4a852c278998ff4394e upstream.

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>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
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;