From d94588328f77f38fdcd7db7633bea478eb8166da Mon Sep 17 00:00:00 2001 From: Rafay Ahmed <85213825+rafayahmed317@users.noreply.github.com> Date: Fri, 15 Aug 2025 21:05:01 +0300 Subject: [PATCH] Enable lte_em05 to be built as a module (#384) --- drivers/net/lte/Kconfig | 5 ++++- drivers/net/lte/lte_em05.c | 41 +++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/drivers/net/lte/Kconfig b/drivers/net/lte/Kconfig index 00ed5fcb7b25..0aa327a64363 100644 --- a/drivers/net/lte/Kconfig +++ b/drivers/net/lte/Kconfig @@ -13,7 +13,10 @@ config LTE_RM310 default n config LTE_EM05 - bool "LTE em05 support" + tristate "LTE EM05 support" default n + help + Enable support for the LTE EM05 modem driver. + Say 'M' to compile as a loadable kernel module. endif diff --git a/drivers/net/lte/lte_em05.c b/drivers/net/lte/lte_em05.c index 3f75c6f66df2..a67759a02fab 100644 --- a/drivers/net/lte/lte_em05.c +++ b/drivers/net/lte/lte_em05.c @@ -5,31 +5,23 @@ * LTE EM05 modem driver */ + /* + Modified by Rafay Ahmed: + Removed unnecessary includes, replaced late_initcall with module_init to enable the driver to be built as a module. Added class cleanup in module exit function. + */ + #include #include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include #include +#include +#include +#include +#include +#include +#include #define LOG(x...) pr_info("[lte_em05_modem]: " x) @@ -354,11 +346,20 @@ static int __init lte_em05_init(void) static void __exit lte_em05_exit(void) { platform_driver_unregister(<e_em05_driver); + + // Clean up class attributes + if (modem_class){ + class_remove_file(modem_class, &class_attr_modem_power); + class_remove_file(modem_class, &class_attr_modem_reset); + class_remove_file(modem_class, &class_attr_modem_airplane_mode); + class_destroy(modem_class); + } } -late_initcall(lte_em05_init); +module_init(lte_em05_init); module_exit(lte_em05_exit); + MODULE_AUTHOR("Stephen "); MODULE_DESCRIPTION("LTE EM05 modem driver"); MODULE_LICENSE("GPL");