[libcamera-devel] [PATCH 1/1] camera_sensor: Suppress error message if test patterns are unavailable

Naushir Patuck naush at raspberrypi.com
Mon Jun 6 10:58:25 CEST 2022


If a sensor driver does not support test patterns (e.g. IMX477), libcamera
throws an unnecessary error message during initialisation when it sets the test
pattern to off.

Fix this by moving the error message into setTestPatternMode() where the
pipeline handler explicitly requests to set a test pattern.

Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
---
 src/libcamera/camera_sensor.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 4bb2066f0fd4..d055c16a4885 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -582,16 +582,19 @@ int CameraSensor::setTestPatternMode(controls::draft::TestPatternModeEnum mode)
 	if (testPatternMode_ == mode)
 		return 0;
 
+	if (testPatternModes_.empty()) {
+		LOG(CameraSensor, Error)
+			<< "Camera sensor does not support test pattern modes.";
+		return -EINVAL;
+	}
+
 	return applyTestPatternMode(mode);
 }
 
 int CameraSensor::applyTestPatternMode(controls::draft::TestPatternModeEnum mode)
 {
-	if (testPatternModes_.empty()) {
-		LOG(CameraSensor, Error)
-			<< "Camera sensor does not support test pattern modes.";
+	if (testPatternModes_.empty())
 		return 0;
-	}
 
 	auto it = std::find(testPatternModes_.begin(), testPatternModes_.end(),
 			    mode);
-- 
2.34.1



More information about the libcamera-devel mailing list