[PATCH RFC 06/10] media: uapi: Add metadata layout for IMX678 embedded line
From: Jai Luthra
Date: Fri Jul 03 2026 - 06:00:33 EST
Add a metadata layout for Sony IMX678 camera sensor embedded line. Some
portions are transmitted as non-zero but not specified in the datasheet,
and are thus left undocumented.
Signed-off-by: Jai Luthra <jai.luthra@xxxxxxxxxxxxxxxx>
---
.../media/v4l/ext-ctrls-image-source.rst | 3 ++
.../userspace-api/media/v4l/metadata-layouts.rst | 41 ++++++++++++++++++++++
include/uapi/linux/v4l2-controls.h | 1 +
3 files changed, 45 insertions(+)
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst
index 14a3cadb2211..8e19fc73c926 100644
--- a/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst
+++ b/Documentation/userspace-api/media/v4l/ext-ctrls-image-source.rst
@@ -181,6 +181,9 @@ Image Source Control IDs
* - V4L2_METADATA_LAYOUT_OV2740
- :ref:`OV2740 embedded data <media-metadata-layout-ov2740>`
- 2
+ * - V4L2_METADATA_LAYOUT_IMX678
+ - :ref:`IMX678 embedded data <media-metadata-layout-imx678>`
+ - 3
.. _image_source_control_binning_factors:
diff --git a/Documentation/userspace-api/media/v4l/metadata-layouts.rst b/Documentation/userspace-api/media/v4l/metadata-layouts.rst
index b4d04d82662b..f4254a82490e 100644
--- a/Documentation/userspace-api/media/v4l/metadata-layouts.rst
+++ b/Documentation/userspace-api/media/v4l/metadata-layouts.rst
@@ -112,3 +112,44 @@ level 1.
* - 89
- 8
- Frame counter (starts at 1, wraps to 0 after 255)
+
+Sony IMX678 Embedded Data Layout (``V4L2_METADATA_LAYOUT_IMX678``)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The Sony IMX678 camera sensor produces the following embedded data layout,
+indicated by ``V4L2_METADATA_LAYOUT_IMX678`` metadata layout. The format
+conforms to :ref:`CCS embedded data layout <media-metadata-layout-ccs>` up to
+level 1.
+
+Undocumented offsets till 170 may be ignored. From 171 to 288 all bytes are 00h
+and from 289 to line length all bytes are 07h.
+
+.. flat-table:: Sony IMX678 Embedded Data Layout. Octets at indices marked
+ ignored have been omitted from the table. Values for multi-byte
+ registers are in little-endian byte order.
+ :header-rows: 1
+
+ * - Offset
+ - Size in bits (active bits if not the same as size)
+ - Content description
+ * - 2
+ - 8 (6--0)
+ - CFMODE (6--5) | WINMODE (3--0)
+ * - 3
+ - 8 (5)
+ - HREVERSE
+ * - 9
+ - 8 (5)
+ - VREVERSE
+ * - 11
+ - 8 (7--6)
+ - ADBIT
+ * - 13
+ - 8 (3--0)
+ - MDBIT (3) | LANEMODE (2--0)
+ * - 24
+ - 24 (20--0)
+ - SHR0
+ * - 54
+ - 16 (12--0)
+ - BLKLEVEL
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 10b836ca938b..1a181ed2e0d5 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -1253,6 +1253,7 @@ enum v4l2_jpeg_chroma_subsampling {
#define V4L2_CID_METADATA_LAYOUT (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 12)
#define V4L2_METADATA_LAYOUT_CCS 1U
#define V4L2_METADATA_LAYOUT_OV2740 2U
+#define V4L2_METADATA_LAYOUT_IMX678 3U
#define V4L2_CID_BINNING_FACTORS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 13)
#define V4L2_BINNING_FACTORS_MAKE(hnum, hdem, vnum, vdem) \
--
2.54.0