|
5 | 5 | * LTE EM05 modem driver |
6 | 6 | */ |
7 | 7 |
|
| 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 | + |
8 | 13 | #include <linux/module.h> |
9 | 14 | #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> |
15 | 15 | #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> |
21 | 16 | #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> |
30 | 17 | #include <linux/of.h> |
31 | | -#include <linux/of_device.h> |
32 | 18 | #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> |
33 | 25 |
|
34 | 26 | #define LOG(x...) pr_info("[lte_em05_modem]: " x) |
35 | 27 |
|
@@ -354,11 +346,20 @@ static int __init lte_em05_init(void) |
354 | 346 | static void __exit lte_em05_exit(void) |
355 | 347 | { |
356 | 348 | platform_driver_unregister(<e_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 | + } |
357 | 357 | } |
358 | 358 |
|
359 | | -late_initcall(lte_em05_init); |
| 359 | +module_init(lte_em05_init); |
360 | 360 | module_exit(lte_em05_exit); |
361 | 361 |
|
| 362 | + |
362 | 363 | MODULE_AUTHOR( "Stephen <[email protected]>"); |
363 | 364 | MODULE_DESCRIPTION("LTE EM05 modem driver"); |
364 | 365 | MODULE_LICENSE("GPL"); |
0 commit comments