irqchip: orion: clear bridge cause register on init
authorSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Thu, 23 Jan 2014 22:38:04 +0000 (23:38 +0100)
committerJason Cooper <jason@lakedaemon.net>
Thu, 6 Feb 2014 18:03:08 +0000 (18:03 +0000)
It is good practice to mask and clear pending irqs on init. We already
mask all irqs, so also clear the bridge irq cause register.

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

index e51d400..4137c3d 100644 (file)
@@ -180,8 +180,9 @@ static int __init orion_bridge_irq_init(struct device_node *np,
        gc->chip_types[0].chip.irq_mask = irq_gc_mask_clr_bit;
        gc->chip_types[0].chip.irq_unmask = irq_gc_mask_set_bit;
 
-       /* mask all interrupts */
+       /* mask and clear all interrupts */
        writel(0, gc->reg_base + ORION_BRIDGE_IRQ_MASK);
+       writel(0, gc->reg_base + ORION_BRIDGE_IRQ_CAUSE);
 
        irq_set_handler_data(irq, domain);
        irq_set_chained_handler(irq, orion_bridge_irq_handler);