Message ID | 20251007-v4l2-params-v5-0-8db451a81398@ideasonboard.com |
---|---|
Headers | show
Return-Path: <libcamera-devel-bounces@lists.libcamera.org> X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id AF391BF415 for <parsemail@patchwork.libcamera.org>; Tue, 7 Oct 2025 18:17:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DD89B6B5F3; Tue, 7 Oct 2025 20:17:55 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="m4f3NgjT"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4541D69367 for <libcamera-devel@lists.libcamera.org>; Tue, 7 Oct 2025 20:17:53 +0200 (CEST) Received: from [192.168.1.102] (93-61-96-190.ip145.fastwebnet.it [93.61.96.190]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5A17D63F; Tue, 7 Oct 2025 20:16:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1759860979; bh=RfNE3uiZUlwYembciDkX/ONfqCMZ9ddMWnkEaWcaNSc=; h=From:Subject:Date:To:Cc:From; b=m4f3NgjTN80Gcl2SiGbEepurjLeW4W6YED1ZgpKMP3dyGVrcBwHn3fTOqXKKhbts5 AlEDIsIPlvUs69Fr5FUyDNvTOC9VrAuC5iUPpmWQPLEuUC0VCPmBbrNIN7TqYnt0qP l8ef1P6DWboqjDsN4mTR0asTEscgvsAftM33MIF8= From: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Subject: [PATCH v5 0/5] ipa: libipa: Introduce V4L2Params Date: Tue, 07 Oct 2025 20:17:42 +0200 Message-Id: <20251007-v4l2-params-v5-0-8db451a81398@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAEZZ5WgC/3XMwW4CIRSF4VcxrMVwL5dh6Krv0XTBDJdKooOBh rQx8+5FF602uvxPcr6zqFwSV/GyOYvCLdWUlx5muxHz3i8fLFPoLVChUSM62eiA8uSLP1YZCL0 3zrEdveiPU+GYvq7a23vvfaqfuXxf8QaX9bHTQCqpSVmr4zS4GF9TYF/zMmVfwm7OR3HhGv4RD oZ7AjthByILHAbS5gmhbwj8R+hOMAOQHXGGiZ8Q9EuAUnBPUCfGiBNZ61CZR8S6rj/xSIn8dgE AAA== X-Change-ID: 20250829-v4l2-params-d42aa599e78a To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com>, Antoine Bouyer <antoine.bouyer@nxp.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com> X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4238; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=RfNE3uiZUlwYembciDkX/ONfqCMZ9ddMWnkEaWcaNSc=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBo5VlPD4e5wh2Th34kvuWj5W2RRNnskhMR85ma8 uV2hzuibkuJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaOVZTwAKCRByNAaPFqFW PCmcD/9AhiAKM+l2OQgr2NtFcoeYP2DUC5R069jJ3rItjolyq735QgST2VLExvoYdGXvvaFcdV3 l0jjeEdapHVPgvK9/wABsRgzTgf37IcuIJ6dwX8stAmF8qFPACuvMJHZfGt9ZDSyKbQB1NHaXBU 11WnM2o/eDUcsOc16uqGz5/Q5fyo1TSTzeNpWs0DzCZmVj+bqShvw8rGyd+MLuThHC2itUxBdRN Z5WF5lNm2lGgyck0mbreGRvPZ5LllQ4aoJC9WcI3XR6qE4tjDoVPl272fj00pe2/f2V0SnAhRpq cL46IeuL6b9GY1HKU017WVGM30C47EZclVnWSksEU02eB62OFQgdlgI9qeZwbzQOngz5H3bI+Cx M1WeYmd73l670j88NukVMXSXvA9VjOuEFxMPA6BIHCdmf12HjJWtd3cr2B7uM2dVUZHXTliMT57 VX/Bh/ZqOtUc9xV47INHwnGlhavbBRV0C29Ml+UZ8pFsm6VgzJ29YNSFP+Ut7SJsqGI5932RVrG 1ppa/V2y9I/2tuJDPVlqTUeGQQEOMhN7Ec7Zxje08mdwqw+Sm4wTDLnCFBXQRQXCI2nBAg6ikSJ RjyubzaY108XvifcqQoU3nD+b80jz6rKApQ227Tg3weOiMp7l4M6xTZsn5s8++G04GJ/Lrosn7j /5LJjUdjS+8KgnA== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: <libcamera-devel.lists.libcamera.org> List-Unsubscribe: <https://lists.libcamera.org/options/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe> List-Archive: <https://lists.libcamera.org/pipermail/libcamera-devel/> List-Post: <mailto:libcamera-devel@lists.libcamera.org> List-Help: <mailto:libcamera-devel-request@lists.libcamera.org?subject=help> List-Subscribe: <https://lists.libcamera.org/listinfo/libcamera-devel>, <mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe> Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" <libcamera-devel-bounces@lists.libcamera.org> |
Series |
|
Related | show |
With the introduction of v4l2-isp.h in the Linux kernel currently in progress: https://lore.kernel.org/all/20251007-extensible-parameters-validation-v6-0-5f719d9f39e5@ideasonboard.com/ the MaliC55 ISP driver at version in v11 has been ported to use a parameters format compatible with the one defined by v4l2 extensible parameters: https://lore.kernel.org/all/20250714-c55-v11-0-bc20e460e42a@ideasonboard.com/ This series 1) Imports v4l2-isp in libcamera 2) Update the Mali C55 header and IPA to compile with v11 of the patch series that introduces MaliC55 support in Linux 3) Introduces V4L2Params by generalizing RkISP1Params 4) Ports the Mali C55 IPA to use the newly introduced V4L2Params Tested on rkisp1 and rzv2h Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- Changes in v5: - Update to v6 of v4l2 isp - Import linux/stddef.h instead of re-defining __counted_by() - Properly memset the whole mali-c55 buffer in the transitory patch before MaliC55Params introduction Changes in v4: - Mark RkISP1ParamBlock final - Fix code examples as suggested by Barnabas Changes in v3: - Fix Mali-C55 and re-work RkISP1 The Mali and RkISP1 IPA have a different requirements: struct mali_c55_params_awb_gains { struct v4l2_params_block_header header; __u16 gain00; __u16 gain01; __u16 gain10; __u16 gain11; }; struct rkisp1_ext_params_awb_gain_config { struct rkisp1_ext_params_block_header header; struct rkisp1_cif_isp_awb_gain_config config; } __attribute__((aligned(8))); The RkISP1 IPA needs to support legacy and extensible parameter formats, and wants to operate on 'struct rkisp1_cif_isp_' basically discarding the header. The Mali IPA (and all other IPA compatible with v4l2-isp) operates on the whole structure and do not need to discard the header. Rework V4L2ParamsBlock to return a Span<> matching the whole structure (header included) to support Mali correctly. This means the RkISP1ParamsBlock derived class has to override all the dereference operators to discard the header and allow the IPA to work with both the legacy and extensible formats. Tested with Mali C55, RkISP1 in extensible and legacy modes. - Link to v2: https://lore.kernel.org/r/20250916-v4l2-params-v2-0-764471ed6435@ideasonboard.com Changes in v2: - Address Barnabas' reviwe that allows to remove the block() overload in MaliC55 - Link to v1: https://lore.kernel.org/r/20250829-v4l2-params-v1-0-340773fb69ff@ideasonboard.com --- Jacopo Mondi (5): include: linux: Add stddef.h include: linux: Add v4l2-isp.h ipa: Update Mali C55 header file and adjust IPA ipa: libipa: Introduce V4L2Params ipa: mali-c55: Introduce MaliC55Params include/linux/mali-c55-config.h | 161 +++----------------- include/linux/media/v4l2-isp.h | 82 +++++++++++ include/linux/stddef.h | 75 ++++++++++ src/ipa/libipa/meson.build | 2 + src/ipa/libipa/v4l2_params.cpp | 254 ++++++++++++++++++++++++++++++++ src/ipa/libipa/v4l2_params.h | 142 ++++++++++++++++++ src/ipa/mali-c55/algorithms/agc.cpp | 87 +++++------ src/ipa/mali-c55/algorithms/agc.h | 14 +- src/ipa/mali-c55/algorithms/algorithm.h | 2 +- src/ipa/mali-c55/algorithms/awb.cpp | 64 ++++---- src/ipa/mali-c55/algorithms/awb.h | 10 +- src/ipa/mali-c55/algorithms/blc.cpp | 20 +-- src/ipa/mali-c55/algorithms/blc.h | 3 +- src/ipa/mali-c55/algorithms/lsc.cpp | 58 +++----- src/ipa/mali-c55/algorithms/lsc.h | 8 +- src/ipa/mali-c55/mali-c55.cpp | 19 +-- src/ipa/mali-c55/module.h | 3 +- src/ipa/mali-c55/params.h | 83 +++++++++++ src/ipa/rkisp1/params.cpp | 93 +----------- src/ipa/rkisp1/params.h | 175 ++++++++++++---------- utils/update-kernel-headers.sh | 2 + 21 files changed, 881 insertions(+), 476 deletions(-) --- base-commit: f0f2aca56611bf9430eb6edc23e9bd55cf96a26d change-id: 20250829-v4l2-params-d42aa599e78a Best regards,