mirror of
https://github.com/raspberrypi/linux.git
synced 2026-01-02 15:53:42 +00:00
Merge tag 'media/v6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab: - v4l core: subdev frame interval now supports which field - v4l kapi: moves and renames the init_cfg pad op to init_state as an internal op. - new sensor drivers: gc0308, gc2145, Avnet Alvium, ov64a40, tw9900 - new camera driver: STM32 DCMIPP - s5p-mfc has gained MFC v12 support - new ISP driver added to staging: Starfive - new stateful encoder/decoded: Wave5 codec It is found on the J721S2 SoC, JH7100 SoC, ssd202d SoC. Etc. - fwnode gained support for MIPI "DisCo for Imaging" (https://www.mipi.org/specifications/mipi-disco-imaging) - as usual, lots of cleanups, fixups and driver improvements. * tag 'media/v6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (309 commits) media: i2c: thp7312: select CONFIG_FW_LOADER media: i2c: mt9m114: use fsleep() in place of udelay() media: videobuf2: core: Rename min_buffers_needed field in vb2_queue media: i2c: thp7312: Store frame interval in subdev state media: docs: uAPI: Fix documentation of 'which' field for routing ioctls media: docs: uAPI: Expand error documentation for invalid 'which' value media: docs: uAPI: Clarify error documentation for invalid 'which' value media: v4l2-subdev: Store frame interval in subdev state media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations media: v4l: subdev: Move out subdev state lock macros outside CONFIG_MEDIA_CONTROLLER media: s5p-mfc: DPB Count Independent of VIDIOC_REQBUF media: s5p-mfc: Load firmware for each run in MFCv12. media: s5p-mfc: Set context for valid case before calling try_run media: s5p-mfc: Add support for DMABUF for encoder media: s5p-mfc: Add support for UHD encoding. media: s5p-mfc: Add support for rate controls in MFCv12 media: s5p-mfc: Add YV12 and I420 multiplanar format support media: s5p-mfc: Add initial support for MFCv12 media: s5p-mfc: Rename IS_MFCV10 macro ...
This commit is contained in:
@@ -36,4 +36,5 @@ For more details see the file COPYING in the source distribution of Linux.
|
||||
npcm-video
|
||||
omap3isp-uapi
|
||||
st-vgxy61
|
||||
thp7312
|
||||
uvcvideo
|
||||
|
||||
39
Documentation/userspace-api/media/drivers/thp7312.rst
Normal file
39
Documentation/userspace-api/media/drivers/thp7312.rst
Normal file
@@ -0,0 +1,39 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
THine THP7312 ISP driver
|
||||
========================
|
||||
|
||||
The THP7312 driver implements the following driver-specific controls:
|
||||
|
||||
``V4L2_CID_THP7312_LOW_LIGHT_COMPENSATION``
|
||||
Enable/Disable auto-adjustment, based on lighting conditions, of the frame
|
||||
rate when auto-exposure is enabled.
|
||||
|
||||
``V4L2_CID_THP7312_AUTO_FOCUS_METHOD``
|
||||
Set method of auto-focus. Only takes effect when auto-focus is enabled.
|
||||
|
||||
.. flat-table::
|
||||
:header-rows: 0
|
||||
:stub-columns: 0
|
||||
:widths: 1 4
|
||||
|
||||
* - ``0``
|
||||
- Contrast-based auto-focus
|
||||
* - ``1``
|
||||
- PDAF
|
||||
* - ``2``
|
||||
- Hybrid of contrast-based and PDAF
|
||||
|
||||
Supported values for the control depend on the camera sensor module
|
||||
connected to the THP7312. If the module doesn't have a focus lens actuator,
|
||||
this control will not be exposed by the THP7312 driver. If the module has a
|
||||
controllable focus lens but the sensor doesn't support PDAF, only the
|
||||
contrast-based auto-focus value will be valid. Otherwise all values for the
|
||||
controls will be supported.
|
||||
|
||||
``V4L2_CID_THP7312_NOISE_REDUCTION_AUTO``
|
||||
Enable/Disable auto noise reduction.
|
||||
|
||||
``V4L2_CID_THP7312_NOISE_REDUCTION_ABSOLUTE``
|
||||
Set the noise reduction strength, where 0 is the weakest and 10 is the
|
||||
strongest.
|
||||
@@ -116,9 +116,13 @@ than the number requested.
|
||||
- ``flags``
|
||||
- Specifies additional buffer management attributes.
|
||||
See :ref:`memory-flags`.
|
||||
|
||||
* - __u32
|
||||
- ``reserved``\ [6]
|
||||
- ``max_num_buffers``
|
||||
- If the V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS capability flag is set
|
||||
this field indicates the maximum possible number of buffers
|
||||
for this queue.
|
||||
* - __u32
|
||||
- ``reserved``\ [5]
|
||||
- A place holder for future extensions. Drivers and applications
|
||||
must set the array to zero.
|
||||
|
||||
|
||||
@@ -295,6 +295,14 @@ still cause this situation.
|
||||
- ``p_av1_film_grain``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_av1_film_grain`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``.
|
||||
* - struct :c:type:`v4l2_ctrl_hdr10_cll_info` *
|
||||
- ``p_hdr10_cll_info``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_hdr10_cll_info`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_HDR10_CLL_INFO``.
|
||||
* - struct :c:type:`v4l2_ctrl_hdr10_mastering_display` *
|
||||
- ``p_hdr10_mastering_display``
|
||||
- A pointer to a struct :c:type:`v4l2_ctrl_hdr10_mastering_display`. Valid if this control is
|
||||
of type ``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``.
|
||||
* - void *
|
||||
- ``ptr``
|
||||
- A pointer to a compound type which can be an N-dimensional array
|
||||
|
||||
@@ -120,6 +120,7 @@ aborting or finishing any DMA in progress, an implicit
|
||||
.. _V4L2-BUF-CAP-SUPPORTS-ORPHANED-BUFS:
|
||||
.. _V4L2-BUF-CAP-SUPPORTS-M2M-HOLD-CAPTURE-BUF:
|
||||
.. _V4L2-BUF-CAP-SUPPORTS-MMAP-CACHE-HINTS:
|
||||
.. _V4L2-BUF-CAP-SUPPORTS-MAX-NUM-BUFFERS:
|
||||
|
||||
.. raw:: latex
|
||||
|
||||
|
||||
@@ -107,8 +107,7 @@ appropriately. The generic error codes are described at the
|
||||
:ref:`Generic Error Codes <gen-errors>` chapter.
|
||||
|
||||
EINVAL
|
||||
The struct
|
||||
:c:type:`v4l2_subdev_frame_interval_enum`
|
||||
``pad`` references a non-existing pad, one of the ``code``,
|
||||
``width`` or ``height`` fields are invalid for the given pad or the
|
||||
``index`` field is out of bounds.
|
||||
The struct :c:type:`v4l2_subdev_frame_interval_enum` ``pad`` references a
|
||||
non-existing pad, the ``which`` field has an unsupported value, one of the
|
||||
``code``, ``width`` or ``height`` fields are invalid for the given pad, or
|
||||
the ``index`` field is out of bounds.
|
||||
|
||||
@@ -126,7 +126,6 @@ appropriately. The generic error codes are described at the
|
||||
:ref:`Generic Error Codes <gen-errors>` chapter.
|
||||
|
||||
EINVAL
|
||||
The struct
|
||||
:c:type:`v4l2_subdev_frame_size_enum`
|
||||
``pad`` references a non-existing pad, the ``code`` is invalid for
|
||||
the given pad or the ``index`` field is out of bounds.
|
||||
The struct :c:type:`v4l2_subdev_frame_size_enum` ``pad`` references a
|
||||
non-existing pad, the ``which`` field has an unsupported value, the ``code``
|
||||
is invalid for the given pad, or the ``index`` field is out of bounds.
|
||||
|
||||
@@ -158,7 +158,6 @@ appropriately. The generic error codes are described at the
|
||||
:ref:`Generic Error Codes <gen-errors>` chapter.
|
||||
|
||||
EINVAL
|
||||
The struct
|
||||
:c:type:`v4l2_subdev_mbus_code_enum`
|
||||
``pad`` references a non-existing pad, or the ``index`` field is out
|
||||
of bounds.
|
||||
The struct :c:type:`v4l2_subdev_mbus_code_enum` ``pad`` references a
|
||||
non-existing pad, the ``which`` field has an unsupported value, or the
|
||||
``index`` field is out of bounds.
|
||||
|
||||
@@ -71,6 +71,11 @@ is unknown to the kernel.
|
||||
of 'stream' fields (referring to the stream number) with various
|
||||
ioctls. If this is not set (which is the default), the 'stream' fields
|
||||
will be forced to 0 by the kernel.
|
||||
* - ``V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH``
|
||||
- The client is aware of the :c:type:`v4l2_subdev_frame_interval`
|
||||
``which`` field. If this is not set (which is the default), the
|
||||
``which`` field is forced to ``V4L2_SUBDEV_FORMAT_ACTIVE`` by the
|
||||
kernel.
|
||||
|
||||
Return Value
|
||||
============
|
||||
|
||||
@@ -118,10 +118,9 @@ EBUSY
|
||||
``VIDIOC_SUBDEV_S_CROP``
|
||||
|
||||
EINVAL
|
||||
The struct :c:type:`v4l2_subdev_crop` ``pad``
|
||||
references a non-existing pad, the ``which`` field references a
|
||||
non-existing format, or cropping is not supported on the given
|
||||
subdev pad.
|
||||
The struct :c:type:`v4l2_subdev_crop` ``pad`` references a non-existing pad,
|
||||
the ``which`` field has an unsupported value, or cropping is not supported
|
||||
on the given subdev pad.
|
||||
|
||||
EPERM
|
||||
The ``VIDIOC_SUBDEV_S_CROP`` ioctl has been called on a read-only subdevice
|
||||
|
||||
@@ -140,9 +140,8 @@ EBUSY
|
||||
fix the problem first. Only returned by ``VIDIOC_SUBDEV_S_FMT``
|
||||
|
||||
EINVAL
|
||||
The struct :c:type:`v4l2_subdev_format`
|
||||
``pad`` references a non-existing pad, or the ``which`` field
|
||||
references a non-existing format.
|
||||
The struct :c:type:`v4l2_subdev_format` ``pad`` references a non-existing
|
||||
pad, or the ``which`` field has an unsupported value.
|
||||
|
||||
EPERM
|
||||
The ``VIDIOC_SUBDEV_S_FMT`` ioctl has been called on a read-only subdevice
|
||||
|
||||
@@ -58,8 +58,9 @@ struct
|
||||
contains the current frame interval as would be returned by a
|
||||
``VIDIOC_SUBDEV_G_FRAME_INTERVAL`` call.
|
||||
|
||||
Calling ``VIDIOC_SUBDEV_S_FRAME_INTERVAL`` on a subdev device node that has been
|
||||
registered in read-only mode is not allowed. An error is returned and the errno
|
||||
If the subdev device node has been registered in read-only mode, calls to
|
||||
``VIDIOC_SUBDEV_S_FRAME_INTERVAL`` are only valid if the ``which`` field is set
|
||||
to ``V4L2_SUBDEV_FORMAT_TRY``, otherwise an error is returned and the errno
|
||||
variable is set to ``-EPERM``.
|
||||
|
||||
Drivers must not return an error solely because the requested interval
|
||||
@@ -93,7 +94,11 @@ the same sub-device is not defined.
|
||||
- ``stream``
|
||||
- Stream identifier.
|
||||
* - __u32
|
||||
- ``reserved``\ [8]
|
||||
- ``which``
|
||||
- Active or try frame interval, from enum
|
||||
:ref:`v4l2_subdev_format_whence <v4l2-subdev-format-whence>`.
|
||||
* - __u32
|
||||
- ``reserved``\ [7]
|
||||
- Reserved for future extensions. Applications and drivers must set
|
||||
the array to zero.
|
||||
|
||||
@@ -112,11 +117,10 @@ EBUSY
|
||||
``VIDIOC_SUBDEV_S_FRAME_INTERVAL``
|
||||
|
||||
EINVAL
|
||||
The struct
|
||||
:c:type:`v4l2_subdev_frame_interval`
|
||||
``pad`` references a non-existing pad, or the pad doesn't support
|
||||
frame intervals.
|
||||
The struct :c:type:`v4l2_subdev_frame_interval` ``pad`` references a
|
||||
non-existing pad, the ``which`` field has an unsupported value, or the pad
|
||||
doesn't support frame intervals.
|
||||
|
||||
EPERM
|
||||
The ``VIDIOC_SUBDEV_S_FRAME_INTERVAL`` ioctl has been called on a read-only
|
||||
subdevice.
|
||||
subdevice and the ``which`` field is set to ``V4L2_SUBDEV_FORMAT_ACTIVE``.
|
||||
|
||||
@@ -72,7 +72,7 @@ On a successful ``VIDIOC_SUBDEV_G_ROUTING`` call the driver updates the
|
||||
|
||||
* - __u32
|
||||
- ``which``
|
||||
- Format to modified, from enum
|
||||
- Routing table to be accessed, from enum
|
||||
:ref:`v4l2_subdev_format_whence <v4l2-subdev-format-whence>`.
|
||||
* - struct :c:type:`v4l2_subdev_route`
|
||||
- ``routes[]``
|
||||
@@ -140,8 +140,9 @@ ENOSPC
|
||||
all the available routes the subdevice exposes.
|
||||
|
||||
EINVAL
|
||||
The sink or source pad identifiers reference a non-existing pad, or reference
|
||||
pads of different types (ie. the sink_pad identifiers refers to a source pad).
|
||||
The sink or source pad identifiers reference a non-existing pad or reference
|
||||
pads of different types (ie. the sink_pad identifiers refers to a source
|
||||
pad), or the ``which`` field has an unsupported value.
|
||||
|
||||
E2BIG
|
||||
The application provided ``num_routes`` for ``VIDIOC_SUBDEV_S_ROUTING`` is
|
||||
|
||||
@@ -116,10 +116,9 @@ EBUSY
|
||||
``VIDIOC_SUBDEV_S_SELECTION``
|
||||
|
||||
EINVAL
|
||||
The struct :c:type:`v4l2_subdev_selection`
|
||||
``pad`` references a non-existing pad, the ``which`` field
|
||||
references a non-existing format, or the selection target is not
|
||||
supported on the given subdev pad.
|
||||
The struct :c:type:`v4l2_subdev_selection` ``pad`` references a
|
||||
non-existing pad, the ``which`` field has an unsupported value, or the
|
||||
selection target is not supported on the given subdev pad.
|
||||
|
||||
EPERM
|
||||
The ``VIDIOC_SUBDEV_S_SELECTION`` ioctl has been called on a read-only
|
||||
|
||||
Reference in New Issue
Block a user