iio: adis: Move burst mode into adis_data
authorNuno Sá <nuno.sa@analog.com>
Thu, 17 Sep 2020 15:52:20 +0000 (17:52 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 21 Sep 2020 19:01:45 +0000 (20:01 +0100)
commit36e322ec5dd24f1d0840061ffe406458669bccf1
tree8057a3d73da3e3fa7acab7a83aa66277cd0b9c77
parent9e7c7d92747f653c528d8af9e4244ac7a9cb048d
iio: adis: Move burst mode into adis_data

Add burst mode variables in the per device specific data structure. As
some drivers support multiple devices with different burst sizes it
makes sense this data to be in `adis_data`. While moving the variables,
there are two main differences:

1. The `en`variable is dropped. If a device supports burst mode, it will
just use it as it will has better performance for almost all real use
cases.
2. Replace `extra_len` by `burst_len`. Users should now explicitly
define the length of the burst buffer as it is typically constant. This
also allows to remove the following line from the library:

```
/* All but the timestamp channel */
burst_length = (indio_dev->num_channels - 1) * sizeof(u16);
```

The library should not assume that a timestamp channel is defined.
Moreover, most parts also include some diagnostic data, crc, etc.. in
the burst buffer that needed to be included in an `extra_len` variable
which is not that nice. On top of this, some devices already start to
have some 32bit size channels ...

This patch is also a move to completely drop the `struct adis_burst`
from the library.

Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20200917155223.218500-2-nuno.sa@analog.com
drivers/iio/imu/adis_buffer.c
include/linux/iio/imu/adis.h