Patch Detail
Show a patch.
GET /api/1.1/patches/25327/?format=api
{ "id": 25327, "url": "https://patchwork.libcamera.org/api/1.1/patches/25327/?format=api", "web_url": "https://patchwork.libcamera.org/patch/25327/", "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": "<20251202134544.662446-19-bryan.odonoghue@linaro.org>", "date": "2025-12-02T13:45:38", "name": "[v6,18/24] 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/25327/mbox/", "series": [ { "id": 5631, "url": "https://patchwork.libcamera.org/api/1.1/series/5631/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5631", "date": "2025-12-02T13:45:20", "name": "Add GLES 2.0 GPUISP to libcamera", "version": 6, "mbox": "https://patchwork.libcamera.org/series/5631/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/25327/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/25327/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 3C512C32F7\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 2 Dec 2025 13:46:28 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7B18B60E3E;\n\tTue, 2 Dec 2025 14:46:27 +0100 (CET)", "from mail-wm1-x332.google.com (mail-wm1-x332.google.com\n\t[IPv6:2a00:1450:4864:20::332])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0B32060D36\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 2 Dec 2025 14:46:19 +0100 (CET)", "by mail-wm1-x332.google.com with SMTP id\n\t5b1f17b1804b1-477632d9326so34862025e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 02 Dec 2025 05:46:19 -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\t5b1f17b1804b1-47926f0ec69sm19383375e9.1.2025.12.02.05.46.17\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 02 Dec 2025 05:46:17 -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=\"fWgfHMJq\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1764683178; x=1765287978;\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=3Y8+tq/SF7PURWDF6ElcSls3YEXtlcYRYqDXKFddwTk=;\n\tb=fWgfHMJqLd/cjGh1oMV6lHMf30XX6sf3/8pGdve8Fcm89GNoKT5kxvNNcq0rIFGE7L\n\t1sZRZIcQq4THsIRmi7AqKH8O+YXvHoLS2WY+3XetjL4b6VdMQUjML8M+9yfH6Bj+TjHQ\n\t2peL7QuZg4rwJeJay73JSA7fCEbyruh/PbDn8/Gw50hnOlnEyCsII4+QMTdgR2yCx+Dp\n\t7lkEUwV2wX9DfFvpeBdSFZbKfz7neUOfNuqmz6MrtX4ZxcgMstkGN+rKW6Wg9qSk+XEj\n\tugF/FasCo85A8yaHjpi8FRG9pXI1pSMyTnSuCJvE9rMfhgtdu5s2YCoJeqHCgPQxwgLS\n\t8jRg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1764683178; x=1765287978;\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=3Y8+tq/SF7PURWDF6ElcSls3YEXtlcYRYqDXKFddwTk=;\n\tb=B+Cx93vefMvP5mwIwctxdhqHtz4jyTQ8rUa7KS+ZNNaVbM7/aaIXY8bayC03odw01K\n\t3kjdwasu61fOVF5L8SncXzhQF/8FvKoXfIHHbVYZozRqM5n7HPUjsL4GELLB59TD2pYq\n\tH/OVapn2H5iJz8AAPbM6wH0Twsa+0D0nxLuV5BzNg70LQnZttq8Kd2t6D7epb6zpILfw\n\tFAIpVJKa91l/ZPQUwYsPihxIIhWoddklyZQi8Cu+RxuZnfoiJfCooUx+WHAcFOLc53+i\n\tQROtyU4VmGp2VmRWrDutDsmnacPqKoS6ENpVaJLcG2ZxaWhtB/I1+ak5K0EVz86VDaMh\n\tIFbA==", "X-Gm-Message-State": "AOJu0YxdVjN5f2pmBjJw7LiFAScurnrSRxUggBg3HBDWznFP722r6+4t\n\tJZk1vtJ7gYsY4tAZRZAxnLqE+8KFwnlS7xNSrT7ufOX0HCRAAZ+qu3dLr+d7l4GNhuwFSs4rjJ4\n\tewOwG", "X-Gm-Gg": "ASbGnculAhhz03G+yYXP0paNNH59OLHe+S32SCdd4koZrFK2roNZyyYJHqXIMFjMMkJ\n\t6ECWW/zZOGqadbFJiNzJe89M7eUaslWTH7ytD/d0xOXd84sYWBLh8bVrkXc+llETZtx6KeWbEij\n\tkNmmgHQRFU8vy8t3P7XvPp9Lb0sPjq/iIeMkvA9Q3gRQZXqMEjQNTNt/57UfCD0mspapnNN+461\n\tTf1+to+xuhcis+mwiIfrPBzfmJlu931+54iVFfBJ7Ypm/SP6IJiPAGKi/me3cnrwLB2gAqAKcbV\n\t/LWWKx9LIBz2ZD8Q61MqtUUfFSr2TNt1pm5h3srS09URHl0XomQCvn5a3UbH/K+SOTiFRZIZCeI\n\tAC7k55meCMOHoK2WJ6wncqUxmTu9zOqBXNQczViXh2XledPDtuKxji9HlCaAxThWxXYzGKh7k/5\n\tQX6Q/XxegeM3cHHXSWQuLtePctCWJp1dSbyzBRFZdXnaQvmmn/YD65gaqgHvs2V9T426A=", "X-Google-Smtp-Source": "AGHT+IFPbxEDnFr2zioZjIKcX05HlT24ToS7YjukqMaei4yZI1YRnl/8lQsxT1thfB30kbRRVxwzQg==", "X-Received": "by 2002:a05:600c:45c9:b0:477:af07:dd1c with SMTP id\n\t5b1f17b1804b1-477c0212123mr431591465e9.35.1764683178322; \n\tTue, 02 Dec 2025 05:46:18 -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 v6 18/24] libcamera: software_isp: Implement a static init()\n\troutine", "Date": "Tue, 2 Dec 2025 13:45:38 +0000", "Message-ID": "<20251202134544.662446-19-bryan.odonoghue@linaro.org>", "X-Mailer": "git-send-email 2.52.0", "In-Reply-To": "<20251202134544.662446-1-bryan.odonoghue@linaro.org>", "References": "<20251202134544.662446-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": [ "v6", "18/24" ] }