Documentation/userspace-api/media/v4l/metafmt-rkisp1.rst
.. SPDX-License-Identifier: GPL-2.0
.. _v4l2-meta-fmt-rk-isp1-stat-3a:
V4L2_META_FMT_RK_ISP1_PARAMS ('rk1p'), V4L2_META_FMT_RK_ISP1_STAT_3A ('rk1s'), V4L2_META_FMT_RK_ISP1_EXT_PARAMS ('rk1e')
The configuration of the RkISP1 ISP is performed by userspace by providing
parameters for the ISP to the driver using the :c:type:v4l2_meta_format
interface.
There are two methods that allow to configure the ISP, the fixed parameters
configuration format and the extensible parameters configuration
format.
.. _v4l2-meta-fmt-rk-isp1-params:
When using the fixed configuration format, parameters are passed to the
:ref:rkisp1_params <rkisp1_params> metadata output video node, using
the V4L2_META_FMT_RK_ISP1_PARAMS meta format.
The buffer contains a single instance of the C structure
:c:type:rkisp1_params_cfg defined in rkisp1-config.h. So the structure can
be obtained from the buffer by:
.. code-block:: c
struct rkisp1_params_cfg *params = (struct rkisp1_params_cfg*) buffer;
This method supports a subset of the ISP features only, new applications should use the extensible parameters method.
.. _v4l2-meta-fmt-rk-isp1-ext-params:
When using the extensible configuration format, parameters are passed to the
:ref:rkisp1_params <rkisp1_params> metadata output video node, using
the V4L2_META_FMT_RK_ISP1_EXT_PARAMS meta format.
The buffer contains a single instance of the C structure
:c:type:rkisp1_ext_params_cfg defined in rkisp1-config.h. The
:c:type:rkisp1_ext_params_cfg structure is designed to allow userspace to
populate the data buffer with only the configuration data for the ISP blocks it
intends to configure. The extensible parameters format design allows developers
to define new block types to support new configuration parameters, and defines a
versioning scheme so that it can be extended and versioned without breaking
compatibility with existing applications.
For these reasons, this configuration method is preferred over the fixed parameters format alternative.
.. rkisp1_stat_buffer
The ISP1 device collects different statistics over an input Bayer frame.
Those statistics are obtained from the :ref:rkisp1_stats <rkisp1_stats>
metadata capture video node,
using the :c:type:v4l2_meta_format interface. The buffer contains a single
instance of the C structure :c:type:rkisp1_stat_buffer defined in
rkisp1-config.h. So the structure can be obtained from the buffer by:
.. code-block:: c
struct rkisp1_stat_buffer *stats = (struct rkisp1_stat_buffer*) buffer;
The statistics collected are Exposure, AWB (Auto-white balance), Histogram and
AF (Auto-focus). See :c:type:rkisp1_stat_buffer for details of the statistics.
The 3A statistics and configuration parameters described here are usually consumed and produced by dedicated user space libraries that comprise the important tuning tools using software control loop.
.. kernel-doc:: include/uapi/linux/rkisp1-config.h