At the moment the mali-c55 pipeline handler sets bytesused for a buffer to be the maximum possible size (i.e. the size of a struct mali_c55_params_buffer). This is not really in keeping with the goal of the extensible parameters formats, and will not work with the new framework for those formats. Update the IPA module and pipeline handler to set bytesused to the size of the parameters that were actually supplied rather than the maximum possible size. Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Isaac Scott <isaac.scott@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
/* 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, uint32 bytesused);
|
|
statsProcessed(uint32 request, libcamera.ControlList metadata);
|
|
setSensorControls(libcamera.ControlList sensorControls);
|
|
};
|