diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0670-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0670-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0670-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch b/target/linux/bcm27xx/patches-5.4/950-0670-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch new file mode 100644 index 0000000000..96e6e124af --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0670-media-uapi-v4l-ctrls-Add-CID-base-for-the-bcm2835-is.patch @@ -0,0 +1,169 @@ +From 23afbeb993acfd94fa21341f01819ab6505444d2 Mon Sep 17 00:00:00 2001 +From: Naushir Patuck <naush@raspberrypi.com> +Date: Tue, 21 Apr 2020 15:06:19 +0100 +Subject: [PATCH] media: uapi: v4l-ctrls: Add CID base for the + bcm2835-isp driver + +We are reserving controls for the new bcm2835-isp driver. + +Signed-off-by: Naushir Patuck <naush@raspberrypi.com> +--- + .../media/v4l-drivers/bcm2835-isp.rst | 127 ++++++++++++++++++ + Documentation/media/v4l-drivers/index.rst | 1 + + include/uapi/linux/v4l2-controls.h | 4 + + 3 files changed, 132 insertions(+) + create mode 100644 Documentation/media/v4l-drivers/bcm2835-isp.rst + +--- /dev/null ++++ b/Documentation/media/v4l-drivers/bcm2835-isp.rst +@@ -0,0 +1,127 @@ ++.. SPDX-License-Identifier: GPL-2.0 ++ ++BCM2835 ISP Driver ++================== ++ ++Introduction ++------------ ++ ++The BCM2835 Image Sensor Pipeline (ISP) is a fixed function hardware pipeline ++for performing image processing operations. Images are fed to the input ++of the ISP through memory frame buffers. These images may be in various YUV, ++RGB, or Bayer formats. A typical use case would have Bayer images obtained from ++an image sensor by the BCM2835 Unicam peripheral, written to a memory ++frame buffer, and finally fed into the input of the ISP. Two concurrent output ++images may be generated in YUV or RGB format at different resolutions. ++Statistics output is also generated for Bayer input images. ++ ++The bcm2835-isp driver exposes the following media pads as V4L2 device nodes: ++ ++.. tabularcolumns:: |l|l|l|l| ++ ++.. cssclass: longtable ++ ++.. flat-table:: ++ ++ * - *Pad* ++ - *Direction* ++ - *Purpose* ++ - *Formats* ++ ++ * - "bcm2835-isp0-output0" ++ - sink ++ - Accepts Bayer, RGB or YUV format frame buffers as input to the ISP HW ++ pipeline. ++ - :ref:`RAW8 <V4L2-PIX-FMT-SRGGB8>`, ++ :ref:`RAW10P <V4L2-PIX-FMT-SRGGB10P>`, ++ :ref:`RAW12P <V4L2-PIX-FMT-SRGGB12P>`, ++ :ref:`RAW14P <V4L2-PIX-FMT-SRGGB14P>`, ++ :ref:`RAW16 <V4L2-PIX-FMT-SRGGB16>`, ++ :ref:`RGB24/BGR24 <V4L2-PIX-FMT-RGB24>`, ++ :ref:`YUYV <V4L2-PIX-FMT-YUYV>`, ++ :ref:`YVYU <V4L2-PIX-FMT-YVYU>`, ++ :ref:`UYVY <V4L2-PIX-FMT-UYVY>`, ++ :ref:`VYUY <V4L2-PIX-FMT-VYUY>`, ++ :ref:`YUV420/YVU420 <V4L2-PIX-FMT-YUV420>` ++ ++ * - "bcm2835-isp0-capture1" ++ - source ++ - High resolution YUV or RGB processed output from the ISP. ++ - :ref:`RGB565 <V4L2-PIX-FMT-RGB565>`, ++ :ref:`RGB24/BGR24 <V4L2-PIX-FMT-RGB24>`, ++ :ref:`ABGR32 <V4L2-PIX-FMT-ABGR32>`, ++ :ref:`YUYV <V4L2-PIX-FMT-YUYV>`, ++ :ref:`YVYU <V4L2-PIX-FMT-YVYU>`, ++ :ref:`UYVY <V4L2-PIX-FMT-UYVY>`, ++ :ref:`VYUY <V4L2-PIX-FMT-VYUY>`. ++ :ref:`YUV420/YVU420 <V4L2-PIX-FMT-YUV420>`, ++ :ref:`NV12/NV21 <V4L2-PIX-FMT-NV12>`, ++ ++ * - "bcm2835-isp0-capture2" ++ - source ++ - Low resolution YUV processed output from the ISP. The output of ++ this pad cannot have a resolution larger than the "bcm2835-isp0-capture1" pad in any dimension. ++ - :ref:`YUYV <V4L2-PIX-FMT-YUYV>`, ++ :ref:`YVYU <V4L2-PIX-FMT-YVYU>`, ++ :ref:`UYVY <V4L2-PIX-FMT-UYVY>`, ++ :ref:`VYUY <V4L2-PIX-FMT-VYUY>`. ++ :ref:`YUV420/YVU420 <V4L2-PIX-FMT-YUV420>`, ++ :ref:`NV12/NV21 <V4L2-PIX-FMT-NV12>`, ++ ++ * - "bcm2835-isp0-capture1" ++ - source ++ - Image statistics calculated from the input image provided on the ++ "bcm2835-isp0-output0" pad. Statistics are only available for Bayer ++ format input images. ++ - :ref:`v4l2-meta-fmt-bcm2835-isp-stats`. ++ ++Pipeline Configuration ++---------------------- ++ ++The ISP pipeline can be configure through user-space by calling ++:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` on the “bcm2835-isp0-output0” ++node with the appropriate parameters as shown in the table below. ++ ++.. tabularcolumns:: |p{2cm}|p{5.0cm}| ++ ++.. cssclass: longtable ++ ++.. flat-table:: ++ ++ * - *id* ++ - *Parameter* ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_CC_MATRIX`` ++ - struct :c:type:`bcm2835_isp_custom_ccm` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_LENS_SHADING`` ++ - struct :c:type:`bcm2835_isp_lens_shading` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_BLACK_LEVEL`` ++ - struct :c:type:`bcm2835_isp_black_level` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_GEQ`` ++ - struct :c:type:`bcm2835_isp_geq` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_GAMMA`` ++ - struct :c:type:`bcm2835_isp_gamma` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_DENOISE`` ++ - struct :c:type:`bcm2835_isp_denoise` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_SHARPEN`` ++ - struct :c:type:`bcm2835_isp_sharpen` ++ ++ * - ``V4L2_CID_USER_BCM2835_ISP_DPC`` ++ - struct :c:type:`bcm2835_isp_dpc` ++ ++++++++++++++++++++++++++ ++Configuration Parameters ++++++++++++++++++++++++++ ++ ++.. kernel-doc:: include/uapi/linux/bcm2835-isp.h ++ :functions: bcm2835_isp_rational bcm2835_isp_ccm bcm2835_isp_custom_ccm ++ bcm2835_isp_gain_format bcm2835_isp_lens_shading ++ bcm2835_isp_black_level bcm2835_isp_geq bcm2835_isp_gamma ++ bcm2835_isp_denoise bcm2835_isp_sharpen ++ bcm2835_isp_dpc_mode bcm2835_isp_dpc +--- a/Documentation/media/v4l-drivers/index.rst ++++ b/Documentation/media/v4l-drivers/index.rst +@@ -35,6 +35,7 @@ For more details see the file COPYING in + v4l-with-ir + tuners + cardlist ++ bcm2835-isp + bttv + cafe_ccic + cpia2 +--- a/include/uapi/linux/v4l2-controls.h ++++ b/include/uapi/linux/v4l2-controls.h +@@ -192,6 +192,10 @@ enum v4l2_colorfx { + * We reserve 16 controls for this driver. */ + #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) + ++/* The base for the bcm2835-isp driver controls. ++ * We reserve 16 controls for this driver. */ ++#define V4L2_CID_USER_BCM2835_ISP_BASE (V4L2_CID_USER_BASE + 0x10c0) ++ + /* MPEG-class control IDs */ + /* The MPEG controls are applicable to all codec controls + * and the 'MPEG' part of the define is historical */ |