Show a cover letter.

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

{
    "id": 27159,
    "url": "https://patchwork.libcamera.org/api/covers/27159/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/27159/",
    "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": "<20260703122543.1991189-1-paul.elder@ideasonboard.com>",
    "date": "2026-07-03T12:25:06",
    "name": "[RFC,00/19] Add support for rkisp2",
    "submitter": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/people/17/?format=api",
        "name": "Paul Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/27159/mbox/",
    "series": [
        {
            "id": 6035,
            "url": "https://patchwork.libcamera.org/api/series/6035/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6035",
            "date": "2026-07-03T12:25:06",
            "name": "Add support for rkisp2",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/6035/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/27159/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 0FFAEC328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 Jul 2026 12:26:02 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0C24165FBF;\n\tFri,  3 Jul 2026 14:26:02 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 94F4765F9F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Jul 2026 14:26:00 +0200 (CEST)",
            "from neptunite.hamster-moth.ts.net (unknown\n\t[IPv6:2404:7a81:160:2100:a2cc:2f45:3bd7:2589])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4C2BF8E0;\n\tFri,  3 Jul 2026 14:25:11 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"jEjwy2UE\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1783081514;\n\tbh=2bZzdJZY8/71ZnfupJLYHSSbecsERUAdwBsSQF4gPBI=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=jEjwy2UEEszh36AIYn7RcElrvBoxdWegLY9/T8JBiZsIucQH7Qf31+gSUya6wb8RP\n\tF7wcIYvsIjOoJhONpbf6QXDG8HnKTMOKtqy/lN5lbx2QVuorWgNHGpxAlV7SpA5obc\n\t3BnU7WlgW3tuC3xL2CwgzalLXJu76D4+MvsrLk4Y=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "laurent.pinchart@ideasonboard.com",
        "Cc": "Paul Elder <paul.elder@ideasonboard.com>, michael.riesch@collabora.com, \n\txuhf@rock-chips.com, stefan.klug@ideasonboard.com,\n\tkieran.bingham@ideasonboard.com, dan.scally@ideasonboard.com,\n\tjacopo.mondi@ideasonboard.com, nicolas.dufresne@collabora.com,\n\tlibcamera-devel@lists.libcamera.org",
        "Subject": "[RFC PATCH 00/19] Add support for rkisp2",
        "Date": "Fri,  3 Jul 2026 21:25:06 +0900",
        "Message-ID": "<20260703122543.1991189-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.47.2",
        "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 series adds support for the rkisp2 pipeline handler and its IPA. It\nsupports versions of the ISP supported by the rkisp2 driver (hence the\nname) in conjuction with the rkcif driver. The rkisp2 driver is posted\non the list in RFC form [5] and currently supports the RK3588.\n\nThis pipeline handler implementation only supports memory-to-memory\nmode, and I've added a patch to support the the currently posted version\nof the shared media graph [6]. I've also implemented a handful of\ncontrol algorithms (see patch list below).\n\nThis series depends on:\n- v2 of \"ipa: libipa: Introduce libipa algorithms\" [0]\n- v2 of \"libipa: Re-work IPU3 IPA to use libipa algorithms\" [1]\n- v2 of \"rkisp1: pipeline rework for PFC\" (patches 1~24 inclusive) [2]\nI've merged these together into a base branch here [3] and I have a\nbranch including this series here [4].\n\nOn the kernel side, this series depends on:\n- rfc of \"media: rockchip: rkisp2: Add driver for ISP on Rk3588\" [5]\n- rfc of \"Add Shared Media Graph API\" [6]\nOf which I have a branch here [7]\n\nI've added the IPA before the pipeline handler to not break\ncompilation/execution and without having to replumb the pipeline\nhandler. Otherwise I think the patchlist below is self-explanatory. \n\n[0] https://patchwork.libcamera.org/project/libcamera/list/?series=6013\n[1] https://patchwork.libcamera.org/project/libcamera/list/?series=6022\n[2] https://patchwork.libcamera.org/project/libcamera/list/?series=5849\n[3] https://git.ideasonboard.com/epaul/libcamera/src/branch/epaul/dev/rkisp2/base\n[4] https://git.ideasonboard.com/epaul/libcamera/src/branch/epaul/dev/rkisp2/upstream\n[5] https://lore.kernel.org/all/20260424175853.638202-1-paul.elder@ideasonboard.com/\n[6] https://lore.kernel.org/all/20260619052637.1110672-1-paul.elder@ideasonboard.com/\n[7] https://gitlab.freedesktop.org/linux-media/users/epaul/-/tree/epaul/v7.1-rc1/rk3588/shared-mc/upstream\n\nPaul Elder (19):\n  utils: update-kernel-headers: Add rkisp2-config.h\n  include: linux: rkisp2-config.h: update to v7.0\n  ipa: rkisp2: params: Add rkisp2 extensible parameters wrapper\n  include: ipa: rkisp2: Add rkisp2 ipa interface\n  ipa: rkisp2: Add rkisp2 ipa\n  pipeline: rkisp2: Implement pipeline handler for rkisp2\n  pipeline: rkisp2: Support shared media graph\n  ipa: rkisp2: algo: bls: Implement black level subtraction\n  ipa: rkisp2: algo: awb: Implement automatic white balance control\n  ipa: rkisp2: algo: agc: Implement automatic gain control\n  ipa: rkisp2: algo: ccm: Implement color correction matrix\n  ipa: rkisp2: algo: csm: Implement color space conversion\n  ipa: rkisp2: algo: goc: Implement gamma out correction\n  ipa: rkisp2: algo: lsc: Implement lens shading correction\n  utils: tuning: libtuning: image: Enable images missing some metadata\n  utils: tuning: rkisp2.py: Add tuning script for rkisp2\n  ipa: rkisp2: data: Add uncalibrated tuning file\n  ipa: rkisp2: data: Add rudimentary tuning file for imx219\n  ipa: rkisp2: data: Add tuning file for imx708\n\n Documentation/runtime_configuration.rst   |    9 +\n include/libcamera/ipa/meson.build         |    1 +\n include/libcamera/ipa/rkisp2.mojom        |   47 +\n include/linux/README                      |    2 +-\n include/linux/rkisp2-config.h             |  562 +++++++++\n include/linux/videodev2.h                 |    4 +\n meson.build                               |    1 +\n meson_options.txt                         |    5 +-\n src/ipa/rkisp2/algorithms/agc.cpp         |  472 ++++++++\n src/ipa/rkisp2/algorithms/agc.h           |   58 +\n src/ipa/rkisp2/algorithms/algorithm.h     |   42 +\n src/ipa/rkisp2/algorithms/awb.cpp         |  174 +++\n src/ipa/rkisp2/algorithms/awb.h           |   56 +\n src/ipa/rkisp2/algorithms/bls.cpp         |  154 +++\n src/ipa/rkisp2/algorithms/bls.h           |   41 +\n src/ipa/rkisp2/algorithms/ccm.cpp         |  126 ++\n src/ipa/rkisp2/algorithms/ccm.h           |   57 +\n src/ipa/rkisp2/algorithms/csm.cpp         |  177 +++\n src/ipa/rkisp2/algorithms/csm.h           |   34 +\n src/ipa/rkisp2/algorithms/goc.cpp         |  143 +++\n src/ipa/rkisp2/algorithms/goc.h           |   42 +\n src/ipa/rkisp2/algorithms/lsc.cpp         |  263 ++++\n src/ipa/rkisp2/algorithms/lsc.h           |   71 ++\n src/ipa/rkisp2/algorithms/meson.build     |   12 +\n src/ipa/rkisp2/algorithms/module.h        |   28 +\n src/ipa/rkisp2/data/imx219.yaml           |  139 +++\n src/ipa/rkisp2/data/imx708.yaml           |  154 +++\n src/ipa/rkisp2/data/meson.build           |   12 +\n src/ipa/rkisp2/data/uncalibrated.yaml     |    7 +\n src/ipa/rkisp2/ipa_context.h              |  201 ++++\n src/ipa/rkisp2/meson.build                |   30 +\n src/ipa/rkisp2/params.h                   |   83 ++\n src/ipa/rkisp2/rkisp2.cpp                 |  429 +++++++\n src/libcamera/pipeline/rkisp2/meson.build |    5 +\n src/libcamera/pipeline/rkisp2/rkisp2.cpp  | 1330 +++++++++++++++++++++\n utils/tuning/libtuning/image.py           |   25 +-\n utils/tuning/rkisp2.py                    |   42 +\n utils/update-kernel-headers.sh            |    1 +\n 38 files changed, 5031 insertions(+), 8 deletions(-)\n create mode 100644 include/libcamera/ipa/rkisp2.mojom\n create mode 100644 include/linux/rkisp2-config.h\n create mode 100644 src/ipa/rkisp2/algorithms/agc.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/agc.h\n create mode 100644 src/ipa/rkisp2/algorithms/algorithm.h\n create mode 100644 src/ipa/rkisp2/algorithms/awb.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/awb.h\n create mode 100644 src/ipa/rkisp2/algorithms/bls.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/bls.h\n create mode 100644 src/ipa/rkisp2/algorithms/ccm.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/ccm.h\n create mode 100644 src/ipa/rkisp2/algorithms/csm.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/csm.h\n create mode 100644 src/ipa/rkisp2/algorithms/goc.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/goc.h\n create mode 100644 src/ipa/rkisp2/algorithms/lsc.cpp\n create mode 100644 src/ipa/rkisp2/algorithms/lsc.h\n create mode 100644 src/ipa/rkisp2/algorithms/meson.build\n create mode 100644 src/ipa/rkisp2/algorithms/module.h\n create mode 100644 src/ipa/rkisp2/data/imx219.yaml\n create mode 100644 src/ipa/rkisp2/data/imx708.yaml\n create mode 100644 src/ipa/rkisp2/data/meson.build\n create mode 100644 src/ipa/rkisp2/data/uncalibrated.yaml\n create mode 100644 src/ipa/rkisp2/ipa_context.h\n create mode 100644 src/ipa/rkisp2/meson.build\n create mode 100644 src/ipa/rkisp2/params.h\n create mode 100644 src/ipa/rkisp2/rkisp2.cpp\n create mode 100644 src/libcamera/pipeline/rkisp2/meson.build\n create mode 100644 src/libcamera/pipeline/rkisp2/rkisp2.cpp\n create mode 100755 utils/tuning/rkisp2.py"
}