[00/14] libcamera: Add support for R-Car Gen4 and RPP-X1 ISP
mbox series

Message ID 20260618-rppx1-ipa-v1-0-32337264cfcd@ideasonboard.com
Headers show
Series
  • libcamera: Add support for R-Car Gen4 and RPP-X1 ISP
Related show

Message

Jacopo Mondi June 18, 2026, 10:18 a.m. UTC
This series adds support for the R-Car Gen4 SoC which features the
Dreamchip RPP-X1 ISP.

Initial support for the R-Car Gen4 pipeline handler has been submitted
by Niklas in Semptember 2025:
https://patchwork.libcamera.org/patch/23593/

At the time the R-Car Gen4 support was implemented re-using the RkISP1
uAPI and the RkISP1 IPA module.

Since last year the kernel support has evolved to remove all
dependencies from RkISP1, with a new dedicated uAPI. The latest version
of the kernel support is available at:

[1] https://patchwork.linuxtv.org/project/linux-media/list/?series=26362

This version re-uses the pipeline as submitted by Niklas, adapted to use
the new RPP-X1 meta formats introduced in [1].

The series still depends on Hans'
[2] https://patchwork.libcamera.org/project/libcamera/list/?series=5940
which I included in the series to maintain it buildable.

As the pipeline and the IPA have different names.

On the IPA side instead, this series introduces a new IPA dedicated to
RPP-X1 without any dependency on the RkISP1 support. It includes only
2 algorithms for the time being, based on the recent reworks of libipa:
[3] https://patchwork.libcamera.org/project/libcamera/list/?series=5992

I took the two patches that introduce AwbAlgorithm and CcmAlgorithm in
the series as well, to maintain the series buildable.

This series constitute then the first step for being able to add more
algorithms to the RPP-X1 IPA.

However, we need to resolve the issue addressed by [2] first, otherwise
we won't be able to use the 'rpp-x1' IPA for the 'rcar-gen4' pipeline.

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
Hans de Goede (1):
      libcamera: ipa_manager: Create IPA by name

Jacopo Mondi (12):
      ipa: ipa_module: Remove pipelineName
      ipa: Allow pipelines to have differently named IPA
      ipa: libipa: awb: Reimplement AwbAlgorithm
      ipa: libipa: Add CcmAlgorithm to libipa
      include: linux: Add uAPI file for Dreamchip RPP-X1
      include: v4l2-isp: Add support for statistics
      include: videodev2: Add RPP-X1 meta formats
      ipa: libipa: Introduce V4L2Stats
      ipa: rppx1: Add RppX1Params and RppX1Stats
      ipa: rppx1: Add RPP-X1 IPA skeleton
      ipa: rppx1: Add AWB algorithm
      ipa: rppx1: Add Ccm algorithm

Niklas Söderlund (1):
      libcamera: pipeline: Add R-Car Gen4 ISP pipeline

 Documentation/Doxyfile-common.in               |   1 +
 include/libcamera/internal/ipa_manager.h       |   8 +-
 include/libcamera/internal/ipa_module.h        |   4 +-
 include/libcamera/internal/pipeline_handler.h  |   9 +-
 include/libcamera/ipa/ipa_module_info.h        |   1 -
 include/libcamera/ipa/meson.build              |   1 +
 include/libcamera/ipa/rppx1.mojom              |  41 ++
 include/linux/media/dreamchip/rppx1-config.h   | 710 ++++++++++++++++++++++
 include/linux/media/v4l2-isp.h                 | 125 ++--
 include/linux/videodev2.h                      |   4 +
 meson.build                                    |   1 +
 meson_options.txt                              |   5 +-
 src/ipa/ipu3/ipu3.cpp                          |   1 -
 src/ipa/libipa/awb.cpp                         | 527 ++++++++++++++--
 src/ipa/libipa/awb.h                           | 114 +++-
 src/ipa/libipa/awb_bayes.cpp                   |  42 +-
 src/ipa/libipa/awb_bayes.h                     |  11 +-
 src/ipa/libipa/awb_grey.cpp                    |  25 +-
 src/ipa/libipa/awb_grey.h                      |   5 +-
 src/ipa/libipa/ccm.cpp                         | 265 ++++++++
 src/ipa/libipa/ccm.h                           |  84 +++
 src/ipa/libipa/meson.build                     |   4 +
 src/ipa/libipa/v4l2_stats.cpp                  | 241 ++++++++
 src/ipa/libipa/v4l2_stats.h                    |  67 ++
 src/ipa/mali-c55/mali-c55.cpp                  |   1 -
 src/ipa/meson.build                            |  41 +-
 src/ipa/rkisp1/algorithms/awb.cpp              | 223 +------
 src/ipa/rkisp1/algorithms/awb.h                |  18 +-
 src/ipa/rkisp1/ipa_context.h                   |  29 +-
 src/ipa/rkisp1/rkisp1.cpp                      |   1 -
 src/ipa/rpi/pisp/pisp.cpp                      |   1 -
 src/ipa/rpi/vc4/vc4.cpp                        |   1 -
 src/ipa/rppx1/algorithms/awb.cpp               | 297 +++++++++
 src/ipa/rppx1/algorithms/awb.h                 |  48 ++
 src/ipa/rppx1/algorithms/ccm.cpp               | 124 ++++
 src/ipa/rppx1/algorithms/ccm.h                 |  54 ++
 src/ipa/rppx1/algorithms/meson.build           |   6 +
 src/ipa/rppx1/ipa_context.cpp                  | 103 ++++
 src/ipa/rppx1/ipa_context.h                    |  68 +++
 src/ipa/rppx1/meson.build                      |  30 +
 src/ipa/rppx1/module.h                         |  27 +
 src/ipa/rppx1/params.h                         | 108 ++++
 src/ipa/rppx1/rppx1.cpp                        | 280 +++++++++
 src/ipa/rppx1/stats.h                          |  62 ++
 src/ipa/simple/soft_simple.cpp                 |   1 -
 src/ipa/vimc/vimc.cpp                          |   1 -
 src/libcamera/ipa_manager.cpp                  |  34 +-
 src/libcamera/ipa_module.cpp                   |  27 +-
 src/libcamera/pipeline/rcar-gen4/frames.cpp    | 281 +++++++++
 src/libcamera/pipeline/rcar-gen4/frames.h      |  86 +++
 src/libcamera/pipeline/rcar-gen4/isp.cpp       | 228 +++++++
 src/libcamera/pipeline/rcar-gen4/isp.h         |  45 ++
 src/libcamera/pipeline/rcar-gen4/meson.build   |   8 +
 src/libcamera/pipeline/rcar-gen4/rcar-gen4.cpp | 810 +++++++++++++++++++++++++
 src/libcamera/pipeline/rcar-gen4/vin.cpp       | 391 ++++++++++++
 src/libcamera/pipeline/rcar-gen4/vin.h         |  67 ++
 test/ipa/ipa_module_test.cpp                   |   3 -
 57 files changed, 5349 insertions(+), 451 deletions(-)
---
base-commit: cde4eddf895cd09d05137bd99425d238cd8a6018
change-id: 20260618-rppx1-ipa-189ef7c5b18b

Best regards,