[libcamera-devel] [PATCH 02/13] libcamera: ipu3: Import instead of allocate statistic buffers

Jacopo Mondi jacopo at jmondi.org
Sat Jun 27 11:51:32 CEST 2020


Hi Niklas,

On Sat, Jun 27, 2020 at 05:00:32AM +0200, Niklas Söderlund wrote:
> Statistics buffers are not yet used by the IPU3 pipeline, they are never
> queued to the video device or in any other way consumed. The kernel
> driver will however not allow video streaming to start if buffers are
> not either allocated or imported on the video device. Instead of
> allocating the buffers wasting memory that is never used import buffers.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index fba45935741e0e4e..405550b1302fb370 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -1135,11 +1135,13 @@ int ImgUDevice::allocateBuffers(IPU3CameraData *data, unsigned int bufferCount)
>  	}
>
>  	/*
> -	 * Use for the stat's internal pool the same number of buffers as for
> -	 * the input pool.
> +	 * The kernel fails to start if buffers are not either imported or
> +	 * allocated for the statisitcs video device. As statistics buffers are
> +	 * not yet used by the pipeline import buffers to save memory.
> +	 *

Is this based on practical experience ? The IPU3 driver documentation
is a bit confusing on which output is required to have buffes queued
in order for operations to start...


>  	 * \todo To be revised when we'll actually use the stat node.
>  	 */
> -	ret = stat_.dev->allocateBuffers(bufferCount, &stat_.buffers);
> +	ret = stat_.dev->importBuffers(bufferCount);
>  	if (ret < 0) {
>  		LOG(IPU3, Error) << "Failed to allocate ImgU stat buffers";
>  		goto error;
> --
> 2.27.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list