[PATCH v1 0/4] Raspberry Pi: Add support for Pi 5 (PiSP)
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Jan 14 21:46:18 CET 2025
On Tue, Jan 14, 2025 at 04:29:14PM +0000, Barnabás Pőcze wrote:
> 2025. január 14., kedd 10:54 keltezéssel, Naushir Patuck írta:
> > On Mon, 13 Jan 2025 at 12:30, Barnabás Pőcze wrote:
> > > 2025. január 13., hétfő 13:12 keltezéssel, Kieran Bingham írta:
> > > > Quoting Naushir Patuck (2025-01-13 09:24:42)
> > > > > Hi,
> > > > >
> > > > > A long time coming... this series add support for Raspberry Pi 5 (PiSP) to
> > > > > upstream libcamera. The IPA and pipeline handler code have been taken mostly
> > > > > unchanged from the Raspberry Pi downstream libcamera tree:
> > > > > https://github.com/raspberrypi/libcamera. Support for IMX500 and CNNs are not
> > > > > available in this series since we have yet to attempt to upstream the kernel
> > > > > changes.
> > > > >
> > > > > IMPORTANT NOTE
> > > > > --------------
> > > > > The Pi 5 pipeline handler in this commit is NOT COMPATIBLE with the Raspberry Pi
> > > > > kernel drivers just yet! Instead, you must use the mainline kernel upstream
> > > > > drivers with this pipeline handler. When futher upstreaming development for
> > > > > embedded data is completed, RPi will backport the upstream kernel drives to our
> > > > > tree and this pipeline handler will then begin to work with both upstream and
> > > > > downstream kernel trees.
> > > >
> > > > Thanks for posting this!
> > > >
> > > > The first issue we face is the dependency in libpisp in the CI loops it
> > > > seems:
> > > >
> > > > https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1344547
> > > >
> > > > has many failed jobs, which I believe are all going to be more or less
> > > > instances of:
> > > >
> > > > https://gitlab.freedesktop.org/camera/libcamera/-/jobs/69247972
> > > >
> > > > src/libcamera/pipeline/rpi/pisp/meson.build:8:14: ERROR: Dependency 'libpisp' is required but not found.
> > > >
> > > > I think we disable subprojects in the CI build maybe ?
> > > >
> > > > Any thoughts anyone?
> > >
> > > The `wrap_mode=nofallback` option causes the error. But `libpisp` should
> > > also probably call
> > >
> > > meson.override_dependency('libpisp', libpisp_dep)
> > >
> > > in its `src/meson.build`. And then there is no need for the explicit
> > > `fallback: ['libpisp', 'libpisp_dep']` when calling `dependency()`.
> >
> > I presume this is just a syntactic change and will not fix the CI
> > issue? I can remove the libpisp wrap file and have a hard dependency
> > on libpisp for the pipeline handler/ipa, but that will mean it won't
> > be tested under CI...
>
> Yes, this will not solve the issue, but useful nonetheless. It would appear that
> `-D force_fallback_for=libpisp` is enough to make it work, but there are other
> jobs that want to use that option, and multiple occurrences overwrite each other.
> I am not sure what the best approach is. `--wrap-mode=nofallback` could be removed
> altogether, or replaced with `--wrap-mode=nodownload` + some magic to bring in the
> necessary dependencies, or something else.
If we have to compile the dependencies from source, I would rather do
this at container build time to avoid CI failures unrelated to libcamera
itself.
> > > > Do we need to build in libpisp into the CI as a dependency directly? Do
> > > > we need to manage keeping libcamera in sync with specific versions/API
> > > > compatibility of libpisp ?
> > > >
> > > > > Naushir Patuck (4):
> > > > > meson: Add libpisp.wrap
> > > > > ipa: rpi: Add support for Raspberry Pi 5
> > > > > pipeline: rpi: Add new stream flags for PiSP
> > > > > pipeline: rpi: Add support for Raspberry Pi 5
> > > > >
> > > > > Documentation/guides/pipeline-handler.rst | 2 +-
> > > > > include/libcamera/ipa/meson.build | 1 +
> > > > > include/libcamera/meson.build | 1 +
> > > > > meson.build | 1 +
> > > > > meson_options.txt | 4 +-
> > > > > src/ipa/rpi/pisp/data/imx219.json | 1187 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx219_noir.json | 1112 ++++++++
> > > > > src/ipa/rpi/pisp/data/imx290.json | 341 +++
> > > > > src/ipa/rpi/pisp/data/imx296.json | 1194 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx296_16mm.json | 1247 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx296_6mm.json | 1247 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx296_mono.json | 960 +++++++
> > > > > src/ipa/rpi/pisp/data/imx378.json | 634 +++++
> > > > > src/ipa/rpi/pisp/data/imx415.json | 1159 ++++++++
> > > > > src/ipa/rpi/pisp/data/imx462.json | 342 +++
> > > > > src/ipa/rpi/pisp/data/imx477.json | 1186 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx477_16mm.json | 1240 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx477_6mm.json | 1240 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx477_noir.json | 1148 ++++++++
> > > > > src/ipa/rpi/pisp/data/imx477_scientific.json | 546 ++++
> > > > > src/ipa/rpi/pisp/data/imx519.json | 634 +++++
> > > > > src/ipa/rpi/pisp/data/imx708.json | 1270 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx708_noir.json | 1233 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx708_wide.json | 1293 +++++++++
> > > > > src/ipa/rpi/pisp/data/imx708_wide_noir.json | 1148 ++++++++
> > > > > src/ipa/rpi/pisp/data/meson.build | 29 +
> > > > > src/ipa/rpi/pisp/data/ov5647.json | 1186 +++++++++
> > > > > src/ipa/rpi/pisp/data/ov5647_noir.json | 1121 ++++++++
> > > > > src/ipa/rpi/pisp/data/ov64a40.json | 1133 ++++++++
> > > > > src/ipa/rpi/pisp/data/ov9281_mono.json | 215 ++
> > > > > src/ipa/rpi/pisp/data/se327m12.json | 639 +++++
> > > > > src/ipa/rpi/pisp/data/uncalibrated.json | 135 +
> > > > > src/ipa/rpi/pisp/meson.build | 49 +
> > > > > src/ipa/rpi/pisp/pisp.cpp | 1068 ++++++++
> > > > > src/libcamera/control_ids_rpi.yaml | 13 +
> > > > > .../pipeline/rpi/common/rpi_stream.h | 10 +
> > > > > .../pipeline/rpi/pisp/data/example.yaml | 45 +
> > > > > .../pipeline/rpi/pisp/data/meson.build | 8 +
> > > > > src/libcamera/pipeline/rpi/pisp/meson.build | 12 +
> > > > > src/libcamera/pipeline/rpi/pisp/pisp.cpp | 2372 +++++++++++++++++
> > > > > subprojects/.gitignore | 1 +
> > > > > subprojects/libpisp.wrap | 6 +
> > > > > 42 files changed, 28410 insertions(+), 2 deletions(-)
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx219.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx219_noir.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx290.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx296.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx296_16mm.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx296_6mm.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx296_mono.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx378.json
> > > > > create mode 100755 src/ipa/rpi/pisp/data/imx415.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx462.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx477.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx477_16mm.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx477_6mm.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx477_noir.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx477_scientific.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx519.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx708.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx708_noir.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx708_wide.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/imx708_wide_noir.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/meson.build
> > > > > create mode 100644 src/ipa/rpi/pisp/data/ov5647.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/ov5647_noir.json
> > > > > create mode 100755 src/ipa/rpi/pisp/data/ov64a40.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/ov9281_mono.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/se327m12.json
> > > > > create mode 100644 src/ipa/rpi/pisp/data/uncalibrated.json
> > > > > create mode 100644 src/ipa/rpi/pisp/meson.build
> > > > > create mode 100644 src/ipa/rpi/pisp/pisp.cpp
> > > > > create mode 100644 src/libcamera/pipeline/rpi/pisp/data/example.yaml
> > > > > create mode 100644 src/libcamera/pipeline/rpi/pisp/data/meson.build
> > > > > create mode 100644 src/libcamera/pipeline/rpi/pisp/meson.build
> > > > > create mode 100644 src/libcamera/pipeline/rpi/pisp/pisp.cpp
> > > > > create mode 100644 subprojects/libpisp.wrap
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list