From: Randy Li <ayaka@xxxxxxxxxxx> The pixel formats used in Synpatics video smart platform are too many. It is impossible to store them in fourcc namespace. Signed-off-by: Randy Li <ayaka@xxxxxxxxxxx> Signed-off-by: Hsia-Jun(Randy) Li <randy.li@xxxxxxxxxxxxx> --- .../media/v4l/pixfmt-synaptics.rst | 86 +++++++++++++++++++ .../userspace-api/media/v4l/pixfmt.rst | 1 + 2 files changed, 87 insertions(+) create mode 100644 Documentation/userspace-api/media/v4l/pixfmt-synaptics.rst diff --git a/Documentation/userspace-api/media/v4l/pixfmt-synaptics.rst b/Documentation/userspace-api/media/v4l/pixfmt-synaptics.rst new file mode 100644 index 000000000000..edf6525a3ef4 --- /dev/null +++ b/Documentation/userspace-api/media/v4l/pixfmt-synaptics.rst @@ -0,0 +1,86 @@ +.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later + +.. _pixfmt-synaptics: + +*************************** +Synaptics Pixel Format Modifiers +*************************** + +The tiled pixel formats in synpatics video smart platform have +many variants. Here just list the most widely pixel format modifiers +here. The value here should be the same as the one defined in the +``drm_fourcc.h`` file. + +.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.5cm}| + +.. raw:: latex + + \small + +.. _reserved-formats: + +.. flat-table:: Synpatics Image Format Modifiers + :header-rows: 1 + :stub-columns: 0 + :widths: 3 1 4 + + * - Identifier + - Code + - Details + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H1: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H1`` + - '0x0b00000000000101' + - The plain uncompressed 8bits tile format. It sounds similar to + Intel's Y-tile. but it won't take any pixel from the next X direction + in a tile group. The line stride and image height must be aligned to + a multiple of 16. The height of chrominance plane would plus 8. + This modifier current would be in conjunction with ``V4L2_PIX_FMT_NV12`` + or ``V4L2_PIX_FMT_NV12M``. + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H3P8: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H3P8`` + - '0x0b00000000080301' + - The plain uncompressed 10bits tile format. It stores pixel in 2D + 3x4 tiles with a 8bits padding to each of tiles. Then tile is in a + 128 bytes cache line. This modifier would be in conjunction with + ``V4L2_PIX_FMT_NV15``. + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H1-64L4C: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H1_64L4C`` + - '0x0b00000026100101' + - Compressed ``V4L2_PIX_FMT_MOD_SYNA_V4H1``. It stores 64x4 pixels + in 1x4 tiles. Each plane would request a meta plane (MTR plane) for + decompression. A MTR plane would have a 32 bytes parameters set. + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H3P8-64L4C: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H3P8_64L4C`` + - '0x0b00000026180301' + - Compressed ``V4L2_PIX_FMT_MOD_SYNA_V4H3``. It stores 48x4 pixels + in 3x4 tiles, echo tile would have 8 bits padding. Then a group of tiles + would be 16 bytes(128 bits). + + Each plane would request a meta plane (MTR plane) for decompression. + A MTR plane would have a 32 bytes parameters set. + + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H1-128L128C: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H1_128L128C`` + - '0x0b00000077100101' + - Compressed ``V4L2_PIX_FMT_MOD_SYNA_V4H1``. It stores 128x32 pixels + in 1x4 tiles. Each plane would request a meta plane (MTR plane) for + decompression. A MTR plane would have a 32 bytes parameters set. + * .. _V4L2-PIX-FMT-MOD-SYNA-V4H3P8-128L128C: + + - ``V4L2_PIX_FMT_MOD_SYNA_V4H3P8_128L128C`` + - '0x0b00000077180301' + - Compressed ``V4L2_PIX_FMT_MOD_SYNA_V4H3``. It stores 96x128 pixels + in 3x4 tiles, echo tile would have 8 bits padding. Then a group of tiles + would be 16 KiB. + + Each plane would request a meta plane (MTR plane) for + decompression. A MTR plane would have a 32 bytes parameters set. + +.. raw:: latex + + \normalsize diff --git a/Documentation/userspace-api/media/v4l/pixfmt.rst b/Documentation/userspace-api/media/v4l/pixfmt.rst index 11dab4a90630..738a160a4c41 100644 --- a/Documentation/userspace-api/media/v4l/pixfmt.rst +++ b/Documentation/userspace-api/media/v4l/pixfmt.rst @@ -36,3 +36,4 @@ see also :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>`.) colorspaces colorspaces-defs colorspaces-details + pixfmt-synaptics -- 2.17.1