| From 5f40067fc86f0e49329ad4a852c278998ff4394e Mon Sep 17 00:00:00 2001 |
| From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> |
| Date: Thu, 23 Jan 2014 23:38:05 +0100 |
| Subject: irqchip: orion: use handle_edge_irq on bridge irqs |
| |
| From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/irqchip/irq-orion.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/irqchip/irq-orion.c |
| +++ b/drivers/irqchip/irq-orion.c |
| @@ -143,7 +143,7 @@ static int __init orion_bridge_irq_init( |
| } |
| |
| 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; |