Message ID | 20240416193319.778192-28-sakari.ailus@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Generic line based metadata support, internal pads | expand |
Hi Sakari, Thank you for the patch. On Tue, Apr 16, 2024 at 10:33:00PM +0300, Sakari Ailus wrote: > Add new MIPI CCS embedded data media bus code > (MEDIA_BUS_FMT_CCS_EMBEDDED). > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Reviewed-by: Julien Massot <julien.massot@collabora.com> There's still an open question on how to document embedded data formats for sensors compatible with level 2 only. The discussion is ongoing and may affect this patch, but the changes can be implemented later, so Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > .../media/v4l/subdev-formats.rst | 32 +++++++++++++++++++ > include/uapi/linux/media-bus-format.h | 3 ++ > 2 files changed, 35 insertions(+) > > diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst > index 0547f2733ee3..fa181ce8f48c 100644 > --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst > +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst > @@ -8316,6 +8316,10 @@ 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 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 > and finally the bit number in subscript. "x" indicates a padding bit. > > @@ -8562,3 +8566,31 @@ and finally the bit number in subscript. "x" indicates a padding bit. > - x > - x > - x > + > +.. _MEDIA-BUS-FMT-CCS-EMBEDDED: > + > +MIPI CCS Embedded Data Formats > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +`MIPI CCS <https://www.mipi.org/specifications/camera-command-set>`_ defines a > +metadata format for sensor embedded data, which is used to store the register > +configuration used for capturing a given frame. The format is defined in the CCS > +specification. The media bus code for this format is > +``MEDIA_BUS_FMT_CCS_EMBEDDED``. > + > +The CCS embedded data format definition includes three levels: > + > +1. Padding within CSI-2 bus :ref:`Data Unit <media-glossary-data-unit>` as > + documented in the MIPI CCS specification. > + > +2. The tagged data format as documented in the MIPI CCS specification. > + > +3. Register addresses and register documentation as documented in the MIPI CCS > + specification. > + > +The format definition shall be used only by devices that fulfill all three > +levels above. > + > +This mbus code are only used for "2-byte simplified tagged data format" (code > +0xa) but their use may be extended further in the future, to cover other CCS > +embedded data format codes. > diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h > index d4c1d991014b..03f7e9ab517b 100644 > --- a/include/uapi/linux/media-bus-format.h > +++ b/include/uapi/linux/media-bus-format.h > @@ -183,4 +183,7 @@ > #define MEDIA_BUS_FMT_META_20 0x8006 > #define MEDIA_BUS_FMT_META_24 0x8007 > > +/* Specific metadata formats. Next is 0x9002. */ > +#define MEDIA_BUS_FMT_CCS_EMBEDDED 0x9001 > + > #endif /* __LINUX_MEDIA_BUS_FORMAT_H */
Hi Sakari On Sat, Apr 20, 2024 at 11:10:50AM +0300, Laurent Pinchart wrote: > Hi Sakari, > > Thank you for the patch. > > On Tue, Apr 16, 2024 at 10:33:00PM +0300, Sakari Ailus wrote: > > Add new MIPI CCS embedded data media bus code > > (MEDIA_BUS_FMT_CCS_EMBEDDED). > > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > > Reviewed-by: Julien Massot <julien.massot@collabora.com> > > There's still an open question on how to document embedded data formats > for sensors compatible with level 2 only. The discussion is ongoing and > may affect this patch, but the changes can be implemented later, so > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > --- > > .../media/v4l/subdev-formats.rst | 32 +++++++++++++++++++ > > include/uapi/linux/media-bus-format.h | 3 ++ > > 2 files changed, 35 insertions(+) > > > > diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst > > index 0547f2733ee3..fa181ce8f48c 100644 > > --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst > > +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst > > @@ -8316,6 +8316,10 @@ 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 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 Do you mean "sink pad" ? If I got this right: SOURCE_PAD#0,stream#1 -> Generic metadata format SINK_PAD#2,stream#0 -> Device specific metadata format Thanks j > > +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 > > and finally the bit number in subscript. "x" indicates a padding bit. > > > > @@ -8562,3 +8566,31 @@ and finally the bit number in subscript. "x" indicates a padding bit. > > - x > > - x > > - x > > + > > +.. _MEDIA-BUS-FMT-CCS-EMBEDDED: > > + > > +MIPI CCS Embedded Data Formats > > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > + > > +`MIPI CCS <https://www.mipi.org/specifications/camera-command-set>`_ defines a > > +metadata format for sensor embedded data, which is used to store the register > > +configuration used for capturing a given frame. The format is defined in the CCS > > +specification. The media bus code for this format is > > +``MEDIA_BUS_FMT_CCS_EMBEDDED``. > > + > > +The CCS embedded data format definition includes three levels: > > + > > +1. Padding within CSI-2 bus :ref:`Data Unit <media-glossary-data-unit>` as > > + documented in the MIPI CCS specification. > > + > > +2. The tagged data format as documented in the MIPI CCS specification. > > + > > +3. Register addresses and register documentation as documented in the MIPI CCS > > + specification. > > + > > +The format definition shall be used only by devices that fulfill all three > > +levels above. > > + > > +This mbus code are only used for "2-byte simplified tagged data format" (code > > +0xa) but their use may be extended further in the future, to cover other CCS > > +embedded data format codes. > > diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h > > index d4c1d991014b..03f7e9ab517b 100644 > > --- a/include/uapi/linux/media-bus-format.h > > +++ b/include/uapi/linux/media-bus-format.h > > @@ -183,4 +183,7 @@ > > #define MEDIA_BUS_FMT_META_20 0x8006 > > #define MEDIA_BUS_FMT_META_24 0x8007 > > > > +/* Specific metadata formats. Next is 0x9002. */ > > +#define MEDIA_BUS_FMT_CCS_EMBEDDED 0x9001 > > + > > #endif /* __LINUX_MEDIA_BUS_FORMAT_H */ > > -- > Regards, > > Laurent Pinchart >
diff --git a/Documentation/userspace-api/media/v4l/subdev-formats.rst b/Documentation/userspace-api/media/v4l/subdev-formats.rst index 0547f2733ee3..fa181ce8f48c 100644 --- a/Documentation/userspace-api/media/v4l/subdev-formats.rst +++ b/Documentation/userspace-api/media/v4l/subdev-formats.rst @@ -8316,6 +8316,10 @@ 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 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 and finally the bit number in subscript. "x" indicates a padding bit. @@ -8562,3 +8566,31 @@ and finally the bit number in subscript. "x" indicates a padding bit. - x - x - x + +.. _MEDIA-BUS-FMT-CCS-EMBEDDED: + +MIPI CCS Embedded Data Formats +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +`MIPI CCS <https://www.mipi.org/specifications/camera-command-set>`_ defines a +metadata format for sensor embedded data, which is used to store the register +configuration used for capturing a given frame. The format is defined in the CCS +specification. The media bus code for this format is +``MEDIA_BUS_FMT_CCS_EMBEDDED``. + +The CCS embedded data format definition includes three levels: + +1. Padding within CSI-2 bus :ref:`Data Unit <media-glossary-data-unit>` as + documented in the MIPI CCS specification. + +2. The tagged data format as documented in the MIPI CCS specification. + +3. Register addresses and register documentation as documented in the MIPI CCS + specification. + +The format definition shall be used only by devices that fulfill all three +levels above. + +This mbus code are only used for "2-byte simplified tagged data format" (code +0xa) but their use may be extended further in the future, to cover other CCS +embedded data format codes. diff --git a/include/uapi/linux/media-bus-format.h b/include/uapi/linux/media-bus-format.h index d4c1d991014b..03f7e9ab517b 100644 --- a/include/uapi/linux/media-bus-format.h +++ b/include/uapi/linux/media-bus-format.h @@ -183,4 +183,7 @@ #define MEDIA_BUS_FMT_META_20 0x8006 #define MEDIA_BUS_FMT_META_24 0x8007 +/* Specific metadata formats. Next is 0x9002. */ +#define MEDIA_BUS_FMT_CCS_EMBEDDED 0x9001 + #endif /* __LINUX_MEDIA_BUS_FORMAT_H */