iio: core: Introduce iio_push_to_buffers_with_ts_unaligned()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 13 Jun 2021 15:10:36 +0000 (16:10 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 19 Oct 2021 07:29:22 +0000 (08:29 +0100)
commit95ec3fdf2b79eaff79e78688bbc2f7dbb98d68b6
tree4598bda1dfb8da0720be05378da4391d1d1b83b5
parentb18831cc99426a9f6f085a29a53a423aa9b7c62e
iio: core: Introduce iio_push_to_buffers_with_ts_unaligned()

Whilst it is almost always possible to arrange for scan data to be
read directly into a buffer that is suitable for passing to
iio_push_to_buffers_with_timestamp(), there are a few places where
leading data needs to be skipped over.

For these cases introduce a function that will allocate an appropriate
sized and aligned bounce buffer (if not already allocated) and copy
the unaligned data into that before calling
iio_push_to_buffers_with_timestamp() on the bounce buffer.
We tie the lifespace of this buffer to that of the iio_dev.dev
which should ensure no memory leaks occur.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20210613151039.569883-2-jic23@kernel.org
drivers/iio/industrialio-buffer.c
include/linux/iio/buffer.h
include/linux/iio/iio-opaque.h