Show a patch.

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

{
    "id": 25143,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/25143/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/25143/",
    "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": "<20251120233347.5046-20-bryan.odonoghue@linaro.org>",
    "date": "2025-11-20T23:33:43",
    "name": "[v4,19/23] libcamera: software_isp: Implement a static init() routine",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "65b0923580d2c9fc2022cc18486713943c906acc",
    "submitter": {
        "id": 175,
        "url": "https://patchwork.libcamera.org/api/1.1/people/175/?format=api",
        "name": "Bryan O'Donoghue",
        "email": "bryan.odonoghue@linaro.org"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/25143/mbox/",
    "series": [
        {
            "id": 5600,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5600/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5600",
            "date": "2025-11-20T23:33:24",
            "name": "Add GLES 2.0 GPUISP to libcamera",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/5600/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/25143/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/25143/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 7781AC3333\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 20 Nov 2025 23:34:30 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E3E0760B13;\n\tFri, 21 Nov 2025 00:34:29 +0100 (CET)",
            "from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com\n\t[IPv6:2a00:1450:4864:20::32d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C734260B2F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 Nov 2025 00:34:27 +0100 (CET)",
            "by mail-wm1-x32d.google.com with SMTP id\n\t5b1f17b1804b1-477632b0621so10049225e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 20 Nov 2025 15:34:27 -0800 (PST)",
            "from inspiron14p-linux.ht.home (188-141-3-146.dynamic.upc.ie.\n\t[188.141.3.146]) by smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-42cb7fa3a81sm7984139f8f.26.2025.11.20.15.34.25\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 20 Nov 2025 15:34:25 -0800 (PST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"k8qw85dL\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1763681667; x=1764286467;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=XGZEOlg3N1WKIZQYXL2EvkWqNCC95nhRh04jkinhjFs=;\n\tb=k8qw85dLpTQOP9pqInRJxtJ/hxqlnnwZ0EZy6J1heSxXCsAGDFqqci0Yjm66B/h2h8\n\tlawwP09gXj5DlnZOwTR6+MH3vmq0SZSNo+ETJOJq5ONSyblKPA3LD81QMBIgav/1qpvs\n\tcTGGWuDqGfM4ULbuZjyAKMTGrXSRZwQH1DY0X+GrPvUqgpeyLVj864Nol18aOQn7I7jd\n\t2ioQjXkwzg7s7uAIociiV8LUxN8JkNQ0pC1Fl3ouaz29x+Vg7p6D6JmYeAkfGC4iV38G\n\taBJth73J5fTXfL9y8FmjpHyypfsqSpyPvAHFlRzFo4K4esQWc4NzVOAsfHhIRVF9tCsM\n\tdDyg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1763681667; x=1764286467;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=XGZEOlg3N1WKIZQYXL2EvkWqNCC95nhRh04jkinhjFs=;\n\tb=er7dvRhPdFvTUfrIqFI5BibtQfo+U48CSseu89mTrsY/99gHSI5Ry/fLY9omNx3Dhd\n\tI3aNOfi1kLUFbcGkEh++ay3FPpO1Fm6MNWvMtokBvHKSqMudt5tOSmCxVfSe0FyZAhUi\n\txU6GF1JMzv2rwoAFFIdRpJkVQUi8Y67x0pA+axzyRg17osAdz3FN1vtIhjXoFGos4Xf7\n\tY4ZXJHKpD/iTmi9pyoJRrY4qMurkWkAQ/w5yp825zeS6vxYeVg6XuyFsS1RK/7+jVvyY\n\tJfU9sZGVgT7a1/Sd8D00MosUfuXVYl2Hv3qfboGB6rIijNrMBkHSemGMsr6sYCgbkP4M\n\tNh0Q==",
        "X-Gm-Message-State": "AOJu0Yx8m9kQPT0FWY8eTL1Tip7zGryQs60KGvQ18BP08KuiTxuvsf44\n\tEidoQJxpK4E2Jio2dYicp8qmuK6OyF666VKdJ5M4GzCOFiyTiArdI9CPO8XOQ3BX6WSOoe8Nnqq\n\t30HL5SjA=",
        "X-Gm-Gg": "ASbGncsNZ3is9ObCPdO0PSMOcjlYKIs9UMldfijNSnKBwN5yV9wa1klFibIU/T0UrXx\n\t+9Axn0CSj9sfKZcb1GHbx2K1iLWYNSDdKZKEA0mPQeiPOixIkU/XxsbJx+/vUwQRYYKqOayZin9\n\txBzVSGcg7QTsxccVPwnJHyYjJANlPxW6Ml+rLINEp40uPUZe091cnTBuOwp3McymqxpHx2rsTMy\n\tBsrD3sd3j0Ot+YQzbTRT1JamYeSqLYGRjadhqkcyDjnPCIvG0v0AHvC8YI8b/wpoDO0ycwlhO12\n\tARF4nIVWrByCW1MhnZg58gnu31kwS8HaOW4jq7VLoyeVPCv8ckcFmRKwhwDdflA8KaEgSrlb4V4\n\tY1fPOJQPylaad6EGT7JjBMwYpo4g3cgfJzMehzVTU/MfvhZhJ1Eq4avs9LxLAgGXo4zuI2zl9iZ\n\tADJgsnaz/2/rHey5d8m6mzqS2UxUnHsabIn/xUXpZqhJSNugTmRwVKLerde1mnNkzu5S8=",
        "X-Google-Smtp-Source": "AGHT+IEyxYWhBLs+mYoK5yV1RRcDhGwLGb6tSsX/59VJERBwFX/Za5QOr+PG0pS3FGmfG9HLY/jPIw==",
        "X-Received": "by 2002:a05:6000:1889:b0:42b:3155:21da with SMTP id\n\tffacd0b85a97d-42cc1cd8f1cmr100347f8f.2.1763681667116; \n\tThu, 20 Nov 2025 15:34:27 -0800 (PST)",
        "From": "Bryan O'Donoghue <bryan.odonoghue@linaro.org>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "pavel@ucw.cz,\n\tBryan O'Donoghue <bryan.odonoghue@linaro.org>",
        "Subject": "[PATCH v4 19/23] libcamera: software_isp: Implement a static init()\n\troutine",
        "Date": "Thu, 20 Nov 2025 23:33:43 +0000",
        "Message-ID": "<20251120233347.5046-20-bryan.odonoghue@linaro.org>",
        "X-Mailer": "git-send-email 2.51.2",
        "In-Reply-To": "<20251120233347.5046-1-bryan.odonoghue@linaro.org>",
        "References": "<20251120233347.5046-1-bryan.odonoghue@linaro.org>",
        "MIME-Version": "1.0",
        "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": "This is an overloaded init() routine that allows the CCM class to self\nenumerate a default identity CCM at colour temperature 6500k.\n\nThis is required for the case where we are running GPUISP but don't have a\nCCM for the sensor. In this case we want to generate a default CCM and use\nit instead of using the CPUISP's lookup tables.\n\nSigned-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n---\n src/ipa/simple/algorithms/ccm.cpp | 18 ++++++++++++++++++\n src/ipa/simple/algorithms/ccm.h   |  1 +\n 2 files changed, 19 insertions(+)",
    "diff": "diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp\nindex 0a98406c1..e3da6adfc 100644\n--- a/src/ipa/simple/algorithms/ccm.cpp\n+++ b/src/ipa/simple/algorithms/ccm.cpp\n@@ -42,6 +42,24 @@ int Ccm::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData\n \treturn 0;\n }\n \n+int Ccm::init([[maybe_unused]] IPAContext &context)\n+{\n+\t/* Initialize with identity CCM at standard D65 color temperature */\n+\tfloat identity[] = { 1, 0, 0,\n+\t\t\t     0, 1, 0,\n+\t\t\t     0, 0, 1 };\n+\tMatrix<float, 3, 3> identityMatrix(identity);\n+\n+\tstd::map<unsigned int, Matrix<float, 3, 3>> ccmData;\n+\tccmData[6500] = identityMatrix;\n+\n+\tccm_ = Interpolator<Matrix<float, 3, 3>>(std::move(ccmData));\n+\n+\tcontext.ccmEnabled = true;\n+\tcontext.ctrlMap[&controls::Saturation] = ControlInfo(0.0f, 2.0f, 1.0f);\n+\treturn 0;\n+}\n+\n int Ccm::configure(IPAContext &context,\n \t\t   [[maybe_unused]] const IPAConfigInfo &configInfo)\n {\ndiff --git a/src/ipa/simple/algorithms/ccm.h b/src/ipa/simple/algorithms/ccm.h\nindex 8279a3d59..b46f17726 100644\n--- a/src/ipa/simple/algorithms/ccm.h\n+++ b/src/ipa/simple/algorithms/ccm.h\n@@ -26,6 +26,7 @@ public:\n \t~Ccm() = default;\n \n \tint init(IPAContext &context, const YamlObject &tuningData) override;\n+\tint init(IPAContext &context) override;\n \tint configure(IPAContext &context,\n \t\t      const IPAConfigInfo &configInfo) override;\n \tvoid queueRequest(typename Module::Context &context,\n",
    "prefixes": [
        "v4",
        "19/23"
    ]
}