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 */ >