forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 072de836f53be56a70cecf70b43ae43b7ce17376
kernel/drivers/iio/trigger/iio-trig-sysfs.c
....@@ -1,8 +1,6 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright 2011 Analog Devices Inc.
3
- *
4
- * Licensed under the GPL-2.
5
- *
64 */
75
86 #include <linux/kernel.h>
....@@ -198,6 +196,7 @@
198196 }
199197
200198 iio_trigger_unregister(t->trig);
199
+ irq_work_sync(&t->work);
201200 iio_trigger_free(t->trig);
202201
203202 list_del(&t->l);
....@@ -210,9 +209,13 @@
210209
211210 static int __init iio_sysfs_trig_init(void)
212211 {
212
+ int ret;
213213 device_initialize(&iio_sysfs_trig_dev);
214214 dev_set_name(&iio_sysfs_trig_dev, "iio_sysfs_trigger");
215
- return device_add(&iio_sysfs_trig_dev);
215
+ ret = device_add(&iio_sysfs_trig_dev);
216
+ if (ret)
217
+ put_device(&iio_sysfs_trig_dev);
218
+ return ret;
216219 }
217220 module_init(iio_sysfs_trig_init);
218221
....@@ -222,7 +225,7 @@
222225 }
223226 module_exit(iio_sysfs_trig_exit);
224227
225
-MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
228
+MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>");
226229 MODULE_DESCRIPTION("Sysfs based trigger for the iio subsystem");
227230 MODULE_LICENSE("GPL v2");
228231 MODULE_ALIAS("platform:iio-trig-sysfs");