Show a cover letter.

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

{
    "id": 26713,
    "url": "https://patchwork.libcamera.org/api/covers/26713/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/26713/",
    "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": "<20260511-ov2740-tuning-v3-0-8ff3e57c7368@jetm.me>",
    "date": "2026-05-11T18:16:00",
    "name": "[v3,0/3] ipa: simple: Add OV2740 tuning + AIQB parser",
    "submitter": {
        "id": 261,
        "url": "https://patchwork.libcamera.org/api/people/261/?format=api",
        "name": "Javier Tia",
        "email": "floss@jetm.me"
    },
    "mbox": "https://patchwork.libcamera.org/cover/26713/mbox/",
    "series": [
        {
            "id": 5933,
            "url": "https://patchwork.libcamera.org/api/series/5933/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5933",
            "date": "2026-05-11T18:16:00",
            "name": "ipa: simple: Add OV2740 tuning + AIQB parser",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/5933/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/26713/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 5185EBDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 11 May 2026 18:16:10 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8F51D6302A;\n\tMon, 11 May 2026 20:16:08 +0200 (CEST)",
            "from fout-b1-smtp.messagingengine.com\n\t(fout-b1-smtp.messagingengine.com [202.12.124.144])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F400F62DC4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 11 May 2026 20:16:05 +0200 (CEST)",
            "from phl-compute-02.internal (phl-compute-02.internal\n\t[10.202.2.42])\n\tby mailfout.stl.internal (Postfix) with ESMTP id 73CFB1D00151;\n\tMon, 11 May 2026 14:16:04 -0400 (EDT)",
            "from phl-imap-07 ([10.202.2.97])\n\tby phl-compute-02.internal (MEProxy); Mon, 11 May 2026 14:16:04 -0400",
            "by mailuser.phl.internal (Postfix, from userid 501)\n\tid 82E431EA006B; Mon, 11 May 2026 14:16:03 -0400 (EDT)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=jetm.me header.i=@jetm.me header.b=\"ZVwdiXdZ\";\n\tdkim=pass (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"rz8bIDmo\"; \n\tdkim-atps=neutral",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=jetm.me; h=cc:cc\n\t:content-transfer-encoding:content-type:content-type:date:date\n\t:from:from:in-reply-to:message-id:mime-version:reply-to:subject\n\t:subject:to:to; s=fm2; t=1778523364; x=1778609764; bh=qAB9xtyNBG\n\tKrbMb1URXKEasN7IDSDz3MsUrNgR74SXM=; b=ZVwdiXdZV0oozb0cZY+cqN89Si\n\tbTv1n4Qe+M70ZnPicPJJ5tqBysm6OVgsdxHTt8grQ4EmdxHJYM3FdKxa5KNjZ1z6\n\tkI5nc6JXW51QIzyMAvBFWeEpo4DoXWin67K0oL7rvc0lNOoCez3lfCgFrhy8iwxL\n\tAKjgxkvaDtNkpT4ZMyZKB6RjAnH5d6Kr0CINCNiYtltEeylpvzBYgtk+I/QqpMtU\n\t+/zcojnlHMMTgpl/RmdLiPDk05mVRrbLk6f6m33bUe6cqvVHY7Hg8qd4IecHwbHk\n\tHsGa6JlfQ/Vl0tle89P/waCRwkOG3Yt5Iu/mnXgwPFFIOhucm1zoxn/n+45w==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n\tmessagingengine.com; h=cc:cc:content-transfer-encoding\n\t:content-type:content-type:date:date:feedback-id:feedback-id\n\t:from:from:in-reply-to:message-id:mime-version:reply-to:subject\n\t:subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n\tfm3; t=1778523364; x=1778609764; bh=qAB9xtyNBGKrbMb1URXKEasN7IDS\n\tDz3MsUrNgR74SXM=; b=rz8bIDmoz/Zl3Fxlw1u15nRNsHLUymWLiXElqwYmqzxj\n\tkmjnpa+pxT3eD1NtBnnJNZCKCI6Lr8Q5F2b0qGs4JEnYv+a+qI6dag/a0JpKoyBn\n\tjEEfnPW0T5jmnc6PPw+SLdd2T/w/dwCpxhejymOvXs8L/eBruwfs6JD4UI7rMKOl\n\t3XtcmLe4ACusiH0NefkfLiEi25wHMuGKGovSeZjCuCT8fPXMpJcKIPqitUEaAhrq\n\tOP2e1Euu+R75P3zUThQ7p3b8pJlph2AizDV/qjaKCCwRIKwxLcWpL8uDuUf66Grd\n\tIvJZbK/XAopwBhbRmMc45GLZ0GRsf+Ihu3eecq2g6g=="
        ],
        "X-ME-Sender": "<xms:4xwCaqm1nNZH6vgU9m6chVJIsmvnqhSgVyHU06pQxZMmOsXTqho57Q>\n\t<xme:4xwCasoCSg2qqbz5twgBU4R8guZ0nIWVjEBvQzHy1aV0-ZbtOGT0Hwu2H3bNkFBHh\n\tm6YgidQ9XMLtKmj1EZ1GpUnbpk3llcavIllrkK0PSXLDQNk9jYuRoXb>",
        "X-ME-Proxy-Cause": "gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgdduudeliedvucetufdoteggodetrf\n\tdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu\n\trghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf\n\tgurhepoffhufffkfggtgfgvfevofesthejredtredtjeenucfhrhhomheplfgrvhhivghr\n\tucfvihgruceofhhlohhsshesjhgvthhmrdhmvgeqnecuggftrfgrthhtvghrnhepueffhe\n\tehhfettdelgfekteevtdeludefgfektdeulefggfevuedufeehheeuveeknecuffhomhgr\n\tihhnpehlihgstggrmhgvrhgrrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrg\n\thrrghmpehmrghilhhfrhhomhepfhhlohhsshesjhgvthhmrdhmvgdpnhgspghrtghpthht\n\tohepjedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprhhosggvrhhtrdhmrgguvg\n\thrsegtohhllhgrsghorhgrrdgtohhmpdhrtghpthhtohepsggrrhhnrggsrghsrdhpohgt\n\tiigvsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphhtthhopehkihgvrhgrnhdrsg\n\thinhhghhgrmhesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtoheplhgruhhr\n\tvghnthdrphhinhgthhgrrhhtsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphhtth\n\thopehlihgstggrmhgvrhgrqdguvghvvghlsehlihhsthhsrdhlihgstggrmhgvrhgrrdho\n\trhhgpdhrtghpthhtohepjhhohhgrnhhnvghsrdhgohgvuggvsehoshhsrdhquhgrlhgtoh\n\thmmhdrtghomhdprhgtphhtthhopehmiigrmhgriigrlhesrhgvughhrghtrdgtohhm",
        "X-ME-Proxy": "<xmx:4xwCasNcoQU_g5F4uLbEQEGbvxNP81zTCbtjMBIE5RBFoysxFShJxw>\n\t<xmx:4xwCatAQHU8uUIeEW0qaLcrwhvDTHy0NwTsmc6KPUQtHOvb6GgsbpQ>\n\t<xmx:4xwCajJkFSBM4lYwDZUmJBDcs1XhWtlYXpnRNSlKrOtf2a-l1WCVwg>\n\t<xmx:4xwCamOQoSmy-VTsMM2irVxYjZx8rrLCTTLsgdNTYsR72T8bKkN_BA>\n\t<xmx:5BwCalOMF0OtoNKy4h-C42vQ1t3GoItDHgTXLJehHqFQU-nyLCjmhhIq>",
        "Feedback-ID": "i9dde48b3:Fastmail",
        "X-Mailer": [
            "MessagingEngine.com Webmail Interface",
            "b4 0.15.2"
        ],
        "From": "Javier Tia <floss@jetm.me>",
        "Subject": "[PATCH v3 0/3] ipa: simple: Add OV2740 tuning + AIQB parser",
        "Date": "Mon, 11 May 2026 12:16:00 -0600",
        "Message-Id": "<20260511-ov2740-tuning-v3-0-8ff3e57c7368@jetm.me>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIAAAAAAAC/yXMQQ5AMBBA0avIrDVpR5G4iljQjhqLkhaRiLsrl\n\tm/x/wWRAlOEJrsg0MGRF59Q5BmYqfeOBNtkQImVLJUSy4G1lmLbPXsnlNGEKLXFeoDUrIFGPr9\n\tf2/2O+zCT2d4J3PcDRgQrIXEAAAA=",
        "X-Change-ID": "20260511-ov2740-tuning-1c4e2204d27b",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <barnabas.pocze@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>, Robert Mader\n\t<robert.mader@collabora.com>, Hans de Goede\n\t<johannes.goede@oss.qualcomm.com>",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=1899; i=floss@jetm.me;\n\th=from:subject:message-id;\n\tbh=XsfQfy939N7pxlBKVZ3BoTafo075W5+P/qYHtM+5mSs=; \n\tb=owEB7QES/pANAwAKAbXuwwuoZ3cfAcsmYgBqAhzg0HiqEY8tIUwHX9pB2CURW3Ysu6+EDl/c9\n\tjKSc3LjZlmJAbMEAAEKAB0WIQSbE7ILzw7eI0VKk8m17sMLqGd3HwUCagIc4AAKCRC17sMLqGd3\n\tH1vbC/9qbUg4HPZm4Ug2pe7BudQoqnTp7i6QHgzCdso8XquO7dV1wC8xUVdYJdZmxJWok+OftGT\n\txXukCT9hjh6H+DXGNtWEuJlsGOUMnqxYjeWb7nxQUc2g3LOPHU8pqbayJ4cOTKvLYWQhC3ysEJR\n\tayVqxdfH2QaniVZSX6GBU8ZhleUEof1grwt5f6RfNw177XTBQ+q1r+qdFBTTg/uLeryRGcUz2U7\n\tUaL5fU7mHW0/UbISXUmeEiPXinDZIZZ1utN0Re5xGBw6Fw607AlF5PGrieqt402HfgcpVOtOYAL\n\tVsipLZ7bV6ToZR//iVCGksICBNTGEerYrwmTN3h8Z+VUIjrO4/G+WGZS0WE5csZl+0S0R5l2Trz\n\tcxbHAnLKSDUb5iRsmBn+46EsT5DxXLD5qx69hfTkUYFB4dBWh4Z2OPxmcIdaL3NmeWNCtg0xyqt\n\tP/VDO8rI2Xf7A38H87R8FsAMwe/KMhQ9ivjmgpLEpe5nGP+7YjdwdHVU9wYuV050RkYqE=",
        "X-Developer-Key": "i=floss@jetm.me; a=openpgp;\n\tfpr=9B13B20BCF0EDE23454A93C9B5EEC30BA867771F",
        "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": "Add a calibrated tuning file for the OV2740 sensor based on the Intel\nIPU6 AIQB shipped with the Lenovo ThinkPad X1 Carbon Gen 10, and the\nPython parser that produced it. The first patch drops a now-dead guard\nin SwStatsCpu::finishFrame() flagged during review of the v2 series.\n\nChanges since v2:\n- AIQB parser: tightened the file header docstring to avoid duplicating\n  the argparse description, cited ia_cmc_types.h as the format source,\n  removed the --black-level CLI flag (black levels belong in\n  CameraSensorHelper, not in the tuning emitted by this script),\n  introduced a ColorMatrixRecord dataclass so the id=18 unpacking\n  reads as named fields, switched the YAML output to PyYAML via a\n  Dumper subclass, and now write the YAML to <sensor>.yaml so the\n  diagnostic prints don't have to be filtered out. (Laurent Pinchart)\n- OV2740 tuning: no functional changes; regenerated against the\n  updated parser to confirm the output is byte-identical.\n- SwStatsCpu sumShift_ guard: no functional changes; rebased so it\n  applies cleanly on top of the merged v5 AGC/AWB series.\n\nLink to v2: https://patchwork.libcamera.org/project/libcamera/list/?series=5926\n\nSigned-off-by: Javier Tia <floss@jetm.me>\n---\nJavier Tia (3):\n      libcamera: software_isp: Drop redundant sumShift_ guard in finishFrame\n      ipa: simple: data: Add OV2740 tuning file\n      utils: tuning: Add AIQB parser for Intel IPU6 sensors\n\n src/ipa/simple/data/meson.build            |   1 +\n src/ipa/simple/data/ov2740.yaml            |  72 +++++++\n src/libcamera/software_isp/swstats_cpu.cpp |   9 +-\n utils/tuning/parse_aiqb.py                 | 335 +++++++++++++++++++++++++++++\n 4 files changed, 412 insertions(+), 5 deletions(-)\n---\nbase-commit: 500c2320619a47bd01d1ffe69ca4cc6eae6e00e8\nchange-id: 20260511-ov2740-tuning-1c4e2204d27b\n\nBest regards,\n--  \nJavier Tia <floss@jetm.me>"
}