[tip: irq/core] irqchip/stm32mp-exti: Allow building as module

tip-bot2 for Antonio Borneo
2024-06-23T22:20:54Z

The following commit has been merged into the irq/core branch of tip:

Commit-ID: 0be58e0553812fcbd37c0c2d89e2b5bc296f04ea
Gitweb: https://git.kernel.org/tip/0be58e0553812fcbd37c0c2d89e2b5bc296f04ea
Author: Antonio Borneo <antonio.borneo@foss.st.com>
AuthorDate: Thu, 20 Jun 2024 10:31:13 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Mon, 24 Jun 2024 00:16:43 +02:00

irqchip/stm32mp-exti: Allow building as module

Allow to build the driver as a module by adding the necessarily hooks in
Kconfig and in the driver's code.

Since all the probe dependencies linked to this driver have already been
fixed, remove the not longer relevant 'arch_initcall'.

Signed-off-by: Antonio Borneo <antonio.borneo@foss.st.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240620083115.204362-7-antonio.borneo@foss.st.com

---
drivers/irqchip/Kconfig | 8 ++++++--
drivers/irqchip/irq-stm32mp-exti.c | 15 ++++-----------
2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index 978639d..cbf49b6 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -405,9 +405,13 @@ config PARTITION_PERCPU
bool

config STM32MP_EXTI
- bool
- select IRQ_DOMAIN
+ tristate "STM32MP extended interrupts and event controller"
+ depends on (ARCH_STM32 && !ARM_SINGLE_ARMV7M) || COMPILE_TEST
+ default y
+ select IRQ_DOMAIN_HIERARCHY
select GENERIC_IRQ_CHIP
+ help
+ Support STM32MP EXTI (extended interrupts and event) controller.

config STM32_EXTI
bool
diff --git a/drivers/irqchip/irq-stm32mp-exti.c b/drivers/irqchip/irq-stm32mp-exti.c
index 727859e..33e0cfd 100644
--- a/drivers/irqchip/irq-stm32mp-exti.c
+++ b/drivers/irqchip/irq-stm32mp-exti.c
@@ -722,15 +722,8 @@ static struct platform_driver stm32mp_exti_driver = {
},
};

-static int __init stm32mp_exti_arch_init(void)
-{
- return platform_driver_register(&stm32mp_exti_driver);
-}
-
-static void __exit stm32mp_exti_arch_exit(void)
-{
- return platform_driver_unregister(&stm32mp_exti_driver);
-}
+module_platform_driver(stm32mp_exti_driver);

-arch_initcall(stm32mp_exti_arch_init);
-module_exit(stm32mp_exti_arch_exit);
+MODULE_AUTHOR("Maxime Coquelin <mcoquelin.stm32@gmail.com>");
+MODULE_DESCRIPTION("STM32MP EXTI driver");
+MODULE_LICENSE("GPL");