{"id":24781,"url":"https://patchwork.libcamera.org/api/1.1/patches/24781/?format=json","web_url":"https://patchwork.libcamera.org/patch/24781/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251024085130.995967-16-stefan.klug@ideasonboard.com>","date":"2025-10-24T08:50:39","name":"[v1,15/35] ipa: rkisp1: Set frameContext.agc in queueRequest for auto mode also","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"fea9eb0e01bf7a461b053721a46fd3150ecfdadf","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/1.1/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/24781/mbox/","series":[{"id":5524,"url":"https://patchwork.libcamera.org/api/1.1/series/5524/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5524","date":"2025-10-24T08:50:24","name":"rkisp1: pipeline rework for PFC","version":1,"mbox":"https://patchwork.libcamera.org/series/5524/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/24781/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/24781/checks/","tags":{},"headers":{"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\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5F0FEC3259\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 24 Oct 2025 08:52:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 25CB1608D2;\n\tFri, 24 Oct 2025 10:52:24 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4048F6089B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 Oct 2025 10:52:22 +0200 (CEST)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:7edc:62f4:c118:1549])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id A753620A4; \n\tFri, 24 Oct 2025 10:50:36 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Bm8lr0B5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761295836;\n\tbh=Bm7AeoHy6oUG/h9poJIAqz9bTSajkoEGA7WJM63Ko4A=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Bm8lr0B5vL+kCEMW95vz2uxz+lQOyZ32wrhpfSq6DqyNAle+iw2WMMqizbYSDuKpZ\n\tQF4DIo7GxVhkJvNBAdA47vzBlEtD8sXOgaoHVOZtOnpP9Q1Z6UGCNwdA3I+4HmoOX2\n\tBP5yJVT8jHTlVsDnZ10R32m8i19HMDssXBNyU8io=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","Subject":"[PATCH v1 15/35] ipa: rkisp1: Set frameContext.agc in queueRequest\n\tfor auto mode also","Date":"Fri, 24 Oct 2025 10:50:39 +0200","Message-ID":"<20251024085130.995967-16-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.48.1","In-Reply-To":"<20251024085130.995967-1-stefan.klug@ideasonboard.com>","References":"<20251024085130.995967-1-stefan.klug@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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>,\n\t<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>,\n\t<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>"},"content":"If the agc is in auto mode, exposure time and gain used to be set on the\nframe context within prepare(). As exposure time and gain are used by\ngetSensorControls(0) from within start() that is too late (prepare()\nhasn't run yet). Also prepare() is documented as the place to initialize\nthe params buffer, not the frame context. From the pipeline point of\nview, prepare() gets called immediately after queueRequest(). Therefore\nwe can safely move setting the frame context into queueRequest() to fix\nthe sensor controls for start().\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/agc.cpp | 8 ++++++--\n 1 file changed, 6 insertions(+), 2 deletions(-)","diff":"diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\nindex f5a3c917cb69..c67106339ef8 100644\n--- a/src/ipa/rkisp1/algorithms/agc.cpp\n+++ b/src/ipa/rkisp1/algorithms/agc.cpp\n@@ -284,9 +284,13 @@ void Agc::queueRequest(IPAContext &context,\n \tframeContext.agc.autoExposureEnabled = agc.autoExposureEnabled;\n \tframeContext.agc.autoGainEnabled = agc.autoGainEnabled;\n \n-\tif (!frameContext.agc.autoExposureEnabled)\n+\tif (frameContext.agc.autoExposureEnabled)\n+\t\tframeContext.agc.exposure = context.activeState.agc.automatic.exposure;\n+\telse\n \t\tframeContext.agc.exposure = agc.manual.exposure;\n-\tif (!frameContext.agc.autoGainEnabled)\n+\tif (frameContext.agc.autoGainEnabled)\n+\t\tframeContext.agc.gain = context.activeState.agc.automatic.gain;\n+\telse\n \t\tframeContext.agc.gain = agc.manual.gain;\n \n \tif (!frameContext.agc.autoExposureEnabled &&\n","prefixes":["v1","15/35"]}