mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
iio:imu:adis16480: fix buffering for devices with no burst mode
commitb0e85f95e3upstream. 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:941f130881("iio: adis16480: support burst read function") Signed-off-by: Nuno Sá <nuno.sa@analog.com> Link: https://lore.kernel.org/r/20220114132608.241-1-nuno.sa@analog.com Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9000406481
commit
7bdf7d5f0c
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user