From patchwork Fri Oct 3 09:27:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 24554 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 54170C324C for ; Fri, 3 Oct 2025 09:27:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0BDD56B5F0; Fri, 3 Oct 2025 11:27:42 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="UNTjK8Ex"; 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 D298F6B599 for ; Fri, 3 Oct 2025 11:27:39 +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 A0617C77; Fri, 3 Oct 2025 11:26:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1759483568; bh=E3taRu5No790VY1G8SZeCK0U0NlhGDkxcCr2skGsejc=; h=From:Subject:Date:To:Cc:From; b=UNTjK8Exfbc2kxzibm1TELko/+bZ5B0FCwQtXnO5ecD4lgBb2Hcw0aOIUBQeDVKP+ EJr8Wkfj9QgwlvzT4zJPJtYtjA/oAg8WfuSLLiM2zqHbYb0VJ4ZYgW6gjsAS5315mV EWnN+yFO24vMrpkrqNaqibt2vN1a9uYqbiCJtWbc= From: Jacopo Mondi Subject: [PATCH 0/2] ipa: Allow IPA creation by name Date: Fri, 03 Oct 2025 11:27:28 +0200 Message-Id: <20251003-ipa-match-by-name-v1-0-07b796729412@ideasonboard.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAACX32gC/x3MQQ5AQAxA0atI15qMDoKriEVRdGHIjAgRdzexf Iv/HwjiVQI0yQNeTg26uYgsTWBY2M2COkYDGSoyYwh1Z1z5GBbsb3S8ClYkZW9zJis1xG73Mun 1P9vufT91JnWmYwAAAA== X-Change-ID: 20251002-ipa-match-by-name-82e6b34a23e9 To: libcamera-devel@lists.libcamera.org, =?utf-8?q?Niklas_S=C3=B6derlund?= , Hans de Goede Cc: Jacopo Mondi , Hans de Goede X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2138; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=E3taRu5No790VY1G8SZeCK0U0NlhGDkxcCr2skGsejc=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBo35cKJcnPvdajMMh3VMqS5UxIEnoZatz3qoCzb C6nIZpT8CaJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaN+XCgAKCRByNAaPFqFW PPaFD/9d4xhYXq0GKhSkA6j+PkUfDJzaaEh9JhHiEWhzS50cv1r4goZa7ySmSv+IXLppDc6H6jq mXHKWQOOWsOhG4+U+4rfl7iYzdIoqnq+8xrMxwuMC/nwFVStX0IZIcyFTTe3xOGcB5EcGrWaSMN LqjPQxCjQiqZHzqEdPny/W6KlmK+sSJosoIwNXzkHGtdt9jI7DW+LbDrEhGS2LEh0pc6Nz0nHQA LLNZRXWOxpnIUMDnCUOE5nA4L0WBPOHV66b3STqr4IEAtSrjoZP/rocTQhePbe1Lw1ZBdVEoEy4 8FD1qnRPNTY40mRpL+zuuFo8lug/Wd/Bq/FBLLHc9TLMFI4WBBv5IbLfIxs4JpZfFwHi2AXPJuB HjJmlHSsf/Yx3JTLb55/01KldFbkpLVeqClZXDVT48BsooePDPfs6eK4fNGCIHC8iN5jx1Ff2gb gcXpAvP8vgkVqMYuiVbqHZ9XwyMYmFiwZjbKqo6n6YDSGH4XHgn8JnZOAgNGTpMAKiKLqj/WCT9 K9eExrHmaJGs5Srt5PSPtSwg4txiloRPb4INSnp214rVdGj5SCFsNlZ9HjOWBY6l7By533L9d+t U4rUIN2wdrG1Juusz+ywFCohnO6nQXbC9DcRjgzvnnejL2g0snhTswDoEMvUwr5cHQ5BY+JOO07 v8LLNhBCma7wKlA== 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" It is getting more and more common for different pipeline handlers to use the same IPA modules whose name differs from the pipeline's one. The first case has been the softISP, and now the in-review Renesas R-Car V4H pipeline handler will re-use the RkISP1 IPA. Starting from Hans' patch https://patchwork.libcamera.org/patch/23359/ "libcamera: ipa_manager: createIPA: Allow matching by IPA name instead of by pipeline" I here took a slightly different approach and addressed the review comments on Hans' v1 by creating an overload for IPAManager::createIPA() that allows pipelines to specify the IPA module name. If they don't provide a name, the pipeline handler's name is used. As the next step, to further decouple IPAs from pipelines, remove the pipelineName field from IPAModuleInfo that in all cases is identical to the IPA name itself. Not tested on neither softISP or R-Car but I used the "by name" and "by pipe" overloads on Mali and it worked. Signed-off-by: Jacopo Mondi Tested-by: Niklas Söderlund --- Hans de Goede (1): libcamera: ipa_manager: Create IPA by name Jacopo Mondi (1): ipa: ipa_module: Remove pipelineName include/libcamera/internal/ipa_manager.h | 14 +++++++++++-- include/libcamera/internal/ipa_module.h | 4 ++-- include/libcamera/ipa/ipa_module_info.h | 1 - src/ipa/ipu3/ipu3.cpp | 1 - src/ipa/mali-c55/mali-c55.cpp | 1 - src/ipa/rkisp1/rkisp1.cpp | 1 - src/ipa/rpi/pisp/pisp.cpp | 1 - src/ipa/rpi/vc4/vc4.cpp | 1 - src/ipa/simple/soft_simple.cpp | 1 - src/ipa/vimc/vimc.cpp | 1 - src/libcamera/ipa_manager.cpp | 34 ++++++++++++++++++++++++++------ src/libcamera/ipa_module.cpp | 27 +++++++++++-------------- test/ipa/ipa_module_test.cpp | 3 --- 13 files changed, 54 insertions(+), 36 deletions(-) --- base-commit: f0f2aca56611bf9430eb6edc23e9bd55cf96a26d change-id: 20251002-ipa-match-by-name-82e6b34a23e9 Best regards,