[PATCH 0/4] Refactor ADIS Burst Mode

Nuno Sá
2020-09-17T18:50:02Z

This series refactors the ADIS burst mode. The 2 main ideas of the
refactor are:

1. As discussed in previous patches, there's no point in
enabling/disabling burst mode at runtime. Hence, we can drop the `en`
variable.
2. Replace the `extra_len` by `burst_len` where users have now to
explicitly define the size of the burst buffer. The point is to remove
the following line from the lib:

```
/* 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 ...

While doing this (and mainly when looking at the adis16400) drivers it
felt that the burst variables belong to the per chip `adis_data`
structure. As seen in the adis16400 driver, some drivers might support
multiple devices with different burst sizes.

For now, it does not feel necessary to wrap these variables in a
`adis_burst` structure but I don't see any problem in doing so if
required...

Nuno Sá (4):
iio: adis: Move burst mode into adis_data
iio: adis16400: Drop adis_burst usage
iio: adis16475: Drop adis_burst usage
iio: adis. Drop adis_burst struct

drivers/iio/imu/adis16400.c | 32 +++++++++++++-------------------
drivers/iio/imu/adis16475.c | 18 +++---------------
drivers/iio/imu/adis_buffer.c | 12 +++++-------
include/linux/iio/imu/adis.h | 26 +++++++++-----------------
4 files changed, 30 insertions(+), 58 deletions(-)

--
2.28.0