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
This commit is contained in:
parent
b18831cc99
commit
95ec3fdf2b
3 changed files with 54 additions and 0 deletions
|
|
@ -38,6 +38,10 @@ static inline int iio_push_to_buffers_with_timestamp(struct iio_dev *indio_dev,
|
|||
return iio_push_to_buffers(indio_dev, data);
|
||||
}
|
||||
|
||||
int iio_push_to_buffers_with_ts_unaligned(struct iio_dev *indio_dev,
|
||||
const void *data, size_t data_sz,
|
||||
int64_t timestamp);
|
||||
|
||||
bool iio_validate_scan_mask_onehot(struct iio_dev *indio_dev,
|
||||
const unsigned long *mask);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue