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

Daniel Scally dan.scally at ideasonboard.com
Tue Jan 21 14:00:37 CET 2025


In the ::init() function there are two places that return values they
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>
---
 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;
-- 
2.34.1



More information about the libcamera-devel mailing list