[{"id":20200,"web_url":"https://patchwork.libcamera.org/comment/20200/","msgid":"<163420954540.3829429.7302433122545737860@Monstersaurus>","date":"2021-10-14T11:05:45","subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Jean-Michel Hautbois (2021-10-13 16:41:19)\n> The gains is currently set as a uint32_t while the analogue gain is\n\n'gains are currently' ?\n\n> passed as a double. We also have a default maximum analogue gain of 15\n> which is quite high for a number of sensors.\n> \n> Use a maximum value of 8 which should really be configured by the IPA\n> and not fixed as it is now. While at it make it a double.\n> \n> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> ---\n>  src/ipa/ipu3/algorithms/agc.cpp | 12 ++++--------\n>  1 file changed, 4 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n> index 2dd5c5c1..e58a8a8d 100644\n> --- a/src/ipa/ipu3/algorithms/agc.cpp\n> +++ b/src/ipa/ipu3/algorithms/agc.cpp\n> @@ -30,14 +30,10 @@ static constexpr uint32_t kInitialFrameMinAECount = 4;\n>  /* Number of frames to wait between new gain/exposure estimations */\n>  static constexpr uint32_t kFrameSkipCount = 6;\n>  \n> -/* Maximum ISO value for analogue gain */\n> -static constexpr uint32_t kMinISO = 100;\n> -static constexpr uint32_t kMaxISO = 1500;\n> -\n\nDo the ISO values no longer make sense to be used here?\n\nAs this needs to come from a camera helper anyway, I guess it doesn't\nhurt to reduce it as it should be changed later all the same.\n\nDo you reduce it to prevent some overexposure issue? or because the\nsensors you've tested only have x8 as a maximum?\n\nAnyway, I don't object to this patch otherwise.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n>  /* Maximum analogue gain value\n>   * \\todo grab it from a camera helper */\n> -static constexpr uint32_t kMinGain = kMinISO / 100;\n> -static constexpr uint32_t kMaxGain = kMaxISO / 100;\n> +static constexpr double kMinGain = 1.0;\n> +static constexpr double kMaxGain = 8.0;\n>  \n>  /* \\todo use calculated value based on sensor */\n>  static constexpr libcamera::utils::Duration kMinShutterSpeed = 100us;\n> @@ -161,9 +157,9 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)\n>                 if (currentShutter < kMaxShutterSpeed) {\n>                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_), minExposureLines_, maxExposureLines_);\n>                         newExposure = currentExposure_ / exposure;\n> -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n> +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n>                 } else if (currentShutter >= kMaxShutterSpeed) {\n> -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n> +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n>                         newExposure = currentExposure_ / gain;\n>                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / newExposure), minExposureLines_, maxExposureLines_);\n>                 }\n> -- \n> 2.30.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 25287BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Oct 2021 11:05:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9801968F51;\n\tThu, 14 Oct 2021 13:05:49 +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 9DFD668541\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Oct 2021 13:05:48 +0200 (CEST)","from pendragon.ideasonboard.com\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 34B012F3;\n\tThu, 14 Oct 2021 13:05:48 +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=\"PbBcgqNG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634209548;\n\tbh=0YLdxDb139HL64XlfZNGigPYJBB8waq5zwouvxEsqI4=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=PbBcgqNGo4RVUpvzSkQsjYknn+xS1e/dVwY+JyBEb33mpZSPA83R+ZRF+6K6GM0+p\n\tQHv5GeDWcSsstHW4YTlkzp0h6ZmhHqP8rA3kHBYizsH2qivBNCSqgIOzPEyrq/iDgf\n\tTR9YasPWrQpsU+6/Iat92U8KnZBDrBdeKBsqi5Js=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20211013154125.133419-8-jeanmichel.hautbois@ideasonboard.com>","References":"<20211013154125.133419-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211013154125.133419-8-jeanmichel.hautbois@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 14 Oct 2021 12:05:45 +0100","Message-ID":"<163420954540.3829429.7302433122545737860@Monstersaurus>","User-Agent":"alot/0.9.1","Subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","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":20217,"web_url":"https://patchwork.libcamera.org/comment/20217/","msgid":"<YWjP4kPMTW8Xv2VC@pendragon.ideasonboard.com>","date":"2021-10-15T00:48:34","subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Oct 14, 2021 at 12:05:45PM +0100, Kieran Bingham wrote:\n> Quoting Jean-Michel Hautbois (2021-10-13 16:41:19)\n> > The gains is currently set as a uint32_t while the analogue gain is\n> \n> 'gains are currently' ?\n> \n> > passed as a double. We also have a default maximum analogue gain of 15\n> > which is quite high for a number of sensors.\n> > \n> > Use a maximum value of 8 which should really be configured by the IPA\n> > and not fixed as it is now. While at it make it a double.\n> > \n> > Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n> > ---\n> >  src/ipa/ipu3/algorithms/agc.cpp | 12 ++++--------\n> >  1 file changed, 4 insertions(+), 8 deletions(-)\n> > \n> > diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n> > index 2dd5c5c1..e58a8a8d 100644\n> > --- a/src/ipa/ipu3/algorithms/agc.cpp\n> > +++ b/src/ipa/ipu3/algorithms/agc.cpp\n> > @@ -30,14 +30,10 @@ static constexpr uint32_t kInitialFrameMinAECount = 4;\n> >  /* Number of frames to wait between new gain/exposure estimations */\n> >  static constexpr uint32_t kFrameSkipCount = 6;\n> >  \n> > -/* Maximum ISO value for analogue gain */\n> > -static constexpr uint32_t kMinISO = 100;\n> > -static constexpr uint32_t kMaxISO = 1500;\n> > -\n> \n> Do the ISO values no longer make sense to be used here?\n\nISO values don't make much sense anywhere to be honest :-) It's mostly a\nmarketing argument. Considering gain = ISO / 100 is as good as anything,\nbecause you can set a random conversion factor (within limits) and still\nbe compliant with the specification.\n\n> As this needs to come from a camera helper anyway, I guess it doesn't\n> hurt to reduce it as it should be changed later all the same.\n> \n> Do you reduce it to prevent some overexposure issue? or because the\n> sensors you've tested only have x8 as a maximum?\n> \n> Anyway, I don't object to this patch otherwise.\n> \n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> >  /* Maximum analogue gain value\n> >   * \\todo grab it from a camera helper */\n> > -static constexpr uint32_t kMinGain = kMinISO / 100;\n> > -static constexpr uint32_t kMaxGain = kMaxISO / 100;\n> > +static constexpr double kMinGain = 1.0;\n> > +static constexpr double kMaxGain = 8.0;\n> >  \n> >  /* \\todo use calculated value based on sensor */\n> >  static constexpr libcamera::utils::Duration kMinShutterSpeed = 100us;\n> > @@ -161,9 +157,9 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)\n> >                 if (currentShutter < kMaxShutterSpeed) {\n> >                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_), minExposureLines_, maxExposureLines_);\n> >                         newExposure = currentExposure_ / exposure;\n> > -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n> > +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n\nThis is also a good occasion to shorten lines, and you don't need the\ncast:\n\n\t\t\tgain = std::clamp(gain * currentExposure_ / newExposure,\n\t\t\t\t\t  kMinGain, kMaxGain);\n\nSame below.\n\nBy the way, in the previous patch, you could have used\n\n\t\t\texposure = std::clamp<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_,\n\t\t\t\t\t\t\tminExposureLines_,\n\t\t\t\t\t\t\tmaxExposureLines_);\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> >                 } else if (currentShutter >= kMaxShutterSpeed) {\n> > -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n> > +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n> >                         newExposure = currentExposure_ / gain;\n> >                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / newExposure), minExposureLines_, maxExposureLines_);\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 5EC38C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Oct 2021 00:48:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E945E68F50;\n\tFri, 15 Oct 2021 02:48:51 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EED7E68F4D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Oct 2021 02:48:50 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 627B9B91;\n\tFri, 15 Oct 2021 02:48:50 +0200 (CEST)"],"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=\"UgojsJou\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634258930;\n\tbh=niATsCH5bnEdyDX9L8H0HD5g+yx14aD3FpfQsHiM2Lo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=UgojsJouTFs2gUzD3jqugzW8uCrJ3rdS1q6Icjgo/4g3KdsG2Gd6+YdQxk1o8UD2+\n\tgheupW8RZUF4j56dXeR0Ea3ET3uoVcNCl+ZPSIlqUAAonm+UzgPfXiwVPdT6Xjrx3T\n\toh7tqIMV18sL6K5bxrxz+YHMRQ9tXsJ9VBgzqy64=","Date":"Fri, 15 Oct 2021 03:48:34 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YWjP4kPMTW8Xv2VC@pendragon.ideasonboard.com>","References":"<20211013154125.133419-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211013154125.133419-8-jeanmichel.hautbois@ideasonboard.com>\n\t<163420954540.3829429.7302433122545737860@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<163420954540.3829429.7302433122545737860@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","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":20234,"web_url":"https://patchwork.libcamera.org/comment/20234/","msgid":"<5e1c129b-521d-d3d7-4b92-94fe399e2963@ideasonboard.com>","date":"2021-10-15T05:51:39","subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","submitter":{"id":75,"url":"https://patchwork.libcamera.org/api/people/75/","name":"Jean-Michel Hautbois","email":"jeanmichel.hautbois@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 15/10/2021 02:48, Laurent Pinchart wrote:\n> On Thu, Oct 14, 2021 at 12:05:45PM +0100, Kieran Bingham wrote:\n>> Quoting Jean-Michel Hautbois (2021-10-13 16:41:19)\n>>> The gains is currently set as a uint32_t while the analogue gain is\n>>\n>> 'gains are currently' ?\n>>\n>>> passed as a double. We also have a default maximum analogue gain of 15\n>>> which is quite high for a number of sensors.\n>>>\n>>> Use a maximum value of 8 which should really be configured by the IPA\n>>> and not fixed as it is now. While at it make it a double.\n>>>\n>>> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n>>> ---\n>>>  src/ipa/ipu3/algorithms/agc.cpp | 12 ++++--------\n>>>  1 file changed, 4 insertions(+), 8 deletions(-)\n>>>\n>>> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n>>> index 2dd5c5c1..e58a8a8d 100644\n>>> --- a/src/ipa/ipu3/algorithms/agc.cpp\n>>> +++ b/src/ipa/ipu3/algorithms/agc.cpp\n>>> @@ -30,14 +30,10 @@ static constexpr uint32_t kInitialFrameMinAECount = 4;\n>>>  /* Number of frames to wait between new gain/exposure estimations */\n>>>  static constexpr uint32_t kFrameSkipCount = 6;\n>>>  \n>>> -/* Maximum ISO value for analogue gain */\n>>> -static constexpr uint32_t kMinISO = 100;\n>>> -static constexpr uint32_t kMaxISO = 1500;\n>>> -\n>>\n>> Do the ISO values no longer make sense to be used here?\n> \n> ISO values don't make much sense anywhere to be honest :-) It's mostly a\n> marketing argument. Considering gain = ISO / 100 is as good as anything,\n> because you can set a random conversion factor (within limits) and still\n> be compliant with the specification.\n\nAh ah you spent too much time in this spec, right ;-) ?\n\n> \n>> As this needs to come from a camera helper anyway, I guess it doesn't\n>> hurt to reduce it as it should be changed later all the same.\n>>\n>> Do you reduce it to prevent some overexposure issue? or because the\n>> sensors you've tested only have x8 as a maximum?\n>>\n>> Anyway, I don't object to this patch otherwise.\n>>\n>>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>\n>>>  /* Maximum analogue gain value\n>>>   * \\todo grab it from a camera helper */\n>>> -static constexpr uint32_t kMinGain = kMinISO / 100;\n>>> -static constexpr uint32_t kMaxGain = kMaxISO / 100;\n>>> +static constexpr double kMinGain = 1.0;\n>>> +static constexpr double kMaxGain = 8.0;\n>>>  \n>>>  /* \\todo use calculated value based on sensor */\n>>>  static constexpr libcamera::utils::Duration kMinShutterSpeed = 100us;\n>>> @@ -161,9 +157,9 @@ void Agc::lockExposureGain(uint32_t &exposure, double &gain)\n>>>                 if (currentShutter < kMaxShutterSpeed) {\n>>>                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_), minExposureLines_, maxExposureLines_);\n>>>                         newExposure = currentExposure_ / exposure;\n>>> -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n>>> +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / newExposure), kMinGain, kMaxGain);\n> \n> This is also a good occasion to shorten lines, and you don't need the\n> cast:\n> \n> \t\t\tgain = std::clamp(gain * currentExposure_ / newExposure,\n> \t\t\t\t\t  kMinGain, kMaxGain);\n> \n> Same below.\n> \n> By the way, in the previous patch, you could have used\n> \n> \t\t\texposure = std::clamp<uint32_t>(exposure * currentExposure_ / currentExposureNoDg_,\n> \t\t\t\t\t\t\tminExposureLines_,\n> \t\t\t\t\t\t\tmaxExposureLines_);\n\nI did not think about passing the template type to std::clamp()\nbecause... I did not know we could do that, thanks !\n\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n>>>                 } else if (currentShutter >= kMaxShutterSpeed) {\n>>> -                       gain = std::clamp(static_cast<uint32_t>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n>>> +                       gain = std::clamp(static_cast<double>(gain * currentExposure_ / currentExposureNoDg_), kMinGain, kMaxGain);\n>>>                         newExposure = currentExposure_ / gain;\n>>>                         exposure = std::clamp(static_cast<uint32_t>(exposure * currentExposure_ / newExposure), minExposureLines_, maxExposureLines_);\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 1E641C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 15 Oct 2021 05:51:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4E26468F50;\n\tFri, 15 Oct 2021 07:51:44 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5E8C260239\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 Oct 2021 07:51:42 +0200 (CEST)","from tatooine.ideasonboard.com (unknown\n\t[IPv6:2a01:e0a:169:7140:ae2a:a11b:484b:c825])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DBF1C2E3;\n\tFri, 15 Oct 2021 07:51:41 +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=\"NWpb5rjU\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634277101;\n\tbh=yDH9Bve7pr3Tr9A/FIimeV7ovV6DImDwYpl+Ls7CJvE=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=NWpb5rjUUTyfJtGjCRtpA9jWW6Gv200eUPZAS6wE6AUohlGccepE86/1p0uG2Z/iU\n\tqPIpNrKCNMiwENq8tXfw7mZwMKGeZdrs5H2wz4UWzwTp91ybsXAg8zbuqURz0DUk2a\n\tUohMZ9EHE3IXSucWhECJA7xZ7bDWChQX4RC5d0S8=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>","References":"<20211013154125.133419-1-jeanmichel.hautbois@ideasonboard.com>\n\t<20211013154125.133419-8-jeanmichel.hautbois@ideasonboard.com>\n\t<163420954540.3829429.7302433122545737860@Monstersaurus>\n\t<YWjP4kPMTW8Xv2VC@pendragon.ideasonboard.com>","From":"Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>","Message-ID":"<5e1c129b-521d-d3d7-4b92-94fe399e2963@ideasonboard.com>","Date":"Fri, 15 Oct 2021 07:51:39 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.13.0","MIME-Version":"1.0","In-Reply-To":"<YWjP4kPMTW8Xv2VC@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 07/13] ipa: ipu3: agc: Change analogue\n\tgain limits","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>"}}]