Skip to content

Commit d3bf7c5

Browse files
rafayahmed317boogieeeee
authored andcommitted
Enable lte_em05 to be built as a module (torvalds#384)
1 parent d20b11f commit d3bf7c5

File tree

2 files changed

+25
-21
lines changed

2 files changed

+25
-21
lines changed

drivers/net/lte/Kconfig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ config LTE_RM310
1313
default n
1414

1515
config LTE_EM05
16-
bool "LTE em05 support"
16+
tristate "LTE EM05 support"
1717
default n
18+
help
19+
Enable support for the LTE EM05 modem driver.
20+
Say 'M' to compile as a loadable kernel module.
1821

1922
endif

drivers/net/lte/lte_em05.c

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,23 @@
55
* LTE EM05 modem driver
66
*/
77

8+
/*
9+
Modified by Rafay Ahmed:
10+
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.
11+
*/
12+
813
#include <linux/module.h>
914
#include <linux/kernel.h>
10-
#include <linux/kthread.h>
11-
#include <linux/i2c.h>
12-
#include <linux/irq.h>
13-
#include <linux/gpio.h>
14-
#include <linux/input.h>
1515
#include <linux/platform_device.h>
16-
#include <linux/fs.h>
17-
#include <linux/uaccess.h>
18-
#include <linux/miscdevice.h>
19-
#include <linux/circ_buf.h>
20-
#include <linux/miscdevice.h>
2116
#include <linux/gpio.h>
22-
#include <dt-bindings/gpio/gpio.h>
23-
#include <linux/delay.h>
24-
#include <linux/poll.h>
25-
#include <linux/wait.h>
26-
#include <linux/wakelock.h>
27-
#include <linux/workqueue.h>
28-
#include <linux/lte.h>
29-
#include <linux/slab.h>
3017
#include <linux/of.h>
31-
#include <linux/of_device.h>
3218
#include <linux/of_gpio.h>
19+
#include <linux/of_device.h>
20+
#include <linux/slab.h>
21+
#include <linux/delay.h>
22+
#include <linux/lte.h>
23+
#include <linux/device.h>
24+
#include <linux/sysfs.h>
3325

3426
#define LOG(x...) pr_info("[lte_em05_modem]: " x)
3527

@@ -354,11 +346,20 @@ static int __init lte_em05_init(void)
354346
static void __exit lte_em05_exit(void)
355347
{
356348
platform_driver_unregister(&lte_em05_driver);
349+
350+
// Clean up class attributes
351+
if (modem_class){
352+
class_remove_file(modem_class, &class_attr_modem_power);
353+
class_remove_file(modem_class, &class_attr_modem_reset);
354+
class_remove_file(modem_class, &class_attr_modem_airplane_mode);
355+
class_destroy(modem_class);
356+
}
357357
}
358358

359-
late_initcall(lte_em05_init);
359+
module_init(lte_em05_init);
360360
module_exit(lte_em05_exit);
361361

362+
362363
MODULE_AUTHOR("Stephen <[email protected]>");
363364
MODULE_DESCRIPTION("LTE EM05 modem driver");
364365
MODULE_LICENSE("GPL");

0 commit comments

Comments
 (0)