Show a cover letter.

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

{
    "id": 24304,
    "url": "https://patchwork.libcamera.org/api/covers/24304/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/24304/",
    "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": "<20250911090547.1860863-1-niklas.soderlund+renesas@ragnatech.se>",
    "date": "2025-09-11T09:05:45",
    "name": "[v2,0/2] Add Renesas R-Car Gen4 pipeline with IPA support",
    "submitter": {
        "id": 230,
        "url": "https://patchwork.libcamera.org/api/people/230/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund+renesas@ragnatech.se"
    },
    "mbox": "https://patchwork.libcamera.org/cover/24304/mbox/",
    "series": [
        {
            "id": 5430,
            "url": "https://patchwork.libcamera.org/api/series/5430/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5430",
            "date": "2025-09-11T09:05:45",
            "name": "Add Renesas R-Car Gen4 pipeline with IPA support",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/5430/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/24304/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 94BFDBDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 11 Sep 2025 09:06:39 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D63616936F;\n\tThu, 11 Sep 2025 11:06:37 +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 F066E6935A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Sep 2025 11:06:34 +0200 (CEST)",
            "from phl-compute-09.internal (phl-compute-09.internal\n\t[10.202.2.49])\n\tby mailfout.stl.internal (Postfix) with ESMTP id 97F1C1D000EC;\n\tThu, 11 Sep 2025 05:06:33 -0400 (EDT)",
            "from phl-mailfrontend-01 ([10.202.2.162])\n\tby phl-compute-09.internal (MEProxy); Thu, 11 Sep 2025 05:06:33 -0400",
            "by mail.messagingengine.com (Postfix) with ESMTPA; Thu,\n\t11 Sep 2025 05:06:32 -0400 (EDT)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=ragnatech.se header.i=@ragnatech.se\n\theader.b=\"rq0g8Xe6\"; dkim=pass (2048-bit key;\n\tunprotected) header.d=messagingengine.com\n\theader.i=@messagingengine.com header.b=\"YDlMw1B7\"; \n\tdkim-atps=neutral",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h=\n\tcc:cc:content-transfer-encoding:content-type:content-type:date\n\t:date:from:from:in-reply-to:message-id:mime-version:reply-to\n\t:subject:subject:to:to; s=fm3; t=1757581593; x=1757667993; bh=7K\n\tzXZNoE3f3DLWHiRWNNR7JlP5EQc4UuObCJEZqrLf0=; b=rq0g8Xe6JI1NqUJCez\n\t9UUuQk+3MfrE3vVEp/40R448cpap9YiAUS6oASJPBAkkKBILOJ1YRfvg1VHPYc40\n\tdbkbPaOUBPGtpJo79BonVQCLmMxcu6z2nwvd9IC98wQO4QOrZIZeHaRDbEVEHR0h\n\t91UoJbsiVJ9sVGbBTPhQ0PW5diiia9UoWrjig8vFSsYJYSBUOKaa2UbuFiBJjDCV\n\tFMGpwF33zJcgLuV6hAL9rPaMnEzJ7tb86ZjeBuVDBufvcOurOebg68V7f9mAHeYn\n\tG2u3QgxQ+HlZpIgPugTzh05wtBITER0MR7voLeQv2Y4sj3qTNdYJKpSQncktrlps\n\tiGyw==",
            "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\tfm1; t=1757581593; x=1757667993; bh=7KzXZNoE3f3DLWHiRWNNR7JlP5EQ\n\tc4UuObCJEZqrLf0=; b=YDlMw1B75HQnxmbHCmnLj4buKyLOy29FWXuzUmortuyN\n\t8e4DXGsGFjN3fkQZPWK7P10zm6UJD3DtuGgMlsoEl24SQYXSzMqrVKWzPTcSkHWI\n\trfLBrQKsesmm0DR2WMISbdte/Nxp0SMdrromoueXrdZWGcddte1HMngviiKng6XB\n\toCLBSiQChT1xunVAUTxaoxtYbR06A9xCFnz1xWLu+1wcFojjMGiAffhzOI+43ZTG\n\tZw9QSDbz1FfLFhNt0qDLtCIfPsJOC9pUBNQl4B77Gq5nx6Hj0ugg3hxb/jPWu9lN\n\tW9hVXF5i106q6LS6BhBDyuFvVkyBT1B6aXErgtN2Cw=="
        ],
        "X-ME-Sender": "<xms:GJHCaEu9jQGTBi2qtgkaqp8QoebEK7QeQYOomW209bexKgZpbG3KUA>\n\t<xme:GJHCaMAIefpH5h00HVK0GMW2Q1FNRw1PWcW94iM271_fSOVHGV5p2Kf_Dq6QBEvgr\n\tkmv1M_GJWAbNGJeaEc>",
        "X-ME-Received": "<xmr:GJHCaMVHhc1XzbHZR1LrKnKST6Q1mdEtQy3flIdAG5o0idBX6Ijp5YUTJVpYT7x1qDP9b-4ywk1pOAmoNqoUt645Yw>",
        "X-ME-Proxy-Cause": "gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvheejiecutefuodetggdotefrod\n\tftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr\n\tihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug\n\thrpefhvfevufffkffogggtgfesthekredtredtjeenucfhrhhomheppfhikhhlrghsucfu\n\tnpguvghrlhhunhguuceonhhikhhlrghsrdhsohguvghrlhhunhguodhrvghnvghsrghsse\n\thrrghgnhgrthgvtghhrdhsvgeqnecuggftrfgrthhtvghrnhephfeghfevgefhteduheff\n\thfejieelheekvdevffdutdelgedugeejueeffeevffdtnecuffhomhgrihhnpehkvghrnh\n\tgvlhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr\n\tohhmpehnihhklhgrshdrshhouggvrhhluhhnugesrhgrghhnrghtvggthhdrshgvpdhnsg\n\tgprhgtphhtthhopeegpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjrggtohhp\n\tohdrmhhonhguihesihguvggrshhonhgsohgrrhgurdgtohhmpdhrtghpthhtoheplhgruh\n\thrvghnthdrphhinhgthhgrrhhtsehiuggvrghsohhnsghorghrugdrtghomhdprhgtphht\n\tthhopehlihgstggrmhgvrhgrqdguvghvvghlsehlihhsthhsrdhlihgstggrmhgvrhgrrd\n\thorhhgpdhrtghpthhtohepnhhikhhlrghsrdhsohguvghrlhhunhguodhrvghnvghsrghs\n\tsehrrghgnhgrthgvtghhrdhsvg",
        "X-ME-Proxy": "<xmx:GJHCaKDCF-3-7-cpr0yKpO3yZytlnZO2cc-dRo5KdLyPrJCrAlNf4Q>\n\t<xmx:GJHCaP_rD8ZpMFz_wtQbG6DtKetPttaMkgs6_U0aVbIc50jbAeR_Sw>\n\t<xmx:GJHCaBGpzdtUHRhA3YvwPdLGhVDMkbdtQSMZgNauzxlCTva9DOVECw>\n\t<xmx:GJHCaNMoTxH58DfaZ3dWWZKYHHGkPEk8A_RgQ6BUY9r7ocD1tjTkqA>\n\t<xmx:GZHCaO8p_ubIraHfje9X974rId6btv17vYS3O2k20I4Vv2MD9f3v0Y3L>",
        "Feedback-ID": "i80c9496c:Fastmail",
        "From": "=?utf-8?q?Niklas_S=C3=B6derlund?=\n\t<niklas.soderlund+renesas@ragnatech.se>",
        "To": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org",
        "Cc": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund+renesas@ragnatech.se>",
        "Subject": "[PATCH v2 0/2] Add Renesas R-Car Gen4 pipeline with IPA support",
        "Date": "Thu, 11 Sep 2025 11:05:45 +0200",
        "Message-ID": "<20250911090547.1860863-1-niklas.soderlund+renesas@ragnatech.se>",
        "X-Mailer": "git-send-email 2.51.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "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": "Hello,\n\nThese two patches adds support for Renesas R-Car Gen4 devices. A new\nR-Car Gen4 specific pipeline handler is needed to support capture and\nDMA to/from the ISP. The IPA functionality can however (in user-space)\npiggy back on the existing RkISP1 IPA implementation.\n\nThe architect of the hardware consist of two different blocks. There is\none capture block (VIN) that is responsible for the interactions with\nthe sensor and get RAW frames to user-space. And a ISP block acting in\nmem-to-mem mode responsible to process the RAW frames into statistic's\nand debayerd images. One notable thing about the hardware is that there\nare no scaler available anywhere in either of the blocks (that can scale\nRAW, VIN can scale non-RAW image data).\n\nThe ISP is based on Dream Chip RPP which is similar to the V10 variant\nof RkISP1. For this reason the kernel driver was designed to reuse the\nRK1S and RK1E pixel formats. For libcamera this means the RkISP1 IPA can\nbe re-used (almost) as is.\n\nPatch 1/2 adds a ID for the Dream Chip RPP ISP for the RkISP1 IPA. It's\nvery similar to V10, but the histogram have more buckets so a distinct\nID was needed. Patch 2/2 adds the new pipeline handler and wires it up\nto the RkISP1 IPA.\n\nThis work have been tested with IMX219 and IMX462 on R-Car V4H. All\nlibcamera compliance test pass. For IPA extensive testing with camshark\nhave been done, and the RkISP1 uncalibrated.yaml hardware blocks\nfunction as expected and gives a good image.\n\nPlease note, not all RK1E blocks are yet supported by the kernel driver,\nso using imx219.yaml will enable some parts of the IPA the kernel driver\ndo not yet support. The plan on the kernel side is to add support for\nthese blocks. Doing so will (hopefully) not require any changes to\nlibcamera.\n\nThis series depends on a patch from Hans de Goede [1] to allow more then\none pipeline handler to use the same IPA. While on the kernel side this\nworks depends on the still out-of-tree patches for the R-Car ISP [2].\n\nPatches to add RkISP1 IPA debug meta data from Stefan have been used to\nverify proper operation of the hardware blocks supported by the kernel\ndriver. Thanks for all your nice utilities Stefan, it made this work so\nmuch more enjoyable!\n\nLargest change since v1 is updating internal interfaces as v1 no longer \ncompiles on-top of master. See individual patches for changelog.\n\n1. [PATCH v2 7/8] libcamera: ipa_manager: createIPA: Allow matching by IPA name instead of by pipeline\n   20250510141220.54872-8-hdegoede@redhat.com\n\n2. [PATCH 0/7] media: Add support for R-Car ISP using Dreamchip RPPX1 ISP\n   https://lore.kernel.org/linux-renesas-soc/20250617103201.1594152-1-niklas.soderlund%2Brenesas@ragnatech.se/\n\nNiklas Söderlund (2):\n  ipa: rkisp1: Add settings for DreamChip RPPX1 ISP\n  libcamera: pipeline: Add R-Car Gen4 ISP pipeline\n\n include/libcamera/ipa/meson.build             |   1 +\n include/libcamera/ipa/rkisp1.mojom            |   8 +\n meson.build                                   |   1 +\n meson_options.txt                             |   1 +\n src/ipa/rkisp1/rkisp1.cpp                     |  11 +\n src/libcamera/pipeline/rcar-gen4/frames.cpp   | 280 ++++++\n src/libcamera/pipeline/rcar-gen4/frames.h     |  85 ++\n src/libcamera/pipeline/rcar-gen4/isp.cpp      | 227 +++++\n src/libcamera/pipeline/rcar-gen4/isp.h        |  44 +\n src/libcamera/pipeline/rcar-gen4/meson.build  |   8 +\n .../pipeline/rcar-gen4/rcar-gen4.cpp          | 814 ++++++++++++++++++\n src/libcamera/pipeline/rcar-gen4/vin.cpp      | 391 +++++++++\n src/libcamera/pipeline/rcar-gen4/vin.h        |  66 ++\n 13 files changed, 1937 insertions(+)\n create mode 100644 src/libcamera/pipeline/rcar-gen4/frames.cpp\n create mode 100644 src/libcamera/pipeline/rcar-gen4/frames.h\n create mode 100644 src/libcamera/pipeline/rcar-gen4/isp.cpp\n create mode 100644 src/libcamera/pipeline/rcar-gen4/isp.h\n create mode 100644 src/libcamera/pipeline/rcar-gen4/meson.build\n create mode 100644 src/libcamera/pipeline/rcar-gen4/rcar-gen4.cpp\n create mode 100644 src/libcamera/pipeline/rcar-gen4/vin.cpp\n create mode 100644 src/libcamera/pipeline/rcar-gen4/vin.h"
}