ipa: mali-c55: Add Mali-C55 ISP IPA module

Add a barebones IPA module for the Mali-C55 ISP. In this initial
implementation pretty much only buffer plumbing is implemented.

Acked-by: Nayden Kanchev  <nayden.kanchev@arm.com>
Co-developed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Daniel Scally
2024-11-15 12:25:34 +00:00
parent 10ccab9db9
commit fe989ee514
13 changed files with 641 additions and 1 deletions
+34
View File
@@ -0,0 +1,34 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
module ipa.mali_c55;
import "include/libcamera/ipa/core.mojom";
struct IPAConfigInfo {
libcamera.IPACameraSensorInfo sensorInfo;
libcamera.ControlInfoMap sensorControls;
};
interface IPAMaliC55Interface {
init(libcamera.IPASettings settings, IPAConfigInfo configInfo)
=> (int32 ret, libcamera.ControlInfoMap ipaControls);
start() => (int32 ret);
stop();
configure(IPAConfigInfo configInfo, uint8 bayerOrder)
=> (int32 ret, libcamera.ControlInfoMap ipaControls);
mapBuffers(array<libcamera.IPABuffer> buffers, bool readOnly);
unmapBuffers(array<libcamera.IPABuffer> buffers);
[async] queueRequest(uint32 request, libcamera.ControlList reqControls);
[async] fillParams(uint32 request, uint32 bufferId);
[async] processStats(uint32 request, uint32 bufferId,
libcamera.ControlList sensorControls);
};
interface IPAMaliC55EventInterface {
paramsComputed(uint32 request);
statsProcessed(uint32 request, libcamera.ControlList metadata);
setSensorControls(libcamera.ControlList sensorControls);
};
+1
View File
@@ -64,6 +64,7 @@ libcamera_ipa_headers += custom_target('core_ipa_serializer_h',
# Mapping from pipeline handler name to mojom file
pipeline_ipa_mojom_mapping = {
'ipu3': 'ipu3.mojom',
'mali-c55': 'mali-c55.mojom',
'rkisp1': 'rkisp1.mojom',
'rpi/vc4': 'raspberrypi.mojom',
'simple': 'soft.mojom',