alistair23-linux/drivers/staging/iio/Documentation/ring.txt
Lars-Peter Clausen 374956600e iio: buffer: Drop get_length callback
We already do have the length field in the struct iio_buffer which is
expected to be in sync with the current size of the buffer. And currently
all implementations of the get_length callback either return this field or a
constant number.

This patch removes the get_length callback and replaces all occurrences in
the IIO core with directly accessing the length field of the buffer.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2014-12-12 12:28:34 +00:00

48 lines
1.8 KiB
Plaintext

Buffer support within IIO
This document is intended as a general overview of the functionality
a buffer may supply and how it is specified within IIO. For more
specific information on a given buffer implementation, see the
comments in the source code. Note that some drivers allow buffer
implementation to be selected at compile time via Kconfig options.
A given buffer implementation typically embeds a struct
iio_ring_buffer and it is a pointer to this that is provided to the
IIO core. Access to the embedding structure is typically done via
container_of functions.
struct iio_ring_buffer contains a struct iio_ring_setup_ops *setup_ops
which in turn contains the 4 function pointers
(preenable, postenable, predisable and postdisable).
These are used to perform device specific steps on either side
of the core changing its current mode to indicate that the buffer
is enabled or disabled (along with enabling triggering etc. as appropriate).
Also in struct iio_ring_buffer is a struct iio_ring_access_funcs.
The function pointers within here are used to allow the core to handle
as much buffer functionality as possible. Note almost all of these
are optional.
store_to
If possible, push data to the buffer.
read_last
If possible, get the most recent scan from the buffer (without removal).
This provides polling like functionality whilst the ring buffering is in
use without a separate read from the device.
rip_first_n
The primary buffer reading function. Note that it may well not return
as much data as requested.
request_update
If parameters have changed that require reinitialization or configuration of
the buffer this will trigger it.
set_bytes_per_datum
Set the number of bytes for a complete scan. (All samples + timestamp)
set_length
Set the number of complete scans that may be held by the buffer.