[{"id":20674,"web_url":"https://patchwork.libcamera.org/comment/20674/","msgid":"<3590607b-58fe-72a1-e497-c2548fa0d139@ideasonboard.com>","date":"2021-11-04T11:40:38","subject":"Re: [libcamera-devel] [PATCH v2 1/4] ipa: ipu3: Extend ipu3 ipa\n\tinterface for sensor and lens controls","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Han-Lin,\n\nThanks for the patch.\n\nOn 29/10/2021 13:59, Han-Lin Chen wrote:\n> IPU3Event and IPU3Action use single ControlList for both libcamera and V4L2\n> controls, and it's content could be either one based on the context.\n> Extend IPU3Event and IPU3Action for sensor and lens V4L2 controls, and preserve\n> the original one for only libcamera Controls to make the content of an event\n> more specific.\n> \n> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n> ---\n>   include/libcamera/ipa/ipu3.mojom     | 4 ++++\n>   src/ipa/ipu3/ipu3.cpp                | 2 +-\n>   src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n>   3 files changed, 6 insertions(+), 2 deletions(-)\n> \n> diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\n> index 2f254ed4..cc0d822f 100644\n> --- a/include/libcamera/ipa/ipu3.mojom\n> +++ b/include/libcamera/ipa/ipu3.mojom\n> @@ -23,11 +23,15 @@ struct IPU3Event {\n>   \tint64 frameTimestamp;\n>   \tuint32 bufferId;\n>   \tlibcamera.ControlList controls;\n> +\tlibcamera.ControlList sensorControls;\n> +\tlibcamera.ControlList lensControls;\n\nI would split sensorControls adding and lensControls adding in two patch \nseries, as the first one could be merged quickly, and could be useful \nalso for the open IPA :-). One series would be \"add sensorControls to \nuse effective sensor values\" and the second (biggest one) would then add \n(on top of it) the lens controls.\n\n>   };\n>   \n>   struct IPU3Action {\n>   \tIPU3Operations op;\n>   \tlibcamera.ControlList controls;\n> +\tlibcamera.ControlList sensorControls;\n> +\tlibcamera.ControlList lensControls;\n>   };\n>   \n>   struct IPAConfigInfo {\n> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> index 5c51607d..6775570e 100644\n> --- a/src/ipa/ipu3/ipu3.cpp\n> +++ b/src/ipa/ipu3/ipu3.cpp\n> @@ -646,7 +646,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>   }\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 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>","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 EAE9CBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  4 Nov 2021 11:40:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 37FBE6033D;\n\tThu,  4 Nov 2021 12:40:42 +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 5DBD06032C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 Nov 2021 12:40:41 +0100 (CET)","from [IPV6:2a01:e0a:169:7140:3875:cc64:ce12:aabc] (unknown\n\t[IPv6:2a01:e0a:169:7140:3875:cc64:ce12:aabc])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 12923501;\n\tThu,  4 Nov 2021 12:40:41 +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=\"HGXoVB7I\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1636026041;\n\tbh=hASCSTJ9RKumIP2dkuhSzeOszFiSvl843U0nKFq0dT4=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=HGXoVB7IPJ4JZHq6sAl93bBLhiEy4IKcRvmusdKpGrxNvrS9wAMX9/QPxUdK4RTNw\n\teI99ezFl/4T26Gx9+vmsj0HXTbdZqiyVF7UHDubys5npcQYprbms2788PtoFhyL7iI\n\t3Utl0eNABTvckKEOnpK2qR4Q3jY0A9kE66L7JjF0=","Message-ID":"<3590607b-58fe-72a1-e497-c2548fa0d139@ideasonboard.com>","Date":"Thu, 4 Nov 2021 12:40:38 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.1.2","Content-Language":"en-US","To":"Han-Lin Chen <hanlinchen@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20211029115917.2467936-1-hanlinchen@chromium.org>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","In-Reply-To":"<20211029115917.2467936-1-hanlinchen@chromium.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 1/4] ipa: ipu3: Extend ipu3 ipa\n\tinterface for sensor and lens 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>"}},{"id":20677,"web_url":"https://patchwork.libcamera.org/comment/20677/","msgid":"<bdd0bb18-0087-dd27-f8ef-13ffad913a95@ideasonboard.com>","date":"2021-11-04T11:54:48","subject":"Re: [libcamera-devel] [PATCH v2 4/4] ipu3: ipa: Allow IPA to apply\n\tcontrols to the lens device","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Han-Lin,\n\nOn 29/10/2021 13:59, Han-Lin Chen wrote:\n> Allow IPA to apply controls to the lens device.\n> \n> Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n> ---\n>   meson.build                          |  6 ++++++\n>   src/libcamera/pipeline/ipu3/cio2.cpp | 30 ++++++++++++++++++++++++++++\n>   src/libcamera/pipeline/ipu3/cio2.h   |  3 +++\n>   src/libcamera/pipeline/ipu3/ipu3.cpp |  9 +++++++--\n>   4 files changed, 46 insertions(+), 2 deletions(-)\n> \n> diff --git a/meson.build b/meson.build\n> index 7892a9e3..2a4b68a2 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -108,6 +108,12 @@ if cc.has_argument('-Wno-c99-designator')\n>       ]\n>   endif\n>   \n> +if get_option('android_platform') == 'cros'\n> +    common_arguments += [\n> +        '-DOS_CHROMEOS',\n> +    ]\n> +endif\n> +\n>   c_arguments += common_arguments\n>   cpp_arguments += common_arguments\n>   \n> diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp\n> index 59dda56b..143e2a95 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.cpp\n> +++ b/src/libcamera/pipeline/ipu3/cio2.cpp\n> @@ -16,6 +16,7 @@\n>   #include <libcamera/geometry.h>\n>   #include <libcamera/stream.h>\n>   \n> +#include \"libcamera/internal/camera_lens.h\"\n>   #include \"libcamera/internal/camera_sensor.h\"\n>   #include \"libcamera/internal/framebuffer.h\"\n>   #include \"libcamera/internal/media_device.h\"\n> @@ -159,6 +160,35 @@ int CIO2Device::init(const MediaDevice *media, unsigned int index)\n>   \t\treturn -EINVAL;\n>   \t}\n>   \n> +#if defined(OS_CHROMEOS)\n\nWhat is the status about Kieran's comment for the media graph in v1 ?\nI still suggest to split lens controls in a separate patch series as the \nsensor controls could probably be merged before... ?\n\n> +\t/*\n> +\t * \\todo Read the lens model from the sensor itself or from a device database.\n> +\t * For now use default values taken from ChromeOS.\n> +\t */\n> +\tstatic std::unordered_map<std::string, std::string> sensorLens = {\n> +\t\t{ \"ov13858\", \"dw9714\" },\n> +\t\t{ \"imx258\", \"dw9807\" },\n> +\t\t{ \"imx355\", \"ak7375\" }\n> +\t};\n> +\n> +\tauto it = sensorLens.find(sensor_->model());\n> +\tif (it != sensorLens.end()) {\n> +\t\tconst std::vector<MediaEntity *> &entities = media->entities();\n> +\t\tfor (auto ent: entities) {\n> +\t\t\tif (ent->function() == MEDIA_ENT_F_LENS) {\n> +\t\t\t\tlens_ = std::make_unique<CameraLens>(ent);\n> +\t\t\t\tret = lens_->init();\n> +\t\t\t\tif (!ret && lens_->model() == it->second) {\n> +\t\t\t\t\tbreak;\n> +\t\t\t\t}\n> +\t\t\t\tlens_.reset();\n> +\t\t\t}\n> +\t\t\tif (!lens_)\n> +\t\t\t\tLOG(IPU3, Warning) << \"Lens device \" << it->second << \" not found\";\n> +\t\t}\n> +\t}\n> +#endif\n> +\n>   \t/*\n>   \t * \\todo Define when to open and close video device nodes, as they\n>   \t * might impact on power consumption.\n> diff --git a/src/libcamera/pipeline/ipu3/cio2.h b/src/libcamera/pipeline/ipu3/cio2.h\n> index ba8f0052..635566c8 100644\n> --- a/src/libcamera/pipeline/ipu3/cio2.h\n> +++ b/src/libcamera/pipeline/ipu3/cio2.h\n> @@ -18,6 +18,7 @@\n>   \n>   namespace libcamera {\n>   \n> +class CameraLens;\n>   class CameraSensor;\n>   class FrameBuffer;\n>   class MediaDevice;\n> @@ -52,6 +53,7 @@ public:\n>   \tint stop();\n>   \n>   \tCameraSensor *sensor() { return sensor_.get(); }\n> +\tCameraLens *lens() { return lens_.get(); }\n>   \tconst CameraSensor *sensor() const { return sensor_.get(); }\n>   \n>   \tFrameBuffer *queueBuffer(Request *request, FrameBuffer *rawBuffer);\n> @@ -67,6 +69,7 @@ private:\n>   \tvoid cio2BufferReady(FrameBuffer *buffer);\n>   \n>   \tstd::unique_ptr<CameraSensor> sensor_;\n> +\tstd::unique_ptr<CameraLens> lens_;\n>   \tstd::unique_ptr<V4L2Subdevice> csi2_;\n>   \tstd::unique_ptr<V4L2VideoDevice> output_;\n>   \n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 6a7f5b9a..6c44957f 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -24,6 +24,7 @@\n>   #include <libcamera/stream.h>\n>   \n>   #include \"libcamera/internal/camera.h\"\n> +#include \"libcamera/internal/camera_lens.h\"\n>   #include \"libcamera/internal/camera_sensor.h\"\n>   #include \"libcamera/internal/delayed_controls.h\"\n>   #include \"libcamera/internal/device_enumerator.h\"\n> @@ -1250,8 +1251,12 @@ void IPU3CameraData::queueFrameAction(unsigned int id,\n>   {\n>   \tswitch (action.op) {\n>   \tcase ipa::ipu3::ActionSetSensorControls: {\n> -\t\tconst ControlList &controls = action.sensorControls;\n> -\t\tdelayedCtrls_->push(controls);\n> +\t\tconst ControlList &sensorControls = action.sensorControls;\n> +\t\tdelayedCtrls_->push(sensorControls);\n> +\t\tif (cio2_.lens()) {\n> +\t\t\tControlList lensControls = action.lensControls;\n> +\t\t\tcio2_.lens()->setControls(&lensControls);\n> +\t\t}\n>   \t\tbreak;\n>   \t}\n>   \tcase ipa::ipu3::ActionParamFilled: {\n>","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 9B2CCBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  4 Nov 2021 11:54:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 118EC6032F;\n\tThu,  4 Nov 2021 12:54:52 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D40A76032C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 Nov 2021 12:54:50 +0100 (CET)","from [IPV6:2a01:e0a:169:7140:3875:cc64:ce12:aabc] (unknown\n\t[IPv6:2a01:e0a:169:7140:3875:cc64:ce12:aabc])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 77FAFE52;\n\tThu,  4 Nov 2021 12:54:50 +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=\"pZreFtwY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1636026890;\n\tbh=cV4BBkKziz1mtyd0jqZOznvbHZasauuQQuWAusdUIyY=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=pZreFtwYeOKfrhfHdF047iy85tLnu24ynM3/qywro2jRguRCZSAXSBnrlIPkQQiKU\n\ttLerDftnPGOQfyrdNxBi1kVesNlcTxraVQM76E408qpuGWWH6ICAC96ic1SCcfgeQa\n\tcZUTnWpg4oR2QfNn0Sx/0mTcc6JOvYt1XdWbq/A8=","Message-ID":"<bdd0bb18-0087-dd27-f8ef-13ffad913a95@ideasonboard.com>","Date":"Thu, 4 Nov 2021 12:54:48 +0100","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.1.2","Content-Language":"en-US","To":"Han-Lin Chen <hanlinchen@chromium.org>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20211029115917.2467936-1-hanlinchen@chromium.org>\n\t<20211029115917.2467936-4-hanlinchen@chromium.org>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","In-Reply-To":"<20211029115917.2467936-4-hanlinchen@chromium.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 4/4] ipu3: ipa: Allow IPA to apply\n\tcontrols to the lens device","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>"}},{"id":20797,"web_url":"https://patchwork.libcamera.org/comment/20797/","msgid":"<CAJAuwM=OKTZ0W+891DU54DGT8PMOZjvxeE4FvQEGtD2us=tV4g@mail.gmail.com>","date":"2021-11-10T12:26:21","subject":"Re: [libcamera-devel] [PATCH v2 1/4] ipa: ipu3: Extend ipu3 ipa\n\tinterface for sensor and lens controls","submitter":{"id":98,"url":"https://patchwork.libcamera.org/api/people/98/","name":"Hanlin Chen","email":"hanlinchen@chromium.org"},"content":"Hi Jean-Michel,\nI'm sorry for the late reply.\n\nOn Thu, Nov 4, 2021 at 7:40 PM Jean-Michel Hautbois\n<jeanmichel.hautbois@ideasonboard.com> wrote:\n>\n> Hi Han-Lin,\n>\n> Thanks for the patch.\n>\n> On 29/10/2021 13:59, Han-Lin Chen wrote:\n> > IPU3Event and IPU3Action use single ControlList for both libcamera and V4L2\n> > controls, and it's content could be either one based on the context.\n> > Extend IPU3Event and IPU3Action for sensor and lens V4L2 controls, and preserve\n> > the original one for only libcamera Controls to make the content of an event\n> > more specific.\n> >\n> > Signed-off-by: Han-Lin Chen <hanlinchen@chromium.org>\n> > ---\n> >   include/libcamera/ipa/ipu3.mojom     | 4 ++++\n> >   src/ipa/ipu3/ipu3.cpp                | 2 +-\n> >   src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n> >   3 files changed, 6 insertions(+), 2 deletions(-)\n> >\n> > diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\n> > index 2f254ed4..cc0d822f 100644\n> > --- a/include/libcamera/ipa/ipu3.mojom\n> > +++ b/include/libcamera/ipa/ipu3.mojom\n> > @@ -23,11 +23,15 @@ struct IPU3Event {\n> >       int64 frameTimestamp;\n> >       uint32 bufferId;\n> >       libcamera.ControlList controls;\n> > +     libcamera.ControlList sensorControls;\n> > +     libcamera.ControlList lensControls;\n>\n> I would split sensorControls adding and lensControls adding in two patch\n> series, as the first one could be merged quickly, and could be useful\n> also for the open IPA :-). One series would be \"add sensorControls to\n> use effective sensor values\" and the second (biggest one) would then add\n> (on top of it) the lens controls.\nThanks! The patches looks great to me.\n>\n> >   };\n> >\n> >   struct IPU3Action {\n> >       IPU3Operations op;\n> >       libcamera.ControlList controls;\n> > +     libcamera.ControlList sensorControls;\n> > +     libcamera.ControlList lensControls;\n> >   };\n> >\n> >   struct IPAConfigInfo {\n> > diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> > index 5c51607d..6775570e 100644\n> > --- a/src/ipa/ipu3/ipu3.cpp\n> > +++ b/src/ipa/ipu3/ipu3.cpp\n> > @@ -646,7 +646,7 @@ void IPAIPU3::setControls(unsigned int frame)\n> >       ControlList ctrls(ctrls_);\n> >       ctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));\n> >       ctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast<int32_t>(gain_));\n> > -     op.controls = ctrls;\n> > +     op.sensorControls = ctrls;\n> >\n> >       queueFrameAction.emit(frame, op);\n> >   }\n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index 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> >       switch (action.op) {\n> >       case ipa::ipu3::ActionSetSensorControls: {\n> > -             const ControlList &controls = action.controls;\n> > +             const ControlList &controls = action.sensorControls;\n> >               delayedCtrls_->push(controls);\n> >               break;\n> >       }\n> >","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 4A958BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 10 Nov 2021 12:26:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6AD3E6035D;\n\tWed, 10 Nov 2021 13:26:34 +0100 (CET)","from mail-ot1-x329.google.com (mail-ot1-x329.google.com\n\t[IPv6:2607:f8b0:4864:20::329])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 668506033C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Nov 2021 13:26:33 +0100 (CET)","by mail-ot1-x329.google.com with SMTP id\n\tp11-20020a9d4e0b000000b0055a5741bff7so3640559otf.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 10 Nov 2021 04:26:33 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"VTzdpudV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=vXkfGo8e15TYHTOBVtsA03RwmkHLV/Q6vx9nlP5ahck=;\n\tb=VTzdpudVpY34Oberq7NqcPuvXWtuWwtMy39HwHnIDS6dGnwhD2iU1Mqa/WIQVyZcKm\n\tH2Q+04Wmao3OWcXrijHIdsmCWmy00zfGUI0XuLOuZ7tmqv4q8OUlOXJfjNUjd2Ddnwxz\n\tDNJi4BOXqU+ggzdvS3mFQ1rYbwbdOvLnsvJoE=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=vXkfGo8e15TYHTOBVtsA03RwmkHLV/Q6vx9nlP5ahck=;\n\tb=pvZFxt60/JE3naK0UfDxZFk8f1az2TBBD/G9A8GxBHWocyUMvt9/foQGLejTljLVe/\n\ttOFr37wuYB3sncOd1RInF0uCNSiwfPmv3RKLYa8PgQrO89Q4UYzkjQ0TshoMV181EvDW\n\tmgzbEO8CRdoEGD9exhI8zpi5QQ7U6bBzk8CbeKzo8kdFVvia3KqBE0HmH7Cb1dsKdv10\n\tmdIBRVCXwamK9KmffXy+t3UEDirx9w62wW9vKAwoJz0ofQvXaFI06Uv+rDlJQ54OW9L1\n\tlJ2y+2dTPqJYBCp/fhYn6mRtvEHarM194qSuBiir3TEUeN648RfbqPyZtC4lW6QngZ+G\n\twB+w==","X-Gm-Message-State":"AOAM532Bg6WcGOSYTDmZl3+Mr5Gb1j202oKe0NdNpTAdniAXrX3usgmi\n\tZMG+jYdxQyBHZq04VOIrFhyXs2U8f5LcWH5EvluJJw==","X-Google-Smtp-Source":"ABdhPJyAWihjnwA1sxYwOx1D3oeZFe+QDGHujuvzEOin7UyqZIxWOGpq41dT44gTemXaF5gjXKRBxDrM+X8BPXEz6kM=","X-Received":"by 2002:a9d:62ce:: with SMTP id z14mr7806220otk.56.1636547191782;\n\tWed, 10 Nov 2021 04:26:31 -0800 (PST)","MIME-Version":"1.0","References":"<20211029115917.2467936-1-hanlinchen@chromium.org>\n\t<3590607b-58fe-72a1-e497-c2548fa0d139@ideasonboard.com>","In-Reply-To":"<3590607b-58fe-72a1-e497-c2548fa0d139@ideasonboard.com>","From":"Hanlin Chen <hanlinchen@chromium.org>","Date":"Wed, 10 Nov 2021 20:26:21 +0800","Message-ID":"<CAJAuwM=OKTZ0W+891DU54DGT8PMOZjvxeE4FvQEGtD2us=tV4g@mail.gmail.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 1/4] ipa: ipu3: Extend ipu3 ipa\n\tinterface for sensor and lens 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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]