[PATCH v10 00/13] media: Add support for R-Car ISP using Dreamchip RPPX1 ISP

Niklas Söderlund posted 13 patches 10 hours ago
.../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
[PATCH v10 00/13] media: Add support for R-Car ISP using Dreamchip RPPX1 ISP
Posted by Niklas Söderlund 10 hours ago
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