From patchwork Fri Oct 3 16:16:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 24562 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 82DA8BF415 for ; Fri, 3 Oct 2025 16:16:45 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7854C6B5F9; Fri, 3 Oct 2025 18:16:44 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="f9myx0Ev"; 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 1B3CB6B5AA for ; Fri, 3 Oct 2025 18:16:43 +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 31904192C; Fri, 3 Oct 2025 18:15:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1759508112; bh=aGp6cXvbVICmWsFXlIvFQo51BUGz8waKqM+aPyJEu3I=; h=From:Subject:Date:To:Cc:From; b=f9myx0EvUyFmrv33u5jA3DdBXLvqJKNLaVbdfSn/AP/MgQXhN32CM8hE93hADTG5/ ygFqKS10BfI6bfUn6TyralSnj4Nh9FV/1ySGhTnXNww+IIEDcvVWhVtmLrob74t+aK ASySTtQfO87OTQFMNsSrruMV75Lslfa0MeqGcPbo= From: Jacopo Mondi Subject: [PATCH v2 0/2] ipa: Allow IPA creation by name Date: Fri, 03 Oct 2025 18:16:30 +0200 Message-Id: <20251003-ipa-match-by-name-v2-0-54f3cd828ddd@ideasonboard.com> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAN/232gC/22NQQ6CMBBFr0K6dkw7RRBX3sOwmMIos6AlLSESw t2tJO5cvpf89zeVOAondSs2FXmRJMFnwFOhuoH8i0H6zAo1XozWCDIRjDR3A7gVPI0MV+TK2ZL QcqPybor8lPfRfLSZB0lziOtxsZiv/dXsn9piQIOuXd1UNTalwbv0TCl4Fyj25y6Mqt33/QOYg PefuQAAAA== 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 , Kieran Bingham , =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2361; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=aGp6cXvbVICmWsFXlIvFQo51BUGz8waKqM+aPyJEu3I=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBo3/bpEzyJGU+YH1/IeeliS4493nSG5jAXFIzIa 8qVSIjXNluJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaN/26QAKCRByNAaPFqFW PAvwEACFNhOxjldjFdOf1EWBBfLZb2fA2y2UJb8QPYGtNWe1hj0nB3/uQ1uNlfBdEYnRqhqebzF oR+iaiVOycfm66q8JcR5ilwoOBuDOw/58kHzVESEdTwCeRtkHJ+jtFQyoFiaWG4kiXGre9P9CME VphEoxLwSP0+wvrv+M779mPxmPQD3KNK+lNZyejQWjUNrB7milfRyQ15/Z7OyjJbqEbxE6C32HL +EiJuP3OS1Y87Hbu5cEADiz4NbuUk0JoG4Y4/n44Vgk40eTm7cyuJvoHoyAqTufLqym/0H3YCFg XKGn1G0xHfZDaf1cYqlhx+SkZjpbbr1je0oJpVLMG0B+dvMQcf63/UYGdAmRZWaOzImTb8HBAzn 6z8NTnBfcJtqHDxWayN9mVYWI7od+ClYBA1sJBEDmUWnXKbt92TMeNSYzwyBXPut+F97BrRra/J JvQfEaFvyv2+whJzo8sH2HUUj/3nKmAktsIT3XSe8kyFoNJcwBsPR4Ky5/rOkNUVGlolbDTGCrZ Q3AvA9dwsnf3XJoJ2nPpQXuv9N0mJ1Cnazg6R2lKbV8NwoNE/2A8q6wK7hpWYmA7nBOPlmheq+r oyc+nKKXUNfMIgbwlUSsEJAIDZP+IFUfCxSSSohKUWYM1ZIq+Icq+1ohxyR+frHbxvrIjeQLrYb aMmaNk1vUDJuUzQ== 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 --- Changes in v2: - Changed Hans authorship to different email address - Removed stray blank line - Collect tags - Link to v1: https://lore.kernel.org/r/20251003-ipa-match-by-name-v1-0-07b796729412@ideasonboard.com --- 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 | 13 ++++++++++-- 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, 53 insertions(+), 36 deletions(-) --- base-commit: f0f2aca56611bf9430eb6edc23e9bd55cf96a26d change-id: 20251002-ipa-match-by-name-82e6b34a23e9 Best regards,