Re: Re: [RFC v1 07/11] media: Add meta formats supported by NXP neoisp driver
From: Antoine Bouyer
Date: Wed Feb 04 2026 - 09:05:17 EST
Hi Jacopo
Le 04/02/2026 à 14:36, Jacopo Mondi a écrit :
Hi Antoine
On Wed, Feb 04, 2026 at 02:31:47PM +0100, Antoine Bouyer wrote:
Hi Jacopo
Le 03/02/2026 à 18:11, Jacopo Mondi a écrit :
Hi Antoine
On Fri, Jan 23, 2026 at 09:09:34AM +0100, Antoine Bouyer wrote:
This patch adds new v4l2 meta formats definitions and descriptions used by
neoisp driver for the parameters and statistics buffers:
- `V4L2_META_FMT_NEO_ISP_PARAMS` used for the legacy fixed-size
parameters buffer structure.
- `V4L2_META_FMT_NEO_ISP_EXT_PARAMS` used for the generic v4l2-isp
extensible parameters structure, supporting a non-fixed-size buffer and
changeable ISP configuration blocks.
- `V4L2_META_FMT_NEO_ISP_STATS` used for the legacy fixed-size statistics
buffer structure.
- `V4L2_META_FMT_NEO_ISP_EXT_STATS` used for the generic v4l2-isp
extensible statistics structure, supporting a non-fixed-size buffer
and changeable ISP statistics blocks.
Uh interesting, you have existing userspace that needs legacy formats ?
Yes we do have some available here (version with extensible formats will be
the next one):
https://github.com/nxp-imx/libcamera
Not in mainline, thought.
I see.
However I don't think the mainline driver should support both formats.
ok.
I'm fine with starting from a fresh version, extensible-format-only, in mainline. That would also simplify the patch series then, so as Documentation, and maintainance.
And looking at your libcamera branch, it seem it already supports the
extensible version.
Oh yes you're correct. I thought it started from 6.18, sorry for confusion. One more reason to move to extensible-format-only in mainline then: it is verified since a while without any regression compared to legacy.
BR
Antoine
BR
Antoine
Signed-off-by: Antoine Bouyer <antoine.bouyer@xxxxxxx>
---
drivers/media/v4l2-core/v4l2-ioctl.c | 4 ++++
include/uapi/linux/videodev2.h | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 37d33d4a363d..c797cf11be38 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1471,6 +1471,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
case V4L2_META_FMT_C3ISP_STATS: descr = "Amlogic C3 ISP Statistics"; break;
case V4L2_META_FMT_MALI_C55_PARAMS: descr = "ARM Mali-C55 ISP Parameters"; break;
case V4L2_META_FMT_MALI_C55_STATS: descr = "ARM Mali-C55 ISP 3A Statistics"; break;
+ case V4L2_META_FMT_NEO_ISP_PARAMS: descr = "NXP Neo ISP 3A Parameters"; break;
+ case V4L2_META_FMT_NEO_ISP_EXT_PARAMS: descr = "NXP Neo ISP ext 3A Parameters"; break;
+ case V4L2_META_FMT_NEO_ISP_STATS: descr = "NXP Neo ISP 3A Statistics"; break;
+ case V4L2_META_FMT_NEO_ISP_EXT_STATS: descr = "NXP Neo ISP ext 3A Statistics"; break;
case V4L2_PIX_FMT_NV12_8L128: descr = "NV12 (8x128 Linear)"; break;
case V4L2_PIX_FMT_NV12M_8L128: descr = "NV12M (8x128 Linear)"; break;
case V4L2_PIX_FMT_NV12_10BE_8L128: descr = "10-bit NV12 (8x128 Linear, BE)"; break;
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 848e86617d5c..5f4992452c66 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -889,6 +889,12 @@ struct v4l2_pix_format {
#define V4L2_META_FMT_MALI_C55_PARAMS v4l2_fourcc('C', '5', '5', 'P') /* ARM Mali-C55 Parameters */
#define V4L2_META_FMT_MALI_C55_STATS v4l2_fourcc('C', '5', '5', 'S') /* ARM Mali-C55 3A Statistics */
+/* Vendor specific - used for NXP NEOISP sub-system */
+#define V4L2_META_FMT_NEO_ISP_PARAMS v4l2_fourcc('N', 'N', 'I', 'P') /* NXP NEOISP Parameters */
+#define V4L2_META_FMT_NEO_ISP_EXT_PARAMS v4l2_fourcc('N', 'N', 'E', 'P') /* NXP NEOISP Ext Params */
+#define V4L2_META_FMT_NEO_ISP_STATS v4l2_fourcc('N', 'N', 'I', 'S') /* NXP NEOISP Statistics */
+#define V4L2_META_FMT_NEO_ISP_EXT_STATS v4l2_fourcc('N', 'N', 'E', 'S') /* NXP NEOISP Ext Stats */
+
#ifdef __KERNEL__
/*
* Line-based metadata formats. Remember to update v4l_fill_fmtdesc() when
--
2.52.0