summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-11-22 14:59:13 +0100
committerJean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>2021-11-29 20:41:37 +0100
commited1cb19e7657b888bea6b66b6d409302b4bf4f25 (patch)
tree0a00435d5f46eb09dcab2b64e1f47bd26e536f6a
parent90da3af347d59c9d32431835ddcaa7363ba663ed (diff)
ipa: Do not modify the sensor limits
The driver is responsible for setting the proper limits for its controls. The IMX219 has an analogue gain of 1.0 when the gain code is set to 0, therefore we can not clamp to a minimum gain code of 1. Rework this for both IPU3 and RkISP1, for both Exposure and Gain controls. Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/ipa/ipu3/ipu3.cpp4
-rw-r--r--src/ipa/rkisp1/rkisp1.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index a8d54a5d..b0c75541 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -444,11 +444,11 @@ int IPAIPU3::configure(const IPAConfigInfo &configInfo,
return -EINVAL;
}
- minExposure_ = std::max(itExp->second.min().get<int32_t>(), 1);
+ minExposure_ = itExp->second.min().get<int32_t>();
maxExposure_ = itExp->second.max().get<int32_t>();
exposure_ = minExposure_;
- minGain_ = std::max(itGain->second.min().get<int32_t>(), 1);
+ minGain_ = itGain->second.min().get<int32_t>();
maxGain_ = itGain->second.max().get<int32_t>();
gain_ = minGain_;
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 7ecbf8ae..910ad952 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -139,11 +139,11 @@ int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
autoExposure_ = true;
- minExposure_ = std::max<uint32_t>(itExp->second.min().get<int32_t>(), 1);
+ minExposure_ = itExp->second.min().get<int32_t>();
maxExposure_ = itExp->second.max().get<int32_t>();
exposure_ = minExposure_;
- minGain_ = std::max<uint32_t>(itGain->second.min().get<int32_t>(), 1);
+ minGain_ = itGain->second.min().get<int32_t>();
maxGain_ = itGain->second.max().get<int32_t>();
gain_ = minGain_;