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 since v9.
1. https://lore.kernel.org/all/20260505-extensible-stats-v1-6-e16f326b8dad@ideasonboard.com/
Jai Luthra (3):
media: Add RPP_X1_PARAMS and RPP_X1_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/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 | 184 ++++
.../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 | 179 ++++
drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
include/media/rppx1.h | 36 +
.../uapi/linux/media/dreamchip/rppx1-config.h | 710 +++++++++++++
include/uapi/linux/videodev2.h | 4 +
49 files changed, 6055 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.54.0