[{"id":17035,"web_url":"https://patchwork.libcamera.org/comment/17035/","msgid":"<20210520025458.GF902042@pyrite.rasen.tech>","date":"2021-05-20T02:54:58","subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"On Wed, May 19, 2021 at 03:49:52PM +0530, Umang Jain wrote:\n> IPAConfigInfo is a consolidated data structure passed from IPU3\n> pipeline-handler to IPU3 IPA. The structure can be extended with\n> additional parameters to accommodate the requirements of multiple\n> IPU3 IPA modules.\n> \n> Adapt the in-tree IPU3 IPA to use IPAConfigInfo as well.\n> \n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  include/libcamera/ipa/ipu3.mojom     | 10 ++++++++--\n>  src/ipa/ipu3/ipu3.cpp                | 14 ++++++--------\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +++++++---\n>  3 files changed, 21 insertions(+), 13 deletions(-)\n> \n> diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\n> index a717b1e6..e78f9cbb 100644\n> --- a/include/libcamera/ipa/ipu3.mojom\n> +++ b/include/libcamera/ipa/ipu3.mojom\n> @@ -25,13 +25,19 @@ struct IPU3Action {\n>  \tlibcamera.ControlList controls;\n>  };\n>  \n> +struct IPAConfigInfo {\n> +\tlibcamera.IPACameraSensorInfo sensorInfo;\n> +\tmap<uint32, ControlInfoMap> entityControls;\n> +\tlibcamera.Size bdsOutputSize;\n> +\tlibcamera.Size iif;\n> +};\n> +\n>  interface IPAIPU3Interface {\n>  \tinit(libcamera.IPASettings settings) => (int32 ret);\n>  \tstart() => (int32 ret);\n>  \tstop();\n>  \n> -\tconfigure(map<uint32, libcamera.ControlInfoMap> entityControls,\n> -\t\t  libcamera.Size bdsOutputSize) => ();\n> +\tconfigure(IPAConfigInfo configInfo) => ();\n>  \n>  \tmapBuffers(array<libcamera.IPABuffer> buffers);\n>  \tunmapBuffers(array<uint32> ids);\n> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> index f5343547..769c24d3 100644\n> --- a/src/ipa/ipu3/ipu3.cpp\n> +++ b/src/ipa/ipu3/ipu3.cpp\n> @@ -43,8 +43,7 @@ public:\n>  \tint start() override;\n>  \tvoid stop() override {}\n>  \n> -\tvoid configure(const std::map<uint32_t, ControlInfoMap> &entityControls,\n> -\t\t       const Size &bdsOutputSize) override;\n> +\tvoid configure(const IPAConfigInfo &configInfo) override;\n>  \n>  \tvoid mapBuffers(const std::vector<IPABuffer> &buffers) override;\n>  \tvoid unmapBuffers(const std::vector<unsigned int> &ids) override;\n> @@ -139,13 +138,12 @@ void IPAIPU3::calculateBdsGrid(const Size &bdsOutputSize)\n>  \t\t\t    << (int)bdsGrid_.height << \" << \" << (int)bdsGrid_.block_height_log2 << \")\";\n>  }\n>  \n> -void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls,\n> -\t\t\tconst Size &bdsOutputSize)\n> +void IPAIPU3::configure(const IPAConfigInfo &configInfo)\n>  {\n> -\tif (entityControls.empty())\n> +\tif (configInfo.entityControls.empty())\n>  \t\treturn;\n>  \n> -\tctrls_ = entityControls.at(0);\n> +\tctrls_ = configInfo.entityControls.at(0);\n>  \n>  \tconst auto itExp = ctrls_.find(V4L2_CID_EXPOSURE);\n>  \tif (itExp == ctrls_.end()) {\n> @@ -169,10 +167,10 @@ void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls\n>  \n>  \tparams_ = {};\n>  \n> -\tcalculateBdsGrid(bdsOutputSize);\n> +\tcalculateBdsGrid(configInfo.bdsOutputSize);\n>  \n>  \tawbAlgo_ = std::make_unique<IPU3Awb>();\n> -\tawbAlgo_->initialise(params_, bdsOutputSize, bdsGrid_);\n> +\tawbAlgo_->initialise(params_, configInfo.bdsOutputSize, bdsGrid_);\n>  \n>  \tagcAlgo_ = std::make_unique<IPU3Agc>();\n>  \tagcAlgo_->initialise(bdsGrid_);\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 98c6160f..5b15ca90 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -633,9 +633,13 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>  \t}\n>  \n> -\tstd::map<uint32_t, ControlInfoMap> entityControls;\n> -\tentityControls.emplace(0, data->cio2_.sensor()->controls());\n> -\tdata->ipa_->configure(entityControls, config->imguConfig().bds);\n> +\tipa::ipu3::IPAConfigInfo configInfo;\n> +\tconfigInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());\n> +\tconfigInfo.sensorInfo = sensorInfo;\n> +\tconfigInfo.bdsOutputSize = config->imguConfig().bds;\n> +\tconfigInfo.iif = config->imguConfig().iif;\n> +\n> +\tdata->ipa_->configure(configInfo);\n>  \n>  \treturn 0;\n>  }\n> -- \n> 2.26.2\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 0C7D3C31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 May 2021 02:55:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5E57E68918;\n\tThu, 20 May 2021 04:55:08 +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 1957D6050F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 May 2021 04:55:06 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8A17B8DF;\n\tThu, 20 May 2021 04:55:04 +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=\"ZIAbiSuS\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621479305;\n\tbh=C+kP+wdXOzLJoBKttQ8g4nykj8gTClXMARD9G1da6R4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ZIAbiSuSYiJgVVkaWL5l7346gufkco2dsMUV5/cVE8QI63AXiecfioQyCwN9xhde/\n\tQWy5B1R+dSSzmyQn8Pj529vVXXYF8h4uY/NzgqNEv05rP16KxsiLoRScuwLF3Oqggz\n\tNwNWCooS3IM/CLLrpJZTeXlwVkDKgIjAGWkXwI4c=","Date":"Thu, 20 May 2021 11:54:58 +0900","From":"paul.elder@ideasonboard.com","To":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<20210520025458.GF902042@pyrite.rasen.tech>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-6-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210519101954.77711-6-umang.jain@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","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>"}},{"id":17043,"web_url":"https://patchwork.libcamera.org/comment/17043/","msgid":"<8404cb75-890f-1b9a-4ad6-c8b4a40bc494@ideasonboard.com>","date":"2021-05-20T08:52:30","subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Umang,\n\nThanks for the patch !\n\nOn 19/05/2021 12:19, Umang Jain wrote:\n> IPAConfigInfo is a consolidated data structure passed from IPU3\n> pipeline-handler to IPU3 IPA. The structure can be extended with\n> additional parameters to accommodate the requirements of multiple\n> IPU3 IPA modules.\n> \n> Adapt the in-tree IPU3 IPA to use IPAConfigInfo as well.\n> \n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\nReviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n\n> ---\n>  include/libcamera/ipa/ipu3.mojom     | 10 ++++++++--\n>  src/ipa/ipu3/ipu3.cpp                | 14 ++++++--------\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +++++++---\n>  3 files changed, 21 insertions(+), 13 deletions(-)\n> \n> diff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\n> index a717b1e6..e78f9cbb 100644\n> --- a/include/libcamera/ipa/ipu3.mojom\n> +++ b/include/libcamera/ipa/ipu3.mojom\n> @@ -25,13 +25,19 @@ struct IPU3Action {\n>  \tlibcamera.ControlList controls;\n>  };\n>  \n> +struct IPAConfigInfo {\n> +\tlibcamera.IPACameraSensorInfo sensorInfo;\n> +\tmap<uint32, ControlInfoMap> entityControls;\n> +\tlibcamera.Size bdsOutputSize;\n> +\tlibcamera.Size iif;\n> +};\n> +\n>  interface IPAIPU3Interface {\n>  \tinit(libcamera.IPASettings settings) => (int32 ret);\n>  \tstart() => (int32 ret);\n>  \tstop();\n>  \n> -\tconfigure(map<uint32, libcamera.ControlInfoMap> entityControls,\n> -\t\t  libcamera.Size bdsOutputSize) => ();\n> +\tconfigure(IPAConfigInfo configInfo) => ();\n>  \n>  \tmapBuffers(array<libcamera.IPABuffer> buffers);\n>  \tunmapBuffers(array<uint32> ids);\n> diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\n> index f5343547..769c24d3 100644\n> --- a/src/ipa/ipu3/ipu3.cpp\n> +++ b/src/ipa/ipu3/ipu3.cpp\n> @@ -43,8 +43,7 @@ public:\n>  \tint start() override;\n>  \tvoid stop() override {}\n>  \n> -\tvoid configure(const std::map<uint32_t, ControlInfoMap> &entityControls,\n> -\t\t       const Size &bdsOutputSize) override;\n> +\tvoid configure(const IPAConfigInfo &configInfo) override;\n>  \n>  \tvoid mapBuffers(const std::vector<IPABuffer> &buffers) override;\n>  \tvoid unmapBuffers(const std::vector<unsigned int> &ids) override;\n> @@ -139,13 +138,12 @@ void IPAIPU3::calculateBdsGrid(const Size &bdsOutputSize)\n>  \t\t\t    << (int)bdsGrid_.height << \" << \" << (int)bdsGrid_.block_height_log2 << \")\";\n>  }\n>  \n> -void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls,\n> -\t\t\tconst Size &bdsOutputSize)\n> +void IPAIPU3::configure(const IPAConfigInfo &configInfo)\n>  {\n> -\tif (entityControls.empty())\n> +\tif (configInfo.entityControls.empty())\n>  \t\treturn;\n>  \n> -\tctrls_ = entityControls.at(0);\n> +\tctrls_ = configInfo.entityControls.at(0);\n>  \n>  \tconst auto itExp = ctrls_.find(V4L2_CID_EXPOSURE);\n>  \tif (itExp == ctrls_.end()) {\n> @@ -169,10 +167,10 @@ void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls\n>  \n>  \tparams_ = {};\n>  \n> -\tcalculateBdsGrid(bdsOutputSize);\n> +\tcalculateBdsGrid(configInfo.bdsOutputSize);\n>  \n>  \tawbAlgo_ = std::make_unique<IPU3Awb>();\n> -\tawbAlgo_->initialise(params_, bdsOutputSize, bdsGrid_);\n> +\tawbAlgo_->initialise(params_, configInfo.bdsOutputSize, bdsGrid_);\n>  \n>  \tagcAlgo_ = std::make_unique<IPU3Agc>();\n>  \tagcAlgo_->initialise(bdsGrid_);\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 98c6160f..5b15ca90 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -633,9 +633,13 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>  \t}\n>  \n> -\tstd::map<uint32_t, ControlInfoMap> entityControls;\n> -\tentityControls.emplace(0, data->cio2_.sensor()->controls());\n> -\tdata->ipa_->configure(entityControls, config->imguConfig().bds);\n> +\tipa::ipu3::IPAConfigInfo configInfo;\n> +\tconfigInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());\n> +\tconfigInfo.sensorInfo = sensorInfo;\n> +\tconfigInfo.bdsOutputSize = config->imguConfig().bds;\n> +\tconfigInfo.iif = config->imguConfig().iif;\n> +\n> +\tdata->ipa_->configure(configInfo);\n>  \n>  \treturn 0;\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 8F379C31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 May 2021 08:52:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E30E66891E;\n\tThu, 20 May 2021 10:52:32 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B440068919\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 May 2021 10:52:31 +0200 (CEST)","from [IPv6:2a01:e0a:169:7140:9d6a:69b6:9b62:2634] (unknown\n\t[IPv6:2a01:e0a:169:7140:9d6a:69b6:9b62:2634])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 49928D41;\n\tThu, 20 May 2021 10:52:31 +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=\"ouSHLZA4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621500751;\n\tbh=LhW3iu+OoVpyNub0vVB8ORJLZw6ukshFpGZ/7FavtcI=;\n\th=To:References:From:Subject:Date:In-Reply-To:From;\n\tb=ouSHLZA4oP/NyN6fHKHvoklnAlrXQEVZDivp5sLyaOweE0fBHxVYhKgOCaX2ECw3B\n\tiB0oDTIXTAyeC2+/oI9ZaDPpyFasgCYBXVlTsWR8WVw2CE3pPhyuSy1EmYe8+qDenc\n\tCy21EuWaFSh78Yj/5hmCbcVsKqqqSm78DEUyiGMo=","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-6-umang.jain@ideasonboard.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<8404cb75-890f-1b9a-4ad6-c8b4a40bc494@ideasonboard.com>","Date":"Thu, 20 May 2021 10:52:30 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.8.1","MIME-Version":"1.0","In-Reply-To":"<20210519101954.77711-6-umang.jain@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"8bit","Subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","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":17076,"web_url":"https://patchwork.libcamera.org/comment/17076/","msgid":"<20210521093621.kydye5547gmsku3r@uno.localdomain>","date":"2021-05-21T09:36:21","subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hello,\n   this all looks good, but I have a kind of unrelated question...\n\nOn Wed, May 19, 2021 at 03:49:52PM +0530, Umang Jain wrote:\n> IPAConfigInfo is a consolidated data structure passed from IPU3\n> pipeline-handler to IPU3 IPA. The structure can be extended with\n> additional parameters to accommodate the requirements of multiple\n> IPU3 IPA modules.\n>\n> Adapt the in-tree IPU3 IPA to use IPAConfigInfo as well.\n>\n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\n> ---\n>  include/libcamera/ipa/ipu3.mojom     | 10 ++++++++--\n>  src/ipa/ipu3/ipu3.cpp                | 14 ++++++--------\n>  src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +++++++---\n>  3 files changed, 21 insertions(+), 13 deletions(-)\n>\n\n[snip]\n\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -633,9 +633,13 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>  \t\treturn ret;\n>  \t}\n>\n> -\tstd::map<uint32_t, ControlInfoMap> entityControls;\n> -\tentityControls.emplace(0, data->cio2_.sensor()->controls());\n> -\tdata->ipa_->configure(entityControls, config->imguConfig().bds);\n> +\tipa::ipu3::IPAConfigInfo configInfo;\n> +\tconfigInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());\n> +\tconfigInfo.sensorInfo = sensorInfo;\n> +\tconfigInfo.bdsOutputSize = config->imguConfig().bds;\n> +\tconfigInfo.iif = config->imguConfig().iif;\n> +\n> +\tdata->ipa_->configure(configInfo);\n\nAre we aware the if raw-only the function bails out earlier and the\nipa is never configured, right ?\n\nThanks\n  j\n\n>\n>  \treturn 0;\n>  }\n> --\n> 2.26.2\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 2A1DAC31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 09:35:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E527C6891C;\n\tFri, 21 May 2021 11:35:37 +0200 (CEST)","from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net\n\t[217.70.183.201])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4407F68918\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 11:35:36 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay8-d.mail.gandi.net (Postfix) with ESMTPSA id B86371BF212;\n\tFri, 21 May 2021 09:35:35 +0000 (UTC)"],"Date":"Fri, 21 May 2021 11:36:21 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<20210521093621.kydye5547gmsku3r@uno.localdomain>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-6-umang.jain@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210519101954.77711-6-umang.jain@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","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>"}},{"id":17082,"web_url":"https://patchwork.libcamera.org/comment/17082/","msgid":"<3dec7aa0-e4b6-0e16-ece8-5feb7263fe81@ideasonboard.com>","date":"2021-05-21T10:32:09","subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 21/05/2021 10:36, Jacopo Mondi wrote:\n> Hello,\n>    this all looks good, but I have a kind of unrelated question...\n> \n> On Wed, May 19, 2021 at 03:49:52PM +0530, Umang Jain wrote:\n>> IPAConfigInfo is a consolidated data structure passed from IPU3\n>> pipeline-handler to IPU3 IPA. The structure can be extended with\n>> additional parameters to accommodate the requirements of multiple\n>> IPU3 IPA modules.\n>>\n>> Adapt the in-tree IPU3 IPA to use IPAConfigInfo as well.\n>>\n>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> \n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n>> ---\n>>  include/libcamera/ipa/ipu3.mojom     | 10 ++++++++--\n>>  src/ipa/ipu3/ipu3.cpp                | 14 ++++++--------\n>>  src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +++++++---\n>>  3 files changed, 21 insertions(+), 13 deletions(-)\n>>\n> \n> [snip]\n> \n>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n>> @@ -633,9 +633,13 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)\n>>  \t\treturn ret;\n>>  \t}\n>>\n>> -\tstd::map<uint32_t, ControlInfoMap> entityControls;\n>> -\tentityControls.emplace(0, data->cio2_.sensor()->controls());\n>> -\tdata->ipa_->configure(entityControls, config->imguConfig().bds);\n>> +\tipa::ipu3::IPAConfigInfo configInfo;\n>> +\tconfigInfo.entityControls.emplace(0, data->cio2_.sensor()->controls());\n>> +\tconfigInfo.sensorInfo = sensorInfo;\n>> +\tconfigInfo.bdsOutputSize = config->imguConfig().bds;\n>> +\tconfigInfo.iif = config->imguConfig().iif;\n>> +\n>> +\tdata->ipa_->configure(configInfo);\n> \n> Are we aware the if raw-only the function bails out earlier and the\n> ipa is never configured, right ?\n\nThat sounds bad, but indeed an unrelated bug. If we don't have a bug\nreport for that could you create one?\n\n--\nKieran\n\n\n> \n> Thanks\n>   j\n> \n>>\n>>  \treturn 0;\n>>  }\n>> --\n>> 2.26.2\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 17EEAC31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 10:32:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 75AB76891D;\n\tFri, 21 May 2021 12:32:15 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4044068911\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 12:32:13 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D6050ACC;\n\tFri, 21 May 2021 12:32:12 +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=\"NJKTAwEI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621593133;\n\tbh=R6IZEmIJBH0oootKf7JVrZSFhqfRpXZFn3qrlFQLqvs=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=NJKTAwEIvoFWIaxuKBL5K//3WXUIZkAoZljTcg2NwcgFw/L88NDJt5vkw3u9B8i5f\n\t+x8HgDHafqoeNRfRvBNp682ECDjMGUYLEP7qY/WyvWSbkvHGmzu/FPG4e7hqRW99h/\n\tiLy4QHeAr9NvwI8tSNnFw2LPGY4beASQb+ariqZU=","To":"Jacopo Mondi <jacopo@jmondi.org>,\n\tUmang Jain <umang.jain@ideasonboard.com>","References":"<20210519101954.77711-1-umang.jain@ideasonboard.com>\n\t<20210519101954.77711-6-umang.jain@ideasonboard.com>\n\t<20210521093621.kydye5547gmsku3r@uno.localdomain>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<3dec7aa0-e4b6-0e16-ece8-5feb7263fe81@ideasonboard.com>","Date":"Fri, 21 May 2021 11:32:09 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.8.1","MIME-Version":"1.0","In-Reply-To":"<20210521093621.kydye5547gmsku3r@uno.localdomain>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v2 5/7] ipa: ipu3: Introduce\n\tIPAConfigInfo in IPC","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>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]