On 08/20/2018 04:53 PM, Stefan Popa wrote:
This patch provides a validate_device callback for the trigger which makes
sure that other devices are rejected.
Signed-off-by: Stefan Popa <stefan.popa@xxxxxxxxxx
---
drivers/iio/accel/adxl372.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index d2fdc75..5a039ba 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -762,11 +762,24 @@ static int adxl372_dready_trig_set_state(struct iio_trigger *trig,
return adxl372_set_interrupts(st, mask, 0);
}
+static int adxl372_validate_trigger(struct iio_dev *indio_dev,
+ struct iio_trigger *trig)
+{
+ struct adxl372_state *st = iio_priv(indio_dev);
+
+ if (st->dready_trig != trig)
+ return -EINVAL;
+
+ return 0;
+}
+
static const struct iio_trigger_ops adxl372_trigger_ops = {
+ .validate_device = &iio_trigger_validate_own_device,
.set_trigger_state = adxl372_dready_trig_set_state,
};
static const struct iio_info adxl372_info = {
+ .validate_trigger = &adxl372_validate_trigger,
I wonder, if the device only works with the trigger and the trigger only
works with the device should we actually register a trigger?
Seems to be just extra hassle when setting up the device without any extra
benefits.