[PATCH] ARM: Drop custom mdesc->handle_irq()
Arnd Bergmann
arnd at arndb.de
Thu Apr 27 08:19:43 PDT 2023
On Wed, Apr 26, 2023, at 09:57, Linus Walleij wrote:
> ARM exclusively uses GENERIC_IRQ_MULTI_HANDLER, so at some point
> set_handle_irq() needs to be called to handle system-wide
> interrupts.
>
> For all DT-enabled boards, this call happens down in the
> drivers/irqchip subsystem, after locating the target irqchip
> driver from the device tree.
>
> We still have a few instances of the boardfiles with machine
> descriptors passing a machine-specific .handle_irq() to the
> ARM kernel core.
>
> Get rid of this by letting the few remaining machines consistently
> call set_handle_irq() from the end of the .init_irq() callback
> instead and diet down one member from the machine descriptor.
>
> Cc: Marc Zyngier <maz at kernel.org>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
Looks great, but I think I found one bug:
> @@ -472,7 +478,7 @@ static const char *const mxs_dt_compat[] __initconst = {
> };
>
> DT_MACHINE_START(MXS, "Freescale MXS (Device Tree)")
> - .handle_irq = icoll_handle_irq,
> + .init_irq = mxs_init_irq,
I think this bit is wrong, there is aleady an
icoll_of_init() function in drivers/irqchip/irq-mxs.c, overriding
init_irq() will lead to that function no longer getting
called, so the set_handle_irq() call should just get moved there,
like it is in asm9260_of_init().
With that fixed,
Reviewed-by: Arnd Bergmann <arnd at arndb.de>
More information about the linux-arm-kernel
mailing list