From patchwork Wed Jul 3 22:52:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 20562 Return-Path: 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 C44ABBEFBE for ; Wed, 3 Jul 2024 22:52:55 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7918A62E25; Thu, 4 Jul 2024 00:52:54 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ZRC6EJzJ"; 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 CBC41619CC for ; Thu, 4 Jul 2024 00:52:52 +0200 (CEST) Received: from pendragon.ideasonboard.com (117.145-247-81.adsl-dyn.isp.belgacom.be [81.247.145.117]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 365DE4CC; Thu, 4 Jul 2024 00:52:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1720047144; bh=CG03REfSFcFhI+jAaW9DAuxg5MAXFvh1IOx3C6ehZ1g=; h=From:To:Cc:Subject:Date:From; b=ZRC6EJzJLMigkJgylGR2N5MWQKN7LzmsMxsD0UePjsO5a4A6Eoj48Z542hV+c7P01 TvtbF8xpuRTCQfJC5zmOO8QX1XD3AQrq61MuS1YXLc1WntxHU6owOaWMEI/WhBooff 6hE0v5t5s4N9DqA8+jil4E0YRfBjmrcXp70dmv/A= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi , Paul Elder Subject: [PATCH v1 00/11] rkisp1: Support BLS on i.MX8MP Date: Thu, 4 Jul 2024 01:52:19 +0300 Message-ID: <20240703225230.3530-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.44.2 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hello, This patch series adds support for black level subtraction to the rkisp1 on i.MX8MP. While the rkisp1 IPA already supports black level subtraction, the i.MX8MP lacks the BLS block in the ISP and instead implements black level substraction in a new block named companding. Support for this block has been submitted for the kernel driver in [1] and [2], which this series depends on. The first part of this series adds support in the rkisp1 pipeline handler and IPA module for the new ISP extensible parameters format introduced in [1]. The first two patches start by adding the driver API extensions to the rkisp1-config.h header (01/11) and the new V4L2 pixel format (02/11). The next two patches then prepare the rkisp1 IPA module interface to pass the parameters buffer format from the pipeline handler to the IPA module (03/11), and the size of the filled buffer from the IPA module to the pipeline handler (04/11). With that in place, patch 05/11 adds classes that abstract the ISP parameters buffer in order to support the legacy fixed format and the new extensible format transparently for the IPA module's algorithms, and patch 06/11 makes use of those classes through the IPA module. Patch 07/11 finishes the first part by switching to the extensible format by default when available. The second part of the series then implements support for BLS on the i.MX8MP. Patch 08/11 updates the rkisp1-config.h header to the kernel API from [2] with support for the companding block, and patch 09/11 updates the rkisp1 parameters helper classes with support for the block. Patch 10/11 adds a flag to the IPA context to signal support for the companding block, and patch 11/11 makes use of it in the black level correction algorithm to select between the BLS and companding blocks depending on the platform. [1] https://lore.kernel.org/r/20240703161048.247124-1-jacopo.mondi@ideasonboard.com [2] https://lore.kernel.org/r/20240703222533.1662-1-laurent.pinchart@ideasonboard.com Jacopo Mondi (4): include: rkisp1: Update header for extensible parameters include: videodev2: Add V4L2_META_FMT_RK_ISP1_EXT_PARAMS ipa: rkisp1: Pass parameters buffer size to pipeline handler pipeline: rkisp1: Use the extensible parameters format Laurent Pinchart (4): ipa: rkisp1: Pass parameters buffer format to IPA module ipa: rkisp1: Add ISP parameters abstraction class ipa: rkisp1: Use the new ISP parameters abstraction ipa: rkisp1: params: Add companding blocks Paul Elder (3): include: rkisp1: Update header for compand parameters ipa: rkisp1: Add compand feature flag to ipa context ipa: rkisp1: blc: Add support for BLS in compand include/libcamera/ipa/rkisp1.mojom | 3 +- include/linux/rkisp1-config.h | 572 +++++++++++++++++++++++ include/linux/videodev2.h | 1 + src/ipa/rkisp1/algorithms/agc.cpp | 46 +- src/ipa/rkisp1/algorithms/agc.h | 2 +- src/ipa/rkisp1/algorithms/awb.cpp | 56 +-- src/ipa/rkisp1/algorithms/awb.h | 2 +- src/ipa/rkisp1/algorithms/blc.cpp | 34 +- src/ipa/rkisp1/algorithms/blc.h | 3 +- src/ipa/rkisp1/algorithms/ccm.cpp | 14 +- src/ipa/rkisp1/algorithms/ccm.h | 4 +- src/ipa/rkisp1/algorithms/cproc.cpp | 13 +- src/ipa/rkisp1/algorithms/cproc.h | 2 +- src/ipa/rkisp1/algorithms/dpcc.cpp | 9 +- src/ipa/rkisp1/algorithms/dpcc.h | 2 +- src/ipa/rkisp1/algorithms/dpf.cpp | 28 +- src/ipa/rkisp1/algorithms/dpf.h | 2 +- src/ipa/rkisp1/algorithms/filter.cpp | 51 +- src/ipa/rkisp1/algorithms/filter.h | 2 +- src/ipa/rkisp1/algorithms/goc.cpp | 15 +- src/ipa/rkisp1/algorithms/goc.h | 2 +- src/ipa/rkisp1/algorithms/gsl.cpp | 20 +- src/ipa/rkisp1/algorithms/gsl.h | 2 +- src/ipa/rkisp1/algorithms/lsc.cpp | 27 +- src/ipa/rkisp1/algorithms/lsc.h | 4 +- src/ipa/rkisp1/ipa_context.h | 1 + src/ipa/rkisp1/meson.build | 1 + src/ipa/rkisp1/module.h | 3 +- src/ipa/rkisp1/params.cpp | 172 +++++++ src/ipa/rkisp1/params.h | 146 ++++++ src/ipa/rkisp1/rkisp1.cpp | 28 +- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 10 +- 32 files changed, 1078 insertions(+), 199 deletions(-) create mode 100644 src/ipa/rkisp1/params.cpp create mode 100644 src/ipa/rkisp1/params.h base-commit: 196abb8d1d6e0fe9d190315e72a85eb12d16a554