Patch Detail
Show a patch.
GET /api/1.1/patches/26357/?format=api
{ "id": 26357, "url": "https://patchwork.libcamera.org/api/1.1/patches/26357/?format=api", "web_url": "https://patchwork.libcamera.org/patch/26357/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260325151416.2114564-16-stefan.klug@ideasonboard.com>", "date": "2026-03-25T15:13:47", "name": "[v2,15/32] ipa: rkisp1: Set frameContext.agc in queueRequest for auto mode also", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "fea9eb0e01bf7a461b053721a46fd3150ecfdadf", "submitter": { "id": 184, "url": "https://patchwork.libcamera.org/api/1.1/people/184/?format=api", "name": "Stefan Klug", "email": "stefan.klug@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/26357/mbox/", "series": [ { "id": 5849, "url": "https://patchwork.libcamera.org/api/1.1/series/5849/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5849", "date": "2026-03-25T15:13:32", "name": "rkisp1: pipeline rework for PFC", "version": 2, "mbox": "https://patchwork.libcamera.org/series/5849/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/26357/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/26357/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 1AF4BC32F5\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Mar 2026 15:15:25 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B595E62B9A;\n\tWed, 25 Mar 2026 16:15:24 +0100 (CET)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4ACF6628CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Mar 2026 16:15:23 +0100 (CET)", "from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:b16a:5ed9:4ada:a95a])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 522521992; \n\tWed, 25 Mar 2026 16:14:05 +0100 (CET)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"cjkXxnQH\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1774451645;\n\tbh=XoB6H/0U6tGn+weK6nvbPi46XdQqpT3ry2fV8PvjQx4=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=cjkXxnQHyghYkMXOaQXd9x7a+DbqDCqXVnUBw4WmRT1Fh0kaVLOc5TATLdliX2zkp\n\t10UAJ1VBAE8FJ2MfSPQU/R+ShbnGfaYgHlNUDmBdm7BzpmTwa125SmGNV+iwdYnAFo\n\tWCOEZb+9e+Lz7aT6LDci0g/PChTZBH6bUGNc4mug=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>,\n\tPaul Elder <paul.elder@ideasonboard.com>", "Subject": "[PATCH v2 15/32] ipa: rkisp1: Set frameContext.agc in queueRequest\n\tfor auto mode also", "Date": "Wed, 25 Mar 2026 16:13:47 +0100", "Message-ID": "<20260325151416.2114564-16-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20260325151416.2114564-1-stefan.klug@ideasonboard.com>", "References": "<20260325151416.2114564-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 in 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>\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n---\n\nChanges in v2:\n- Collected tag\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 1ecaff680978..fd227e2129ed 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": [ "v2", "15/32" ] }