[v2,0/2] imx8-isi: Use MediaPipeline
mbox series

Message ID 20251114154341.654850-1-antoine.bouyer@nxp.com
Headers show
Series
  • imx8-isi: Use MediaPipeline
Related show

Message

Antoine Bouyer Nov. 14, 2025, 3:43 p.m. UTC
Submit this imx8-isi rework on behalf of Andrei. This series is about
using libcamera MediaPipeline class to simplify imx8-isi pipeline
configuration.

Instead of going over each pipeline subdevices during imx8-isi match(),
all is handled by MediaPipeline class. It helps supporting complex
topologies, where subdevice(s) could be optional, typically on i.MX95
SoC which has a formatter, while other i.MX SoCs don't have it.

It reuses the simple pipeline's locateSensors method, so external ISP are
also supported then. ISP is considered as the 'sensor' element.

Tested on i.MX8MP SoC.

---
Changes in v2:
- Add missing documentation as suggested by Barnabás
- Move Entity parameters documentation from .h to .cpp file.
- Replace 'video' by 'last' node in source descriptions, because  in
imx8-isi pipeline case, the last MediaPipeline entity (i.e. crossbar) is
not a video node.
- Apply review comments from Jacopo: move Entity definition to beginning
of public section; move entities() to const-callable as well.
- link to v1: https://patchwork.libcamera.org/patch/25010/

---
Andrei Gansari (2):
  libamera: media_pipeline: Add accessor for MediaPipeline list of
    entities
  pipeline: imx8-isi: Integrating MediaPipeline class

 include/libcamera/internal/media_pipeline.h  |  29 +---
 src/libcamera/media_pipeline.cpp             |  44 +++++
 src/libcamera/pipeline/imx8-isi/imx8-isi.cpp | 159 ++++++++++++-------
 3 files changed, 149 insertions(+), 83 deletions(-)