From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Cc: Antoine Bouyer <antoine.bouyer@nxp.com>,
julien.vuillaumier@nxp.com, alexi.birlinger@nxp.com,
daniel.baluta@nxp.com, peng.fan@nxp.com, frank.li@nxp.com,
mchehab@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com,
linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC v1 03/11] media: Documentation: uapi: Update V4L2 ISP for extensible stats
Date: Tue, 10 Feb 2026 01:16:47 +0200 [thread overview]
Message-ID: <20260209231647.GG2405149@killaraus.ideasonboard.com> (raw)
In-Reply-To: <aYIguNosvsnnraZO@zed>
On Tue, Feb 03, 2026 at 05:58:25PM +0100, Jacopo Mondi wrote:
> Hi Antoine
>
> On Fri, Jan 23, 2026 at 09:09:30AM +0100, Antoine Bouyer wrote:
> > Add driver documentation for V4L2 ISP generic statistics format, mainly
> > copied from the generic parameters one.
> >
> > Signed-off-by: Antoine Bouyer <antoine.bouyer@nxp.com>
> > ---
> > .../userspace-api/media/v4l/v4l2-isp.rst | 42 +++++++++++++++++--
> > 1 file changed, 39 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/userspace-api/media/v4l/v4l2-isp.rst b/Documentation/userspace-api/media/v4l/v4l2-isp.rst
> > index facf6dba1ca7..9024c6998b2c 100644
> > --- a/Documentation/userspace-api/media/v4l/v4l2-isp.rst
> > +++ b/Documentation/userspace-api/media/v4l/v4l2-isp.rst
> > @@ -32,8 +32,8 @@ types.
> > Userspace applications are responsible for correctly populating each block's
> > header fields (type, flags and size) and the block-specific parameters.
> >
> > -ISP block enabling, disabling and configuration
> > ------------------------------------------------
> > +ISP parameters block enabling, disabling and configuration
> > +----------------------------------------------------------
> >
> > When userspace wants to configure and enable an ISP block it shall fully
> > populate the block configuration and set the V4L2_ISP_PARAMS_FL_BLOCK_ENABLE
> > @@ -59,7 +59,43 @@ definition without invalidating the existing ones.
> > ISP statistics
> > ==============
> >
> > -Support for generic statistics format is not yet implemented in Video4Linux2.
> > +The generic ISP statistics format is similar to the generic ISP configuration
> > +parameters format. It is realized by defineing a C structure that contains a
s/defineing/defining/
> > +header, followed by binary buffer where the ISP driver copies a variable number
> > +of ISP statistics block.
> > +
> > +The :c:type:`v4l2_isp_stats_buffer` structure defines the buffer header which
> > +is followed by a binary buffer of ISP statistics data. ISP driver shall
s/driver/drivers/
> > +correctly populate the buffer header with the generic statistics format version
> > +and with the size (in bytes) of the binary data buffer where it will store the
> > +ISP statistics data.
> > +
> > +Each *ISP statistics block* is preceded by a header implemented by the
> > +:c:type:`v4l2_isp_stats_block_header` structure, followed by the statistics
> > +data for that specific block, defined by the ISP driver specific data types.
> > +
> > +Driver is responsible for correctly populating each block's header fields
s/Driver is/Drivers are/
> > +(type, flags and size) and the block-specific statistics data.
> > +
> > +ISP statistics block configuration
> > +----------------------------------
> > +
> > +When ISP driver wants to share statistics from an ISP block, it shall fully
s/ISP driver/an ISP driver/
> > +populate the block statistics and set the V4L2_ISP_STATS_FL_BLOCK_VALID
> > +bit in the block header's `flags` field.
> > +
> > +When ISP driver wants userspace to ignore statistics from an ISP block, it can
>
> What would be the use case here ?
>
> I checked a few datasheet and drivers and I haven't found any "failed
> to read stats" bits, and even if that would be a thing, isn't it easier to
> simply overwrite the header of the failed stat block instead of
> marking it invalid ?
It seems simpler to just omit the block completely indeed. The only case
where I could imagine this being useful is if the hardware writes the
statistics data to memory through DMA, with different stats engines
writing to different parts of the buffer concurrently.
In that case though, we will need to ensure the buffer format can
accommodate DMA alignment requirements of different devices, which is
likely not the case of the format proposed in this series. The size of
the top-level header and of the block headers are fixed, we would likely
need to make them configurable by the driver.
> > +simply omit the full block, or set the V4L2_ISP_STATS_FL_BLOCK_INVALID bit in
> > +the block headers's `flags` field. Then driver can omit the additional data
> > +after header, and set block header's `size` to the header structure's size only
> > +in such case.
> > +
> > +Setting both the V4L2_ISP_STATS_FL_BLOCK_VALID and
> > +V4L2_ISP_STATS_FL_BLOCK_INVALID bits in the flags field is not allowed and
> > +userspace shall not handle it.
> > +
> > +Extension to the statistics format can be implemented by adding new blocks
> > +definition without invalidating the existing ones.
> >
> > V4L2 ISP uAPI data types
> > ========================
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2026-02-09 23:16 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-23 8:09 [RFC v1 00/11] Add iMX95 neoisp driver Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 01/11] media: uapi: v4l2-isp: Add v4l2 ISP extensible statistics definitions Antoine Bouyer
2026-02-03 16:15 ` Jacopo Mondi
2026-02-04 11:07 ` Antoine Bouyer
2026-02-04 13:14 ` Jacopo Mondi
2026-02-09 23:00 ` Laurent Pinchart
2026-03-02 9:41 ` Antoine Bouyer
2026-03-03 8:48 ` Jacopo Mondi
2026-01-23 8:09 ` [RFC v1 02/11] media: v4l2-isp: Add helper function to compute extended stats size Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 03/11] media: Documentation: uapi: Update V4L2 ISP for extensible stats Antoine Bouyer
2026-02-03 16:58 ` Jacopo Mondi
2026-02-09 23:16 ` Laurent Pinchart [this message]
2026-01-23 8:09 ` [RFC v1 04/11] media: Documentation: Add NXP neoisp driver documentation Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 05/11] dt-bindings: media: Add nxp neoisp support Antoine Bouyer
2026-01-26 17:12 ` Frank Li
2026-02-05 9:43 ` Krzysztof Kozlowski
2026-02-16 13:16 ` Antoine Bouyer
2026-02-16 13:38 ` Krzysztof Kozlowski
2026-01-23 8:09 ` [RFC v1 06/11] media: v4l2-ctrls: Add user control base for NXP neoisp controls Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 07/11] media: Add meta formats supported by NXP neoisp driver Antoine Bouyer
2026-02-03 17:11 ` Jacopo Mondi
2026-02-04 13:31 ` Antoine Bouyer
2026-02-04 13:36 ` Jacopo Mondi
2026-02-04 14:04 ` Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 08/11] media: uapi: Add NXP NEOISP user interface header file Antoine Bouyer
2026-02-09 23:29 ` Laurent Pinchart
2026-01-23 8:09 ` [RFC v1 09/11] media: platform: Add NXP Neoisp Image Signal Processor Antoine Bouyer
2026-02-04 14:16 ` [RFC 9/11] " Markus Elfring
2026-01-23 8:09 ` [RFC v1 10/11] media: platform: neoisp: Add debugfs support Antoine Bouyer
2026-01-23 8:09 ` [RFC v1 11/11] arm64: dts: freescale: imx95: Add NXP neoisp device tree node Antoine Bouyer
2026-02-05 9:44 ` Krzysztof Kozlowski
2026-01-26 9:44 ` [RFC v1 00/11] Add iMX95 neoisp driver Michael Riesch
2026-01-28 8:17 ` [EXT] " Antoine Bouyer
2026-01-28 23:00 ` Michael Riesch
2026-02-03 18:37 ` Jacopo Mondi
2026-02-04 17:12 ` Jacopo Mondi
2026-02-04 18:30 ` Antoine Bouyer
2026-02-05 9:40 ` Jacopo Mondi
2026-02-09 13:19 ` Anthony McGivern
2026-02-10 0:20 ` Laurent Pinchart
2026-02-10 12:20 ` Anthony McGivern
2026-02-10 16:02 ` Laurent Pinchart
2026-02-12 8:43 ` Anthony McGivern
2026-02-10 0:03 ` Laurent Pinchart
2026-02-12 17:38 ` Julien Vuillaumier
2026-02-23 12:38 ` Julien Vuillaumier
2026-02-23 16:52 ` Jacopo Mondi
2026-02-24 19:01 ` Julien Vuillaumier
2026-02-25 8:44 ` Jacopo Mondi
2026-03-20 16:29 ` Antoine Bouyer
2026-03-23 13:18 ` Jacopo Mondi
2026-03-24 17:44 ` Antoine Bouyer
2026-03-25 13:23 ` Jacopo Mondi
2026-02-06 20:51 ` Michael Riesch
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=20260209231647.GG2405149@killaraus.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=alexi.birlinger@nxp.com \
--cc=antoine.bouyer@nxp.com \
--cc=conor+dt@kernel.org \
--cc=daniel.baluta@nxp.com \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=frank.li@nxp.com \
--cc=jacopo.mondi@ideasonboard.com \
--cc=julien.vuillaumier@nxp.com \
--cc=kernel@pengutronix.de \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=peng.fan@nxp.com \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox