[PATCH] libcamera: pipeline: Add Mali-C55 ISP pipeline
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu Mar 14 16:05:13 CET 2024
Quoting Kieran Bingham (2024-03-14 15:03:41)
> Quoting Jacopo Mondi (2024-03-14 14:12:07)
> > Ouch
> >
> > On Thu, Mar 14, 2024 at 03:07:08PM +0100, Jacopo Mondi wrote:
> > > Add a pipeline handler for the Mali-C55 ISP.
> > >
> > > The pipeline doesn't currently support an IPA and does not run
> > > any 3 algorithm but only handles the media graph topology and
> > ^
> > 3a of course!
> >
> > > formats/sizes configuration
> > >
> > > Co-developed-by: Daniel Scally <dan.scally at ideasonboard.com>
> > > Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>
> > > Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> > > Acked-by: Nayden Kanchev <nayden.kanchev at arm.com>
> > > ---
> > > meson.build | 1 +
> > > meson_options.txt | 1 +
> > > src/libcamera/pipeline/mali-c55/mali-c55.cpp | 1081 ++++++++++++++++++
> > > src/libcamera/pipeline/mali-c55/meson.build | 5 +
> > > 4 files changed, 1088 insertions(+)
> > > create mode 100644 src/libcamera/pipeline/mali-c55/mali-c55.cpp
> > > create mode 100644 src/libcamera/pipeline/mali-c55/meson.build
> > >
> > > diff --git a/meson.build b/meson.build
> > > index cb6b666a7449..740ead1be85f 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -198,6 +198,7 @@ arch_x86 = ['x86', 'x86_64']
> > > pipelines_support = {
> > > 'imx8-isi': arch_arm,
> > > 'ipu3': arch_x86,
> > > + 'mali-c55': arch_arm,
> > > 'rkisp1': arch_arm,
> > > 'rpi/vc4': arch_arm,
> > > 'simple': arch_arm,
> > > diff --git a/meson_options.txt b/meson_options.txt
> > > index 99dab96d7b21..7c4f6d3a0af6 100644
> > > --- a/meson_options.txt
> > > +++ b/meson_options.txt
> > > @@ -43,6 +43,7 @@ option('pipelines',
> > > 'auto',
> > > 'imx8-isi',
> > > 'ipu3',
> > > + 'mali-c55',
> > > 'rkisp1',
> > > 'rpi/vc4',
> > > 'simple',
> > > diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> > > new file mode 100644
> > > index 000000000000..4508214b864d
> > > --- /dev/null
> > > +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> > > @@ -0,0 +1,1081 @@
> > > +/* SPDX-License-Identifier: LGPL-2.1-or-later */
> > > +/*
> > > + * Copyright (C) 2024, Ideas on Board Oy
> > > + *
> > > + * mali-c55.cpp - Pipeline Handler for ARM's Mali-C55 ISP
> > > + */
> > > +
> > > +#include <algorithm>
> > > +#include <array>
> > > +#include <map>
> > > +#include <memory>
> > > +#include <set>
> > > +#include <string>
> > > +
> > > +#include <linux/media-bus-format.h>
> > > +#include <linux/media.h>
> > > +
> > > +#include <libcamera/base/log.h>
> > > +
> > > +#include <libcamera/camera.h>
> > > +#include <libcamera/formats.h>
> > > +#include <libcamera/geometry.h>
> > > +#include <libcamera/stream.h>
> > > +
> > > +#include "libcamera/internal/bayer_format.h"
> > > +#include "libcamera/internal/camera.h"
> > > +#include "libcamera/internal/camera_sensor.h"
> > > +#include "libcamera/internal/device_enumerator.h"
> > > +#include "libcamera/internal/media_device.h"
> > > +#include "libcamera/internal/pipeline_handler.h"
> > > +#include "libcamera/internal/v4l2_subdevice.h"
> > > +#include "libcamera/internal/v4l2_videodevice.h"
> > > +
> > > +namespace {
> > > +
> > > +bool isFormatRaw(const libcamera::PixelFormat &pixFmt)
> > > +{
> > > + return libcamera::PixelFormatInfo::info(pixFmt).colourEncoding ==
> > > + libcamera::PixelFormatInfo::ColourEncodingRAW;
> > > +}
> > > +
> > > +}; /* namespace */
>
> I think the /only/ complaint from CI/build-matrix is this tiny little
> additional ; which should be removed.
https://gitlab.freedesktop.org/camera/libcamera/-/jobs/56300677#L493 for
reference here.
>
> With that, the build stays clean - and as this matches the publicly
> posted driver, I think this could already be merged.
>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>
More information about the libcamera-devel
mailing list