| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright 2011 Analog Devices Inc. |
|---|
| 3 | | - * |
|---|
| 4 | | - * Licensed under the GPL-2. |
|---|
| 5 | | - * |
|---|
| 6 | 4 | */ |
|---|
| 7 | 5 | |
|---|
| 8 | 6 | #include <linux/kernel.h> |
|---|
| .. | .. |
|---|
| 198 | 196 | } |
|---|
| 199 | 197 | |
|---|
| 200 | 198 | iio_trigger_unregister(t->trig); |
|---|
| 199 | + irq_work_sync(&t->work); |
|---|
| 201 | 200 | iio_trigger_free(t->trig); |
|---|
| 202 | 201 | |
|---|
| 203 | 202 | list_del(&t->l); |
|---|
| .. | .. |
|---|
| 210 | 209 | |
|---|
| 211 | 210 | static int __init iio_sysfs_trig_init(void) |
|---|
| 212 | 211 | { |
|---|
| 212 | + int ret; |
|---|
| 213 | 213 | device_initialize(&iio_sysfs_trig_dev); |
|---|
| 214 | 214 | 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; |
|---|
| 216 | 219 | } |
|---|
| 217 | 220 | module_init(iio_sysfs_trig_init); |
|---|
| 218 | 221 | |
|---|
| .. | .. |
|---|
| 222 | 225 | } |
|---|
| 223 | 226 | module_exit(iio_sysfs_trig_exit); |
|---|
| 224 | 227 | |
|---|
| 225 | | -MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); |
|---|
| 228 | +MODULE_AUTHOR("Michael Hennerich <michael.hennerich@analog.com>"); |
|---|
| 226 | 229 | MODULE_DESCRIPTION("Sysfs based trigger for the iio subsystem"); |
|---|
| 227 | 230 | MODULE_LICENSE("GPL v2"); |
|---|
| 228 | 231 | MODULE_ALIAS("platform:iio-trig-sysfs"); |
|---|