Show a cover letter.

GET /api/1.1/covers/25560/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 25560,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/25560/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/25560/",
    "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": "<20251215-v4l2-params-v7-0-be2b8c75ad09@ideasonboard.com>",
    "date": "2025-12-15T15:11:20",
    "name": "[v7,0/5] ipa: libipa: Introduce V4L2Params",
    "submitter": {
        "id": 143,
        "url": "https://patchwork.libcamera.org/api/1.1/people/143/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo.mondi@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/25560/mbox/",
    "series": [
        {
            "id": 5665,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5665/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5665",
            "date": "2025-12-15T15:11:20",
            "name": "ipa: libipa: Introduce V4L2Params",
            "version": 7,
            "mbox": "https://patchwork.libcamera.org/series/5665/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/25560/comments/",
    "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 4D679C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 15:11:41 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3F971619E1;\n\tMon, 15 Dec 2025 16:11:40 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 20214615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 16:11:38 +0100 (CET)",
            "from [192.168.0.172] (mob-5-90-49-39.net.vodafone.it [5.90.49.39])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 880F4C66;\n\tMon, 15 Dec 2025 16:11:31 +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=\"aboxYaet\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765811492;\n\tbh=lW7d955yy2UhzYm2sgGvjxwPzXAqHdzwCBvxW1hzpvA=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=aboxYaetQ81LVQU5zDKjnswI0t57ic7kOXQexhJLdboNDLaAgNFqerG3HNtBiYWWE\n\tDCHTbBtj+dMgeq3mAebTRdaCjxqg8YdMf8cAaakELHQxtP/iEWLWewgPrj9Bo0uje3\n\topH5sHeRtTw4SbFg4ELWNYY9elTfTNwzPQHNag+Y=",
        "From": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Subject": "[PATCH v7 0/5] ipa: libipa: Introduce V4L2Params",
        "Date": "Mon, 15 Dec 2025 16:11:20 +0100",
        "Message-Id": "<20251215-v4l2-params-v7-0-be2b8c75ad09@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIABglQGkC/3XMy27DIBCF4VeJWJeKGYZbVn2Pqgsw0CA1cQSV1\n\tSryuxdn0dpVvPyPdL4ba6mW1NjxcGM1TaWV8dLDPB3YcPKX98RL7M1QoBIWHZ/oA/nVV39uPBJ\n\t6r5xLxnrWH9eacvm6a69vvU+lfY71+45PsKyPnQm44JKEMTIH7XJ+KTH5Nl7C6Gt8HsYzW7gJ/\n\twgHektgJ4wmMpCiJql2CLki8B8hO5ESABmLA4S0Q9AvAULAlqBO2IyBjHEo1B6h1oTZEmohYiA\n\tF3oJ0dofQKwJoS+hODD6r7LVLAd0DYp7nHyf6EtH8AQAA",
        "X-Change-ID": "20250829-v4l2-params-d42aa599e78a",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>, \n\tLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>, \n\tKieran Bingham <kieran.bingham@ideasonboard.com>, \n\tAntoine Bouyer <antoine.bouyer@nxp.com>, \n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>, \n\tDaniel Scally <dan.scally@ideasonboard.com>",
        "X-Mailer": "b4 0.14.2",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=4233;\n\ti=jacopo.mondi@ideasonboard.com; h=from:subject:message-id;\n\tbh=lW7d955yy2UhzYm2sgGvjxwPzXAqHdzwCBvxW1hzpvA=;\n\tb=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBpQCUndBKv17hU1T723vYoBO+f+IdGjRaxx1vDj\n\tGScu8mkYQqJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCaUAlJwAKCRByNAaPFqFW\n\tPIY9EACKU1jjKvJAJDeWZ7RvuY+aMtUCTZZLJEb7vwBhvlJdWffh1yRHnrw8zh7/qUvKiA9rrTH\n\tlZO5EDo5Wjd/OKqFkcrv1YT+cCU7nDGXtwkeLf5C3mcSl0rSXR6tw05h84zmN3XHp905lrJQAMs\n\twFkIsI53aPSlOH18dtnNlpBOW6zkoBtAAx2zrzTpyW0ejrhfHmpevlmCUl6jwJU8uxRI5rhHnSE\n\t0rJ4CGk346unjaeFONyRI3vqZmXK2x1RFNMF6qc5SgSZ3aNpjYSTS62CO5jXLGMbk3kn3WA+Wrd\n\tCsq9AHFlOpRylr+x5Wb0oHAXKQpeIJNbfh+QqQ62joSJDFte9quwCUpYLI87x4QI/WzfQx9I5bT\n\tg/GgJvfrg7gYUZ9z5f0zrlZ3U2ChUbM6UgsOT7qaWAqdF357sN0RCbdXrVgBH50V8beZpA+tG1X\n\tdocirwpYRuu+YNPadWBU90HKklRff6nTcRF4ZjIkSiRzCupsryZ3b56r2O5LbU3FHDAE1dApsPO\n\thxfslVY6nsRrpsMuEgYV2vLJPDzNFEL71GA+qGRvngxy8hNepVteJqDENk6MtnG8LLsUyGTeOno\n\tmILKkcpMWBPq016555yYJvuf3OvXai3Q6DFL8mEcDYbeiOKiU3AYCyExhaZVovM9Xlte7RZuw4e\n\tHmvb8r18PIh82xg==",
        "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": "Linux v6.19 will see the the introduction of the v4l2-isp framework in\nthe Linux kernel and of the Mali C55 ISP driver which will use v4l2-isp\nfor handling parameters.\n\nThis series\n1) Imports stddef.h and v4l2-isp.h in libcamera from v6.19\n2) Update the Mali C55 header and IPA to compile with the version that\n   will land in v6.19\n3) Introduces V4L2Params by generalizing RkISP1Params\n4) Ports the Mali C55 IPA to use the newly introduced V4L2Params\n\nTested on rkisp1 and rzv2h\n\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n---\nChanges in v7:\n- Re-import headers based on v6.19\n- Fix mali-c55 buffer versioning\n\nChanges in v6:\n- Apply Dan's comments on documentation\n- Assert with Fatal if we run out of space\n\nChanges in v5:\n- Update to v6 of v4l2 isp\n- Import linux/stddef.h instead of re-defining __counted_by()\n- Properly memset the whole mali-c55 buffer in the transitory patch\n  before MaliC55Params introduction\n\nChanges in v4:\n- Mark RkISP1ParamBlock final\n- Fix code examples as suggested by Barnabas\n\nChanges in v3:\n- Fix Mali-C55 and re-work RkISP1\n  The Mali and RkISP1 IPA have a different requirements:\n\n\tstruct mali_c55_params_awb_gains {\n\t\tstruct v4l2_params_block_header header;\n\t\t__u16 gain00;\n\t\t__u16 gain01;\n\t\t__u16 gain10;\n\t\t__u16 gain11;\n\t};\n\n\tstruct rkisp1_ext_params_awb_gain_config {\n\t\tstruct rkisp1_ext_params_block_header header;\n\t\tstruct rkisp1_cif_isp_awb_gain_config config;\n\t} __attribute__((aligned(8)));\n\n  The RkISP1 IPA needs to support legacy and extensible parameter\n  formats, and wants to operate on 'struct rkisp1_cif_isp_' basically\n  discarding the header.\n\n  The Mali IPA (and all other IPA compatible with v4l2-isp) operates on\n  the whole structure and do not need to discard the header.\n\n  Rework V4L2ParamsBlock to return a Span<> matching the whole structure\n  (header included) to support Mali correctly.\n\n  This means the RkISP1ParamsBlock derived class has to override all the\n  dereference operators to discard the header and allow the IPA to work\n  with both the legacy and extensible formats.\n\n  Tested with Mali C55, RkISP1 in extensible and legacy modes.\n\n- Link to v2: https://lore.kernel.org/r/20250916-v4l2-params-v2-0-764471ed6435@ideasonboard.com\n\nChanges in v2:\n- Address Barnabas' reviwe that allows to remove the block() overload in\n  MaliC55\n- Link to v1: https://lore.kernel.org/r/20250829-v4l2-params-v1-0-340773fb69ff@ideasonboard.com\n\n---\nJacopo Mondi (5):\n      include: linux: Add stddef.h\n      include: linux: Add v4l2-isp.h\n      ipa: mali-c55: Update header file and adjust IPA\n      ipa: libipa: Introduce V4L2Params\n      ipa: mali-c55: Introduce MaliC55Params\n\n include/linux/mali-c55-config.h         | 170 +++------------------\n include/linux/media/v4l2-isp.h          | 102 +++++++++++++\n include/linux/stddef.h                  |  74 ++++++++++\n src/ipa/libipa/meson.build              |   2 +\n src/ipa/libipa/v4l2_params.cpp          | 253 ++++++++++++++++++++++++++++++++\n src/ipa/libipa/v4l2_params.h            | 152 +++++++++++++++++++\n src/ipa/mali-c55/algorithms/agc.cpp     |  87 +++++------\n src/ipa/mali-c55/algorithms/agc.h       |  14 +-\n src/ipa/mali-c55/algorithms/algorithm.h |   2 +-\n src/ipa/mali-c55/algorithms/awb.cpp     |  64 ++++----\n src/ipa/mali-c55/algorithms/awb.h       |  10 +-\n src/ipa/mali-c55/algorithms/blc.cpp     |  20 +--\n src/ipa/mali-c55/algorithms/blc.h       |   3 +-\n src/ipa/mali-c55/algorithms/lsc.cpp     |  58 +++-----\n src/ipa/mali-c55/algorithms/lsc.h       |   8 +-\n src/ipa/mali-c55/mali-c55.cpp           |  19 +--\n src/ipa/mali-c55/module.h               |   3 +-\n src/ipa/mali-c55/params.h               |  77 ++++++++++\n src/ipa/rkisp1/params.cpp               |  93 +-----------\n src/ipa/rkisp1/params.h                 | 175 ++++++++++++----------\n src/ipa/rkisp1/rkisp1.cpp               |   2 +-\n utils/update-kernel-headers.sh          |   2 +\n 22 files changed, 904 insertions(+), 486 deletions(-)\n---\nbase-commit: e44fb8f44031ceabf4b7d647a344b18bddd7cfbb\nchange-id: 20250829-v4l2-params-d42aa599e78a\n\nBest regards,"
}