summaryrefslogtreecommitdiffstats
path: root/drivers/iio/adc/max1027.c
diff options
context:
space:
mode:
authorMiquel Raynal <miquel.raynal@bootlin.com>2021-09-21 13:53:59 +0200
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2021-10-19 08:27:33 +0100
commitc5a396298248238e4530e9351719b93b94e5b009 (patch)
treead5c59bdfb9ce6c4dea8140d0e172d8caa49c233 /drivers/iio/adc/max1027.c
parenteaf57d50c675eb52bae6531e336a31677fd028de (diff)
downloadlinux-stable-c5a396298248238e4530e9351719b93b94e5b009.tar.gz
linux-stable-c5a396298248238e4530e9351719b93b94e5b009.tar.bz2
linux-stable-c5a396298248238e4530e9351719b93b94e5b009.zip
iio: adc: max1027: Simplify the _set_trigger_state() helper
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>
Diffstat (limited to 'drivers/iio/adc/max1027.c')
-rw-r--r--drivers/iio/adc/max1027.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
index ad0ca63212cb..66a040cbee35 100644
--- a/drivers/iio/adc/max1027.c
+++ b/drivers/iio/adc/max1027.c
@@ -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;