From patchwork Thu Jan 22 17:48:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 25944 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 ABEA9BDCBF for ; Thu, 22 Jan 2026 17:48:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 321B461FC5; Thu, 22 Jan 2026 18:48:41 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="rnwXiCfK"; 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 5EAB461FC3 for ; Thu, 22 Jan 2026 18:48:39 +0100 (CET) Received: from [192.168.1.105] (mob-5-90-62-9.net.vodafone.it [5.90.62.9]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7F04063B; Thu, 22 Jan 2026 18:48:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1769104086; bh=w+Mc17C0QWwpzUKD6yQdZd0NzEjKBuR6eG69HEmNjmg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=rnwXiCfKPM+qlUMY5JovFT9OvViW2HxXpt72rUmhVLes/qT0R05EYNGBKkQKs6AV4 3cZNNf3Uig8HYaJJvemofIXNNjjoCT4tE4VLZWhh8TdKlSKGBRf4GfPdAQg8jMOZ/5 Kj4jSWikmva4Leg7nB8vXAOtAMJIZ5EAKl8w72PM= From: Jacopo Mondi Date: Thu, 22 Jan 2026 18:48:28 +0100 Subject: [PATCH 1/2] ipa: mali-c55: Retain Camera::controls() after ipa->configure() MIME-Version: 1.0 Message-Id: <20260122-ipa-controls-v1-1-b8c4c345f7ae@ideasonboard.com> References: <20260122-ipa-controls-v1-0-b8c4c345f7ae@ideasonboard.com> In-Reply-To: <20260122-ipa-controls-v1-0-b8c4c345f7ae@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1360; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=w+Mc17C0QWwpzUKD6yQdZd0NzEjKBuR6eG69HEmNjmg=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpcmL1DEhw/9Rch/hu4VAngGnSVgxFbq6jLj2qo 7Lg4VLuozaJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaXJi9QAKCRByNAaPFqFW PBujD/wPnMvjjGYZQDxtm6LZR05f+BjKb2cm/bRL/1ch733IIRRE3rra30uo7IGaBdxpYWpuQgq 6isOl2U8obNbn1E0YPpQrY0EykxrQul7oraWteR1/eaQhg51labIfkFZlu2liuI/lMR5WYJxSQJ Mn30FfOpDFqS27ZZi9xGYCtAOWrUfyo2/8vJ2bdE6FN9ApTa+B1DES2/yWxj7XmwBa7UNNGh7bn r9EFgz/Jw8GEEMr1WoExDsHcn3KaCNOGESskzc0IiLBfi5nCsDLV1YeaNdZnSiuxTDwNNkdiHZa eZ4c0ZWjvQYxu3JCAuyJYe1kznGIGhXCdcgiYU3cFJF5N+ALPos2T4xe9aiHI0OlSpNOfko6d+w QbgFj7oa7k7xTe3pV7Z4x7hG1+T52yoludYq5tp6Ybr4l/gtEpHei2CM2Fh+HUO+82j5NuOA5kK FmGochVgzBK4x6PSBGZsKlCFVeRFOX6nqW26ialKBKV+nfTM5MWwiXs0UrO5cJDTDd9P3z34776 h/06+s98DfCPBERJpXZTODygNkLab6aFooFt6uIE/kOu1HleCIs1NxW+IQo3ryINeiCq0mzo7ZP pNnVYuDi37pTJkMz+CRxJH1MuqKof27nGwZAtBYnemtfb9XmrrdPdSByzE5skNS4gf6Z9W9K0ye 2rncv1EPb8PLFOg== 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" Similar to what commit acfd60276763 ("ipa: rkisp1: Fix algorithm controls vanish after configure") did for the RkISP1 IPA, replace the usage of unordered_map::merge() at updateControls() time with unordered_map::insert(). As unordered_map::merge moves items from the source map, it deletes controls registered at algorithms initialization time in the ipaContext.ctrlMap. As at configure() time updateControls() is called again and the list of Camera controls is refreshed, the controls registered at algorithms initialization time are lost. Fixes: fe989ee51498 ("ipa: mali-c55: Add Mali-C55 ISP IPA module") Signed-off-by: Jacopo Mondi --- src/ipa/mali-c55/mali-c55.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ipa/mali-c55/mali-c55.cpp b/src/ipa/mali-c55/mali-c55.cpp index 1d2a4f75cf8c..c626e246643b 100644 --- a/src/ipa/mali-c55/mali-c55.cpp +++ b/src/ipa/mali-c55/mali-c55.cpp @@ -264,7 +264,7 @@ void IPAMaliC55::updateControls(const IPACameraSensorInfo &sensorInfo, * Merge in any controls that we support either statically or from the * algorithms. */ - ctrlMap.merge(context_.ctrlMap); + ctrlMap.insert(context_.ctrlMap.begin(), context_.ctrlMap.end()); *ipaControls = ControlInfoMap(std::move(ctrlMap), controls::controls); }