[{"id":27117,"web_url":"https://patchwork.libcamera.org/comment/27117/","msgid":"<168450946008.3378917.1162738260367196665@Monstersaurus>","date":"2023-05-19T15:17:40","subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Benjamin Bara via libcamera-devel (2023-05-19 15:51:09)\n> From: Benjamin Bara <benjamin.bara@skidata.com>\n> \n> As the sensor's analogue gain range is known (read-out in\n> IPARkISP1::configure()), drop the limiting hard-coded range.\n> This enables better performance in low-light conditions for sensors with\n> a higher gain (e.g. the imx327).\n> \n> Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>\n> ---\n>  src/ipa/rkisp1/algorithms/agc.cpp | 19 +++----------------\n>  1 file changed, 3 insertions(+), 16 deletions(-)\n> \n> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> index 22f70aba..a4e5500e 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> @@ -36,15 +36,6 @@ namespace ipa::rkisp1::algorithms {\n>  \n>  LOG_DEFINE_CATEGORY(RkISP1Agc)\n>  \n> -/*\n> - * Limits for analogue gain values\n> - *\n> - * \\todo Remove the hard-coded limits and let the sensor helper specify\n> - * the minimum and maximum allowed gain values.\n> - */\n> -static constexpr double kMinAnalogueGain = 1.0;\n> -static constexpr double kMaxAnalogueGain = 16.0;\n> -\n>  /* \\todo Honour the FrameDurationLimits control instead of hardcoding a limit */\n>  static constexpr utils::Duration kMaxShutterSpeed = 60ms;\n>  \n> @@ -80,9 +71,7 @@ Agc::Agc()\n>  int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n>  {\n>         /* Configure the default exposure and gain. */\n> -       context.activeState.agc.automatic.gain =\n> -               std::max(context.configuration.sensor.minAnalogueGain,\n> -                        kMinAnalogueGain);\n> +       context.activeState.agc.automatic.gain = context.configuration.sensor.minAnalogueGain;\n>         context.activeState.agc.automatic.exposure =\n>                 10ms / context.configuration.sensor.lineDuration;\n>         context.activeState.agc.manual.gain = context.activeState.agc.automatic.gain;\n> @@ -265,10 +254,8 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n>         utils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,\n>                                                    kMaxShutterSpeed);\n>  \n> -       double minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,\n> -                                         kMinAnalogueGain);\n\nThis seems reasonable. Do we need to do anything to ensure we don't go\nbelow 1.0 here?\n\nI guess that's the responsiblity of the CameraSensor class to validate\nthough, or at least it should be checked during IPARkISP1::configure()\n... so I think this is fine.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> -       double maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,\n> -                                         kMaxAnalogueGain);\n> +       double minAnalogueGain = configuration.sensor.minAnalogueGain;\n> +       double maxAnalogueGain = configuration.sensor.maxAnalogueGain;\n>  \n>         /* Consider within 1% of the target as correctly exposed. */\n>         if (utils::abs_diff(evGain, 1.0) < 0.01)\n> -- \n> 2.34.1\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 7FEDFC3284\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 May 2023 15:17:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EEA056285F;\n\tFri, 19 May 2023 17:17:44 +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 59481627CD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 May 2023 17:17:43 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BE4567E1;\n\tFri, 19 May 2023 17:17:29 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1684509465;\n\tbh=mcxzY16xrDzcwEaOuJ2pHZ5BqwOXZosbZ3pgbZ7MqcQ=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=CCLaY0H1meE4NYmaXrXjuEooodXbMfEMhybS/RbwgF6wm4N/dP+aCF02RvEtaClEU\n\tiIk6TJOxjdqEUTngxz1H5XSfwnhcz6ZII4aNstOAHybqlg9m81qzEAbK3o4rqmpng/\n\tEyCgPmq2IWO0C0bC0rlJCsgHnx++vZpSuuoBarIBHuwD4zlKa7dT8Ht3teKuvHbAKb\n\th7o/OnKHvm8NgHbxmqzUMERCmVjrBgIt2Qe19H77igF4lvbFM08Yn89lk12lAwbSX0\n\t1PM3Tf3TquL/trDAf9JuH9kv1WWFrdTdbSHY1b0pch0o1Zf3tRerkfYPAewetksw7j\n\tzZyjEJ8JcxH8w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1684509449;\n\tbh=mcxzY16xrDzcwEaOuJ2pHZ5BqwOXZosbZ3pgbZ7MqcQ=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=OE84vVz2cOn5svD8r9Uk6zuaswO+vmUlSQ1YAtqtYg2IBfKxxErZAbH/8GoMxY0x5\n\tbSHk9Kq86EeeP3tFJBzyiaHDK8VVibO3qH8om0k0FNTniTtjAhDw6LvigsURUce2kK\n\tamRqGCXTBZf4tPUvc6k2BWX9zxCldiyu73no8LmU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"OE84vVz2\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20230519145109.447590-1-bbara93@gmail.com>","References":"<20230519145109.447590-1-bbara93@gmail.com>","To":"Benjamin Bara <bbara93@gmail.com>, libcamera-devel@lists.libcamera.org","Date":"Fri, 19 May 2023 16:17:40 +0100","Message-ID":"<168450946008.3378917.1162738260367196665@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Benjamin Bara <benjamin.bara@skidata.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27119,"web_url":"https://patchwork.libcamera.org/comment/27119/","msgid":"<dkriuv5mrfzodhq57red45llul67iz6fsxysjlcan3eyvjk6eu@7c3xa7ibb4jm>","date":"2023-05-19T16:21:31","subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hello,\n\nOn Fri, May 19, 2023 at 04:51:09PM +0200, Benjamin Bara via libcamera-devel wrote:\n> From: Benjamin Bara <benjamin.bara@skidata.com>\n>\n> As the sensor's analogue gain range is known (read-out in\n> IPARkISP1::configure()), drop the limiting hard-coded range.\n> This enables better performance in low-light conditions for sensors with\n> a higher gain (e.g. the imx327).\n>\n> Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>\n\nWe had received a similar patch in the past but it probably got\ndropped in between different versions of a series if I recall\ncorrectly.\n\nThe limits are arbitraty, the IPU3 has them set to 1 and 8, who knows\nwhy, so yeah, let's drop them, the cam helper should ensure this is\nsafe.\n\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nAnd I'll send a similar patch to remove the limits from ipu3 too.\n\nThanks\n  j\n\n> ---\n>  src/ipa/rkisp1/algorithms/agc.cpp | 19 +++----------------\n>  1 file changed, 3 insertions(+), 16 deletions(-)\n>\n> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> index 22f70aba..a4e5500e 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> @@ -36,15 +36,6 @@ namespace ipa::rkisp1::algorithms {\n>\n>  LOG_DEFINE_CATEGORY(RkISP1Agc)\n>\n> -/*\n> - * Limits for analogue gain values\n> - *\n> - * \\todo Remove the hard-coded limits and let the sensor helper specify\n> - * the minimum and maximum allowed gain values.\n> - */\n> -static constexpr double kMinAnalogueGain = 1.0;\n> -static constexpr double kMaxAnalogueGain = 16.0;\n> -\n>  /* \\todo Honour the FrameDurationLimits control instead of hardcoding a limit */\n>  static constexpr utils::Duration kMaxShutterSpeed = 60ms;\n>\n> @@ -80,9 +71,7 @@ Agc::Agc()\n>  int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n>  {\n>  \t/* Configure the default exposure and gain. */\n> -\tcontext.activeState.agc.automatic.gain =\n> -\t\tstd::max(context.configuration.sensor.minAnalogueGain,\n> -\t\t\t kMinAnalogueGain);\n> +\tcontext.activeState.agc.automatic.gain = context.configuration.sensor.minAnalogueGain;\n>  \tcontext.activeState.agc.automatic.exposure =\n>  \t\t10ms / context.configuration.sensor.lineDuration;\n>  \tcontext.activeState.agc.manual.gain = context.activeState.agc.automatic.gain;\n> @@ -265,10 +254,8 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n>  \tutils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,\n>  \t\t\t\t\t\t   kMaxShutterSpeed);\n>\n> -\tdouble minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,\n> -\t\t\t\t\t  kMinAnalogueGain);\n> -\tdouble maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,\n> -\t\t\t\t\t  kMaxAnalogueGain);\n> +\tdouble minAnalogueGain = configuration.sensor.minAnalogueGain;\n> +\tdouble maxAnalogueGain = configuration.sensor.maxAnalogueGain;\n>\n>  \t/* Consider within 1% of the target as correctly exposed. */\n>  \tif (utils::abs_diff(evGain, 1.0) < 0.01)\n> --\n> 2.34.1\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 EBAAEC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 May 2023 16:21:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 46A2E627D3;\n\tFri, 19 May 2023 18:21:36 +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 7798E627CD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 May 2023 18:21:34 +0200 (CEST)","from ideasonboard.com (93-61-96-190.ip145.fastwebnet.it\n\t[93.61.96.190])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AF274720;\n\tFri, 19 May 2023 18:21:20 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1684513296;\n\tbh=QCxV6XXFk5uf51WwYFkRgHbijSIo19IgaRS2zOLh9aA=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=fweNLK/DYmtruxkMKTnMvbNVzwfAt8fxkx7MNoUogtmg7VN/w9mRwBJSc+Ow2tjbh\n\tb8YwstX3omcfx4h9wCkY/m3uPJxHsEMVkKTL4cZxoxev36KZ9y/Ba7gj7sDeJYaEDe\n\teyst+eNn45W9zkPBv7um6GsuLK1cG2qgMJXF2Jct0Qj/FaMpkerwV2B+tEYQ2HmKp/\n\tGWCnyaMkfDeyUoDRLETLlceN7W5L80ArHilgIEiWemzqt8dGpHrx+oaRh9EL32+8ha\n\tGMxcXbwA+QtJjecfOfvXJ5rpMDPE6DU3W8FaSYWP7ECc7KGzM+WYCf1wsq+vMwj/rY\n\t9AKBfWF4QIrsQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1684513280;\n\tbh=QCxV6XXFk5uf51WwYFkRgHbijSIo19IgaRS2zOLh9aA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qLZbqrZg1VK/f2xPPIdfNysxo+0Si27+hCPmwZrKFco1FYFnXajwzk615lTPKCOop\n\toEsLWuI0ozUhtHNa+Voj9m2Mv5eyE1tXiDTm2EVw5B1W/A6tg8jN8+QBoF2IRP8hW8\n\tj+XYsCgyHUeUm5cCC6lWnqOndg+VY7c8PfDV6CkQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"qLZbqrZg\"; dkim-atps=neutral","Date":"Fri, 19 May 2023 18:21:31 +0200","To":"Benjamin Bara <bbara93@gmail.com>","Message-ID":"<dkriuv5mrfzodhq57red45llul67iz6fsxysjlcan3eyvjk6eu@7c3xa7ibb4jm>","References":"<20230519145109.447590-1-bbara93@gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230519145109.447590-1-bbara93@gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","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>","From":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tBenjamin Bara <benjamin.bara@skidata.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27152,"web_url":"https://patchwork.libcamera.org/comment/27152/","msgid":"<20230529095509.GO25984@pendragon.ideasonboard.com>","date":"2023-05-29T09:55:09","subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, May 19, 2023 at 04:17:40PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Quoting Benjamin Bara via libcamera-devel (2023-05-19 15:51:09)\n> > From: Benjamin Bara <benjamin.bara@skidata.com>\n> > \n> > As the sensor's analogue gain range is known (read-out in\n> > IPARkISP1::configure()), drop the limiting hard-coded range.\n> > This enables better performance in low-light conditions for sensors with\n> > a higher gain (e.g. the imx327).\n> > \n> > Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>\n> > ---\n> >  src/ipa/rkisp1/algorithms/agc.cpp | 19 +++----------------\n> >  1 file changed, 3 insertions(+), 16 deletions(-)\n> > \n> > diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> > index 22f70aba..a4e5500e 100644\n> > --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> > +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> > @@ -36,15 +36,6 @@ namespace ipa::rkisp1::algorithms {\n> >  \n> >  LOG_DEFINE_CATEGORY(RkISP1Agc)\n> >  \n> > -/*\n> > - * Limits for analogue gain values\n> > - *\n> > - * \\todo Remove the hard-coded limits and let the sensor helper specify\n> > - * the minimum and maximum allowed gain values.\n> > - */\n> > -static constexpr double kMinAnalogueGain = 1.0;\n> > -static constexpr double kMaxAnalogueGain = 16.0;\n> > -\n> >  /* \\todo Honour the FrameDurationLimits control instead of hardcoding a limit */\n> >  static constexpr utils::Duration kMaxShutterSpeed = 60ms;\n> >  \n> > @@ -80,9 +71,7 @@ Agc::Agc()\n> >  int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n> >  {\n> >         /* Configure the default exposure and gain. */\n> > -       context.activeState.agc.automatic.gain =\n> > -               std::max(context.configuration.sensor.minAnalogueGain,\n> > -                        kMinAnalogueGain);\n> > +       context.activeState.agc.automatic.gain = context.configuration.sensor.minAnalogueGain;\n> >         context.activeState.agc.automatic.exposure =\n> >                 10ms / context.configuration.sensor.lineDuration;\n> >         context.activeState.agc.manual.gain = context.activeState.agc.automatic.gain;\n> > @@ -265,10 +254,8 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n> >         utils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,\n> >                                                    kMaxShutterSpeed);\n> >  \n> > -       double minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,\n> > -                                         kMinAnalogueGain);\n> \n> This seems reasonable. Do we need to do anything to ensure we don't go\n> below 1.0 here?\n> \n> I guess that's the responsiblity of the CameraSensor class to validate\n> though, or at least it should be checked during IPARkISP1::configure()\n> ... so I think this is fine.\n\nNo, I think it should be handled in the IPA module. While I don't expect\nmany camera sensors to support gains smaller than 1.0, some may, and the\nCameraSensor class should expose the real capabilities of the sensor.\nThe IPA module is responsible for setting the policies of the\nalgorithms.\n\nI see that this patch has been merged as-is. Who will submit a fix to\nrestore the behaviour for the minimum gain ?\n\nFor the maximum gain, there's a policy decision to consider as well, but\nthat should come from the tuning data, not be hardcoded here. I'm thus\nOK with the change for the maximum gain, but I think there's a risk it\nwill cause regressions for sensors that have a very high maximum gain\nvalue.\n\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > -       double maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,\n> > -                                         kMaxAnalogueGain);\n> > +       double minAnalogueGain = configuration.sensor.minAnalogueGain;\n> > +       double maxAnalogueGain = configuration.sensor.maxAnalogueGain;\n> >  \n> >         /* Consider within 1% of the target as correctly exposed. */\n> >         if (utils::abs_diff(evGain, 1.0) < 0.01)","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 F40BAC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 May 2023 09:55:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 46DB560599;\n\tMon, 29 May 2023 11:55:09 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C51E560599\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 May 2023 11:55:07 +0200 (CEST)","from pendragon.ideasonboard.com (om126255106133.24.openmobile.ne.jp\n\t[126.255.106.133])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AF917836;\n\tMon, 29 May 2023 11:54:46 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1685354109;\n\tbh=39cN/GotN/wgI/Xkoo57KTnku5PqSyZ+b9s6utJutaY=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=KakhFTG9cw4dsyguak3wqV+UtgjbqjJwMybzqnORAMQC3hjzxC0zAQUyVJMW21KIY\n\txMV5yxeOjbFNB95ZJr7gKM3MNafgSHmn5o8vaS5vqks62UdkIW7K/7zj9VjcW1xg8R\n\tc5zmBOd5/bvN8GB+L7dqz16QEbMn/G67lJjWWDakVJw/+709jg6di/FKNspbu6VF4O\n\tSSiHN4vM+4NC3ZLOMPNAaG2neymBSIxLDLTQiQ3n2tTwD4E3uwWwp+2bQZco8UKDX+\n\thvUUqnMrt2oFIgdF0EaXGl1wl1Nd6XMiddRtXWIdK6A2EVP5oc2djar40uKdmJly2z\n\twXEETG0dChtuw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1685354087;\n\tbh=39cN/GotN/wgI/Xkoo57KTnku5PqSyZ+b9s6utJutaY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=eUg0MLZyoPy0yXkFbBNyGzSFyMCpwVKgK4np5G+idxGolYyGMo9a9wcTCdqRfZdqf\n\tTfPHR1pElBxV6zOFPMDYskv3uVQ0WZcWwWCBW5BI5OlxfOskTtnvkU0mmDYVtQRvyW\n\tHryYaPdy2eeplEh9AvQ9fSEa+yzAfeMv6xDbgwpw="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"eUg0MLZy\"; dkim-atps=neutral","Date":"Mon, 29 May 2023 12:55:09 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20230529095509.GO25984@pendragon.ideasonboard.com>","References":"<20230519145109.447590-1-bbara93@gmail.com>\n\t<168450946008.3378917.1162738260367196665@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<168450946008.3378917.1162738260367196665@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH] ipa: rkisp1: agc: drop hard-coded\n\tanalogue gain range","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"Benjamin Bara <bbara93@gmail.com>, libcamera-devel@lists.libcamera.org, \n\tBenjamin Bara <benjamin.bara@skidata.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]