Skip to contentSkip to conversation

v4l: Documentation: Serial busses use parallel mbus codes

PATCH In review Sakari Ailus 2 participants 2 messages Aug 13, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 v4l: Documentation: Serial busses use parallel mbus codes

When the support for serial busses was introduced in V4L2, it was decided to use the existing parallel bus media bus pixel codes to describe them. While this was a practical choice at the time, it necessitates choosing which one of the many parallel mbus pixel codes to use, for on the serial busses these formats are effectively all equivalent.

The practice has always been to use the pixel code that describes a bus that transfers a single sample per clock. Document this.

---
since v1:

- Add an example of mbus pixel codes on serial and parallel busses.

 Documentation/media/kapi/csi2.rst               | 7 +++++++
 Documentation/media/uapi/v4l/subdev-formats.rst | 8 ++++++++
 2 files changed, 15 insertions(+)
Documentation/media/kapi/csi2.rst +7 -0
index a7e75e2eba85a..c67736a15c45b 100644
@@ -72,3 +72,10 @@ the transmitter up by using the
 :c:type:`v4l2_subdev_core_ops`->s_power() callback. This may take
 place either indirectly by using :c:func:`v4l2_pipeline_pm_use` or
 directly.
+
+Formats
+-------
+
+The media bus pixel codes document parallel formats. Should the pixel data be
+transported over a serial bus, the media bus pixel code that describes a
+parallel format that transfers a sample on a single clock cycle is used.
Documentation/media/uapi/v4l/subdev-formats.rst +8 -0
index ab1a48a5ae80b..7b8e17c7b68b4 100644
@@ -85,6 +85,14 @@ formats in memory (a raw Bayer image won't be magically converted to
 JPEG just by storing it to memory), there is no one-to-one
 correspondence between them.
 
+The media bus pixel codes document parallel formats. Should the pixel data be
+transported over a serial bus, the media bus pixel code that describes a
+parallel format that transfers a sample on a single clock cycle is used. For
+instance, both MEDIA_BUS_FMT_BGR888_1X24 and MEDIA_BUS_FMT_BGR888_3X8 are used
+on parallel busses for transferring an 8 bits per sample BGR data, whereas on
+serial busses the data in this format is only referred to using
+MEDIA_BUS_FMT_BGR888_1X24. This is because there is effectively only a single
+way to transport that format on the serial busses.
 
 Packed RGB Formats
 ^^^^^^^^^^^^^^^^^^
Signature · 1 line
2.20.1
Acked-by on v2 1/1
#1 lore raw
Quoted 10 lines · Sakari Ailus

When the support for serial busses was introduced in V4L2, it was decided to use the existing parallel bus media bus pixel codes to describe them. While this was a practical choice at the time, it necessitates choosing which one of the many parallel mbus pixel codes to use, for on the serial busses these formats are effectively all equivalent.

The practice has always been to use the pixel code that describes a bus that transfers a single sample per clock. Document this.

Regards,

Hans

Quoted 44 lines

---
since v1:

- Add an example of mbus pixel codes on serial and parallel busses.

 Documentation/media/kapi/csi2.rst               | 7 +++++++
 Documentation/media/uapi/v4l/subdev-formats.rst | 8 ++++++++
 2 files changed, 15 insertions(+)
Documentation/media/kapi/csi2.rst +7 -0
index a7e75e2eba85a..c67736a15c45b 100644
@@ -72,3 +72,10 @@ the transmitter up by using the
 :c:type:`v4l2_subdev_core_ops`->s_power() callback. This may take
 place either indirectly by using :c:func:`v4l2_pipeline_pm_use` or
 directly.
+
+Formats
+-------
+
+The media bus pixel codes document parallel formats. Should the pixel data be
+transported over a serial bus, the media bus pixel code that describes a
+parallel format that transfers a sample on a single clock cycle is used.
Documentation/media/uapi/v4l/subdev-formats.rst +8 -0
index ab1a48a5ae80b..7b8e17c7b68b4 100644
@@ -85,6 +85,14 @@ formats in memory (a raw Bayer image won't be magically converted to
 JPEG just by storing it to memory), there is no one-to-one
 correspondence between them.
 
+The media bus pixel codes document parallel formats. Should the pixel data be
+transported over a serial bus, the media bus pixel code that describes a
+parallel format that transfers a sample on a single clock cycle is used. For
+instance, both MEDIA_BUS_FMT_BGR888_1X24 and MEDIA_BUS_FMT_BGR888_3X8 are used
+on parallel busses for transferring an 8 bits per sample BGR data, whereas on
+serial busses the data in this format is only referred to using
+MEDIA_BUS_FMT_BGR888_1X24. This is because there is effectively only a single
+way to transport that format on the serial busses.
 
 Packed RGB Formats
 ^^^^^^^^^^^^^^^^^^