[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdUmtYhYzvtNaOMANHOD6rabWTdZXLiCvqRjB+K-1jPd=Q@mail.gmail.com>
Date: Fri, 5 Dec 2025 11:28:29 +0100
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Ioana Ciornei <ioana.ciornei@....com>
Cc: Thomas Gleixner <tglx@...utronix.de>, Ulf Hansson <ulf.hansson@...aro.org>,
Johan Hovold <johan+linaro@...nel.org>, "Rafael J. Wysocki" <rafael@...nel.org>,
"Rob Herring (Arm)" <robh@...nel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] irqchip/ls-extirq: convert to a platform driver
Hi Ionana,
On Thu, 4 Dec 2025 at 18:43, Ioana Ciornei <ioana.ciornei@....com> wrote:
> Since there is no need for ls-extirq to be initialized early, convert it
> to a proper platform driver. Instead of using IRQCHIP_DECLARE, add an
> of_device_id array with the same compatible strings as before. Also
> change the prototype and name of the probe function and adjust it to a
> platform_device structure.
>
> With this change we also have the added advantage of avoiding the
> irqchip_init() -> of_irq_init() code path which imposes dt checks that
> the ls-extirq does not comply with because of its improper use of the
> interrupt-map property.
>
> Fixes: 1b1f04d8271e ("of/irq: Ignore interrupt parent for nodes without interrupts")
> Signed-off-by: Ioana Ciornei <ioana.ciornei@....com>
Thanks for your patch!
> --- a/drivers/irqchip/irq-ls-extirq.c
> +++ b/drivers/irqchip/irq-ls-extirq.c
> @@ -227,6 +235,20 @@ ls_extirq_of_init(struct device_node *node, struct device_node *parent)
> return ret;
> }
>
> -IRQCHIP_DECLARE(ls1021a_extirq, "fsl,ls1021a-extirq", ls_extirq_of_init);
> -IRQCHIP_DECLARE(ls1043a_extirq, "fsl,ls1043a-extirq", ls_extirq_of_init);
> -IRQCHIP_DECLARE(ls1088a_extirq, "fsl,ls1088a-extirq", ls_extirq_of_init);
> +static const struct of_device_id ls_extirq_dt_ids[] = {
> + { .compatible = "fsl,ls1021a-extirq" },
> + { .compatible = "fsl,ls1043a-extirq" },
> + { .compatible = "fsl,ls1088a-extirq" },
> + {}
> +};
> +MODULE_DEVICE_TABLE(of, ls_extirq_dt_ids);
> +
> +static struct platform_driver ls_extirq_driver = {
> + .probe = ls_extirq_probe,
> + .driver = {
> + .name = "ls-extirq",
> + .of_match_table = ls_extirq_dt_ids,
> + }
> +};
> +
> +module_platform_driver(ls_extirq_driver);
builtin_platform_driver(), as the driver cannot be modular?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists