From: Kieran Bingham <kieran.bingham@ideasonboard.com>
To: Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Linux Media Mailing List <linux-media@vger.kernel.org>
Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Sakari Ailus <sakari.ailus@iki.fi>,
Hans Verkuil <hverkuil-cisco@xs4all.nl>,
Stefan Klug <stefan.klug@ideasonboard.com>,
Paul Elder <paul.elder@ideasonboard.com>,
Daniel Scally <dan.scally@ideasonboard.com>,
Umang Jain <umang.jain@ideasonboard.com>,
Dafna Hirschfeld <dafna@fastmail.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Heiko Stuebner <heiko@sntech.de>
Subject: Re: [PATCH v7 0/12] media: rkisp1: Extensible parameters and companding
Date: Wed, 24 Jul 2024 11:44:20 +0100 [thread overview]
Message-ID: <172181786012.1463270.9516240500127620073@ping.linuxembedded.co.uk> (raw)
In-Reply-To: <20240724085004.82694-1-jacopo.mondi@ideasonboard.com>
Hi Jacopo,
For this series,
Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
on a Debix-SOM with both an IMX335 and IMX283. And also in particular, I
can confirm the Gamma control is now functional in v7 \o/ Thanks.
--
Kieran
Quoting Jacopo Mondi (2024-07-24 09:49:51)
> v6->v7:
> - Collect [PATCH v2 0/5] media: rkisp1: Add support for the companding block
> - Fix GOC handling
> - Fix newly introduced errors in checkstyle and documentation reported by
> https://gitlab.freedesktop.org/linux-media/users/jmondi/-/pipelines/1231492
>
> v5->v6:
> - Collect [v5.2 6/7] from Laurent
> - Collect Paul's tags
> - Add extra validation for unexpected data after the payload end as
> suggested by Sakari
>
> v4->v5:
> - Refine validation of the ext params buffer following Laurent's suggestion
> - perform memcpy of the parameters buffer after sizes validation
>
> v3->v4:
> - Introduce 'union rkisp1_ext_params_config' to avoid casts in the block
> handlers
>
> v2->v3:
> - Address Laurent's comments on the uAPI:
> - rename $block_config with just 'config'
> - reduce header size
> - rename a few fields/blocks
>
> - Address Laurent's comment on the params node:
> - Use the plane payload for memcpy() and buffer validation
> - drop buf_out_validate() and use buf_prepare() only
> - validate the total buffer size against the buffer payload
> - use const pointers where possible
>
> v1->v2:
> - re-order patches to introduce parameters buffer caching for the existing
> "fixed" format before introducing the "extensible" format
> - align all structures to 64-bit boundaries in the uAPI
> - remove NO_CHANGE enablement state and cache a bitmask of enabled blocks
> - address review comments in documentation
>
> The VeriSilicon ISP8000 IP, supported through the rkisp1 driver in the Linux
> kernel, is integrated in several SoCs from different vendors. Different
> revisions of the IP differ in the number of supported features and in the
> register space location assigned to specific ISP blocks.
>
> The current configuration parameters format, defined in
> include/uapi/linux/rkisp1-config.h is realized by a C structure (struct
> rkisp1_params_cfg) which wraps other structures that allows to configure
> specific ISP blocks. The layout of the parameters buffer is part of the Linux
> kernel uAPI and can hardly be extended or modified to adapt it to different
> revisions of the same IP.
>
> This series proposes the introduction of a new parameters format for the RkISP1
> (without dropping support for the existing one) which is designed with the goals
> of being:
>
> 1) versioned: can be changed without breaking existing applications
> 2) extensible: new blocks and parameters can be added without breaking the uABI
>
> To do so, a new 'struct rkisp1_ext_params_cfg' type is introduced. It wraps an
> header and a data buffer, which userspace fills with configuration blocks
> for each ISP block it intends to configure. The parameters buffer is thus of
> different effective sizes, depending on the number of blocks userspace intends
> to configure.
>
> The kernel driver parses the data block and decides, based on the versioning
> number and the platform it operates on, how to handle each block.
>
> The parameters format is very similar to the parameters format implemented
> in the in-review Mali C55 ISP driver [1]
>
> CI pipeline [2]
>
> [1] https://lore.kernel.org/linux-media/20240529152858.183799-15-dan.scally@ideasonboard.com/
> [2] https://gitlab.freedesktop.org/linux-media/users/jmondi/-/pipelines/1231500
>
> Jacopo Mondi (7):
> media: uapi: rkisp1-config: Add extensible params format
> media: uapi: videodev2: Add V4L2_META_FMT_RK_ISP1_EXT_PARAMS
> media: rkisp1: Add struct rkisp1_params_buffer
> media: rkisp1: Copy the parameters buffer
> media: rkisp1: Cache the currently active format
> media: rkisp1: Implement extensible params support
> media: rkisp1: Implement s_fmt/try_fmt
>
> Laurent Pinchart (2):
> media: rkisp1: Add helper function to swap colour channels
> media: rkisp1: Add features mask to extensible block handlers
>
> Paul Elder (3):
> media: rkisp1: Add register definitions for the companding block
> media: rkisp1: Add feature flags for BLS and compand
> media: rkisp1: Add support for the companding block
>
> Documentation/admin-guide/media/rkisp1.rst | 11 +-
> .../media/v4l/metafmt-rkisp1.rst | 57 +-
> .../platform/rockchip/rkisp1/rkisp1-common.c | 14 +
> .../platform/rockchip/rkisp1/rkisp1-common.h | 38 +-
> .../platform/rockchip/rkisp1/rkisp1-dev.c | 9 +-
> .../platform/rockchip/rkisp1/rkisp1-params.c | 1016 +++++++++++++++--
> .../platform/rockchip/rkisp1/rkisp1-regs.h | 23 +
> .../platform/rockchip/rkisp1/rkisp1-stats.c | 51 +-
> drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
> include/uapi/linux/rkisp1-config.h | 576 ++++++++++
> include/uapi/linux/videodev2.h | 1 +
> 11 files changed, 1640 insertions(+), 157 deletions(-)
>
> --
> 2.45.2
>
prev parent reply other threads:[~2024-07-24 10:44 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-24 8:49 [PATCH v7 0/12] media: rkisp1: Extensible parameters and companding Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 01/12] media: uapi: rkisp1-config: Add extensible params format Jacopo Mondi
2024-07-30 12:11 ` Hans Verkuil
2024-07-30 12:14 ` Hans Verkuil
2024-07-30 12:19 ` Laurent Pinchart
2024-07-30 12:18 ` Laurent Pinchart
2024-07-30 12:37 ` Hans Verkuil
2024-08-05 11:52 ` Sakari Ailus
2024-08-06 7:30 ` Jacopo Mondi
2024-08-06 8:52 ` Laurent Pinchart
2024-08-06 8:53 ` Sakari Ailus
2024-08-06 9:05 ` Jacopo Mondi
2024-08-06 7:27 ` Jacopo Mondi
2024-08-06 8:17 ` Hans Verkuil
2024-08-06 8:24 ` Jacopo Mondi
2024-08-06 9:06 ` Laurent Pinchart
2024-08-06 9:16 ` Jacopo Mondi
2024-08-06 9:32 ` Laurent Pinchart
2024-08-06 11:20 ` Sakari Ailus
2024-07-24 8:49 ` [PATCH v7 02/12] media: uapi: videodev2: Add V4L2_META_FMT_RK_ISP1_EXT_PARAMS Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 03/12] media: rkisp1: Add struct rkisp1_params_buffer Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 04/12] media: rkisp1: Copy the parameters buffer Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 05/12] media: rkisp1: Cache the currently active format Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 06/12] media: rkisp1: Implement extensible params support Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 07/12] media: rkisp1: Implement s_fmt/try_fmt Jacopo Mondi
2024-07-24 8:49 ` [PATCH v7 08/12] media: rkisp1: Add helper function to swap colour channels Jacopo Mondi
2024-07-24 8:50 ` [PATCH v7 09/12] media: rkisp1: Add features mask to extensible block handlers Jacopo Mondi
2024-07-24 8:50 ` [PATCH v7 10/12] media: rkisp1: Add register definitions for the companding block Jacopo Mondi
2024-07-24 8:50 ` [PATCH v7 11/12] media: rkisp1: Add feature flags for BLS and compand Jacopo Mondi
2024-07-24 8:50 ` [PATCH v7 12/12] media: rkisp1: Add support for the companding block Jacopo Mondi
2024-07-24 10:44 ` Kieran Bingham [this message]
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=172181786012.1463270.9516240500127620073@ping.linuxembedded.co.uk \
--to=kieran.bingham@ideasonboard.com \
--cc=dafna@fastmail.com \
--cc=dan.scally@ideasonboard.com \
--cc=heiko@sntech.de \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jacopo.mondi@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=paul.elder@ideasonboard.com \
--cc=sakari.ailus@iki.fi \
--cc=stefan.klug@ideasonboard.com \
--cc=umang.jain@ideasonboard.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: 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;
as well as URLs for NNTP newsgroup(s).