Patch Detail
Show a patch.
GET /api/patches/14694/?format=api
{ "id": 14694, "url": "https://patchwork.libcamera.org/api/patches/14694/?format=api", "web_url": "https://patchwork.libcamera.org/patch/14694/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20211123091451.67404-11-jeanmichel.hautbois@ideasonboard.com>", "date": "2021-11-23T09:14:50", "name": "[libcamera-devel,v2,10/11] ipa: rkisp1: agc: Introduce prepare call", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "9904f0ce3ada171969c9d4d26ffc5f5cac952b4c", "submitter": { "id": 75, "url": "https://patchwork.libcamera.org/api/people/75/?format=api", "name": "Jean-Michel Hautbois", "email": "jeanmichel.hautbois@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/14694/mbox/", "series": [ { "id": 2741, "url": "https://patchwork.libcamera.org/api/series/2741/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2741", "date": "2021-11-23T09:14:40", "name": "Introduce AGC for RkISP1", "version": 2, "mbox": "https://patchwork.libcamera.org/series/2741/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/14694/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/14694/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 439CBC3251\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 23 Nov 2021 09:15:11 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7D5886044F;\n\tTue, 23 Nov 2021 10:15:11 +0100 (CET)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B5B58603BE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 23 Nov 2021 10:14:58 +0100 (CET)", "from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:3c3b:9149:b:8aa9])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 756E6F95;\n\tTue, 23 Nov 2021 10:14:58 +0100 (CET)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"TGRj7Web\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1637658898;\n\tbh=bT+N3UBi9S+MSpCr9mmMbO2ADxWvOkhfGHF2KLhjiIQ=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=TGRj7WebaPfZZXjxQk0HkWb9O5m2Y91obvBRQUlwyo1sNdQLbgo5xe0pgpzk/MAX1\n\txFeGWC2W6rsWDSPEBS0jEZJTNzqGsOrgxFUUKQU8RfNk6Y9aiXgdmQXXCeYgusLn/e\n\tZ4bDqka36G35V1cSam7w/IAk8yLiu4kKaX8PJEYs=", "From": "Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 23 Nov 2021 10:14:50 +0100", "Message-Id": "<20211123091451.67404-11-jeanmichel.hautbois@ideasonboard.com>", "X-Mailer": "git-send-email 2.32.0", "In-Reply-To": "<20211123091451.67404-1-jeanmichel.hautbois@ideasonboard.com>", "References": "<20211123091451.67404-1-jeanmichel.hautbois@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v2 10/11] ipa: rkisp1: agc: Introduce\n\tprepare call", "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": "When a new parameter buffer needs to be queued, we need to specify which\nalgorithm is activated or not in the ISP. Add a simple prepare function\nin AGC for that, which may later evolve to take the exposure locking\ninto account. For that function to be called, we also need to add the\nloop on the algorithms in IPARkISP1::queueRequest.\n\nSigned-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/agc.cpp | 7 +++++++\n src/ipa/rkisp1/algorithms/agc.h | 1 +\n src/ipa/rkisp1/rkisp1.cpp | 12 +++---------\n 3 files changed, 11 insertions(+), 9 deletions(-)", "diff": "diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\nindex 9c6d312e..0433813a 100644\n--- a/src/ipa/rkisp1/algorithms/agc.cpp\n+++ b/src/ipa/rkisp1/algorithms/agc.cpp\n@@ -260,6 +260,13 @@ void Agc::process(IPAContext &context, const rkisp1_stat_buffer *stats)\n \tframeCount_++;\n }\n \n+void Agc::prepare([[maybe_unused]] IPAContext &context,\n+\t\t rkisp1_params_cfg *params)\n+{\n+\tparams->module_ens |= RKISP1_CIF_ISP_MODULE_AEC;\n+\tparams->module_en_update |= RKISP1_CIF_ISP_MODULE_AEC;\n+}\n+\n } /* namespace ipa::rkisp1::algorithms */\n \n } /* namespace libcamera */\ndiff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h\nindex 83159743..ac95dea5 100644\n--- a/src/ipa/rkisp1/algorithms/agc.h\n+++ b/src/ipa/rkisp1/algorithms/agc.h\n@@ -28,6 +28,7 @@ public:\n \t~Agc() = default;\n \n \tint configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override;\n+\tvoid prepare(IPAContext &context, rkisp1_params_cfg *params) override;\n \tvoid process(IPAContext &context, const rkisp1_stat_buffer *stats) override;\n \n private:\ndiff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\nindex 89d98b6c..59e868ff 100644\n--- a/src/ipa/rkisp1/rkisp1.cpp\n+++ b/src/ipa/rkisp1/rkisp1.cpp\n@@ -270,19 +270,13 @@ void IPARkISP1::processEvent(const RkISP1Event &event)\n }\n \n void IPARkISP1::queueRequest(unsigned int frame, rkisp1_params_cfg *params,\n-\t\t\t const ControlList &controls)\n+\t\t\t [[maybe_unused]] const ControlList &controls)\n {\n \t/* Prepare parameters buffer. */\n \tmemset(params, 0, sizeof(*params));\n \n-\t/* Auto Exposure on/off. */\n-\tif (controls.contains(controls::AeEnable)) {\n-\t\tautoExposure_ = controls.get(controls::AeEnable);\n-\t\tif (autoExposure_)\n-\t\t\tparams->module_ens = RKISP1_CIF_ISP_MODULE_AEC;\n-\n-\t\tparams->module_en_update = RKISP1_CIF_ISP_MODULE_AEC;\n-\t}\n+\tfor (auto const &algo : algorithms_)\n+\t\talgo->prepare(context_, params);\n \n \tRkISP1Action op;\n \top.op = ActionParamFilled;\n", "prefixes": [ "libcamera-devel", "v2", "10/11" ] }