Linux IIO development
 help / color / mirror / Atom feed
* [PATCH] iio: adis16480: fix buffering for devices with no burst mode
@ 2022-01-14 13:26 Nuno Sá
  2022-01-16 11:22 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Nuno Sá @ 2022-01-14 13:26 UTC (permalink / raw)
  To: linux-iio
  Cc: Jonathan Cameron, Lars-Peter Clausen, Michael Hennerich,
	Julia Pineda

The trigger handler defined in the driver assumes that burst mode is
being used. Hence, for devices that do not support it, we have to use
the adis library default trigger implementation.

Tested-by: Julia Pineda <julia.pineda@analog.com>
Fixes: 941f130881fa9 ("iio: adis16480: support burst read function")
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
---
 drivers/iio/imu/adis16480.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
index ed129321a14d..f9b4540db1f4 100644
--- a/drivers/iio/imu/adis16480.c
+++ b/drivers/iio/imu/adis16480.c
@@ -1403,6 +1403,7 @@ static int adis16480_probe(struct spi_device *spi)
 {
 	const struct spi_device_id *id = spi_get_device_id(spi);
 	const struct adis_data *adis16480_data;
+	irq_handler_t trigger_handler = NULL;
 	struct iio_dev *indio_dev;
 	struct adis16480 *st;
 	int ret;
@@ -1474,8 +1475,12 @@ static int adis16480_probe(struct spi_device *spi)
 		st->clk_freq = st->chip_info->int_clk;
 	}
 
+	/* Only use our trigger handler if burst mode is supported */
+	if (adis16480_data->burst_len)
+		trigger_handler = adis16480_trigger_handler;
+
 	ret = devm_adis_setup_buffer_and_trigger(&st->adis, indio_dev,
-						 adis16480_trigger_handler);
+						 trigger_handler);
 	if (ret)
 		return ret;
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] iio: adis16480: fix buffering for devices with no burst mode
  2022-01-14 13:26 [PATCH] iio: adis16480: fix buffering for devices with no burst mode Nuno Sá
@ 2022-01-16 11:22 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2022-01-16 11:22 UTC (permalink / raw)
  To: Nuno Sá
  Cc: linux-iio, Lars-Peter Clausen, Michael Hennerich, Julia Pineda

On Fri, 14 Jan 2022 14:26:08 +0100
Nuno Sá <nuno.sa@analog.com> wrote:

> The trigger handler defined in the driver assumes that burst mode is
> being used. Hence, for devices that do not support it, we have to use
> the adis library default trigger implementation.
> 
> Tested-by: Julia Pineda <julia.pineda@analog.com>
> Fixes: 941f130881fa9 ("iio: adis16480: support burst read function")
> Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Applied to the fixes-togreg branch of iio.git and marked for stable.

Note I'll probably rebase that branch after rc1 before sending a pull
request.

Thanks,

Jonathan

> ---
>  drivers/iio/imu/adis16480.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/imu/adis16480.c b/drivers/iio/imu/adis16480.c
> index ed129321a14d..f9b4540db1f4 100644
> --- a/drivers/iio/imu/adis16480.c
> +++ b/drivers/iio/imu/adis16480.c
> @@ -1403,6 +1403,7 @@ static int adis16480_probe(struct spi_device *spi)
>  {
>  	const struct spi_device_id *id = spi_get_device_id(spi);
>  	const struct adis_data *adis16480_data;
> +	irq_handler_t trigger_handler = NULL;
>  	struct iio_dev *indio_dev;
>  	struct adis16480 *st;
>  	int ret;
> @@ -1474,8 +1475,12 @@ static int adis16480_probe(struct spi_device *spi)
>  		st->clk_freq = st->chip_info->int_clk;
>  	}
>  
> +	/* Only use our trigger handler if burst mode is supported */
> +	if (adis16480_data->burst_len)
> +		trigger_handler = adis16480_trigger_handler;
> +
>  	ret = devm_adis_setup_buffer_and_trigger(&st->adis, indio_dev,
> -						 adis16480_trigger_handler);
> +						 trigger_handler);
>  	if (ret)
>  		return ret;
>  


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-01-16 11:16 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-14 13:26 [PATCH] iio: adis16480: fix buffering for devices with no burst mode Nuno Sá
2022-01-16 11:22 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox