iio: adc: max1027: Simplify the _set_trigger_state() helper
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 21 Sep 2021 11:53:59 +0000 (13:53 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 19 Oct 2021 07:27:33 +0000 (08:27 +0100)
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>
Link: https://lore.kernel.org/r/20210921115408.66711-8-miquel.raynal@bootlin.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/max1027.c

index ad0ca63..66a040c 100644 (file)
@@ -410,11 +410,17 @@ static int max1027_set_cnvst_trigger_state(struct iio_trigger *trig, bool state)
        struct max1027_state *st = iio_priv(indio_dev);
        int ret;
 
-       if (state) {
-               ret = max1027_enable_trigger(indio_dev, state);
-               if (ret)
-                       return 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) {
                /*
                 * Scan from chan 0 to the highest requested channel.
                 * Include temperature on demand.
@@ -427,11 +433,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;