From: Alexandre Courbot <acourbot@chromium.org> To: Nicolas Dufresne <nicolas@ndufresne.ca> Cc: Tiffany Lin <tiffany.lin@mediatek.com>, Andrew-CT Chen <andrew-ct.chen@mediatek.com>, Rob Herring <robh+dt@kernel.org>, Yunfei Dong <yunfei.dong@mediatek.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Linux Media Mailing List <linux-media@vger.kernel.org>, LKML <linux-kernel@vger.kernel.org>, "moderated list:ARM/Mediatek SoC support" <linux-mediatek@lists.infradead.org> Subject: Re: [PATCH v2 3/8] media: add Mediatek's MM21 format Date: Wed, 3 Mar 2021 19:29:55 +0900 [thread overview] Message-ID: <CAPBb6MUUDSwRNEiuDy8s-CMwosraS25P2o109XyJCms9RTRBsQ@mail.gmail.com> (raw) In-Reply-To: <4cb93f828695f7f6307077da466a58ba478c9824.camel@ndufresne.ca> Hi Nicolas, On Wed, Mar 3, 2021 at 2:38 AM Nicolas Dufresne <nicolas@ndufresne.ca> wrote: > > Le jeudi 25 février 2021 à 19:16 +0900, Alexandre Courbot a écrit : > > 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@chromium.org> > > --- > > 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 c9231e18859b..187ea89f7a25 100644 > > --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > @@ -242,6 +242,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: > > The SUNXI one was a mistake, it's linear layout 32x32 tiles. The problem with > calling this a vendor format, is that other vendor might be using it too. But > they won't know and the format might endup duplicated, even if it's the same > one. > > So here's my request, have you tried to understand a bit more what the tiling > layout is ? Could be tiled + SAND, could use zigzag layout like Samsung do. I > think if we can avoid vendor formats, we can preserve the pixel format list > sanity here. Most of the HW I've encoutered was very easy to reverse, even if > undocumented (except the compressed one). Unfortunately I don't think I can look too closely into that, for non-technical reasons. But if MTK could come forward and document their format, that would be indeed ideal. > > If not possible, I would like to suggest: > > V4L2_PIX_FMT_MTK_NV21 > > The important part is to add a clear seperation for the vendor name, it easy to > recognize then. The MTK prefix makes sense, but I do not know if NV21 is a correct denomination for that format. Note that we have another MTK-only format currently named V4L2_PIX_FMT_MT21C, which is already public. It would be nice to rename it as well, but since it is part of the public API I'm afraid the cat is already out of the bag for that one... > > > > > - ``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 31d1342e61e8..0b85b2bbc628 100644 > > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > > @@ -1384,6 +1384,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; > > 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 79dbde3bcf8d..e6890dae76ec 100644 > > --- a/include/uapi/linux/videodev2.h > > +++ b/include/uapi/linux/videodev2.h > > @@ -731,6 +731,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 */ > >
WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Courbot <acourbot@chromium.org> To: Nicolas Dufresne <nicolas@ndufresne.ca> Cc: Tiffany Lin <tiffany.lin@mediatek.com>, Andrew-CT Chen <andrew-ct.chen@mediatek.com>, Rob Herring <robh+dt@kernel.org>, Yunfei Dong <yunfei.dong@mediatek.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil-cisco@xs4all.nl>, Linux Media Mailing List <linux-media@vger.kernel.org>, LKML <linux-kernel@vger.kernel.org>, "moderated list:ARM/Mediatek SoC support" <linux-mediatek@lists.infradead.org> Subject: Re: [PATCH v2 3/8] media: add Mediatek's MM21 format Date: Wed, 3 Mar 2021 19:29:55 +0900 [thread overview] Message-ID: <CAPBb6MUUDSwRNEiuDy8s-CMwosraS25P2o109XyJCms9RTRBsQ@mail.gmail.com> (raw) In-Reply-To: <4cb93f828695f7f6307077da466a58ba478c9824.camel@ndufresne.ca> Hi Nicolas, On Wed, Mar 3, 2021 at 2:38 AM Nicolas Dufresne <nicolas@ndufresne.ca> wrote: > > Le jeudi 25 février 2021 à 19:16 +0900, Alexandre Courbot a écrit : > > 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@chromium.org> > > --- > > 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 c9231e18859b..187ea89f7a25 100644 > > --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst > > @@ -242,6 +242,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: > > The SUNXI one was a mistake, it's linear layout 32x32 tiles. The problem with > calling this a vendor format, is that other vendor might be using it too. But > they won't know and the format might endup duplicated, even if it's the same > one. > > So here's my request, have you tried to understand a bit more what the tiling > layout is ? Could be tiled + SAND, could use zigzag layout like Samsung do. I > think if we can avoid vendor formats, we can preserve the pixel format list > sanity here. Most of the HW I've encoutered was very easy to reverse, even if > undocumented (except the compressed one). Unfortunately I don't think I can look too closely into that, for non-technical reasons. But if MTK could come forward and document their format, that would be indeed ideal. > > If not possible, I would like to suggest: > > V4L2_PIX_FMT_MTK_NV21 > > The important part is to add a clear seperation for the vendor name, it easy to > recognize then. The MTK prefix makes sense, but I do not know if NV21 is a correct denomination for that format. Note that we have another MTK-only format currently named V4L2_PIX_FMT_MT21C, which is already public. It would be nice to rename it as well, but since it is part of the public API I'm afraid the cat is already out of the bag for that one... > > > > > - ``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 31d1342e61e8..0b85b2bbc628 100644 > > --- a/drivers/media/v4l2-core/v4l2-ioctl.c > > +++ b/drivers/media/v4l2-core/v4l2-ioctl.c > > @@ -1384,6 +1384,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; > > 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 79dbde3bcf8d..e6890dae76ec 100644 > > --- a/include/uapi/linux/videodev2.h > > +++ b/include/uapi/linux/videodev2.h > > @@ -731,6 +731,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 */ > > _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek
next prev parent reply other threads:[~2021-03-03 15:19 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-25 10:16 [PATCH v2 0/8] media: mtk-vcodec: vdec: support for MT8183 Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 1/8] media: mtk-vcodec: vdec: handle firmware version field Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 2/8] media: mtk-vcodec: support version 2 of decoder firmware ABI Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 3/8] media: add Mediatek's MM21 format Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-03-02 17:38 ` Nicolas Dufresne 2021-03-02 17:38 ` Nicolas Dufresne 2021-03-03 10:29 ` Alexandre Courbot [this message] 2021-03-03 10:29 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 4/8] media: mtk-vcodec: vdec: support stateless API Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 5/8] media: mtk-vcodec: vdec: support stateless H.264 decoding Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 6/8] media: mtk-vcodec: vdec: add media device if using stateless api Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 7/8] dt-bindings: media: document mediatek,mt8183-vcodec-dec Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 7/8] dt-bindings: media: document mediatek, mt8183-vcodec-dec Alexandre Courbot 2021-02-25 10:16 ` [PATCH v2 8/8] media: mtk-vcodec: enable MT8183 decoder Alexandre Courbot 2021-02-25 10:16 ` Alexandre Courbot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAPBb6MUUDSwRNEiuDy8s-CMwosraS25P2o109XyJCms9RTRBsQ@mail.gmail.com \ --to=acourbot@chromium.org \ --cc=andrew-ct.chen@mediatek.com \ --cc=hverkuil-cisco@xs4all.nl \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=mchehab@kernel.org \ --cc=nicolas@ndufresne.ca \ --cc=robh+dt@kernel.org \ --cc=tiffany.lin@mediatek.com \ --cc=yunfei.dong@mediatek.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.