Show a cover letter.

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

{
    "id": 26323,
    "url": "https://patchwork.libcamera.org/api/covers/26323/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/26323/",
    "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": "<20260324151714.3345-1-david.plowman@raspberrypi.com>",
    "date": "2026-03-24T14:32:06",
    "name": "[v1,0/3] Atomic control lists on Raspberry Pi",
    "submitter": {
        "id": 42,
        "url": "https://patchwork.libcamera.org/api/people/42/?format=api",
        "name": "David Plowman",
        "email": "david.plowman@raspberrypi.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/26323/mbox/",
    "series": [
        {
            "id": 5842,
            "url": "https://patchwork.libcamera.org/api/series/5842/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5842",
            "date": "2026-03-24T14:32:06",
            "name": "Atomic control lists on Raspberry Pi",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5842/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/26323/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 DEA78BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 24 Mar 2026 15:17:20 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A12666278D;\n\tTue, 24 Mar 2026 16:17:19 +0100 (CET)",
            "from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com\n\t[IPv6:2a00:1450:4864:20::32e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6FECE6277D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 24 Mar 2026 16:17:18 +0100 (CET)",
            "by mail-wm1-x32e.google.com with SMTP id\n\t5b1f17b1804b1-48700b1ba53so38827055e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 24 Mar 2026 08:17:18 -0700 (PDT)",
            "from davidp-pi5.pitowers.org\n\t([2a00:1098:3142:1f:88ea:c658:5b20:5e46])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-487116c44bfsm63826065e9.9.2026.03.24.08.17.17\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 24 Mar 2026 08:17:17 -0700 (PDT)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"Ii7U1ODB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1774365438; x=1774970238;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=6P1OoAghNOyMY+X7TP1yP3CyIFzqYNOXRRPOeczLjo0=;\n\tb=Ii7U1ODBUdj3gJ5waAp22z0a2TAmFBhRYxFMCyMCUIJCWv1qoYL2009PNcIli9M3RB\n\tydQ+qWgxLFnaKtZvVB/E0agFES7UKUTaKQ39lat7Fwepepr53S41wG6lCgOKjh3FHq2A\n\tEn6mzkOT2vRubGtWY8+UEDVBbZeyeT6TRejupFDw+9rKayFp1wKnUSsEUVo72mHlV1Ll\n\tN8mBZmQwCtMZBgpBvsvGx1sY4NtksxnbmsCN++77qj9YTGlPVAQRRXjU7zqMUIjIAl2z\n\tvHmIj+ybP7eW2cQYCpYtBdPJV1sGVQ7sEgGLS18906AnvM4tIk/gwEvuUNM71MAkCK4D\n\t5KQg==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1774365438; x=1774970238;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=6P1OoAghNOyMY+X7TP1yP3CyIFzqYNOXRRPOeczLjo0=;\n\tb=aD41TuYHYlvIU8iYKNp982ve3BYLVy70K3IfIIEiGxb/IhrFBuB1/jOZR2y0Q9DHgN\n\tbaBO2gfJVicfmPRgPdya66b++O1TqIqzr60SsnfA9yQ87guA6EKR3Te9/xSFF1j4ZznE\n\tI532l1l93qcD2u+rHxKrjNVj8Wa+bj5vrLPRLOdPrsHRjpGIDSpirwnGo7FExo53F6j4\n\ttnTzrjatg18lbx6z+fDw+uOVjAYeioV70sdGmwk4fYEYyRufUxNQqvWvtJI1SgyJd3ID\n\t+M8XauFCXxUvaFsLqczINgVdmk+ZvmV+kSuKAidpeI9Djy5L6Ct39/Knx4lHZ5Zu/sx6\n\t75hQ==",
        "X-Gm-Message-State": "AOJu0YyZTe0yc6NYEsbJ3/0JP3pD8B8iBK6+7M/UqDtCgdCGo6JZrlHg\n\tsjs3VrODVxOR9UD0MIbYlzNCYvRO5wTsrePJ+qgfESh7b20hh5CaG+0YkhiRQEMMsZo6LS2DXDo\n\txlncN",
        "X-Gm-Gg": "ATEYQzwssoCupRI73/x97ONb68CCobt6s7lUSLJnvdtJ96IdTW/r6+V8zjC9dZY53E+\n\tfGGykzERG8hHOy0h2pAO7U5XuUlF2YGANVnHvf4SRvHj55l4BmYcPTsP3yFQ9JwAjvvsQNlMKsK\n\tqsNT6xV7w+812nWPyfjwG7t53OcrWsnv7G9XLQfJb/nd8zI+e0KmVmBAwcz3IHJZSGK7TxGUOjS\n\tDX7mxyODW1t1bG2zRSW4yjuVMbqczjdYAk/fP3nCdDdc4xEWB329PEUYX0fIiKDqywSDMVT0sfN\n\tdULXdKJKCQAt6vK46MfkxZnmsAHZ4FYtQDaRMvSP5MD1MguhdX8+/6XeskCNSmDdMkh/wwk1gVx\n\tty3pPbCpP+mxiNrIFyDhqgZ6ixcD+Zpzips9LA7X4eoYYgepQflyPW6CQ59Xuz52lR0Od6Pwmau\n\tFBg4sLmpAKkgwkp2PO3dfVx+H911EzF/zvIbBUbzkuCHvAhfZo9MaTPKhi3cghrUeiBR/rmwQT+\n\tEkPgGLv/5GfjyoXCBvbduiQAacsagy887sW39TABQ==",
        "X-Received": "by 2002:a05:600c:4644:b0:485:2fe9:336f with SMTP id\n\t5b1f17b1804b1-4871607e225mr1166895e9.30.1774365437562; \n\tTue, 24 Mar 2026 08:17:17 -0700 (PDT)",
        "From": "David Plowman <david.plowman@raspberrypi.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "David Plowman <david.plowman@raspberrypi.com>",
        "Subject": "[PATCH v1 0/3] Atomic control lists on Raspberry Pi",
        "Date": "Tue, 24 Mar 2026 14:32:06 +0000",
        "Message-ID": "<20260324151714.3345-1-david.plowman@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.47.3",
        "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": "Hi\n\nCurrently, on Raspberry Pi, when control lists are submitted in a\nrequest, they are not all applied on the same frame. \"Immediate\" (or\nISP controls) can be applied instantly, and will therefore happen\nseveral frames before the \"delayed\" controls (like exposure time,\nanalogue gain and so on which require us to wait for the sensor).\n\nThis small patch set fixes that by holding back the immediate\ncontrols, until the delayed controls submitted in the same request,\nhave happened.\n\nAs we already have the necessary information, we can also flag every\nrequest with the sequence number of the request whose control list has\nactually just been applied, which we do using the \"ControlId\"\nmetadata.\n\nThis first patch is some tidying that came out of doing this work, but\nis not otherwise terribly significant (beyond being correct or not!).\n\nThe second patch defines the \"ControlId\" control, and the final patch\ncontains the bulk of the changes.\n\nThanks!\nDavid\n\nDavid Plowman (3):\n  pipeline: rpi: Simplify delayed controls\n  controls: rpi: Add ControlId control\n  pipeline: rpi: Make control lists in requests properly atomic\n\n src/ipa/rpi/common/ipa_base.cpp               | 24 ++++++----\n src/libcamera/control_ids_rpi.yaml            | 10 ++++\n .../pipeline/rpi/common/delayed_controls.cpp  | 22 ++++-----\n .../pipeline/rpi/common/delayed_controls.h    |  1 -\n .../pipeline/rpi/common/pipeline_base.cpp     | 46 +++++++++++++++++++\n .../pipeline/rpi/common/pipeline_base.h       |  8 ++++\n src/libcamera/pipeline/rpi/pisp/pisp.cpp      |  3 ++\n src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  3 ++\n 8 files changed, 96 insertions(+), 21 deletions(-)"
}