Re: [PATCH] iio: adis16480: fix buffering for devices with no burst mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 14 Jan 2022 14:26:08 +0100
Nuno Sá <nuno.sa@xxxxxxxxxx> 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@xxxxxxxxxx>
> Fixes: 941f130881fa9 ("iio: adis16480: support burst read function")
> Signed-off-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
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;
>  





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux