[libcamera-devel] [RFC v1 5/5] ipa: ipu3: af: Remove hardcoded maximum VCM steps
Kate Hsuan
hpa at redhat.com
Thu Apr 14 09:43:42 CEST 2022
The hardcoded VCM step variable was removed and was replaced by the
context configuration.
Signed-off-by: Kate Hsuan<hpa at redhat.com>
---
src/ipa/ipu3/algorithms/af.cpp | 6 +++---
src/ipa/ipu3/ipu3.cpp | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/ipa/ipu3/algorithms/af.cpp b/src/ipa/ipu3/algorithms/af.cpp
index addf98af..95fb39f5 100644
--- a/src/ipa/ipu3/algorithms/af.cpp
+++ b/src/ipa/ipu3/algorithms/af.cpp
@@ -179,7 +179,7 @@ int Af::configure(IPAContext &context, const IPAConfigInfo &configInfo)
grid.y_start |= IPU3_UAPI_GRID_Y_START_EN;
/* Initial max focus step */
- maxStep_ = kMaxFocusSteps;
+ maxStep_ = context.configuration.af.maxVcmSteps;
/* Initial focus value */
context.frameContext.af.focus = 0;
@@ -214,7 +214,7 @@ void Af::afCoarseScan(IPAContext &context)
context.frameContext.af.focus = focus_;
previousVariance_ = 0;
maxStep_ = std::clamp(focus_ + static_cast<uint32_t>((focus_ * kFineRange)),
- 0U, kMaxFocusSteps);
+ 0U, static_cast<uint32_t>(context.configuration.af.maxVcmSteps));
}
}
@@ -259,7 +259,7 @@ void Af::afReset(IPAContext &context)
previousVariance_ = 0.0;
coarseCompleted_ = false;
fineCompleted_ = false;
- maxStep_ = kMaxFocusSteps;
+ maxStep_ = context.configuration.af.maxVcmSteps;
}
/**
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index dd6cfd79..d46f7853 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -456,6 +456,7 @@ int IPAIPU3::configure(const IPAConfigInfo &configInfo,
/* Clean frameContext at each reconfiguration. */
context_.frameContext = {};
+ context_.configuration.af.maxVcmSteps = configInfo.sensorInfo.maxVcmSteps;
if (!validateSensorControls()) {
LOG(IPAIPU3, Error) << "Sensor control validation failed.";
--
2.35.1
More information about the libcamera-devel
mailing list