[PATCH v11 00/13] media: Add support for R-Car ISP using Dreamchip RPPX1 ISP
Niklas Söderlund <[email protected]> Thu, 30 Jul 2026 19:12:28 +0200
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <[email protected]> |
Hello, This series adds support for two different devices that together enable ISP support on Renesas R-Car Gen4 ISP processing. The first driver added is for Dreamchip RPPX1 ISP, this device purely deals with image processing algorithms, statistics and image conversion; but have no DMA engines. The second driver is for the R-Car ISP CORE, this device deals with DMA to/from the RPPX1 ISP and provides a V4L2 user-space interface for the ISP. The R-Car ISP driver uses the RPPX1 framework to drive the ISP and together the two devices provide a functional ISP. For detailed description of the RPPX1 see patch 3/13, and for details about the R-Car ISP see commit message in patch 4/13. All functional blocks present on the RPPX1 are not yet added to the driver, but most are. Patch 1/13 adds two new pixel formats, one for parameters and one for statistics. While patch 2/13 adds the scaffolding for the uAPI, each module will add the structures needed to this file in a backward compatible way. Patch 3/13 adds the foundation for the RPPX1 framework. It deals with probing all function blocks making sure every blocks version register is supported and setup a "passthru" pipeline that just debayer RAW images. Patch 4/13 integrates the adds the R-Car ISP CORE DMA parts and integrates with the RPPX1 framework added in patch 3/13. Patches 5/13 to 13/13 extends the RPPX1 framework with the logic to drive the different IPS modules. The sum of the work pass v4l2-compliance. A test suite for the enabled function blocks exists and pass. I have also used Jacopo's and Jai's libcamera pipeline for the R-Car together with the updated header file to verify libcamera operation. This series depends on the ISP extensible statistics definitions out-of-tree patches [1]. See individual patches for change log. 1. https://lore.kernel.org/all/[email protected]/ Jai Luthra (3): media: Add RPPX1_PARAMS and RPPX1_STATS meta formats media: uapi: Add extensible param and stats blocks for RPPX1 media: rppx1: lin: Add support for gamma sensor linearization Niklas Söderlund (10): media: rppx1: Add framework to support Dreamchip RPPX1 ISP media: rcar-isp: Add support for ISPCORE media: rppx1: wbmeas: Add support for white balance measurement media: rppx1: awbg: Add support for white balance gain settings media: rppx1: exm: Add support for exposure measurement media: rppx1: hist: Add support histogram measurement media: rppx1: bls: Add support for black level compensation media: rppx1: ccor: Add support for color correction matrix media: rppx1: lsc: Add support for lens shade correction media: rppx1: ga: Add support for gamma out correction .../userspace-api/media/v4l/meta-formats.rst | 1 + .../userspace-api/media/v4l/metafmt-rppx1.rst | 99 ++ MAINTAINERS | 10 + drivers/media/platform/Kconfig | 1 + drivers/media/platform/Makefile | 1 + drivers/media/platform/dreamchip/Kconfig | 3 + drivers/media/platform/dreamchip/Makefile | 6 + .../media/platform/dreamchip/rppx1/Kconfig | 12 + .../media/platform/dreamchip/rppx1/Makefile | 33 + .../platform/dreamchip/rppx1/rpp_module.c | 39 + .../platform/dreamchip/rppx1/rpp_module.h | 119 +++ .../platform/dreamchip/rppx1/rpp_params.c | 115 ++ .../platform/dreamchip/rppx1/rpp_stats.c | 66 ++ .../media/platform/dreamchip/rppx1/rppx1.c | 381 +++++++ .../media/platform/dreamchip/rppx1/rppx1.h | 105 ++ .../platform/dreamchip/rppx1/rppx1_acq.c | 148 +++ .../platform/dreamchip/rppx1/rppx1_awbg.c | 63 ++ .../media/platform/dreamchip/rppx1/rppx1_bd.c | 53 + .../platform/dreamchip/rppx1/rppx1_bdrgb.c | 81 ++ .../platform/dreamchip/rppx1/rppx1_bls.c | 157 +++ .../platform/dreamchip/rppx1/rppx1_cac.c | 30 + .../platform/dreamchip/rppx1/rppx1_ccor.c | 166 +++ .../media/platform/dreamchip/rppx1/rppx1_db.c | 45 + .../platform/dreamchip/rppx1/rppx1_dpcc.c | 77 ++ .../platform/dreamchip/rppx1/rppx1_exm.c | 127 +++ .../media/platform/dreamchip/rppx1/rppx1_ga.c | 91 ++ .../platform/dreamchip/rppx1/rppx1_hist.c | 186 ++++ .../platform/dreamchip/rppx1/rppx1_hist256.c | 47 + .../media/platform/dreamchip/rppx1/rppx1_is.c | 43 + .../platform/dreamchip/rppx1/rppx1_lin.c | 112 ++ .../platform/dreamchip/rppx1/rppx1_lsc.c | 188 ++++ .../platform/dreamchip/rppx1/rppx1_ltm.c | 49 + .../platform/dreamchip/rppx1/rppx1_ltmmeas.c | 42 + .../platform/dreamchip/rppx1/rppx1_outif.c | 46 + .../platform/dreamchip/rppx1/rppx1_outregs.c | 76 ++ .../platform/dreamchip/rppx1/rppx1_rmap.c | 63 ++ .../platform/dreamchip/rppx1/rppx1_rmapmeas.c | 47 + .../platform/dreamchip/rppx1/rppx1_shrp.c | 65 ++ .../platform/dreamchip/rppx1/rppx1_wbmeas.c | 165 +++ .../platform/dreamchip/rppx1/rppx1_xyz2luv.c | 27 + .../media/platform/renesas/rcar-isp/Kconfig | 2 + .../media/platform/renesas/rcar-isp/Makefile | 2 +- .../media/platform/renesas/rcar-isp/core-io.c | 997 ++++++++++++++++++ .../media/platform/renesas/rcar-isp/core.c | 901 ++++++++++++++++ .../media/platform/renesas/rcar-isp/csisp.c | 48 +- .../platform/renesas/rcar-isp/risp-core.h | 178 ++++ drivers/media/v4l2-core/v4l2-ioctl.c | 2 + include/media/rppx1.h | 36 + .../uapi/linux/media/dreamchip/rppx1-config.h | 730 +++++++++++++ include/uapi/linux/videodev2.h | 4 + 50 files changed, 6077 insertions(+), 8 deletions(-) create mode 100644 Documentation/userspace-api/media/v4l/metafmt-rppx1.rst create mode 100644 drivers/media/platform/dreamchip/Kconfig create mode 100644 drivers/media/platform/dreamchip/Makefile create mode 100644 drivers/media/platform/dreamchip/rppx1/Kconfig create mode 100644 drivers/media/platform/dreamchip/rppx1/Makefile create mode 100644 drivers/media/platform/dreamchip/rppx1/rpp_module.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rpp_module.h create mode 100644 drivers/media/platform/dreamchip/rppx1/rpp_params.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rpp_stats.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1.h create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_acq.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_awbg.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_bd.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_bdrgb.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_bls.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_cac.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_ccor.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_db.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_dpcc.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_exm.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_ga.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_hist.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_hist256.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_is.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_lin.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_lsc.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_ltm.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_ltmmeas.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_outif.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_outregs.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_rmap.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_rmapmeas.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_shrp.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_wbmeas.c create mode 100644 drivers/media/platform/dreamchip/rppx1/rppx1_xyz2luv.c create mode 100644 drivers/media/platform/renesas/rcar-isp/core-io.c create mode 100644 drivers/media/platform/renesas/rcar-isp/core.c create mode 100644 drivers/media/platform/renesas/rcar-isp/risp-core.h create mode 100644 include/media/rppx1.h create mode 100644 include/uapi/linux/media/dreamchip/rppx1-config.h -- 2.55.0