[libcamera-devel] [PATCH 2/2] ipa: rkisp1: agc: Restore minimum analogue gain limit

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon May 29 14:39:26 CEST 2023


Commit a3178dd0391f ("ipa: rkisp1: agc: drop hard-coded analogue gain range")
removed both minimum and maximum limits for the analogue gain value.

However, as some sensors can potentially have a minimum gain lower than
1.0, restore the check for the minimum limit.

Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
---
 src/ipa/rkisp1/algorithms/agc.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index a4e5500e72d6..e5aeb3426eff 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -36,6 +36,9 @@ namespace ipa::rkisp1::algorithms {

 LOG_DEFINE_CATEGORY(RkISP1Agc)

+/* Minimum limit for analogue gain value */
+static constexpr double kMinAnalogueGain = 1.0;
+
 /* \todo Honour the FrameDurationLimits control instead of hardcoding a limit */
 static constexpr utils::Duration kMaxShutterSpeed = 60ms;

@@ -254,7 +257,8 @@ void Agc::computeExposure(IPAContext &context, IPAFrameContext &frameContext,
 	utils::Duration maxShutterSpeed = std::min(configuration.sensor.maxShutterSpeed,
 						   kMaxShutterSpeed);

-	double minAnalogueGain = configuration.sensor.minAnalogueGain;
+	double minAnalogueGain = std::max(configuration.sensor.minAnalogueGain,
+					  kMinAnalogueGain);
 	double maxAnalogueGain = configuration.sensor.maxAnalogueGain;

 	/* Consider within 1% of the target as correctly exposed. */
--
2.40.1



More information about the libcamera-devel mailing list