@@ -409,11 +409,17 @@ static int max1027_set_cnvst_trigger_state(struct iio_trigger *trig, bool state)
struct max1027_state *st = iio_priv(indio_dev);
int ret;
+ /*
+ * In order to disable the convst trigger, start acquisition on
+ * conversion register write, which basically disables triggering
+ * conversions upon cnvst changes and thus has the effect of disabling
+ * the external hardware trigger.
+ */
+ ret = max1027_enable_trigger(indio_dev, state);
+ if (ret)
+ return ret;
+
if (state) {
- ret = max1027_enable_trigger(indio_dev, state);
- if (ret)
- return ret;
-
/*
* Scan from chan 0 to the highest requested channel.
* Include temperature on demand.
@@ -426,11 +432,6 @@ static int max1027_set_cnvst_trigger_state(struct iio_trigger *trig, bool state)
ret = spi_write(st->spi, &st->reg, 1);
if (ret < 0)
return ret;
- } else {
- /* Start acquisition on conversion register write */
- ret = max1027_enable_trigger(indio_dev, state);
- if (ret)
- return ret;
}
return 0;
The call to max1027_enable_trigger() is the same in both cases thanks to the 'state' variable, so factorize a little bit to simplify the code and explain why we call this helper. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/iio/adc/max1027.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)