diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
commit | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch) | |
tree | a8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /drivers/staging/iio/imu/adis16400_trigger.c | |
parent | 406089d01562f1e2bf9f089fd7637009ebaad589 (diff) |
Patched in Tegra support.
Diffstat (limited to 'drivers/staging/iio/imu/adis16400_trigger.c')
-rw-r--r-- | drivers/staging/iio/imu/adis16400_trigger.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/staging/iio/imu/adis16400_trigger.c b/drivers/staging/iio/imu/adis16400_trigger.c index 42a678e92fc..c6ec41a02a6 100644 --- a/drivers/staging/iio/imu/adis16400_trigger.c +++ b/drivers/staging/iio/imu/adis16400_trigger.c | |||
@@ -1,10 +1,15 @@ | |||
1 | #include <linux/interrupt.h> | 1 | #include <linux/interrupt.h> |
2 | #include <linux/irq.h> | ||
3 | #include <linux/mutex.h> | ||
4 | #include <linux/device.h> | ||
2 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
6 | #include <linux/sysfs.h> | ||
7 | #include <linux/list.h> | ||
3 | #include <linux/spi/spi.h> | 8 | #include <linux/spi/spi.h> |
4 | #include <linux/export.h> | ||
5 | 9 | ||
6 | #include <linux/iio/iio.h> | 10 | #include "../iio.h" |
7 | #include <linux/iio/trigger.h> | 11 | #include "../sysfs.h" |
12 | #include "../trigger.h" | ||
8 | #include "adis16400.h" | 13 | #include "adis16400.h" |
9 | 14 | ||
10 | /** | 15 | /** |
@@ -19,18 +24,13 @@ static int adis16400_data_rdy_trigger_set_state(struct iio_trigger *trig, | |||
19 | return adis16400_set_irq(indio_dev, state); | 24 | return adis16400_set_irq(indio_dev, state); |
20 | } | 25 | } |
21 | 26 | ||
22 | static const struct iio_trigger_ops adis16400_trigger_ops = { | ||
23 | .owner = THIS_MODULE, | ||
24 | .set_trigger_state = &adis16400_data_rdy_trigger_set_state, | ||
25 | }; | ||
26 | |||
27 | int adis16400_probe_trigger(struct iio_dev *indio_dev) | 27 | int adis16400_probe_trigger(struct iio_dev *indio_dev) |
28 | { | 28 | { |
29 | int ret; | 29 | int ret; |
30 | struct adis16400_state *st = iio_priv(indio_dev); | 30 | struct adis16400_state *st = iio_priv(indio_dev); |
31 | 31 | ||
32 | st->trig = iio_trigger_alloc("%s-dev%d", | 32 | st->trig = iio_allocate_trigger("%s-dev%d", |
33 | indio_dev->name, | 33 | spi_get_device_id(st->us)->name, |
34 | indio_dev->id); | 34 | indio_dev->id); |
35 | if (st->trig == NULL) { | 35 | if (st->trig == NULL) { |
36 | ret = -ENOMEM; | 36 | ret = -ENOMEM; |
@@ -45,8 +45,9 @@ int adis16400_probe_trigger(struct iio_dev *indio_dev) | |||
45 | if (ret) | 45 | if (ret) |
46 | goto error_free_trig; | 46 | goto error_free_trig; |
47 | st->trig->dev.parent = &st->us->dev; | 47 | st->trig->dev.parent = &st->us->dev; |
48 | st->trig->owner = THIS_MODULE; | ||
48 | st->trig->private_data = indio_dev; | 49 | st->trig->private_data = indio_dev; |
49 | st->trig->ops = &adis16400_trigger_ops; | 50 | st->trig->set_trigger_state = &adis16400_data_rdy_trigger_set_state; |
50 | ret = iio_trigger_register(st->trig); | 51 | ret = iio_trigger_register(st->trig); |
51 | 52 | ||
52 | /* select default trigger */ | 53 | /* select default trigger */ |
@@ -59,7 +60,7 @@ int adis16400_probe_trigger(struct iio_dev *indio_dev) | |||
59 | error_free_irq: | 60 | error_free_irq: |
60 | free_irq(st->us->irq, st->trig); | 61 | free_irq(st->us->irq, st->trig); |
61 | error_free_trig: | 62 | error_free_trig: |
62 | iio_trigger_free(st->trig); | 63 | iio_free_trigger(st->trig); |
63 | error_ret: | 64 | error_ret: |
64 | return ret; | 65 | return ret; |
65 | } | 66 | } |
@@ -70,5 +71,5 @@ void adis16400_remove_trigger(struct iio_dev *indio_dev) | |||
70 | 71 | ||
71 | iio_trigger_unregister(st->trig); | 72 | iio_trigger_unregister(st->trig); |
72 | free_irq(st->us->irq, st->trig); | 73 | free_irq(st->us->irq, st->trig); |
73 | iio_trigger_free(st->trig); | 74 | iio_free_trigger(st->trig); |
74 | } | 75 | } |