[{"id":35957,"web_url":"https://patchwork.libcamera.org/comment/35957/","msgid":"<85v7l8mfui.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-09-24T08:09:41","subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Hans,\n\nthank you for the patch.\n\nHans de Goede <hansg@kernel.org> writes:\n\n> Raise either exposure or gain; not both at the same time.\n\nI think there can still be a reason to raise both, although differently\nthan in the original code, see below.\n\n> Before this change when the last exposure raise is done, hitting\n> exposure-max, gain would be increased at the same time.\n>\n> Signed-off-by: Hans de Goede <hansg@kernel.org>\n> ---\n>  src/ipa/simple/algorithms/agc.cpp | 13 +++++++------\n>  1 file changed, 7 insertions(+), 6 deletions(-)\n>\n> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n> index 94961f9fe..230616e62 100644\n> --- a/src/ipa/simple/algorithms/agc.cpp\n> +++ b/src/ipa/simple/algorithms/agc.cpp\n> @@ -56,12 +56,13 @@ void Agc::updateExposure(IPAContext &context, IPAFrameContext &frameContext, dou\n>  \tdouble &again = frameContext.sensor.gain;\n>  \n>  \tif (exposureMSV < kExposureOptimal - kExposureSatisfactory) {\n> -\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n> -\t\tif (next - exposure < 1)\n> -\t\t\texposure += 1;\n> -\t\telse\n> -\t\t\texposure = next;\n> -\t\tif (exposure >= context.configuration.agc.exposureMax) {\n> +\t\tif (exposure < context.configuration.agc.exposureMax) {\n> +\t\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n> +\t\t\tif (next - exposure < 1)\n> +\t\t\t\texposure += 1;\n> +\t\t\telse\n> +\t\t\t\texposure = next;\n\nWhat if next > context.configuration.agc.exposureMax?  Shouldn't\nexposure be limited to context.configuration.agc.exposureMax and gain\nstill increased proportionally, for the missing part?\n\n> +\t\t} else {\n>  \t\t\tnext = again * kExpNumeratorUp / kExpDenominator;\n>  \t\t\tif (next - again < context.configuration.agc.againMinStep)\n>  \t\t\t\tagain += context.configuration.agc.againMinStep;","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 12E31C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 24 Sep 2025 08:09:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 684256B5F9;\n\tWed, 24 Sep 2025 10:09:54 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B4B936B5C2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 24 Sep 2025 10:09:47 +0200 (CEST)","from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n\t[209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-279-9xxvlojQMTOGRJPxfooW5A-1; Wed, 24 Sep 2025 04:09:45 -0400","by mail-wm1-f70.google.com with SMTP id\n\t5b1f17b1804b1-46e2d845ebeso2548085e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 24 Sep 2025 01:09:44 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb ([85.93.96.130])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-46e2a9be032sm22884115e9.10.2025.09.24.01.09.42\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 24 Sep 2025 01:09:42 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"MAqkYv+5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1758701386;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=0aIY9OTCLuiRg00dfdQKf3xlieGwa6ZESP4VXTJYt6Y=;\n\tb=MAqkYv+5C8gSTqP0OaF98D43YvVkatLejWHUTqpG4mPZLNaRs6uzkfkyCTWahq+mHxVhRL\n\twESwmUIfdNkOQIIk2uJsKzvOCYwRvdn3prn0eP4KHtRx31Rs9M86YTX0qps8Tgm7gLO8+8\n\tIrxIjGuHAm4F4hR5R4eEwQD+LB2fx1I=","X-MC-Unique":"9xxvlojQMTOGRJPxfooW5A-1","X-Mimecast-MFC-AGG-ID":"9xxvlojQMTOGRJPxfooW5A_1758701384","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1758701383; x=1759306183;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=0aIY9OTCLuiRg00dfdQKf3xlieGwa6ZESP4VXTJYt6Y=;\n\tb=FG5SHp0uYwHhq7KnaNihz5j+qTvEZpy82M1pSXQGn2xdSPfV3pjawxzTQ4WIoCMFoN\n\t86Rk91jLJH7UWL+plQ2wNU8ZpiSYw8BJZJUWIdmhrM+oYBPNwzLAIJ3USBTYfS82DALl\n\t6H2FtfxBK3xHsGahTeJvxb4Uh/oM3/SxCIr+S7FilrJz+KFAZhD+TGhL/SlnZCghPeiZ\n\tEcojkB8w60ArTh/60azSE9rjMXfyv7YZrVLtJyUm5RQq69emyqqyqtO3W66xxLltcQeu\n\tZVQjs8d53A2P62880wbkSa6TW+oJGMPcj00r4QVDeXrZKyxA9KmsVOq+Mw4GaifN1AQG\n\tq+XA==","X-Gm-Message-State":"AOJu0YyAOXh1Bg45VzoKHSWPGCyOhyV04x70sEgAlfmEoqOMQuZOCNAR\n\tbJdqzjdlT8mvgYXQPebQ8mhKlbNCJaPmrnD0HD1OEyxvfu4ew7m0KNO2fxYtCH1Cp/uubwJmAPr\n\tXgyAnC6orDOgVpodcMdhAr0d9jupd5sPMq0eftPLfck8lzflp0MEbv9iIgYXi22o6YP7zY3vGRZ\n\tBtLAk1uM6401zYz7DaypnMt7T7Ai1H41corFwnInPC29NsaBtfYvMyGG6si6w=","X-Gm-Gg":"ASbGncuBfEKJq0FxjXRk6f2oPJawwfxlyqryLiuR/7wZcUtNsMeU8ATPZcxWnql1TKw\n\t6gS2ywy7pG9ggswseHuul+I5i3ujksyYbuwD3PCt1YadFtFl+WIfmP8JHp2C9hRRq7hY8zeJq6r\n\t/h8XSZbRUdPHQrChURAVah8Gh89t+36JkwEEaB9Lzz5N68dcaBc0pGRfiohENGwyXiPxso/Ab6+\n\tJ7Gs1tKra8a7zg+ZDbK29EbDlDFaVTy3HUWXn0EJmUrZoehqI0YmjavWI8Lum/B2H1Ir7sxqxaQ\n\tcxFAEzz0HUU4gxpY19RNxQvB0G4cqTpaxX1B2bXEof843arIvbhgwpkId2JKau++PQ==","X-Received":["by 2002:a05:600c:12d5:b0:46d:d9d4:9be1 with SMTP id\n\t5b1f17b1804b1-46e1d97f623mr37558655e9.9.1758701383307; \n\tWed, 24 Sep 2025 01:09:43 -0700 (PDT)","by 2002:a05:600c:12d5:b0:46d:d9d4:9be1 with SMTP id\n\t5b1f17b1804b1-46e1d97f623mr37558425e9.9.1758701382813; \n\tWed, 24 Sep 2025 01:09:42 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IEdITPac3olNNpyMdPrMT/q6OrkQER05lLNdhYtrkY0amifhC68RQKDhaMHLlriKHzrSfSmew==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Hans de Goede <hansg@kernel.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","In-Reply-To":"<20250923190657.21453-4-hansg@kernel.org> (Hans de Goede's\n\tmessage of \"Tue, 23 Sep 2025 21:06:55 +0200\")","References":"<20250923190657.21453-1-hansg@kernel.org>\n\t<20250923190657.21453-4-hansg@kernel.org>","Date":"Wed, 24 Sep 2025 10:09:41 +0200","Message-ID":"<85v7l8mfui.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"FJju1eNPNcYCet_NWgTeEosNO5vF60kYPr88H0i0G9M_1758701384","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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":35980,"web_url":"https://patchwork.libcamera.org/comment/35980/","msgid":"<af4ede77-1ad0-40bf-98d0-26f2c4df8eff@kernel.org>","date":"2025-09-25T12:23:55","subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","submitter":{"id":239,"url":"https://patchwork.libcamera.org/api/people/239/","name":"Hans de Goede","email":"hansg@kernel.org"},"content":"Hi Milan,\n\nOn 24-Sep-25 10:09, Milan Zamazal wrote:\n> Hi Hans,\n> \n> thank you for the patch.\n> \n> Hans de Goede <hansg@kernel.org> writes:\n> \n>> Raise either exposure or gain; not both at the same time.\n> \n> I think there can still be a reason to raise both, although differently\n> than in the original code, see below.\n> \n>> Before this change when the last exposure raise is done, hitting\n>> exposure-max, gain would be increased at the same time.\n>>\n>> Signed-off-by: Hans de Goede <hansg@kernel.org>\n>> ---\n>>  src/ipa/simple/algorithms/agc.cpp | 13 +++++++------\n>>  1 file changed, 7 insertions(+), 6 deletions(-)\n>>\n>> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n>> index 94961f9fe..230616e62 100644\n>> --- a/src/ipa/simple/algorithms/agc.cpp\n>> +++ b/src/ipa/simple/algorithms/agc.cpp\n>> @@ -56,12 +56,13 @@ void Agc::updateExposure(IPAContext &context, IPAFrameContext &frameContext, dou\n>>  \tdouble &again = frameContext.sensor.gain;\n>>  \n>>  \tif (exposureMSV < kExposureOptimal - kExposureSatisfactory) {\n>> -\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n>> -\t\tif (next - exposure < 1)\n>> -\t\t\texposure += 1;\n>> -\t\telse\n>> -\t\t\texposure = next;\n>> -\t\tif (exposure >= context.configuration.agc.exposureMax) {\n>> +\t\tif (exposure < context.configuration.agc.exposureMax) {\n>> +\t\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n>> +\t\t\tif (next - exposure < 1)\n>> +\t\t\t\texposure += 1;\n>> +\t\t\telse\n>> +\t\t\t\texposure = next;\n> \n> What if next > context.configuration.agc.exposureMax?  Shouldn't\n> exposure be limited to context.configuration.agc.exposureMax and gain\n> still increased proportionally, for the missing part?\n\nI assume you mean that if when trying to raise 10% we only end up raising\nsay 4%, then raise gain by the remaining 6%.\n\nI'm not in favor of doing that for 2 reasons:\n\n1. It seems to me that then can cause some instabilities  / oscillations\n   due to the step ending up bigger then expected, esp. for sensors without\n   sensor-helper code where we do not know the gain model so a 5% increase\n   of the register value may lead to a bigger step then 5%\n\n2. This will add a bunch of non trivial code just to avoid a possible slowdown\n   of hitting the brightness target by a single control-algo run, which just\n   does not seem worth it.\n\nRegards,\n\nHans\n\n\n\n\n> \n>> +\t\t} else {\n>>  \t\t\tnext = again * kExpNumeratorUp / kExpDenominator;\n>>  \t\t\tif (next - again < context.configuration.agc.againMinStep)\n>>  \t\t\t\tagain += context.configuration.agc.againMinStep;\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 092E0C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 25 Sep 2025 12:24:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DC0496B5F3;\n\tThu, 25 Sep 2025 14:24:01 +0200 (CEST)","from sea.source.kernel.org (sea.source.kernel.org\n\t[IPv6:2600:3c0a:e001:78e:0:1991:8:25])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56F0669318\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 25 Sep 2025 14:23:59 +0200 (CEST)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby sea.source.kernel.org (Postfix) with ESMTP id 06A4E436F3;\n\tThu, 25 Sep 2025 12:23:58 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 4A19AC4CEF0;\n\tThu, 25 Sep 2025 12:23:57 +0000 (UTC)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=kernel.org header.i=@kernel.org\n\theader.b=\"dBykYkQ9\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1758803037;\n\tbh=YnYfsDCsO4s4UBPgtkgDYs7UjcN+v50NAJCefmU9rPs=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=dBykYkQ9PHzcWwAylnpr3Yun18bUobBGVLW0f++GUFHnuY7e+duV1+AaC2xb0v2Vs\n\tc3vbl6/co49Mbnu7LlBTU841UnjbgssAwkjMw0pnFg+4DJH3exQ7SUzfR7UUPjyaae\n\to3N8Xig3Dk4lKP1U5iPTljY7Rd+Z36SrlA+hxCvrdn4OX03L6v7QGGW1jGyCVl7Kh8\n\tjIS1Yrz8jD5q+NKK09pLD/kLA/LiC1EkGwNTwez+0tcicDIaYj/IWrkeFbYB22hbdn\n\tcDlj/IH3cvTGSqGJQ3E4/WML23MtC3au14gDSLpxq+u6kZ+0MNO740yAMgu2ErMRVU\n\tTWvKIBVLU+9pA==","Message-ID":"<af4ede77-1ad0-40bf-98d0-26f2c4df8eff@kernel.org>","Date":"Thu, 25 Sep 2025 14:23:55 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20250923190657.21453-1-hansg@kernel.org>\n\t<20250923190657.21453-4-hansg@kernel.org>\n\t<85v7l8mfui.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Language":"en-US, nl","From":"Hans de Goede <hansg@kernel.org>","In-Reply-To":"<85v7l8mfui.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","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":35982,"web_url":"https://patchwork.libcamera.org/comment/35982/","msgid":"<85y0q2y7vm.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-09-25T13:33:17","subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hans de Goede <hansg@kernel.org> writes:\n\n> Hi Milan,\n>\n> On 24-Sep-25 10:09, Milan Zamazal wrote:\n>> Hi Hans,\n>> \n>> thank you for the patch.\n>> \n>> Hans de Goede <hansg@kernel.org> writes:\n>> \n>>> Raise either exposure or gain; not both at the same time.\n>> \n>> I think there can still be a reason to raise both, although differently\n>> than in the original code, see below.\n>> \n>>> Before this change when the last exposure raise is done, hitting\n>>> exposure-max, gain would be increased at the same time.\n>>>\n>>> Signed-off-by: Hans de Goede <hansg@kernel.org>\n>>> ---\n>>>  src/ipa/simple/algorithms/agc.cpp | 13 +++++++------\n>>>  1 file changed, 7 insertions(+), 6 deletions(-)\n>>>\n>>> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp\n>>> index 94961f9fe..230616e62 100644\n>>> --- a/src/ipa/simple/algorithms/agc.cpp\n>>> +++ b/src/ipa/simple/algorithms/agc.cpp\n>>> @@ -56,12 +56,13 @@ void Agc::updateExposure(IPAContext &context, IPAFrameContext &frameContext, dou\n>>>  \tdouble &again = frameContext.sensor.gain;\n>>>  \n>>>  \tif (exposureMSV < kExposureOptimal - kExposureSatisfactory) {\n>>> -\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n>>> -\t\tif (next - exposure < 1)\n>>> -\t\t\texposure += 1;\n>>> -\t\telse\n>>> -\t\t\texposure = next;\n>>> -\t\tif (exposure >= context.configuration.agc.exposureMax) {\n>>> +\t\tif (exposure < context.configuration.agc.exposureMax) {\n>>> +\t\t\tnext = exposure * kExpNumeratorUp / kExpDenominator;\n>>> +\t\t\tif (next - exposure < 1)\n>>> +\t\t\t\texposure += 1;\n>>> +\t\t\telse\n>>> +\t\t\t\texposure = next;\n>> \n>> What if next > context.configuration.agc.exposureMax?  Shouldn't\n>> exposure be limited to context.configuration.agc.exposureMax and gain\n>> still increased proportionally, for the missing part?\n>\n> I assume you mean that if when trying to raise 10% we only end up raising\n> say 4%, then raise gain by the remaining 6%.\n\nYes.\n\n> I'm not in favor of doing that for 2 reasons:\n>\n> 1. It seems to me that then can cause some instabilities  / oscillations\n>    due to the step ending up bigger then expected, esp. for sensors without\n>    sensor-helper code where we do not know the gain model so a 5% increase\n>    of the register value may lead to a bigger step then 5%\n\nBut this already applies when the exposure is at max and we have to\nchange the gain, doesn't it?\n\n> 2. This will add a bunch of non trivial code just to avoid a possible slowdown\n>    of hitting the brightness target by a single control-algo run, which just\n>    does not seem worth it.\n\nThat's a fair point.\n\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\n\n> Regards,\n>\n> Hans\n>\n>\n>\n>\n>> \n>>> +\t\t} else {\n>>>  \t\t\tnext = again * kExpNumeratorUp / kExpDenominator;\n>>>  \t\t\tif (next - again < context.configuration.agc.againMinStep)\n>>>  \t\t\t\tagain += context.configuration.agc.againMinStep;\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 5DC54BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 25 Sep 2025 13:33:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 12AF26B5F3;\n\tThu, 25 Sep 2025 15:33:31 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 58D6769318\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 25 Sep 2025 15:33:29 +0200 (CEST)","from mail-wr1-f69.google.com (mail-wr1-f69.google.com\n\t[209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-370-j5bhCNNnMRGlwuirGEU_nw-1; Thu, 25 Sep 2025 09:33:22 -0400","by mail-wr1-f69.google.com with SMTP id\n\tffacd0b85a97d-3ee13baf21dso959194f8f.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 25 Sep 2025 06:33:21 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-40fc8aa0078sm2963166f8f.59.2025.09.25.06.33.18\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 25 Sep 2025 06:33:18 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"Myjpqu+x\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1758807208;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=B6hbQwx1BWIjM/w51Uk/4r9lcaFDEtNECjKxAVD1MuU=;\n\tb=Myjpqu+xQdU0U5b6PyZ6mMfDYH8u/xBf0fix5UVu9QfZ34zisFvPNT9eBc94lX3+vJLKMo\n\ttxxVecp4ea74bYeWJU+qIQFUAJxhQvJoQB7LXI41auGSKgqFcDN5MdvQ4QS458NX0zsXqz\n\t21vvMT59RQZgWZmvJdkkykC+bbi9Dtw=","X-MC-Unique":"j5bhCNNnMRGlwuirGEU_nw-1","X-Mimecast-MFC-AGG-ID":"j5bhCNNnMRGlwuirGEU_nw_1758807200","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1758807200; x=1759412000;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=B6hbQwx1BWIjM/w51Uk/4r9lcaFDEtNECjKxAVD1MuU=;\n\tb=pneGJGdpvYz5hEq5PCr2bCXeHL1mp0MNCe8dBVaAa7uuxheD5HV553kXV2xGv6WF3t\n\tIWec9IE+GweowHfcX1DT6QNKf2skSTao09fZ2oMmhgocMF9vrEXOzdJkpmwkc67TbXaM\n\tEOWOh6obhQ3jriG4Y+/C3rXxQNZUtsYyKdT3n2Fu+/iURPZFes/QBaT/OR7VgFyCDD+Z\n\tOI6FTSopKBucd/N3VTWOxQH9MWdLLubX4BP8V+QVBk4pPgfsnTI8lmWXYXUKCnzXAQrv\n\tA/TVQe6BvG8vrPc/kRr+U7Nx4ZeSRgHiXmlxuQRDe5KxTxPeT9UFNoLrBX0pFN2a96sj\n\t6/Kg==","X-Gm-Message-State":"AOJu0Ywl2Nmfq+0xQ4un8GEHNb5fLORm2KPD38tf/FGNM82K3GiekXU4\n\t+3R5ZTnEGMXAkVUL2TxOcEDbi/7rE8H2aP2iFGLknSE/Tflyv9I4gefS/SnZIvqQzpP4Dle/RVW\n\t5ipLG47+2bvlio3ngXkoD52oF679qT1fJWImc0ywB5jD8O5tRmL+GoF9YlI9pJN/iOV08C9X4YN\n\tVce2mVg2/4YysJZIUcvV5DASelewDQ1PcZM6zEY8WCJEGShhUsyVghPQxN4zQ=","X-Gm-Gg":"ASbGncv/6UlTNZTJnfsjcm9yBwNG63jL4gVPMhKIi7BcvU2AvnZFnaAcvjUH0T7r4RQ\n\tVlSkqb3w7wNwIbCIgsInMjayMQf7B+US5elwNS2xRprbVF2Qf7xHWdq+I8Uvgu7Vo0iZUJWtVsn\n\tog5Ncp+Xx86xgFfjK1/7WUgno3MGBDeiAkkPLIG0FqdiLcTz8MSS36hHu1iEsQen6o9FprpHRuN\n\tu8ExP/vnWKpV0HKm40KE3W00gVwTtkihC05Hwa1rqfAr8bpU9C3Hjw5LifXLWkV1+/3TzP6H8HW\n\tvS1aQKkIlbpU+DkLNFQazQMpIczPTNfuLKspYwNCoBmJSr/WYIYHKlYAKfTZN7YBAoV0B4vvsuK\n\tWThf+Lvo8JmkIv7+5JQ==","X-Received":["by 2002:a05:6000:2c0c:b0:3ea:ad2c:c166 with SMTP id\n\tffacd0b85a97d-40e49aa11bbmr2820766f8f.49.1758807199747; \n\tThu, 25 Sep 2025 06:33:19 -0700 (PDT)","by 2002:a05:6000:2c0c:b0:3ea:ad2c:c166 with SMTP id\n\tffacd0b85a97d-40e49aa11bbmr2820724f8f.49.1758807199100; \n\tThu, 25 Sep 2025 06:33:19 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHCNBS/UHT3PY/GbqlGGPrQ8mSJ2DKVoaix/SWlVa1F8FuOy1eaoYLRsX8VrOZeA6js3t+jOg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Hans de Goede <hansg@kernel.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 3/5] ipa: software_isp: AGC: Raise exposure or gain not\n\tboth at the same time","In-Reply-To":"<af4ede77-1ad0-40bf-98d0-26f2c4df8eff@kernel.org> (Hans de\n\tGoede's message of \"Thu, 25 Sep 2025 14:23:55 +0200\")","References":"<20250923190657.21453-1-hansg@kernel.org>\n\t<20250923190657.21453-4-hansg@kernel.org>\n\t<85v7l8mfui.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<af4ede77-1ad0-40bf-98d0-26f2c4df8eff@kernel.org>","Date":"Thu, 25 Sep 2025 15:33:17 +0200","Message-ID":"<85y0q2y7vm.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"1-6KX-V7Yxngsso_AV42zwyU58Pb3QEgQYA3yhYHVHY_1758807200","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]