diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0669-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0669-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0669-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch b/target/linux/bcm27xx/patches-5.4/950-0669-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch new file mode 100644 index 0000000000..082dff510c --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/950-0669-media-uapi-v4l2-core-Add-ISP-statistics-output-V4L2-.patch @@ -0,0 +1,94 @@ +From 8dbbff7b75eee842c00ebaa53fa0a34b3e9bbcaa Mon Sep 17 00:00:00 2001 +From: Naushir Patuck <naush@raspberrypi.com> +Date: Thu, 23 Apr 2020 10:20:26 +0100 +Subject: [PATCH] media: uapi: v4l2-core: Add ISP statistics output + V4L2 fourcc type + +Add V4L2_META_FMT_BCM2835_ISP_STATS V4L2 format type. + +This new format will be used by the BCM2835 ISP device to return +out ISP statistics for 3A. + +Signed-off-by: Naushir Patuck <naush@raspberrypi.com> +--- + Documentation/media/uapi/v4l/meta-formats.rst | 1 + + .../v4l/pixfmt-meta-bcm2835-isp-stats.rst | 41 +++++++++++++++++++ + drivers/media/v4l2-core/v4l2-ioctl.c | 1 + + include/uapi/linux/videodev2.h | 1 + + 4 files changed, 44 insertions(+) + create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-bcm2835-isp-stats.rst + +--- a/Documentation/media/uapi/v4l/meta-formats.rst ++++ b/Documentation/media/uapi/v4l/meta-formats.rst +@@ -19,6 +19,7 @@ These formats are used for the :ref:`met + .. toctree:: + :maxdepth: 1 + ++ pixfmt-meta-bcm2835-isp-stats + pixfmt-meta-d4xx + pixfmt-meta-intel-ipu3 + pixfmt-meta-sensor-data +--- /dev/null ++++ b/Documentation/media/uapi/v4l/pixfmt-meta-bcm2835-isp-stats.rst +@@ -0,0 +1,41 @@ ++.. Permission is granted to copy, distribute and/or modify this ++.. document under the terms of the GNU Free Documentation License, ++.. Version 1.1 or any later version published by the Free Software ++.. Foundation, with no Invariant Sections, no Front-Cover Texts ++.. and no Back-Cover Texts. A copy of the license is included at ++.. Documentation/media/uapi/fdl-appendix.rst. ++.. ++.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections ++ ++.. _v4l2-meta-fmt-bcm2835-isp-stats: ++ ++***************************************** ++V4L2_META_FMT_BCM2835_ISP_STATS ('BSTA') ++***************************************** ++ ++BCM2835 ISP Statistics ++ ++Description ++=========== ++ ++The BCM2835 ISP hardware calculate image statistics for an input Bayer frame. ++These statistics are obtained from the "bcm2835-isp0-capture3" device node ++using the :c:type:`v4l2_meta_format` interface. They are formatted as described ++by the :c:type:`bcm2835_isp_stats` structure below. ++ ++.. code-block:: c ++ ++ #define DEFAULT_AWB_REGIONS_X 16 ++ #define DEFAULT_AWB_REGIONS_Y 12 ++ ++ #define NUM_HISTOGRAMS 2 ++ #define NUM_HISTOGRAM_BINS 128 ++ #define AWB_REGIONS (DEFAULT_AWB_REGIONS_X * DEFAULT_AWB_REGIONS_Y) ++ #define FLOATING_REGIONS 16 ++ #define AGC_REGIONS 16 ++ #define FOCUS_REGIONS 12 ++ ++.. kernel-doc:: include/uapi/linux/bcm2835-isp.h ++ :functions: bcm2835_isp_stats_hist bcm2835_isp_stats_region ++ bcm2835_isp_stats_focus bcm2835_isp_stats ++ +--- a/drivers/media/v4l2-core/v4l2-ioctl.c ++++ b/drivers/media/v4l2-core/v4l2-ioctl.c +@@ -1333,6 +1333,7 @@ static void v4l_fill_fmtdesc(struct v4l2 + case V4L2_META_FMT_UVC: descr = "UVC Payload Header Metadata"; break; + case V4L2_META_FMT_D4XX: descr = "Intel D4xx UVC Metadata"; break; + case V4L2_META_FMT_SENSOR_DATA: descr = "Sensor Ancillary Metadata"; break; ++ case V4L2_META_FMT_BCM2835_ISP_STATS: descr = "BCM2835 ISP Image Statistics"; break; + + default: + /* Compressed formats */ +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -769,6 +769,7 @@ struct v4l2_pix_format { + #define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */ + #define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */ + #define V4L2_META_FMT_SENSOR_DATA v4l2_fourcc('S', 'E', 'N', 'S') /* Sensor Ancillary metadata */ ++#define V4L2_META_FMT_BCM2835_ISP_STATS v4l2_fourcc('B', 'S', 'T', 'A') /* BCM2835 ISP image statistics output */ + + /* priv field value to indicates that subsequent fields are valid. */ + #define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe |