Show a patch.

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

{
    "id": 26917,
    "url": "https://patchwork.libcamera.org/api/patches/26917/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26917/",
    "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": "<20260618-rppx1-ipa-v1-2-32337264cfcd@ideasonboard.com>",
    "date": "2026-06-18T10:18:41",
    "name": "[02/14] ipa: ipa_module: Remove pipelineName",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b69ad0df66719c36049d4be386dc3f049b4011ce",
    "submitter": {
        "id": 143,
        "url": "https://patchwork.libcamera.org/api/people/143/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo.mondi@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26917/mbox/",
    "series": [
        {
            "id": 6003,
            "url": "https://patchwork.libcamera.org/api/series/6003/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6003",
            "date": "2026-06-18T10:18:39",
            "name": "libcamera: Add support for R-Car Gen4 and RPP-X1 ISP",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/6003/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26917/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26917/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 118EFBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Jun 2026 10:19:00 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B4DF1629CE;\n\tThu, 18 Jun 2026 12:18:57 +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 BE07B61754\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Jun 2026 12:18:53 +0200 (CEST)",
            "from [192.168.125.177] (mob-109-113-4-199.net.vodafone.it\n\t[109.113.4.199])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BA341894;\n\tThu, 18 Jun 2026 12:18:18 +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=\"Ls2YGaY0\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1781777898;\n\tbh=VkqMScwWLjEze/239nhSjPeLBBooBpQmAdhfD+EXPbk=;\n\th=From:Date:Subject:References:In-Reply-To:To:Cc:From;\n\tb=Ls2YGaY0r+h7xsFqQXmznwIRylr1Tge/51hRgHRCLbRhXRWFh8Ufj+KPx7hIq3E4a\n\t5HlgU4Qq7OyvLLbGsxDZdIbIRiFf85cWZ/IqUXr/tm20+gOrfpXji0tgxq1OUQLMQb\n\tWBNgU15Iyk6BlbyHWLza43Df5tgDZ1h9Vd1GsaK0=",
        "From": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Date": "Thu, 18 Jun 2026 12:18:41 +0200",
        "Subject": "[PATCH 02/14] ipa: ipa_module: Remove pipelineName",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "Message-Id": "<20260618-rppx1-ipa-v1-2-32337264cfcd@ideasonboard.com>",
        "References": "<20260618-rppx1-ipa-v1-0-32337264cfcd@ideasonboard.com>",
        "In-Reply-To": "<20260618-rppx1-ipa-v1-0-32337264cfcd@ideasonboard.com>",
        "To": "=?utf-8?q?Niklas_S=C3=B6derlund?=\n\t<niklas.soderlund+renesas@ragnatech.se>, \n\tlibcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>, =?utf-8?b?QmFybmFiw6Fz?=\n\t=?utf-8?q?_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>",
        "X-Mailer": "b4 0.14.3",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=6199;\n\ti=jacopo.mondi@ideasonboard.com; h=from:subject:message-id;\n\tbh=VkqMScwWLjEze/239nhSjPeLBBooBpQmAdhfD+EXPbk=;\n\tb=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBqM8YJbbGymFjv1gnXXB5z6l1JPhYa+Z72/kdGp\n\tLrRM9uAeviJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCajPGCQAKCRByNAaPFqFW\n\tPPjgEACwtgA1J3he1JIBSYfLAKmL4agM1dgrod7Vdv4uxl51pCAcJ9ebGL5b/WFOD8B8SXvWRcF\n\tZoipeGxdCTSIf0jAfe7b5dMKilDr2bZy2JPkizHcAXqUuEbsP4NCY2Zed4XGkLmWV7wfCAvwPHO\n\tAJzFkykyiDNWzDtyzp0vJzk0hdCVTGBMEcatzDBMOunGE5+CdZaWi5kSGGRqceGbGEQ831/lAAu\n\tyVxgVOUEbKiPf6ufmoPI0aILjs4F3t9MW6RyBjHoy1EfI/XaCCudSRzPTeCxh5rj5YNe/823lUf\n\tSiMOPqtY6AitwHgi5bInukJVqoNHfhsMQhaIn3TgEwy+GPl4s8mj+OlEAnC3n/GZ/Bg/ZXrtbu/\n\tNTki3L40iI0zyq3FZQdCPCb8JVxT8bNOZ4jxjBzW4iDMB0UNnYBuhXl/ROokg1fPTpItGktRieV\n\tzf6LGJo9R/Yd09UrFuEPjytKwHcRtt20yeVILmT/qn5YNPk/3C9muW8zKjPxgRk6DELbZ9XYJP9\n\t4lt2DKma0AVq8osThmJjPxPFcdK8JMB0m7WQdIRapNI7x8PfP/JbyYjjsXArDvWylxDq9C4Ac1w\n\tT5Yb9tQvyb4Bpn3vWXIWINz0BmQ4SDyPrhESfhikLjqzdlwV+n6eaikkSFzVdZbyY4/KSITaTAh\n\tORCuPtTF3RKArnA==",
        "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": "All the IPA modules declare a pipelineName that is identical\nto their name. As we now support creating IPAs by name\n(either explicitly provided by the pipeline handlers or by using the\npipeline name), the duplicated information in IPAModuleInfo is\nredundant.\n\nRemove it.\n\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n include/libcamera/ipa/ipa_module_info.h |  1 -\n src/ipa/ipu3/ipu3.cpp                   |  1 -\n src/ipa/mali-c55/mali-c55.cpp           |  1 -\n src/ipa/rkisp1/rkisp1.cpp               |  1 -\n src/ipa/rpi/pisp/pisp.cpp               |  1 -\n src/ipa/rpi/vc4/vc4.cpp                 |  1 -\n src/ipa/simple/soft_simple.cpp          |  1 -\n src/ipa/vimc/vimc.cpp                   |  1 -\n src/libcamera/ipa_module.cpp            | 15 ++++++---------\n test/ipa/ipa_module_test.cpp            |  3 ---\n 10 files changed, 6 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/include/libcamera/ipa/ipa_module_info.h b/include/libcamera/ipa/ipa_module_info.h\nindex 3507a6d7678a..436ec82d7750 100644\n--- a/include/libcamera/ipa/ipa_module_info.h\n+++ b/include/libcamera/ipa/ipa_module_info.h\n@@ -16,7 +16,6 @@ namespace libcamera {\n struct IPAModuleInfo {\n \tint moduleAPIVersion;\n \tuint32_t pipelineVersion;\n-\tchar pipelineName[256];\n \tchar name[256];\n } __attribute__((packed));\n \ndiff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp\nindex 4bdc4b7677fe..42d475ecc63a 100644\n--- a/src/ipa/ipu3/ipu3.cpp\n+++ b/src/ipa/ipu3/ipu3.cpp\n@@ -672,7 +672,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n \t\"ipu3\",\n-\t\"ipu3\",\n };\n \n /**\ndiff --git a/src/ipa/mali-c55/mali-c55.cpp b/src/ipa/mali-c55/mali-c55.cpp\nindex 1d3af0627fdb..47bcd3748f7f 100644\n--- a/src/ipa/mali-c55/mali-c55.cpp\n+++ b/src/ipa/mali-c55/mali-c55.cpp\n@@ -380,7 +380,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n \t\"mali-c55\",\n-\t\"mali-c55\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\nindex 58ef163d85ad..e0dde542c71a 100644\n--- a/src/ipa/rkisp1/rkisp1.cpp\n+++ b/src/ipa/rkisp1/rkisp1.cpp\n@@ -481,7 +481,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n \t\"rkisp1\",\n-\t\"rkisp1\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/ipa/rpi/pisp/pisp.cpp b/src/ipa/rpi/pisp/pisp.cpp\nindex de2a6afeb8c1..975d8bfdf8a5 100644\n--- a/src/ipa/rpi/pisp/pisp.cpp\n+++ b/src/ipa/rpi/pisp/pisp.cpp\n@@ -1145,7 +1145,6 @@ const IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n \t\"rpi/pisp\",\n-\t\"rpi/pisp\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/ipa/rpi/vc4/vc4.cpp b/src/ipa/rpi/vc4/vc4.cpp\nindex b6ca44e7a0a0..f30eee7ff012 100644\n--- a/src/ipa/rpi/vc4/vc4.cpp\n+++ b/src/ipa/rpi/vc4/vc4.cpp\n@@ -633,7 +633,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t1,\n \t\"rpi/vc4\",\n-\t\"rpi/vc4\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/ipa/simple/soft_simple.cpp b/src/ipa/simple/soft_simple.cpp\nindex 629e1a32de8a..d4ab91e30bf1 100644\n--- a/src/ipa/simple/soft_simple.cpp\n+++ b/src/ipa/simple/soft_simple.cpp\n@@ -343,7 +343,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t0,\n \t\"simple\",\n-\t\"simple\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp\nindex 4162b848f7b1..bae48ea90662 100644\n--- a/src/ipa/vimc/vimc.cpp\n+++ b/src/ipa/vimc/vimc.cpp\n@@ -183,7 +183,6 @@ const struct IPAModuleInfo ipaModuleInfo = {\n \tIPA_MODULE_API_VERSION,\n \t0,\n \t\"vimc\",\n-\t\"vimc\",\n };\n \n IPAInterface *ipaCreate()\ndiff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp\nindex 0bd6f14626fe..53cea6b187e8 100644\n--- a/src/libcamera/ipa_module.cpp\n+++ b/src/libcamera/ipa_module.cpp\n@@ -215,18 +215,15 @@ Span<const uint8_t> elfLoadSymbol(Span<const uint8_t> elf, const char *symbol)\n  * \\var IPAModuleInfo::pipelineVersion\n  * \\brief The pipeline handler version that the IPA module is for\n  *\n- * \\var IPAModuleInfo::pipelineName\n- * \\brief The name of the pipeline handler that the IPA module is for\n- *\n- * This name is used to match a pipeline handler with the module.\n- *\n  * \\var IPAModuleInfo::name\n  * \\brief The name of the IPA module\n  *\n- * The name may be used to build file system paths to IPA-specific resources.\n- * It shall only contain printable characters, and may not contain '*', '?' or\n- * '\\'. For IPA modules included in libcamera, it shall match the directory of\n- * the IPA module in the source tree.\n+ * This name is used to match a the IPA module.\n+ *\n+ * The name may also be used to build file system paths to IPA-specific\n+ * resources. It shall only contain printable characters, and may not contain\n+ * '*', '?' or '\\'. For IPA modules included in libcamera, it shall match the\n+ * directory of the IPA module in the source tree.\n  *\n  * \\todo Allow user to choose to isolate open source IPAs\n  */\ndiff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp\nindex 1c97da3242a7..af71c3285328 100644\n--- a/test/ipa/ipa_module_test.cpp\n+++ b/test/ipa/ipa_module_test.cpp\n@@ -37,12 +37,10 @@ protected:\n \t\t\tcerr << \"IPA module information mismatch: expected:\" << endl\n \t\t\t     << \"moduleAPIVersion = \"     << testInfo.moduleAPIVersion << endl\n \t\t\t     << \"pipelineVersion = \"      << testInfo.pipelineVersion << endl\n-\t\t\t     << \"pipelineName = \"         << testInfo.pipelineName << endl\n \t\t\t     << \"name = \"                 << testInfo.name\n \t\t\t     << \"got: \" << endl\n \t\t\t     << \"moduleAPIVersion = \"     << info.moduleAPIVersion << endl\n \t\t\t     << \"pipelineVersion = \"      << info.pipelineVersion << endl\n-\t\t\t     << \"pipelineName = \"         << info.pipelineName << endl\n \t\t\t     << \"name = \"                 << info.name << endl;\n \t\t}\n \n@@ -58,7 +56,6 @@ protected:\n \t\t\tIPA_MODULE_API_VERSION,\n \t\t\t0,\n \t\t\t\"vimc\",\n-\t\t\t\"vimc\",\n \t\t};\n \n \t\tcount += runTest(\"src/ipa/vimc/ipa_vimc.so\", testInfo);\n",
    "prefixes": [
        "02/14"
    ]
}