[v4,11/13] libcamera: mali-c55: Enable links between resizer and video node
diff mbox series

Message ID 20240709143913.3276983-12-dan.scally@ideasonboard.com
State Superseded
Headers show
Series
  • Miscellaneous Mali-C55 Pipeline Fixes
Related show

Commit Message

Dan Scally July 9, 2024, 2:39 p.m. UTC
The mali-c55 driver now expects links to video devices to be enabled
in order for those devices to be streamed from / to. Enable the media
link between the resizers and their associated video device to fulfil
the requirement.

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
 src/libcamera/pipeline/mali-c55/mali-c55.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Kieran Bingham Oct. 9, 2024, 2:56 p.m. UTC | #1
Quoting Daniel Scally (2024-07-09 15:39:11)
> The mali-c55 driver now expects links to video devices to be enabled
> in order for those devices to be streamed from / to. Enable the media
> link between the resizers and their associated video device to fulfil
> the requirement.
> 
> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
> ---
>  src/libcamera/pipeline/mali-c55/mali-c55.cpp | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> index c456a798..512a7489 100644
> --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> @@ -827,6 +827,17 @@ int PipelineHandlerMaliC55::configure(Camera *camera,
>                 Stream *stream = streamConfig.stream();
>                 MaliC55Pipe *pipe = pipeFromStream(data, stream);
>  
> +               /*
> +                * Enable the media link between the pipe's resizer and the
> +                * capture video device
> +                */
> +               const MediaEntity *rszEntity = pipe->resizer->entity();
> +               ret = rszEntity->getPadByIndex(1)->links()[0]->setEnabled(true);

I'll be curious where this is in the pipeline and if we need to later
handle routes or other complexities - but for now I think it's fine.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> +               if (ret) {
> +                       LOG(MaliC55, Error) << "Couldn't enable resizer's link";
> +                       return ret;
> +               }
> +
>                 if (isFormatRaw(streamConfig.pixelFormat))
>                         ret = configureRawStream(data, streamConfig, subdevFormat);
>                 else
> -- 
> 2.34.1
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
index c456a798..512a7489 100644
--- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp
+++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
@@ -827,6 +827,17 @@  int PipelineHandlerMaliC55::configure(Camera *camera,
 		Stream *stream = streamConfig.stream();
 		MaliC55Pipe *pipe = pipeFromStream(data, stream);
 
+		/*
+		 * Enable the media link between the pipe's resizer and the
+		 * capture video device
+		 */
+		const MediaEntity *rszEntity = pipe->resizer->entity();
+		ret = rszEntity->getPadByIndex(1)->links()[0]->setEnabled(true);
+		if (ret) {
+			LOG(MaliC55, Error) << "Couldn't enable resizer's link";
+			return ret;
+		}
+
 		if (isFormatRaw(streamConfig.pixelFormat))
 			ret = configureRawStream(data, streamConfig, subdevFormat);
 		else