diff options
Diffstat (limited to 'drivers/staging/iio/trigger.h')
-rw-r--r-- | drivers/staging/iio/trigger.h | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/staging/iio/trigger.h b/drivers/staging/iio/trigger.h index 784e7b6fac1c..4699586a5931 100644 --- a/drivers/staging/iio/trigger.h +++ b/drivers/staging/iio/trigger.h @@ -8,10 +8,6 @@ */ #ifndef _IIO_TRIGGER_H_ #define _IIO_TRIGGER_H_ -#define IIO_TRIGGER_NAME_LENGTH 20 -#define IIO_TRIGGER_ID_PREFIX "iio:trigger" -#define IIO_TRIGGER_ID_FORMAT IIO_TRIGGER_ID_PREFIX "%d" - /** * struct iio_trigger - industrial I/O trigger device @@ -25,7 +21,6 @@ * @pollfunc_list_lock: [INTERN] protection of the polling function list * @pollfunc_list: [INTERN] list of functions to run on trigger. * @control_attrs: [DRIVER] sysfs attributes relevant to trigger type - * @timestamp: [INTERN] timestamp usesd by some trigs (e.g. datardy) * @owner: [DRIVER] used to monitor usage count of the trigger. * @use_count: use count for the trigger * @set_trigger_state: [DRIVER] switch on/off the trigger on demand @@ -43,7 +38,6 @@ struct iio_trigger { spinlock_t pollfunc_list_lock; struct list_head pollfunc_list; const struct attribute_group *control_attrs; - s64 timestamp; struct module *owner; int use_count; @@ -124,7 +118,7 @@ int iio_trigger_dettach_poll_func(struct iio_trigger *trig, * * Typically called in relevant hardware interrupt handler. **/ -void iio_trigger_poll(struct iio_trigger *trig); +void iio_trigger_poll(struct iio_trigger *trig, s64 time); void iio_trigger_notify_done(struct iio_trigger *trig); /** @@ -148,13 +142,27 @@ struct iio_poll_func { struct list_head list; void *private_data; void (*poll_func_immediate)(struct iio_dev *indio_dev); - void (*poll_func_main)(struct iio_dev *private_data); + void (*poll_func_main)(struct iio_dev *private_data, s64 time); }; +int iio_alloc_pollfunc(struct iio_dev *indio_dev, + void (*immediate)(struct iio_dev *indio_dev), + void (*main)(struct iio_dev *private_data, s64 time)); + +/* + * Two functions for common case where all that happens is a pollfunc + * is attached and detached form a trigger + */ +int iio_triggered_ring_postenable(struct iio_dev *indio_dev); +int iio_triggered_ring_predisable(struct iio_dev *indio_dev); + struct iio_trigger *iio_allocate_trigger(void); void iio_free_trigger(struct iio_trigger *trig); +struct iio_simple_trigger { + struct iio_trigger trig; +}; #endif /* _IIO_TRIGGER_H_ */ |