]> git.baikalelectronics.ru Git - kernel.git/commit
irqchip/versatile-fpga: Apply clear-mask earlier
authorSungbo Eo <mans0n@gorani.run>
Sat, 21 Mar 2020 13:38:42 +0000 (22:38 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Apr 2020 08:50:11 +0000 (10:50 +0200)
commitf2f56475094530577defe3bfa364c21b5d4d4c6d
treeb9a531444d575f7de51532582e232c5ff900364b
parent1cec29aa6848c07dabd6446c6143d55202d89479
irqchip/versatile-fpga: Apply clear-mask earlier

commit 5ea3e06cfc6f751aaa08d985671a896dfaa14c83 upstream.

Clear its own IRQs before the parent IRQ get enabled, so that the
remaining IRQs do not accidentally interrupt the parent IRQ controller.

This patch also fixes a reboot bug on OX820 SoC, where the remaining
rps-timer IRQ raises a GIC interrupt that is left pending. After that,
the rps-timer IRQ is cleared during driver initialization, and there's
no IRQ left in rps-irq when local_irq_enable() is called, which evokes
an error message "unexpected IRQ trap".

Fixes: 35d25c5a609f ("irqchip: versatile FPGA: support cascaded interrupts from DT")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200321133842.2408823-1-mans0n@gorani.run
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/irqchip/irq-versatile-fpga.c