• Biju Das's avatar
    irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type · 853a6030
    Biju Das authored
    RZ/G2L interrupt chips require that the interrupt is masked before changing
    the NMI, IRQ, TINT interrupt settings. Aside of that, after setting an edge
    trigger type it is required to clear the interrupt status register in order
    to avoid spurious interrupts.
    
    The current implementation fails to do either of that and therefore is
    prone to generate spurious interrupts when setting the trigger type.
    
    Address this by:
    
      - Ensuring that the interrupt is masked at the chip level across the
        update for the TINT chip
    
      - Clearing the interrupt status register after updating the trigger mode
        for edge type interrupts
    
    [ tglx: Massaged changelog and reverted the spin_lock_irqsave() change as
      	the set_type() callback is always called with interrupts disabled. ]
    
    Fixes: 3fed0955 ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver")
    Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    853a6030
irq-renesas-rzg2l.c 13 KB