Show a patch.

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

{
    "id": 25945,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/25945/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/25945/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20260122-ipa-controls-v1-2-b8c4c345f7ae@ideasonboard.com>",
    "date": "2026-01-22T17:48:29",
    "name": "[2/2] ipa: ipu3: Retain Camera::controls() after ipa->configure()",
    "commit_ref": "ad2d317a0c15ad475844b239128360b605eb6d8f",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "5a9d08ae830a001c35bd732bc1c23734c4d9bef8",
    "submitter": {
        "id": 143,
        "url": "https://patchwork.libcamera.org/api/1.1/people/143/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo.mondi@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/25945/mbox/",
    "series": [
        {
            "id": 5735,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5735/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5735",
            "date": "2026-01-22T17:48:27",
            "name": "ipa: Retain Camera::controls() after ipa->configure()",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5735/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/25945/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/25945/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 873E6C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 22 Jan 2026 17:48:44 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7681261FD2;\n\tThu, 22 Jan 2026 18:48:42 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9C29B61F84\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 22 Jan 2026 18:48:39 +0100 (CET)",
            "from [192.168.1.105] (mob-5-90-62-9.net.vodafone.it [5.90.62.9])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CEB30460;\n\tThu, 22 Jan 2026 18:48:06 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JTulK7PB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1769104087;\n\tbh=WSIAacn6eRPQZbx30ePkZevsUgUYGs4r0J5B4l5BEy4=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=JTulK7PBt4YyISfXxXDT2N/EmjqW1UVEFCWGZNQkWI8T9qCgZhZ0rjAAtvfdnkFgR\n\to3Gtur0ZzJHC7uTztdzjGub670BMWlqx98lcR2IvkSZkHUwwlj5erL1GtYJFCwmvpQ\n\t9Df1/kK+0xvg+adopdgJz8FyzlPU4hYmtzWuq7Zo=",
        "From": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Date": "Thu, 22 Jan 2026 18:48:29 +0100",
        "Subject": "[PATCH 2/2] ipa: ipu3: Retain Camera::controls() after\n\tipa->configure()",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "Message-Id": "<20260122-ipa-controls-v1-2-b8c4c345f7ae@ideasonboard.com>",
        "References": "<20260122-ipa-controls-v1-0-b8c4c345f7ae@ideasonboard.com>",
        "In-Reply-To": "<20260122-ipa-controls-v1-0-b8c4c345f7ae@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "X-Mailer": "b4 0.14.3",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=1363;\n\ti=jacopo.mondi@ideasonboard.com; h=from:subject:message-id;\n\tbh=WSIAacn6eRPQZbx30ePkZevsUgUYGs4r0J5B4l5BEy4=;\n\tb=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpcmL2k2YjGdO3O5xnhJC6DGienMyQapOhGgzxH\n\t6itvl1Rq++JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaXJi9gAKCRByNAaPFqFW\n\tPARwD/49dobtPR3KNoYu5boP+kkqRSkYtPk1gvQLvs/4D0yVWVMAATI9KeF2r92CexZ1uG2br2Y\n\tau9oQtG0DnLJ8H66Nzn2QR/qS+8AMM2WTmTAe3UYTlBii7T6+bTgzNljumlKV7hv9Xx2YpRoYfL\n\tnbiF2bbgZKP/ccm+ulW0+7jnKRDeqjQbdGqTmnmEkhZ7fTnECR0Kw2h8uAV8J8BqNP/uoHVg8u4\n\tqNZy7MxcuZfKrGa6FWxvs2IZIfcWZSc7rFwgujxVzCdYbGEZor6jkYVsiIh5nFnoO972XjSlIg7\n\tuoOzVPtbKUaCe8KfR0QxRajz5Ncq/wIgf44hh3dK8j05/r3n+wMnE0rH45okf5/hDm+60i/I553\n\tg9vk0tqm9zYnKLqylTBdZuT3vYWsp8a9DG9PQEJHJa+U0bRmzCPeTkvFijnDLYATuuOiLnCO+oK\n\tYJy8cgovfc0juc17FB9P6C7u93Byaa0oQyVg/Bab33TDEwUdAqL0snlclQ6zgfBuKyyQEU8LhmL\n\tjn9zHop0jSPzKfXd4JqRDSm7lMRducusSIO6sNaCuvFsSN6cbsHuHv5OdbO99H1l+cGWXwdiCqn\n\tWG0xPcNmeF5pfQDUDyqUXw00aL+5UQg9EYbUGJV7HgqjSwaBlkyOyrUkaZRrNJ82fHh0oML4oCt\n\tfRx6QNo5wtqKy5Q==",
        "X-Developer-Key": "i=jacopo.mondi@ideasonboard.com; a=openpgp;\n\tfpr=72392EDC88144A65C701EA9BA5826A2587AD026B",
        "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": "Similar to what commit acfd60276763 (\"ipa: rkisp1: Fix algorithm controls\nvanish after configure\") did for the RkISP1 IPA, replace the usage of\nunordered_map::merge() at updateControls() time with\nunordered_map::insert().\n\nAs unordered_map::merge moves items from the source map, it deletes\ncontrols registered at algorithms initialization time in the\nipaContext.ctrlMap. As at configure() time updateControls() is called\nagain and the list of Camera controls is refreshed, the controls\nregistered at algorithms initialization time are lost.\n\nFixes: 87353f2bba28 (\"ipa: ipu3: Derive ipu3::algorithms::Agc from AgcMeanLuminance\")\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n---\n src/ipa/ipu3/ipu3.cpp | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)",
    "diff": "diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\nindex b926f579a9a3..03d873f2c74f 100644\n--- a/src/ipa/ipu3/ipu3.cpp\n+++ b/src/ipa/ipu3/ipu3.cpp\n@@ -285,7 +285,7 @@ void IPAIPU3::updateControls(const IPACameraSensorInfo &sensorInfo,\n \t\t\t\t\t\t\t       frameDurations[1],\n \t\t\t\t\t\t\t       Span<const int64_t, 2>{ { frameDurations[2], frameDurations[2] } });\n \n-\tcontrols.merge(context_.ctrlMap);\n+\tcontrols.insert(context_.ctrlMap.begin(), context_.ctrlMap.end());\n \t*ipaControls = ControlInfoMap(std::move(controls), controls::controls);\n }\n \n",
    "prefixes": [
        "2/2"
    ]
}