[3/3] iio: accel: adxl372: Make sure interrupts are disabled
diff mbox series

Message ID 1567502351-10429-1-git-send-email-stefan.popa@analog.com
State New
Headers show
Series
  • [1/3] iio: accel: adxl372: Fix/remove limitation for FIFO samples
Related show

Commit Message

Stefan Popa Sept. 3, 2019, 9:19 a.m. UTC
This patch disables the adxl372 interrupts at setup. The interrupts
should be enabled together with the iio buffer. Not doing this, might
cause an unwanted interrupt to trigger without being able to properly
clear it.

Signed-off-by: Stefan Popa <stefan.popa@analog.com>
---
 drivers/iio/accel/adxl372.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Jonathan Cameron Sept. 8, 2019, 9:31 a.m. UTC | #1
On Tue, 3 Sep 2019 12:19:11 +0300
Stefan Popa <stefan.popa@analog.com> wrote:

> This patch disables the adxl372 interrupts at setup. The interrupts
> should be enabled together with the iio buffer. Not doing this, might
> cause an unwanted interrupt to trigger without being able to properly
> clear it.
> 
> Signed-off-by: Stefan Popa <stefan.popa@analog.com>

Given the device has a software reset, would we be better off
just hitting that to make sure we are in a consistent state after
driver start up?

Thanks,

Jonathan


> ---
>  drivers/iio/accel/adxl372.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index 72d3f45..77651f4 100644
> --- a/drivers/iio/accel/adxl372.c
> +++ b/drivers/iio/accel/adxl372.c
> @@ -609,6 +609,10 @@ static int adxl372_setup(struct adxl372_state *st)
>  	if (ret < 0)
>  		return ret;
>  
> +	ret = adxl372_set_interrupts(st, 0, 0);
> +	if (ret < 0)
> +		return ret;
> +
>  	/* Set the mode of operation to full bandwidth measurement mode */
>  	return adxl372_set_op_mode(st, ADXL372_FULL_BW_MEASUREMENT);
>  }

Patch
diff mbox series

diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index 72d3f45..77651f4 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -609,6 +609,10 @@  static int adxl372_setup(struct adxl372_state *st)
 	if (ret < 0)
 		return ret;
 
+	ret = adxl372_set_interrupts(st, 0, 0);
+	if (ret < 0)
+		return ret;
+
 	/* Set the mode of operation to full bandwidth measurement mode */
 	return adxl372_set_op_mode(st, ADXL372_FULL_BW_MEASUREMENT);
 }