Re: [PATCH 1/2] irqchip: irq-meson-gpio: make it possible to build as a module

From: Saravana Kannan
Date: Thu Sep 02 2021 - 13:01:31 EST


On Thu, Sep 2, 2021 at 6:49 AM Neil Armstrong <narmstrong@xxxxxxxxxxxx> wrote:
>
> In order to reduce the kernel Image size on multi-platform distributions,
> make it possible to build the Amlogic GPIO IRQ controller as a module
> by switching it to a platform driver.
>
> Signed-off-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>
> ---
> drivers/irqchip/Kconfig | 5 +++--
> drivers/irqchip/irq-meson-gpio.c | 15 +++++++++------
> 2 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index 4d5924e9f766..2aba485025fd 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -400,8 +400,9 @@ config IRQ_UNIPHIER_AIDET
> Support for the UniPhier AIDET (ARM Interrupt Detector).
>
> config MESON_IRQ_GPIO
> - bool "Meson GPIO Interrupt Multiplexer"
> - depends on ARCH_MESON
> + tristate "Meson GPIO Interrupt Multiplexer"
> + depends on ARCH_MESON || COMPILE_TEST
> + default ARCH_MESON
> select IRQ_DOMAIN_HIERARCHY
> help
> Support Meson SoC Family GPIO Interrupt Multiplexer
> diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
> index e50676ce2ec8..d90ff0b92480 100644
> --- a/drivers/irqchip/irq-meson-gpio.c
> +++ b/drivers/irqchip/irq-meson-gpio.c
> @@ -436,8 +436,7 @@ static const struct irq_domain_ops meson_gpio_irq_domain_ops = {
> .translate = meson_gpio_irq_domain_translate,
> };
>
> -static int __init meson_gpio_irq_parse_dt(struct device_node *node,
> - struct meson_gpio_irq_controller *ctl)
> +static int meson_gpio_irq_parse_dt(struct device_node *node, struct meson_gpio_irq_controller *ctl)
> {
> const struct of_device_id *match;
> int ret;
> @@ -463,8 +462,7 @@ static int __init meson_gpio_irq_parse_dt(struct device_node *node,
> return 0;
> }
>
> -static int __init meson_gpio_irq_of_init(struct device_node *node,
> - struct device_node *parent)
> +static int meson_gpio_irq_of_init(struct device_node *node, struct device_node *parent)
> {
> struct irq_domain *domain, *parent_domain;
> struct meson_gpio_irq_controller *ctl;
> @@ -521,5 +519,10 @@ static int __init meson_gpio_irq_of_init(struct device_node *node,
> return ret;
> }
>
> -IRQCHIP_DECLARE(meson_gpio_intc, "amlogic,meson-gpio-intc",
> - meson_gpio_irq_of_init);
> +IRQCHIP_PLATFORM_DRIVER_BEGIN(meson_gpio_intc)
> +IRQCHIP_MATCH("amlogic,meson-gpio-intc", meson_gpio_irq_of_init)
> +IRQCHIP_PLATFORM_DRIVER_END(meson_gpio_intc)
> +
> +MODULE_AUTHOR("Jerome Brunet <jbrunet@xxxxxxxxxxxx>");
> +MODULE_LICENSE("GPL v2");
> +MODULE_ALIAS("platform:meson-gpio-intc");
> --

Acked-by: Saravana Kannan <saravanak@xxxxxxxxxx>

Marc, my mdio-mux patches have landed.

-Saravana