[PATCH] libcamera: mali-c55: Fix error paths in ::init()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jan 21 14:18:28 CET 2025


Hi Dan,

Thank you for the patch.

On Tue, Jan 21, 2025 at 01:00:37PM +0000, Daniel Scally wrote:
> In the ::init() function there are two places that return values they

MaliC55CameraData::init() ? ::init() in C++ means global namespace.

> shouldn't; the ret variable is returned after checking a pointer is
> not null instead of an explicit -ENODEV and later the boolean value
> false is returned on failure instead of the error value returned by
> V4L2Subdevice::open() - fix both problems.
> 
> Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  src/libcamera/pipeline/mali-c55/mali-c55.cpp | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/mali-c55/mali-c55.cpp b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> index 5abd6b20..6aa2f2d9 100644
> --- a/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> +++ b/src/libcamera/pipeline/mali-c55/mali-c55.cpp
> @@ -159,15 +159,16 @@ int MaliC55CameraData::init()
>  	 */
>  	sensor_ = CameraSensorFactoryBase::create(entity_);
>  	if (!sensor_)
> -		return ret;
> +		return -ENODEV;
>  
>  	const MediaPad *sourcePad = entity_->getPadByIndex(0);
>  	MediaEntity *csiEntity = sourcePad->links()[0]->sink()->entity();
>  
>  	csi_ = std::make_unique<V4L2Subdevice>(csiEntity);
> -	if (csi_->open()) {
> +	ret = csi_->open();
> +	if (ret) {
>  		LOG(MaliC55, Error) << "Failed to open CSI-2 subdevice";
> -		return false;
> +		return ret;
>  	}
>  
>  	return 0;

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list