Re: [PATCH v4 04/15] media: add Mediatek's MM21 format
From: Hans Verkuil
Date: Thu Apr 29 2021 - 03:16:53 EST
On 27/04/2021 13:15, Alexandre Courbot wrote:
> Add Mediatek's non-compressed 8 bit block video mode. This format is
> produced by the MT8183 codec and can be converted to a non-proprietary
> format by the MDP3 component.
>
> Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxxxx>
> ---
> Documentation/userspace-api/media/v4l/pixfmt-reserved.rst | 7 +++++++
> drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
> include/uapi/linux/videodev2.h | 1 +
> 3 files changed, 9 insertions(+)
>
> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
> index 0b879c0da713..42357b0b3535 100644
> --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
> +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
> @@ -246,6 +246,13 @@ please make a proposal on the linux-media mailing list.
> It is an opaque intermediate format and the MDP hardware must be
> used to convert ``V4L2_PIX_FMT_MT21C`` to ``V4L2_PIX_FMT_NV12M``,
> ``V4L2_PIX_FMT_YUV420M`` or ``V4L2_PIX_FMT_YVU420``.
> + * .. _V4L2-PIX-FMT-MM21:
> +
> + - ``V4L2_PIX_FMT_MM21``
> + - 'MM21'
> + - Non-compressed, tiled two-planar format used by Mediatek MT8183.
> + This is an opaque intermediate format and the MDP3 hardware can be
> + used to convert it to other formats.
> * .. _V4L2-PIX-FMT-SUNXI-TILED-NV12:
>
> - ``V4L2_PIX_FMT_SUNXI_TILED_NV12``
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> index 6a5d1c6d11d6..608e3ddc0f42 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -1385,6 +1385,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
> case V4L2_PIX_FMT_TM6000: descr = "A/V + VBI Mux Packet"; break;
> case V4L2_PIX_FMT_CIT_YYVYUY: descr = "GSPCA CIT YYVYUY"; break;
> case V4L2_PIX_FMT_KONICA420: descr = "GSPCA KONICA420"; break;
> + case V4L2_PIX_FMT_MM21: descr = "Mediatek 8-bit block format"; break;
block format -> Block Format
(to be consistent with the other descriptions)
Regards,
Hans
> case V4L2_PIX_FMT_HSV24: descr = "24-bit HSV 8-8-8"; break;
> case V4L2_PIX_FMT_HSV32: descr = "32-bit XHSV 8-8-8-8"; break;
> case V4L2_SDR_FMT_CU8: descr = "Complex U8"; break;
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 311a01cc5775..db04e37da1a8 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -733,6 +733,7 @@ struct v4l2_pix_format {
> #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
> #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
> #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
> +#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */
> #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
> #define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */
> #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */
>