{"id":14470,"url":"https://patchwork.libcamera.org/api/1.1/patches/14470/?format=json","web_url":"https://patchwork.libcamera.org/patch/14470/","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":"<20211108131350.130665-2-jeanmichel.hautbois@ideasonboard.com>","date":"2021-11-08T13:13:29","name":"[libcamera-devel,01/22] ipa: ipu3: Extend ipu3 ipa interface for sensor controls","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"93249d11db8f81ed7c770be4df0aaef25244fbaa","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/1.1/people/75/?format=json","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/14470/mbox/","series":[{"id":2696,"url":"https://patchwork.libcamera.org/api/1.1/series/2696/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2696","date":"2021-11-08T13:13:28","name":"IPA: IPU3: Introduce per-frame controls","version":1,"mbox":"https://patchwork.libcamera.org/series/2696/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/14470/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/14470/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 3F35FBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  8 Nov 2021 13:14:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BDE5B60423;\n\tMon,  8 Nov 2021 14:14:04 +0100 (CET)","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 C37DF6034A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  8 Nov 2021 14:13:59 +0100 (CET)","from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:c2bb:76d0:68d7:a9a5])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5FF4E1853;\n\tMon,  8 Nov 2021 14:13:59 +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=\"dv+YQdnN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1636377239;\n\tbh=wHKKLWoTGN1oJjNI1eTwCu0kK/BjSbXOLNQPYejrFbA=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=dv+YQdnNeqkG0Df0VwjWopXi91n0KnUBTstIZg5JV+xrNk1tuMb8iHJTlfGBBdii1\n\tq+tss/N34VXOQHd0xGYIxTuzdW45kxK8T2WspB6FdmC6bYgdysO6fB5mIV8j1cOt+R\n\twv0iq9HEgkFB0VnWQq2g9MvRdOZ375RVU3h0+BGE=","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Date":"Mon,  8 Nov 2021 14:13:29 +0100","Message-Id":"<20211108131350.130665-2-jeanmichel.hautbois@ideasonboard.com>","X-Mailer":"git-send-email 2.32.0","In-Reply-To":"<20211108131350.130665-1-jeanmichel.hautbois@ideasonboard.com>","References":"<20211108131350.130665-1-jeanmichel.hautbois@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 01/22] ipa: ipu3: Extend ipu3 ipa\n\tinterface for sensor controls","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":"From: Han-Lin Chen <hanlinchen@chromium.org>\n\nIPU3Event and IPU3Action use single ControlList for both libcamera and\nV4L2 controls, and it's content could be either one based on the\ncontext.  Extend IPU3Event and IPU3Action for sensor V4L2 controls, and\npreserve the original one for only libcamera Controls to make the\ncontent of an event more specific.\n\nSigned-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n[Jean-Michel: remove lensControls from the original patch]\nSigned-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n include/libcamera/ipa/ipu3.mojom     | 2 ++\n src/ipa/ipu3/ipu3.cpp                | 2 +-\n src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n 3 files changed, 4 insertions(+), 2 deletions(-)","diff":"diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\nindex 2f254ed4..16e3462e 100644\n--- a/include/libcamera/ipa/ipu3.mojom\n+++ b/include/libcamera/ipa/ipu3.mojom\n@@ -23,11 +23,13 @@ struct IPU3Event {\n \tint64 frameTimestamp;\n \tuint32 bufferId;\n \tlibcamera.ControlList controls;\n+\tlibcamera.ControlList sensorControls;\n };\n \n struct IPU3Action {\n \tIPU3Operations op;\n \tlibcamera.ControlList controls;\n+\tlibcamera.ControlList sensorControls;\n };\n \n struct IPAConfigInfo {\ndiff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\nindex 93b700bd..bcc3863b 100644\n--- a/src/ipa/ipu3/ipu3.cpp\n+++ b/src/ipa/ipu3/ipu3.cpp\n@@ -653,7 +653,7 @@ void IPAIPU3::setControls(unsigned int frame)\n \tControlList ctrls(ctrls_);\n \tctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));\n \tctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast<int32_t>(gain_));\n-\top.controls = ctrls;\n+\top.sensorControls = ctrls;\n \n \tqueueFrameAction.emit(frame, op);\n }\ndiff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex eb714aa6..8816efc5 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -1248,7 +1248,7 @@ void IPU3CameraData::queueFrameAction(unsigned int id,\n {\n \tswitch (action.op) {\n \tcase ipa::ipu3::ActionSetSensorControls: {\n-\t\tconst ControlList &controls = action.controls;\n+\t\tconst ControlList &controls = action.sensorControls;\n \t\tdelayedCtrls_->push(controls);\n \t\tbreak;\n \t}\n","prefixes":["libcamera-devel","01/22"]}