[libcamera-devel] [PATCH 00/13] libcamera: pipeline: simple: Support the NXP i.MX8 ISI
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Aug 1 02:05:30 CEST 2022
Hello,
This patch series adds support for the NXP i.MX8 ISI to the simple
pipeline handler.
The ISI (which stands for Image Sensor Interface) is an IP core found in
multiple SoCs from the NXP i.MX8 family. It combines a crossbar switch
with processing pipelines that each include a scaler, a colorspace
converter and a DMA engine to capture frames from multiple inputs to
memory. As data flows linearly from the source to the DMA engine, the
ISI is a good candidate for the simple pipeline handler (while the ISI
can be used with Bayer sensors by bypassing the processing pipeline to
capture raw data, most use cases will use RGB or YUV sources).
The ISI driver has been posted to the linux-media mailing list,
currently as a v2 ([1]). It depends on the V4L2 routing API to control
the crossbar switch, and as the API is still under development ([2]),
this blocks merging the driver for the time being. However, the routing
API is now at v12, and the development effort isn't slowing down, we may
consider merging support for the API in libcamera before it hits
upstream. I would appreciate feedback on this.
The series starts with three patches that update the Linux kernel
header, with 01/13 moving to headers from kernel v5.19, and patches
02/13 and 03/13 adding new pixel formats that have been merged in
subsystem trees and will be present in v5.20. Patch 04/13 then adds
support for those formats to libcamera. If we decide that the routing
API shouldn't be merged in libcamera yet, these first four patches are
still candidates for upstreaming without delay.
Patch 05/13 then adds the V4L2 routing API to the kernel headers, and
patches 06/13 to 08/13 extend the V4L2Subdevice class to support the
API. Patches 09/13 to 12/13 extend the simple pipeline handler to take
routes into account during pipeline discovery and configuration.
Finally, patch 13/13 enables support for the ISI in the simple pipeline
handler.
[1] https://lore.kernel.org/linux-media/20220712000251.13607-1-laurent.pinchart@ideasonboard.com/
[2] https://lore.kernel.org/linux-media/20220301161156.1119557-1-tomi.valkeinen@ideasonboard.com/
Jacopo Mondi (4):
libcamera: v4l2_subdevice: Change V4L2Subdevice::Whence
libcamera: v4l2_subdevice: Collect subdev capabilities
libcamera: v4l2_subdevice: Add support for the V4L2 subdev routing API
libcamera: pipeline: simple: Reset routing table of subdevs
Laurent Pinchart (7):
include: linux: Update kernel headers to version v5.19
include: drm_fourcc: Add AVUY and XVUY 4:4:4 packet formats
include: linux: Add V4L2 YUVA32 and YUVX32 pixel formats
libcamera: formats: Add AVUY8888 and XVUY8888 formats
include: linux: Add V4L2 subdev internal routing API
libcamera: pipeline: simple: Setup links in the context of sink
entities
libcamera: pipeline: simple: Add support for NXP ISI
Phi-Bang Nguyen (2):
libcamera: pipeline: simple: Walk pipeline using subdev internal
routing
libcamera: pipeline: simple: Don't disable links carrying other
streams
include/libcamera/internal/v4l2_subdevice.h | 28 +-
include/linux/README | 2 +-
include/linux/dma-buf.h | 4 +-
include/linux/drm_fourcc.h | 88 +++++-
include/linux/intel-ipu3.h | 35 ++-
include/linux/v4l2-controls.h | 301 +++++++++++++++++++-
include/linux/v4l2-subdev.h | 88 +++++-
include/linux/videodev2.h | 15 +-
src/libcamera/formats.cpp | 26 ++
src/libcamera/formats.yaml | 4 +
src/libcamera/pipeline/simple/simple.cpp | 173 ++++++++++-
src/libcamera/v4l2_pixelformat.cpp | 4 +
src/libcamera/v4l2_subdevice.cpp | 161 ++++++++++-
13 files changed, 877 insertions(+), 52 deletions(-)
base-commit: 69ae75b0cc211f82665b3e92fb3de64a9852b403
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list