Skip to content

Commit a947aa0

Browse files
superna9999Marc Zyngier
authored andcommitted
irqchip/meson-gpio: Make it possible to build as a module
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 <[email protected]> Acked-by: Saravana Kannan <[email protected]> Reported-by: kernel test robot <[email protected]> Reviewed-by: Lee Jones <[email protected]> Reviewed-by: Kevin Hilman <[email protected]> Tested-by: Kevin Hilman <[email protected]> Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent f198500 commit a947aa0

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

drivers/irqchip/Kconfig

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -400,8 +400,9 @@ config IRQ_UNIPHIER_AIDET
400400
Support for the UniPhier AIDET (ARM Interrupt Detector).
401401

402402
config MESON_IRQ_GPIO
403-
bool "Meson GPIO Interrupt Multiplexer"
404-
depends on ARCH_MESON
403+
tristate "Meson GPIO Interrupt Multiplexer"
404+
depends on ARCH_MESON || COMPILE_TEST
405+
default ARCH_MESON
405406
select IRQ_DOMAIN_HIERARCHY
406407
help
407408
Support Meson SoC Family GPIO Interrupt Multiplexer

drivers/irqchip/irq-meson-gpio.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -436,8 +436,7 @@ static const struct irq_domain_ops meson_gpio_irq_domain_ops = {
436436
.translate = meson_gpio_irq_domain_translate,
437437
};
438438

439-
static int __init meson_gpio_irq_parse_dt(struct device_node *node,
440-
struct meson_gpio_irq_controller *ctl)
439+
static int meson_gpio_irq_parse_dt(struct device_node *node, struct meson_gpio_irq_controller *ctl)
441440
{
442441
const struct of_device_id *match;
443442
int ret;
@@ -463,8 +462,7 @@ static int __init meson_gpio_irq_parse_dt(struct device_node *node,
463462
return 0;
464463
}
465464

466-
static int __init meson_gpio_irq_of_init(struct device_node *node,
467-
struct device_node *parent)
465+
static int meson_gpio_irq_of_init(struct device_node *node, struct device_node *parent)
468466
{
469467
struct irq_domain *domain, *parent_domain;
470468
struct meson_gpio_irq_controller *ctl;
@@ -521,5 +519,10 @@ static int __init meson_gpio_irq_of_init(struct device_node *node,
521519
return ret;
522520
}
523521

524-
IRQCHIP_DECLARE(meson_gpio_intc, "amlogic,meson-gpio-intc",
525-
meson_gpio_irq_of_init);
522+
IRQCHIP_PLATFORM_DRIVER_BEGIN(meson_gpio_intc)
523+
IRQCHIP_MATCH("amlogic,meson-gpio-intc", meson_gpio_irq_of_init)
524+
IRQCHIP_PLATFORM_DRIVER_END(meson_gpio_intc)
525+
526+
MODULE_AUTHOR("Jerome Brunet <[email protected]>");
527+
MODULE_LICENSE("GPL v2");
528+
MODULE_ALIAS("platform:meson-gpio-intc");

0 commit comments

Comments
 (0)