From patchwork Fri Sep 18 12:09:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= X-Patchwork-Id: 28338 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 44DCEBE175 for ; Fri, 18 Sep 2026 12:09:56 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id C68A368732; Fri, 18 Sep 2026 14:09:54 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="vaHtfpQy"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5827A68615 for ; Fri, 18 Sep 2026 14:09:53 +0200 (CEST) Received: from pb-laptop.local (185.221.142.0.nat.pool.zt.hu [185.221.142.0]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5FCD0417F for ; Fri, 18 Sep 2026 14:08:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1789733290; bh=AYui+e1aU3n+7DVKO1+pTV//Xq6scEOSOadSCHqM8tA=; h=From:To:Subject:Date:From; b=vaHtfpQyfqn1yMyWeesAvVtipyVlN3FNblQTtqj5+C+zPJbR9DQYgm9MfYAUc273Q 2crOabvY0tQfN26tg8klwb4iToRrVBCl8rVmj6VEnBk1RNnTXVe9/i9FVGQQUdooTQ 2o1nqQK52I1BKPCn0uAgztWw+exPb5jvFOW065jI= From: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= To: libcamera-devel@lists.libcamera.org Subject: [PATCH v3 00/21] libcamera: rcar-gen4 + rpp-x1 Date: Fri, 18 Sep 2026 14:09:28 +0200 Message-ID: <20260918120949.191668-1-barnabas.pocze@ideasonboard.com> X-Mailer: git-send-email 2.55.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" This is the first prototype implementation of the rppx1 ipa module based on the new kernel uapi. It is the spiritual continuation of * https://patchwork.libcamera.org/cover/26915/ * https://patchwork.libcamera.org/cover/24304/ But it includes both the pipeline handler and ipa components, rebased on the current master branch. The corresponding kernel branch is here: https://git.ideasonboard.com/renesas-v4h-isp/linux/src/branch/pobrn/rppx1 This has been an R-Car V4H Sparrow-Hawk device with the imx708 (and imx219) sensor(s). Some points: * the isp always runs, even when only a raw stream is getting captured; this has been like this in previous version, so I did not change it * lens shading correction seemingly cannot be turned off, but this is most likely unrelated to libcamera Barnabás Pőcze (10): ipa: libipa: fixedpoint: Shift unsigned type for scaling ipa: libipa: quantized: Make floating point type customizable ipa: libipa: quantized: Use `double` when necessary ipa: libipa: awb: Log rgb means immediately ipa: libipa: awb_bayes: Fix initial max value libcamera: controls: Fix `ColourTemperature` direction ipa: libipa: gamma: Static assert lookup node count ipa: libipa: gamma: Accept const segment lengths ipa: libipa: gamma: Use `std::optional` for segment lengths ipa: rppx1: Add uncalibrated tuning file Jacopo Mondi (9): include: linux: Update to Linux 7.3-rc3 ipa: rppx1: blc: Add ipa: rppx1: agc: Add ipa: rppx1: awb: Add ipa: rppx1: lux: Add ipa: rppx1: ccm: Add ipa: rppx1: goc: Add ipa: rppx1: gsl: Add ipa: rppx1: lsc: Add Jai Luthra (1): ipa: rppx1: Add Niklas Söderlund (1): libcamera: pipeline: Add R-Car Gen4 ISP pipeline Documentation/Doxyfile-common.in | 1 + include/libcamera/ipa/meson.build | 1 + include/libcamera/ipa/rppx1.mojom | 40 + include/linux/README | 2 +- include/linux/drm.h | 7 + include/linux/drm_fourcc.h | 244 ++++- include/linux/drm_mode.h | 1 + include/linux/media/dreamchip/rppx1-config.h | 730 +++++++++++++++ include/linux/rkisp1-config.h | 113 ++- include/linux/v4l2-controls.h | 2 + include/linux/videodev2.h | 4 + meson.build | 1 + meson_options.txt | 3 +- src/ipa/libipa/awb.cpp | 12 +- src/ipa/libipa/awb_bayes.cpp | 2 +- src/ipa/libipa/fixedpoint.cpp | 7 +- src/ipa/libipa/fixedpoint.h | 28 +- src/ipa/libipa/gamma.cpp | 95 +- src/ipa/libipa/gamma.h | 15 +- src/ipa/libipa/quantized.cpp | 10 +- src/ipa/libipa/quantized.h | 14 +- src/ipa/meson.build | 1 + src/ipa/rkisp1/algorithms/goc.cpp | 2 +- src/ipa/rppx1/algorithms/agc.cpp | 392 ++++++++ src/ipa/rppx1/algorithms/agc.h | 47 + src/ipa/rppx1/algorithms/algorithm.h | 22 + src/ipa/rppx1/algorithms/awb.cpp | 272 ++++++ src/ipa/rppx1/algorithms/awb.h | 48 + src/ipa/rppx1/algorithms/blc.cpp | 111 +++ src/ipa/rppx1/algorithms/blc.h | 41 + src/ipa/rppx1/algorithms/ccm.cpp | 110 +++ src/ipa/rppx1/algorithms/ccm.h | 45 + src/ipa/rppx1/algorithms/goc.cpp | 86 ++ src/ipa/rppx1/algorithms/goc.h | 43 + src/ipa/rppx1/algorithms/gsl.cpp | 151 +++ src/ipa/rppx1/algorithms/gsl.h | 35 + src/ipa/rppx1/algorithms/lsc.cpp | 272 ++++++ src/ipa/rppx1/algorithms/lsc.h | 58 ++ src/ipa/rppx1/algorithms/lux.cpp | 76 ++ src/ipa/rppx1/algorithms/lux.h | 36 + src/ipa/rppx1/algorithms/meson.build | 12 + src/ipa/rppx1/data/meson.build | 9 + src/ipa/rppx1/data/uncalibrated.yaml | 11 + src/ipa/rppx1/ipa_context.cpp | 37 + src/ipa/rppx1/ipa_context.h | 106 +++ src/ipa/rppx1/meson.build | 31 + src/ipa/rppx1/module.h | 29 + src/ipa/rppx1/params.h | 112 +++ src/ipa/rppx1/rppx1.cpp | 293 ++++++ src/ipa/rppx1/stats.h | 62 ++ src/libcamera/control_ids_core.yaml | 2 +- src/libcamera/pipeline/rcar-gen4/frames.cpp | 270 ++++++ src/libcamera/pipeline/rcar-gen4/frames.h | 84 ++ src/libcamera/pipeline/rcar-gen4/isp.cpp | 193 ++++ src/libcamera/pipeline/rcar-gen4/isp.h | 39 + src/libcamera/pipeline/rcar-gen4/meson.build | 8 + .../pipeline/rcar-gen4/rcar-gen4.cpp | 870 ++++++++++++++++++ src/libcamera/pipeline/rcar-gen4/vin.cpp | 173 ++++ src/libcamera/pipeline/rcar-gen4/vin.h | 60 ++ test/ipa/libipa/quantized.cpp | 8 +- utils/update-kernel-headers.sh | 1 + 61 files changed, 5491 insertions(+), 99 deletions(-) create mode 100644 include/libcamera/ipa/rppx1.mojom create mode 100644 include/linux/media/dreamchip/rppx1-config.h create mode 100644 src/ipa/rppx1/algorithms/agc.cpp create mode 100644 src/ipa/rppx1/algorithms/agc.h create mode 100644 src/ipa/rppx1/algorithms/algorithm.h create mode 100644 src/ipa/rppx1/algorithms/awb.cpp create mode 100644 src/ipa/rppx1/algorithms/awb.h create mode 100644 src/ipa/rppx1/algorithms/blc.cpp create mode 100644 src/ipa/rppx1/algorithms/blc.h create mode 100644 src/ipa/rppx1/algorithms/ccm.cpp create mode 100644 src/ipa/rppx1/algorithms/ccm.h create mode 100644 src/ipa/rppx1/algorithms/goc.cpp create mode 100644 src/ipa/rppx1/algorithms/goc.h create mode 100644 src/ipa/rppx1/algorithms/gsl.cpp create mode 100644 src/ipa/rppx1/algorithms/gsl.h create mode 100644 src/ipa/rppx1/algorithms/lsc.cpp create mode 100644 src/ipa/rppx1/algorithms/lsc.h create mode 100644 src/ipa/rppx1/algorithms/lux.cpp create mode 100644 src/ipa/rppx1/algorithms/lux.h create mode 100644 src/ipa/rppx1/algorithms/meson.build create mode 100644 src/ipa/rppx1/data/meson.build create mode 100644 src/ipa/rppx1/data/uncalibrated.yaml create mode 100644 src/ipa/rppx1/ipa_context.cpp create mode 100644 src/ipa/rppx1/ipa_context.h create mode 100644 src/ipa/rppx1/meson.build create mode 100644 src/ipa/rppx1/module.h create mode 100644 src/ipa/rppx1/params.h create mode 100644 src/ipa/rppx1/rppx1.cpp create mode 100644 src/ipa/rppx1/stats.h create mode 100644 src/libcamera/pipeline/rcar-gen4/frames.cpp create mode 100644 src/libcamera/pipeline/rcar-gen4/frames.h create mode 100644 src/libcamera/pipeline/rcar-gen4/isp.cpp create mode 100644 src/libcamera/pipeline/rcar-gen4/isp.h create mode 100644 src/libcamera/pipeline/rcar-gen4/meson.build create mode 100644 src/libcamera/pipeline/rcar-gen4/rcar-gen4.cpp create mode 100644 src/libcamera/pipeline/rcar-gen4/vin.cpp create mode 100644 src/libcamera/pipeline/rcar-gen4/vin.h --- 2.55.0