ARM: riscpc: use GENERIC_IRQ_MULTI_HANDLER
authorArnd Bergmann <arnd@arndb.de>
Tue, 30 Nov 2021 07:19:13 +0000 (08:19 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 3 Dec 2021 17:43:38 +0000 (18:43 +0100)
commitc1fe8d054c0a8b0ff0406dcc0ddc6c55e1cfddbc
tree7538f82919d5267012be1ff0c89d0b69a8027b19
parentd60ff2e76610ce4606afc9e3a6d8bd02b73c76e2
ARM: riscpc: use GENERIC_IRQ_MULTI_HANDLER

This is one of the last platforms using the old entry path.
While this code path is spread over a few files, it is fairly
straightforward to convert it into an equivalent C version,
leaving the existing algorithm and all the priority handling
the same.

Unlike most irqchip drivers, this means reading the status
register(s) in a loop and always handling the highest-priority
irq first.

The IOMD_IRQREQC and IOMD_IRQREQD registers are not actaully
used here, but I left the code in place for the time being,
to keep the conversion as direct as possible. It could be
removed in a cleanup on top.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[ardb: drop obsolete IOMD_IRQREQC/IOMD_IRQREQD handling]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Marc Zyngier <maz@kernel.org>
Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
arch/arm/Kconfig
arch/arm/include/asm/hardware/entry-macro-iomd.S [deleted file]
arch/arm/mach-rpc/fiq.S
arch/arm/mach-rpc/include/mach/entry-macro.S [deleted file]
arch/arm/mach-rpc/irq.c