From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, tomi.valkeinen@ideasonboard.com,
bingbu.cao@intel.com, hongju.wang@intel.com, hverkuil@xs4all.nl,
Andrey Konovalov <andrey.konovalov@linaro.org>,
Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Dmitry Perchanov <dmitry.perchanov@intel.com>,
"Ng, Khai Wen" <khai.wen.ng@intel.com>,
Alain Volmat <alain.volmat@foss.st.com>
Subject: Re: [PATCH v8 03/38] media: uapi: Add generic serial metadata mbus formats
Date: Wed, 20 Mar 2024 00:59:48 +0200 [thread overview]
Message-ID: <20240319225948.GG8501@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20240313072516.241106-4-sakari.ailus@linux.intel.com>
Hi Sakari,
Thank you for the patch.
On Wed, Mar 13, 2024 at 09:24:41AM +0200, Sakari Ailus wrote:
> Add generic serial metadata mbus formats. These formats describe data
> width and packing but not the content itself. The reason for specifying
> such formats is that the formats as such are fairly device specific but
> they are still handled by CSI-2 receiver drivers that should not be aware
> of device specific formats. What makes generic metadata formats possible
> is that these formats are parsed by software only, after capturing the
> data to system memory.
>
> Also add a definition for "Data unit" to cover what is essentially a pixel
> but is not image data.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> .../userspace-api/media/glossary.rst | 9 +
> .../media/v4l/subdev-formats.rst | 258 ++++++++++++++++++
> include/uapi/linux/media-bus-format.h | 9 +
> 3 files changed, 276 insertions(+)
>
> diff --git a/Documentation/userspace-api/media/glossary.rst b/Documentation/userspace-api/media/glossary.rst
> index ef0ab601b5bf..7078141894c5 100644
> --- a/Documentation/userspace-api/media/glossary.rst
> +++ b/Documentation/userspace-api/media/glossary.rst
> @@ -25,6 +25,15 @@ Glossary
>
> See :ref:`cec`.
>
> +.. _media-glossary-data-unit:
> +
> + Data unit
> +
> + Unit of data transported by a bus. On parallel buses, the data unit
> + consists of one or more related samples while on serial buses the data
> + unit is logical. If the data unit is image data, it may also be called a
> + pixel.
I'm pretty sure nobody will be able to understand what this means, but I
don't have a better proposal at the moment.
> +
> Device Driver
> Part of the Linux Kernel that implements support for a hardware
> component.
> diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst
> index eb3cd20b0cf2..cbd475f7cae9 100644
> --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst
> +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst
> @@ -8306,3 +8306,261 @@ The following table lists the existing metadata formats.
> both sides of the link and the bus format is a fixed
> metadata format that is not configurable from userspace.
> Width and height will be set to 0 for this format.
> +
> +Generic Serial Metadata Formats
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +Generic serial metadata formats are used on serial buses where the actual data
> +content is more or less device specific but the data is transmitted and received
> +by multiple devices that do not process the data in any way, simply writing
> +it to system memory for processing in software at the end of the pipeline.
> +
> +The more specific variant describing the actual data is used on the internal
> +source pad of the originating sub-device.
Maybe this paragraph would be best added in the patch that adds the
specific metadata formats, you could then mention one of them as an
example:
The exact format of the data generated by the device is reported on the
internal source pad of the originating sub-device, using one of the more
specific metadata formats such as MEDIA_BUS_FMT_CCS_EMBEDDED.
> +
> +"b" in an array cell signifies a byte of data, followed by the number of the bit
s/bit$/byte/
> +and finally the bit number in subscript. "X" indicates a padding bit.
We use a lower-case x in pixfmt-rgb.rst, I would do the same here. We
also use single quotes there, turning "b" and "x" into 'b' and 'x'.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> +
> +.. _media-bus-format-generic-meta:
> +
> +.. cssclass: longtable
> +
> +.. flat-table:: Generic Serial Metadata Formats
> + :header-rows: 2
> + :stub-columns: 0
> +
> + * - Identifier
> + - Code
> + -
> + - :cspan:`23` Data organization within bus ``Data unit
> + <media-glossary-data-unit>``
> + * -
> + -
> + - Bit
> + - 23
> + - 22
> + - 21
> + - 20
> + - 19
> + - 18
> + - 17
> + - 16
> + - 15
> + - 14
> + - 13
> + - 12
> + - 11
> + - 10
> + - 9
> + - 8
> + - 7
> + - 6
> + - 5
> + - 4
> + - 3
> + - 2
> + - 1
> + - 0
> + * .. _MEDIA-BUS-FMT-META-8:
> +
> + - MEDIA_BUS_FMT_META_8
> + - 0x8001
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + * .. _MEDIA-BUS-FMT-META-10:
> +
> + - MEDIA_BUS_FMT_META_10
> + - 0x8002
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + * .. _MEDIA-BUS-FMT-META-12:
> +
> + - MEDIA_BUS_FMT_META_12
> + - 0x8003
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + - X
> + - X
> + * .. _MEDIA-BUS-FMT-META-14:
> +
> + - MEDIA_BUS_FMT_META_14
> + - 0x8004
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + * .. _MEDIA-BUS-FMT-META-16:
> +
> + - MEDIA_BUS_FMT_META_16
> + - 0x8005
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + * .. _MEDIA-BUS-FMT-META-20:
> +
> + - MEDIA_BUS_FMT_META_20
> + - 0x8006
> + -
> + -
> + -
> + -
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + * .. _MEDIA-BUS-FMT-META-24:
> +
> + - MEDIA_BUS_FMT_META_24
> + - 0x8007
> + -
> + - b0\ :sub:`7`
> + - b0\ :sub:`6`
> + - b0\ :sub:`5`
> + - b0\ :sub:`4`
> + - b0\ :sub:`3`
> + - b0\ :sub:`2`
> + - b0\ :sub:`1`
> + - b0\ :sub:`0`
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> + - X
> diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h
> index f05f747e444d..d4c1d991014b 100644
> --- a/include/uapi/linux/media-bus-format.h
> +++ b/include/uapi/linux/media-bus-format.h
> @@ -174,4 +174,13 @@
> */
> #define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
>
> +/* Generic line based metadata formats for serial buses. Next is 0x8008. */
> +#define MEDIA_BUS_FMT_META_8 0x8001
> +#define MEDIA_BUS_FMT_META_10 0x8002
> +#define MEDIA_BUS_FMT_META_12 0x8003
> +#define MEDIA_BUS_FMT_META_14 0x8004
> +#define MEDIA_BUS_FMT_META_16 0x8005
> +#define MEDIA_BUS_FMT_META_20 0x8006
> +#define MEDIA_BUS_FMT_META_24 0x8007
> +
> #endif /* __LINUX_MEDIA_BUS_FORMAT_H */
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2024-03-19 22:59 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-13 7:24 [PATCH v8 00/38] Generic line based metadata support, internal pads Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 01/38] media: mc: Add INTERNAL pad flag Sakari Ailus
2024-03-14 7:17 ` Tomi Valkeinen
2024-03-19 13:21 ` Sakari Ailus
2024-03-19 22:17 ` Laurent Pinchart
2024-03-20 7:49 ` Sakari Ailus
2024-03-21 17:20 ` Laurent Pinchart
2024-03-28 9:47 ` Sakari Ailus
2024-03-28 10:05 ` Sakari Ailus
2024-03-28 15:25 ` Laurent Pinchart
2024-04-11 7:25 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 02/38] media: Documentation: Add "stream" into glossary Sakari Ailus
2024-03-14 7:18 ` Tomi Valkeinen
2024-03-19 22:20 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 03/38] media: uapi: Add generic serial metadata mbus formats Sakari Ailus
2024-03-14 7:30 ` Tomi Valkeinen
2024-03-19 13:27 ` Sakari Ailus
2024-03-19 14:20 ` Tomi Valkeinen
2024-03-19 22:33 ` Laurent Pinchart
2024-03-19 23:00 ` Laurent Pinchart
2024-03-20 8:48 ` Sakari Ailus
2024-03-21 17:30 ` Laurent Pinchart
2024-03-22 6:50 ` Tomi Valkeinen
2024-03-25 14:02 ` Sakari Ailus
2024-03-20 8:36 ` Sakari Ailus
2024-03-19 22:59 ` Laurent Pinchart [this message]
2024-03-20 16:23 ` Sakari Ailus
2024-03-21 17:38 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 04/38] media: uapi: Document which mbus format fields are valid for metadata Sakari Ailus
2024-03-14 15:23 ` Tomi Valkeinen
2024-03-19 23:14 ` Laurent Pinchart
2024-03-20 16:49 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 05/38] media: uapi: Add generic 8-bit metadata format definitions Sakari Ailus
2024-03-19 23:37 ` Laurent Pinchart
2024-04-15 14:05 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 06/38] media: v4l: Support line-based metadata capture Sakari Ailus
2024-03-19 23:40 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 07/38] media: Documentation: Additional streams generally don't harm capture Sakari Ailus
2024-03-19 23:48 ` Laurent Pinchart
2024-04-15 14:27 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 08/38] media: Documentation: Document embedded data guidelines for camera sensors Sakari Ailus
2024-03-15 14:49 ` Julien Massot
2024-03-20 0:03 ` Laurent Pinchart
2024-04-09 11:12 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 09/38] media: Documentation: v4l: Document internal source pads Sakari Ailus
2024-03-15 15:32 ` Julien Massot
2024-03-19 13:47 ` Sakari Ailus
2024-03-19 14:38 ` Julien Massot
2024-03-20 0:26 ` Laurent Pinchart
2024-04-09 12:14 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 10/38] media: Documentation: Document S_ROUTING behaviour Sakari Ailus
2024-03-15 15:38 ` Julien Massot
2024-03-20 0:33 ` Laurent Pinchart
2024-04-11 8:02 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 11/38] media: v4l: subdev: Add a function to lock two sub-device states, use it Sakari Ailus
2024-03-15 15:42 ` Julien Massot
2024-03-20 0:36 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 12/38] media: v4l: subdev: Move G_ROUTING handling below S_ROUTING Sakari Ailus
2024-03-15 15:43 ` Julien Massot
2024-03-20 0:37 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 13/38] media: v4l: subdev: Copy argument back to user also for S_ROUTING Sakari Ailus
2024-03-15 15:50 ` Julien Massot
2024-03-20 0:39 ` Laurent Pinchart
2024-04-11 8:06 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 14/38] media: v4l: subdev: Add len_routes field to struct v4l2_subdev_routing Sakari Ailus
2024-03-20 1:36 ` Laurent Pinchart
2024-04-16 7:09 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 15/38] media: v4l: subdev: Return routes set using S_ROUTING Sakari Ailus
2024-03-20 1:45 ` Laurent Pinchart
2024-04-16 7:12 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 16/38] media: v4l: subdev: Allow a larger number of routes than there's room for Sakari Ailus
2024-03-20 1:53 ` Laurent Pinchart
2024-04-16 8:08 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 17/38] media: v4l: subdev: Add trivial set_routing support Sakari Ailus
2024-03-15 15:51 ` Julien Massot
2024-03-20 1:55 ` Laurent Pinchart
2024-04-01 23:41 ` Laurent Pinchart
2024-04-11 8:13 ` Sakari Ailus
2024-04-12 19:14 ` Laurent Pinchart
2024-04-15 8:10 ` Sakari Ailus
2024-03-13 7:24 ` [PATCH v8 18/38] media: ccs: No need to set streaming to false in power off Sakari Ailus
2024-03-13 9:31 ` Kieran Bingham
2024-03-21 16:35 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 19/38] media: ccs: Use {enable,disable}_streams operations Sakari Ailus
2024-03-21 16:21 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 20/38] media: ccs: Track streaming state Sakari Ailus
2024-03-15 15:56 ` Julien Massot
2024-03-21 16:36 ` Laurent Pinchart
2024-03-13 7:24 ` [PATCH v8 21/38] media: ccs: Move ccs_validate_csi_data_format up Sakari Ailus
2024-03-15 15:57 ` Julien Massot
2024-03-21 16:37 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 22/38] media: ccs: Support frame descriptors Sakari Ailus
2024-03-15 16:02 ` Julien Massot
2024-03-21 16:44 ` Laurent Pinchart
2024-04-11 8:33 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 23/38] media: uapi: ccs: Add media bus code for MIPI CCS embedded data Sakari Ailus
2024-03-15 16:03 ` Julien Massot
2024-03-21 16:49 ` Laurent Pinchart
2024-04-11 9:04 ` Sakari Ailus
2024-04-12 19:07 ` Laurent Pinchart
2024-04-14 10:48 ` Sakari Ailus
2024-04-20 8:07 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 24/38] media: ccs: Add support for embedded data stream Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 25/38] media: ccs: Remove ccs_get_crop_compose helper Sakari Ailus
2024-03-21 18:05 ` Laurent Pinchart
2024-04-16 7:30 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 26/38] media: ccs: Rely on sub-device state locking Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 27/38] media: ccs: Compute binning configuration from sub-device state Sakari Ailus
2024-03-21 17:57 ` Laurent Pinchart
2024-04-16 8:01 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 28/38] media: ccs: Compute scaling " Sakari Ailus
2024-03-21 17:50 ` Laurent Pinchart
2024-04-16 7:59 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 29/38] media: ccs: Remove which parameter from ccs_propagate Sakari Ailus
2024-03-21 17:39 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 30/38] media: Documentation: ccs: Document routing Sakari Ailus
2024-03-21 17:43 ` Laurent Pinchart
2024-04-16 7:37 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 31/38] media: uapi: v4l: subdev: Enable streams API Sakari Ailus
2024-03-21 16:51 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 32/38] media: uapi: Add media bus code for ov2740 embedded data Sakari Ailus
2024-03-15 16:10 ` Julien Massot
2024-03-21 16:54 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 33/38] media: ov2740: Switch to {enable,disable}_streams Sakari Ailus
2024-03-15 16:13 ` Julien Massot
2024-03-21 16:56 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 34/38] media: ov2740: Track streaming state Sakari Ailus
2024-03-15 16:13 ` Julien Massot
2024-03-21 16:57 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 35/38] media: ov2740: Add support for embedded data Sakari Ailus
2024-03-14 7:00 ` Bingbu Cao
2024-03-19 13:13 ` Sakari Ailus
2024-03-14 8:24 ` Julien Massot
2024-03-19 13:18 ` Sakari Ailus
2024-03-21 17:16 ` Laurent Pinchart
2024-04-10 13:18 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 36/38] media: v4l: Add V4L2_SUBDEV_ROUTE_FL_IMMUTABLE sub-device routing flag Sakari Ailus
2024-03-13 7:34 ` Tomi Valkeinen
2024-03-13 7:39 ` Sakari Ailus
2024-03-21 17:03 ` Laurent Pinchart
2024-04-09 13:21 ` Sakari Ailus
2024-04-09 15:21 ` Laurent Pinchart
2024-03-13 7:25 ` [PATCH v8 37/38] media: ccs: Add IMMUTABLE route flag Sakari Ailus
2024-03-15 16:08 ` Julien Massot
2024-03-21 16:59 ` Laurent Pinchart
2024-04-11 9:06 ` Sakari Ailus
2024-03-13 7:25 ` [PATCH v8 38/38] media: ov2740: " Sakari Ailus
2024-03-15 16:14 ` Julien Massot
2024-03-21 17:00 ` Laurent Pinchart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240319225948.GG8501@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=alain.volmat@foss.st.com \
--cc=andrey.konovalov@linaro.org \
--cc=bingbu.cao@intel.com \
--cc=dmitry.perchanov@intel.com \
--cc=hongju.wang@intel.com \
--cc=hverkuil@xs4all.nl \
--cc=jacopo.mondi@ideasonboard.com \
--cc=khai.wen.ng@intel.com \
--cc=linux-media@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=tomi.valkeinen@ideasonboard.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.