[{"id":25526,"web_url":"https://patchwork.libcamera.org/comment/25526/","msgid":"<20221024014142.GT3874866@pyrite.rasen.tech>","date":"2022-10-24T01:41:42","subject":"Re: [libcamera-devel] [PATCH v3 02/13] ipa: rkisp1: Move shutter\n\tspeed and analogue gain limits from agc to sensor","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"On Mon, Oct 24, 2022 at 03:03:45AM +0300, Laurent Pinchart wrote:\n> The limits for the shutter speed and analogue gain are stored in\n> IPASessionConfiguration::agc. While they're related to the AGC, they are\n> properties of the sensor, and are stored in the session configuration by\n> the IPA module, not the AGC algorithm. Move them to the\n> IPASessionConfiguration::sensor structure where they belong.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/ipa/rkisp1/algorithms/agc.cpp | 11 ++++++-----\n>  src/ipa/rkisp1/ipa_context.cpp    | 28 +++++++++++++++-------------\n>  src/ipa/rkisp1/ipa_context.h      | 25 +++++++++++++------------\n>  src/ipa/rkisp1/rkisp1.cpp         | 10 ++++++----\n>  4 files changed, 40 insertions(+), 34 deletions(-)\n> \n> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> index 3fcbfa608467..169afe372803 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> @@ -74,7 +74,8 @@ Agc::Agc()\n>  int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n>  {\n>  \t/* Configure the default exposure and gain. */\n> -\tcontext.activeState.agc.gain = std::max(context.configuration.agc.minAnalogueGain, kMinAnalogueGain);\n> +\tcontext.activeState.agc.gain = std::max(context.configuration.sensor.minAnalogueGain,\n> +\t\t\t\t\t\tkMinAnalogueGain);\n>  \tcontext.activeState.agc.exposure = 10ms / context.configuration.sensor.lineDuration;\n>  \n>  \t/*\n> @@ -202,13 +203,13 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n>  \t/* Use the highest of the two gain estimates. */\n>  \tdouble evGain = std::max(yGain, iqMeanGain);\n>  \n> -\tutils::Duration minShutterSpeed = configuration.agc.minShutterSpeed;\n> -\tutils::Duration maxShutterSpeed = std::min(configuration.agc.maxShutterSpeed,\n> +\tutils::Duration minShutterSpeed = configuration.sensor.minShutterSpeed;\n> +\tutils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,\n>  \t\t\t\t\t\t   kMaxShutterSpeed);\n>  \n> -\tdouble minAnalogueGain = std::max(configuration.agc.minAnalogueGain,\n> +\tdouble minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,\n>  \t\t\t\t\t  kMinAnalogueGain);\n> -\tdouble maxAnalogueGain = std::min(configuration.agc.maxAnalogueGain,\n> +\tdouble maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,\n>  \t\t\t\t\t  kMaxAnalogueGain);\n>  \n>  \t/* Consider within 1% of the target as correctly exposed. */\n> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp\n> index 3c14cf3476ce..7a987497bd03 100644\n> --- a/src/ipa/rkisp1/ipa_context.cpp\n> +++ b/src/ipa/rkisp1/ipa_context.cpp\n> @@ -28,21 +28,11 @@ namespace libcamera::ipa::rkisp1 {\n>   * \\var IPASessionConfiguration::agc\n>   * \\brief AGC parameters configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::agc.minShutterSpeed\n> - * \\brief Minimum shutter speed supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.maxShutterSpeed\n> - * \\brief Maximum shutter speed supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.minAnalogueGain\n> - * \\brief Minimum analogue gain supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.maxAnalogueGain\n> - * \\brief Maximum analogue gain supported with the configured sensor\n> - *\n>   * \\var IPASessionConfiguration::agc.measureWindow\n>   * \\brief AGC measure window\n> - *\n> + */\n> +\n> +/**\n>   * \\var IPASessionConfiguration::hw\n>   * \\brief RkISP1-specific hardware information\n>   *\n> @@ -77,6 +67,18 @@ namespace libcamera::ipa::rkisp1 {\n>   * \\var IPASessionConfiguration::sensor\n>   * \\brief Sensor-specific configuration of the IPA\n>   *\n> + * \\var IPASessionConfiguration::sensor.minShutterSpeed\n> + * \\brief Minimum shutter speed supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.maxShutterSpeed\n> + * \\brief Maximum shutter speed supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.minAnalogueGain\n> + * \\brief Minimum analogue gain supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.maxAnalogueGain\n> + * \\brief Maximum analogue gain supported with the sensor\n> + *\n>   * \\var IPASessionConfiguration::sensor.defVBlank\n>   * \\brief The default vblank value of the sensor\n>   *\n> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> index 60e8a7e11196..bb60ab9eab72 100644\n> --- a/src/ipa/rkisp1/ipa_context.h\n> +++ b/src/ipa/rkisp1/ipa_context.h\n> @@ -21,24 +21,25 @@ namespace libcamera {\n>  namespace ipa::rkisp1 {\n>  \n>  struct IPASessionConfiguration {\n> +\tstruct {\n> +\t\tstruct rkisp1_cif_isp_window measureWindow;\n> +\t} agc;\n> +\n> +\tstruct {\n> +\t\tstruct rkisp1_cif_isp_window measureWindow;\n> +\t\tbool enabled;\n> +\t} awb;\n> +\n> +\tstruct {\n> +\t\tbool enabled;\n> +\t} lsc;\n> +\n>  \tstruct {\n>  \t\tutils::Duration minShutterSpeed;\n>  \t\tutils::Duration maxShutterSpeed;\n>  \t\tdouble minAnalogueGain;\n>  \t\tdouble maxAnalogueGain;\n> -\t\tstruct rkisp1_cif_isp_window measureWindow;\n> -\t} agc;\n>  \n> -\tstruct {\n> -\t\tstruct rkisp1_cif_isp_window measureWindow;\n> -\t\tbool enabled;\n> -\t} awb;\n> -\n> -\tstruct {\n> -\t\tbool enabled;\n> -\t} lsc;\n> -\n> -\tstruct {\n>  \t\tint32_t defVBlank;\n>  \t\tutils::Duration lineDuration;\n>  \t\tSize size;\n> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\n> index 9061a189cbce..fcb9dacccc3c 100644\n> --- a/src/ipa/rkisp1/rkisp1.cpp\n> +++ b/src/ipa/rkisp1/rkisp1.cpp\n> @@ -257,10 +257,12 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,\n>  \t *\n>  \t * \\todo take VBLANK into account for maximum shutter speed\n>  \t */\n> -\tcontext_.configuration.agc.minShutterSpeed = minExposure * context_.configuration.sensor.lineDuration;\n> -\tcontext_.configuration.agc.maxShutterSpeed = maxExposure * context_.configuration.sensor.lineDuration;\n> -\tcontext_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);\n> -\tcontext_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);\n> +\tcontext_.configuration.sensor.minShutterSpeed =\n> +\t\tminExposure * context_.configuration.sensor.lineDuration;\n> +\tcontext_.configuration.sensor.maxShutterSpeed =\n> +\t\tmaxExposure * context_.configuration.sensor.lineDuration;\n> +\tcontext_.configuration.sensor.minAnalogueGain = camHelper_->gain(minGain);\n> +\tcontext_.configuration.sensor.maxAnalogueGain = camHelper_->gain(maxGain);\n>  \n>  \tfor (auto const &algo : algorithms()) {\n>  \t\tint ret = algo->configure(context_, info);\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 68F25BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 24 Oct 2022 01:41:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C5F5E62EDE;\n\tMon, 24 Oct 2022 03:41:52 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D2E4562EA6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 24 Oct 2022 03:41:50 +0200 (CEST)","from pyrite.rasen.tech (h175-177-042-159.catv02.itscom.jp\n\t[175.177.42.159])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E5C1F471;\n\tMon, 24 Oct 2022 03:41:48 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666575712;\n\tbh=Pg4ov3W74ATMBe0dqPLLD7IQTMdq7QupoFdLE2//8kw=;\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=Rn//F8tMDI6OhfgYNam/BvcPfom/IDRz+NP4lEnLohQuwu5Tdu1QuBZ1+s8Qg95my\n\t+eiuUjse6JLV00NfALG/KJ4dVbkHaqZdhNcjF1K31zFDZSXs45AxnwPW4emx6LKxzF\n\tYv9g2mm6P72ce1BZEsCFFe6zvsyAmbIfK94p8LoQPyXz2pbqIGgixzxVYZVFrU4aVC\n\tQTtjt4d+Je5dE9hs/Xwc5z953XWt/Kw1E21QcfWtPX1By3apFLtZTAyLU8bn5bOh+a\n\taSEVO9hi9IOmKA9JuvHlPrrTj3MEEmYc+ziSeDsvDtPc1QZ3SdNLXjJoCBIf5iIZ4z\n\tWEv245D1cArog==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1666575710;\n\tbh=Pg4ov3W74ATMBe0dqPLLD7IQTMdq7QupoFdLE2//8kw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Ua+0AtrDTVv2hms10/8vGCQ23u7/hPIHt0y3R70q0WM3TzC8LUVElGJLJ8hYD88QZ\n\tiZ2Y66sSmfZlOfs17WRcSZK+u0GDbSEZPlvq3YQJ8iBZ75BTXfIrFAjd+5G5OV+SLg\n\tUfK7xzhCJnHWtaGE6UbXc76tNUeVZH/9vLq5j+F8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Ua+0AtrD\"; dkim-atps=neutral","Date":"Mon, 24 Oct 2022 10:41:42 +0900","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20221024014142.GT3874866@pyrite.rasen.tech>","References":"<20221024000356.29521-1-laurent.pinchart@ideasonboard.com>\n\t<20221024000356.29521-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20221024000356.29521-3-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 02/13] ipa: rkisp1: Move shutter\n\tspeed and analogue gain limits from agc to sensor","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":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@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>"}},{"id":25597,"web_url":"https://patchwork.libcamera.org/comment/25597/","msgid":"<20221026135931.utb4xhbva3zcc3sd@uno.localdomain>","date":"2022-10-26T13:59:31","subject":"Re: [libcamera-devel] [PATCH v3 02/13] ipa: rkisp1: Move shutter\n\tspeed and analogue gain limits from agc to sensor","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent\n\nOn Mon, Oct 24, 2022 at 03:03:45AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> The limits for the shutter speed and analogue gain are stored in\n> IPASessionConfiguration::agc. While they're related to the AGC, they are\n> properties of the sensor, and are stored in the session configuration by\n> the IPA module, not the AGC algorithm. Move them to the\n> IPASessionConfiguration::sensor structure where they belong.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nIndeed makes sense!\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n\n> ---\n>  src/ipa/rkisp1/algorithms/agc.cpp | 11 ++++++-----\n>  src/ipa/rkisp1/ipa_context.cpp    | 28 +++++++++++++++-------------\n>  src/ipa/rkisp1/ipa_context.h      | 25 +++++++++++++------------\n>  src/ipa/rkisp1/rkisp1.cpp         | 10 ++++++----\n>  4 files changed, 40 insertions(+), 34 deletions(-)\n>\n> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\n> index 3fcbfa608467..169afe372803 100644\n> --- a/src/ipa/rkisp1/algorithms/agc.cpp\n> +++ b/src/ipa/rkisp1/algorithms/agc.cpp\n> @@ -74,7 +74,8 @@ Agc::Agc()\n>  int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n>  {\n>  \t/* Configure the default exposure and gain. */\n> -\tcontext.activeState.agc.gain = std::max(context.configuration.agc.minAnalogueGain, kMinAnalogueGain);\n> +\tcontext.activeState.agc.gain = std::max(context.configuration.sensor.minAnalogueGain,\n> +\t\t\t\t\t\tkMinAnalogueGain);\n>  \tcontext.activeState.agc.exposure = 10ms / context.configuration.sensor.lineDuration;\n>\n>  \t/*\n> @@ -202,13 +203,13 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,\n>  \t/* Use the highest of the two gain estimates. */\n>  \tdouble evGain = std::max(yGain, iqMeanGain);\n>\n> -\tutils::Duration minShutterSpeed = configuration.agc.minShutterSpeed;\n> -\tutils::Duration maxShutterSpeed = std::min(configuration.agc.maxShutterSpeed,\n> +\tutils::Duration minShutterSpeed = configuration.sensor.minShutterSpeed;\n> +\tutils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,\n>  \t\t\t\t\t\t   kMaxShutterSpeed);\n>\n> -\tdouble minAnalogueGain = std::max(configuration.agc.minAnalogueGain,\n> +\tdouble minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,\n>  \t\t\t\t\t  kMinAnalogueGain);\n> -\tdouble maxAnalogueGain = std::min(configuration.agc.maxAnalogueGain,\n> +\tdouble maxAnalogueGain = std::min(configuration.sensor.maxAnalogueGain,\n>  \t\t\t\t\t  kMaxAnalogueGain);\n>\n>  \t/* Consider within 1% of the target as correctly exposed. */\n> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp\n> index 3c14cf3476ce..7a987497bd03 100644\n> --- a/src/ipa/rkisp1/ipa_context.cpp\n> +++ b/src/ipa/rkisp1/ipa_context.cpp\n> @@ -28,21 +28,11 @@ namespace libcamera::ipa::rkisp1 {\n>   * \\var IPASessionConfiguration::agc\n>   * \\brief AGC parameters configuration of the IPA\n>   *\n> - * \\var IPASessionConfiguration::agc.minShutterSpeed\n> - * \\brief Minimum shutter speed supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.maxShutterSpeed\n> - * \\brief Maximum shutter speed supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.minAnalogueGain\n> - * \\brief Minimum analogue gain supported with the configured sensor\n> - *\n> - * \\var IPASessionConfiguration::agc.maxAnalogueGain\n> - * \\brief Maximum analogue gain supported with the configured sensor\n> - *\n>   * \\var IPASessionConfiguration::agc.measureWindow\n>   * \\brief AGC measure window\n> - *\n> + */\n> +\n> +/**\n>   * \\var IPASessionConfiguration::hw\n>   * \\brief RkISP1-specific hardware information\n>   *\n> @@ -77,6 +67,18 @@ namespace libcamera::ipa::rkisp1 {\n>   * \\var IPASessionConfiguration::sensor\n>   * \\brief Sensor-specific configuration of the IPA\n>   *\n> + * \\var IPASessionConfiguration::sensor.minShutterSpeed\n> + * \\brief Minimum shutter speed supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.maxShutterSpeed\n> + * \\brief Maximum shutter speed supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.minAnalogueGain\n> + * \\brief Minimum analogue gain supported with the sensor\n> + *\n> + * \\var IPASessionConfiguration::sensor.maxAnalogueGain\n> + * \\brief Maximum analogue gain supported with the sensor\n> + *\n>   * \\var IPASessionConfiguration::sensor.defVBlank\n>   * \\brief The default vblank value of the sensor\n>   *\n> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h\n> index 60e8a7e11196..bb60ab9eab72 100644\n> --- a/src/ipa/rkisp1/ipa_context.h\n> +++ b/src/ipa/rkisp1/ipa_context.h\n> @@ -21,24 +21,25 @@ namespace libcamera {\n>  namespace ipa::rkisp1 {\n>\n>  struct IPASessionConfiguration {\n> +\tstruct {\n> +\t\tstruct rkisp1_cif_isp_window measureWindow;\n> +\t} agc;\n> +\n> +\tstruct {\n> +\t\tstruct rkisp1_cif_isp_window measureWindow;\n> +\t\tbool enabled;\n> +\t} awb;\n> +\n> +\tstruct {\n> +\t\tbool enabled;\n> +\t} lsc;\n> +\n>  \tstruct {\n>  \t\tutils::Duration minShutterSpeed;\n>  \t\tutils::Duration maxShutterSpeed;\n>  \t\tdouble minAnalogueGain;\n>  \t\tdouble maxAnalogueGain;\n> -\t\tstruct rkisp1_cif_isp_window measureWindow;\n> -\t} agc;\n>\n> -\tstruct {\n> -\t\tstruct rkisp1_cif_isp_window measureWindow;\n> -\t\tbool enabled;\n> -\t} awb;\n> -\n> -\tstruct {\n> -\t\tbool enabled;\n> -\t} lsc;\n> -\n> -\tstruct {\n>  \t\tint32_t defVBlank;\n>  \t\tutils::Duration lineDuration;\n>  \t\tSize size;\n> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\n> index 9061a189cbce..fcb9dacccc3c 100644\n> --- a/src/ipa/rkisp1/rkisp1.cpp\n> +++ b/src/ipa/rkisp1/rkisp1.cpp\n> @@ -257,10 +257,12 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,\n>  \t *\n>  \t * \\todo take VBLANK into account for maximum shutter speed\n>  \t */\n> -\tcontext_.configuration.agc.minShutterSpeed = minExposure * context_.configuration.sensor.lineDuration;\n> -\tcontext_.configuration.agc.maxShutterSpeed = maxExposure * context_.configuration.sensor.lineDuration;\n> -\tcontext_.configuration.agc.minAnalogueGain = camHelper_->gain(minGain);\n> -\tcontext_.configuration.agc.maxAnalogueGain = camHelper_->gain(maxGain);\n> +\tcontext_.configuration.sensor.minShutterSpeed =\n> +\t\tminExposure * context_.configuration.sensor.lineDuration;\n> +\tcontext_.configuration.sensor.maxShutterSpeed =\n> +\t\tmaxExposure * context_.configuration.sensor.lineDuration;\n> +\tcontext_.configuration.sensor.minAnalogueGain = camHelper_->gain(minGain);\n> +\tcontext_.configuration.sensor.maxAnalogueGain = camHelper_->gain(maxGain);\n>\n>  \tfor (auto const &algo : algorithms()) {\n>  \t\tint ret = algo->configure(context_, info);\n> --\n> Regards,\n>\n> Laurent Pinchart\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 72F54BDB16\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Oct 2022 13:59:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A3A2E62F54;\n\tWed, 26 Oct 2022 15:59:34 +0200 (CEST)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[IPv6:2001:4b98:dc4:8::229])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7EF4061F4B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Oct 2022 15:59:33 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id E9D9DFF80E;\n\tWed, 26 Oct 2022 13:59:32 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1666792774;\n\tbh=4vGT2i3hSAfccZcFuh/B5tZ5WDwV7x5se/e3NNtWBHY=;\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=23+CuY+ijvrt3+ENBYAREutG+Va2dXuz/ib879vntIbHm7Vd2OP/2cj4pzNRPfVKL\n\tpxyJhKSws4vakJyMHjxnqCrhGI7AY2vM3zyw/WGM4GP9kFOTbL6M6kftZRM6BP5s5x\n\tcwD9d2uYxR89AUX568SS8DvxhOcsYTZv/TTF3bTjwBIP0Ex/So1SLTo1SzMxk8wnt8\n\t1znMyc+XUXR3meMBIzf97/k7ihuJlvaYBIdYQx+pf2R8NLz6sV0begj5hXSeJ/8ejN\n\t9cBVn/DwbLHnUjVjZCaEYixDxq6cgtMGEDVgIKDOp13gNoZ2bK4MPUdASE3bwTVIqq\n\tRmlvzG5LMvTTQ==","Date":"Wed, 26 Oct 2022 15:59:31 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20221026135931.utb4xhbva3zcc3sd@uno.localdomain>","References":"<20221024000356.29521-1-laurent.pinchart@ideasonboard.com>\n\t<20221024000356.29521-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20221024000356.29521-3-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 02/13] ipa: rkisp1: Move shutter\n\tspeed and analogue gain limits from agc to sensor","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@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]