mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 03:10:12 +00:00
![Mauro Carvalho Chehab](/assets/img/avatar_default.png)
The :c:type:`foo` only works properly with structs before Sphinx 3.x. On Sphinx 3.x, structs should now be declared using the .. c:struct, and referenced via :c:struct tag. As we now have the automarkup.py macro, that automatically convert: struct foo into cross-references, let's get rid of that, solving several warnings when building docs with Sphinx 3.x. Reviewed-by: André Almeida <andrealmeid@collabora.com> # blk-mq.rst Reviewed-by: Takashi Iwai <tiwai@suse.de> # sound Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
50 lines
1.4 KiB
ReStructuredText
50 lines
1.4 KiB
ReStructuredText
===========
|
|
HW consumer
|
|
===========
|
|
An IIO device can be directly connected to another device in hardware. In this
|
|
case the buffers between IIO provider and IIO consumer are handled by hardware.
|
|
The Industrial I/O HW consumer offers a way to bond these IIO devices without
|
|
software buffer for data. The implementation can be found under
|
|
:file:`drivers/iio/buffer/hw-consumer.c`
|
|
|
|
|
|
* struct iio_hw_consumer — Hardware consumer structure
|
|
* :c:func:`iio_hw_consumer_alloc` — Allocate IIO hardware consumer
|
|
* :c:func:`iio_hw_consumer_free` — Free IIO hardware consumer
|
|
* :c:func:`iio_hw_consumer_enable` — Enable IIO hardware consumer
|
|
* :c:func:`iio_hw_consumer_disable` — Disable IIO hardware consumer
|
|
|
|
|
|
HW consumer setup
|
|
=================
|
|
|
|
As standard IIO device the implementation is based on IIO provider/consumer.
|
|
A typical IIO HW consumer setup looks like this::
|
|
|
|
static struct iio_hw_consumer *hwc;
|
|
|
|
static const struct iio_info adc_info = {
|
|
.read_raw = adc_read_raw,
|
|
};
|
|
|
|
static int adc_read_raw(struct iio_dev *indio_dev,
|
|
struct iio_chan_spec const *chan, int *val,
|
|
int *val2, long mask)
|
|
{
|
|
ret = iio_hw_consumer_enable(hwc);
|
|
|
|
/* Acquire data */
|
|
|
|
ret = iio_hw_consumer_disable(hwc);
|
|
}
|
|
|
|
static int adc_probe(struct platform_device *pdev)
|
|
{
|
|
hwc = devm_iio_hw_consumer_alloc(&iio->dev);
|
|
}
|
|
|
|
More details
|
|
============
|
|
.. kernel-doc:: drivers/iio/buffer/industrialio-hw-consumer.c
|
|
:export:
|
|
|