[{"id":35817,"web_url":"https://patchwork.libcamera.org/comment/35817/","msgid":"<175777448344.3370638.4236766894231363849@ping.linuxembedded.co.uk>","date":"2025-09-13T14:41:23","subject":"Re: [PATCH v2 0/2] Add Renesas R-Car Gen4 pipeline with IPA support","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Niklas Söderlund (2025-09-11 10:05:45)\n> Hello,\n> \n> These two patches adds support for Renesas R-Car Gen4 devices. A new\n> R-Car Gen4 specific pipeline handler is needed to support capture and\n> DMA to/from the ISP. The IPA functionality can however (in user-space)\n> piggy back on the existing RkISP1 IPA implementation.\n> \n> The architect of the hardware consist of two different blocks. There is\n> one capture block (VIN) that is responsible for the interactions with\n> the sensor and get RAW frames to user-space. And a ISP block acting in\n> mem-to-mem mode responsible to process the RAW frames into statistic's\n> and debayerd images. One notable thing about the hardware is that there\n> are no scaler available anywhere in either of the blocks (that can scale\n> RAW, VIN can scale non-RAW image data).\n> \n> The ISP is based on Dream Chip RPP which is similar to the V10 variant\n> of RkISP1. For this reason the kernel driver was designed to reuse the\n> RK1S and RK1E pixel formats. For libcamera this means the RkISP1 IPA can\n> be re-used (almost) as is.\n> \n> Patch 1/2 adds a ID for the Dream Chip RPP ISP for the RkISP1 IPA. It's\n> very similar to V10, but the histogram have more buckets so a distinct\n> ID was needed. Patch 2/2 adds the new pipeline handler and wires it up\n> to the RkISP1 IPA.\n> \n> This work have been tested with IMX219 and IMX462 on R-Car V4H. All\n> libcamera compliance test pass. For IPA extensive testing with camshark\n> have been done, and the RkISP1 uncalibrated.yaml hardware blocks\n> function as expected and gives a good image.\n> \n> Please note, not all RK1E blocks are yet supported by the kernel driver,\n> so using imx219.yaml will enable some parts of the IPA the kernel driver\n> do not yet support. The plan on the kernel side is to add support for\n> these blocks. Doing so will (hopefully) not require any changes to\n> libcamera.\n> \n> This series depends on a patch from Hans de Goede [1] to allow more then\n> one pipeline handler to use the same IPA. While on the kernel side this\n> works depends on the still out-of-tree patches for the R-Car ISP [2].\n\nCan you include [1] in your series for v3 ? Otherwise the CI just simply\nreports that this is broken.\n\nI think that series is watiing on a new revision too and there's no\npoint being blocked on that forever if you can just include that one\npatch here.\n\n> Patches to add RkISP1 IPA debug meta data from Stefan have been used to\n> verify proper operation of the hardware blocks supported by the kernel\n> driver. Thanks for all your nice utilities Stefan, it made this work so\n> much more enjoyable!\n> \n> Largest change since v1 is updating internal interfaces as v1 no longer \n> compiles on-top of master. See individual patches for changelog.\n> \n> 1. [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> \n> 2. [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> \n> Niklas 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\n> \n> -- \n> 2.51.0\n>","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 B77D7C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 13 Sep 2025 14:41:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6FA096936F;\n\tSat, 13 Sep 2025 16:41:27 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8D7CE69338\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Sep 2025 16:41:26 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 58743E91;\n\tSat, 13 Sep 2025 16:40:10 +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=\"p3qgZ9ve\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1757774410;\n\tbh=DzrgM7UhbG5pGnWUwCSChRtAapw3/nSxzPRiB7BzAiY=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=p3qgZ9veEVc7xEqHYLRx63zn/JjvRv+WUcglDZyzD/1tUic+inSDFr3CWJ4JGf2sn\n\tmLpULk9MtmXR7h1RTr/SPlu/1phkuGjQNZg/+vcixKZ0tlXuMKqdg+uab/C++gFB/p\n\tAf9Qa4tGgXKuhoO0MdG5qqCXRYu6Ggx0ywwGKmBY=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250911090547.1860863-1-niklas.soderlund+renesas@ragnatech.se>","References":"<20250911090547.1860863-1-niklas.soderlund+renesas@ragnatech.se>","Subject":"Re: [PATCH v2 0/2] Add Renesas R-Car Gen4 pipeline with IPA support","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Niklas =?utf-8?q?S=C3=B6derlund?= <niklas.soderlund+renesas@ragnatech.se>","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, Niklas =?utf-8?q?S=C3=B6derlund?=\n\t<niklas.soderlund+renesas@ragnatech.se>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Sat, 13 Sep 2025 15:41:23 +0100","Message-ID":"<175777448344.3370638.4236766894231363849@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}}]