Show a patch.

GET /api/patches/27596/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 27596,
    "url": "https://patchwork.libcamera.org/api/patches/27596/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/27596/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20260803131435.153927-44-barnabas.pocze@ideasonboard.com>",
    "date": "2026-08-03T13:14:28",
    "name": "[RFC,v3,43/50] ipa: libipa: agc_msv: Handle min gain > 1.0 case",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "e4bd22d38313b21f277b2cd277c1dae0b8af9cb6",
    "submitter": {
        "id": 216,
        "url": "https://patchwork.libcamera.org/api/people/216/?format=api",
        "name": "Barnabás Pőcze",
        "email": "barnabas.pocze@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/27596/mbox/",
    "series": [
        {
            "id": 6103,
            "url": "https://patchwork.libcamera.org/api/series/6103/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6103",
            "date": "2026-08-03T13:13:45",
            "name": "ipa: libipa: agc rework",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/6103/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/27596/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/27596/checks/",
    "tags": {},
    "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 8CA44C334E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  3 Aug 2026 13:15:26 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 467A968102;\n\tMon,  3 Aug 2026 15:15:24 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7C66D68080\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  3 Aug 2026 15:14:48 +0200 (CEST)",
            "from pb-laptop.local (185.221.141.208.nat.pool.zt.hu\n\t[185.221.141.208])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9DADD512\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  3 Aug 2026 15:13:39 +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=\"uk0b3NzN\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1785762819;\n\tbh=us5b72jVS9CEihNUNUbHeWP3SVXlyNl+8YqisAEAHEU=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=uk0b3NzNfhFLy+HMY4p9E4ARucw88Ao0poqg7Bn9XaobfEwSvLQMXkeksJLUsP3Ql\n\tBM8C6dBBpDXUKD6PyLhhDVwGN1/52pkYem2qzq6aNp/WZxcApTklqwQFjj4lWQv0UB\n\tFURQVT8OS24GX+8erDazz0dzMzBQHIyq5QvEuA68=",
        "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Subject": "[RFC PATCH v3 43/50] ipa: libipa: agc_msv: Handle min gain > 1.0\n\tcase",
        "Date": "Mon,  3 Aug 2026 15:14:28 +0200",
        "Message-ID": "<20260803131435.153927-44-barnabas.pocze@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.55.0",
        "In-Reply-To": "<20260803131435.153927-1-barnabas.pocze@ideasonboard.com>",
        "References": "<20260803131435.153927-1-barnabas.pocze@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "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>"
    },
    "content": "When manual gain control is enabled in `AgcAlgorithm`, the limits will\nbe set to that particular value. This is very likely larger than 1.0.\nIn this case, however, the algorithm should still adjust the exposure\ntime if it can. So compare the gain with the minimum of 1.0 and the\nconfigured min gain, in order to ensure that the exposure will be\nadjusted if the lower boundary of the allowed analogue gains is reached.\n\nSigned-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n---\n src/ipa/libipa/agc_msv.cpp | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)",
    "diff": "diff --git a/src/ipa/libipa/agc_msv.cpp b/src/ipa/libipa/agc_msv.cpp\nindex 956551685c..9fec2ba48a 100644\n--- a/src/ipa/libipa/agc_msv.cpp\n+++ b/src/ipa/libipa/agc_msv.cpp\n@@ -206,7 +206,7 @@ AgcMSV::Result AgcMSV::updateExposure(uint32_t exposure, double again, float exp\n \t\t\t}\n \t\t} else {\n \t\t\t/* Scene too bright: decrease gain first, then exposure. */\n-\t\t\tif (again > limits_.gain1) {\n+\t\t\tif (again > std::max(limits_.gain1, limits_.gain[0])) {\n \t\t\t\tdouble next = again * factor;\n \t\t\t\tagain = std::min(next, again - limits_.gainMinStep);\n \t\t\t} else {\n",
    "prefixes": [
        "RFC",
        "v3",
        "43/50"
    ]
}