summaryrefslogtreecommitdiff
path: root/src/ipa
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2021-03-24 09:37:20 +0000
committerKieran Bingham <kieran.bingham@ideasonboard.com>2021-03-24 22:20:05 +0000
commit500e99174aeb3741023ec1a217c4ad5614511eef (patch)
treed9070a828aae326a9add93a8f2d6227b8cfddf32 /src/ipa
parent6bf86aa260c8e7043b191689d9e6058bff1941a6 (diff)
ipa: ipu3: Do not set controls during configure
The configure operation is synchronous and should not send events back to the pipeline handler. If information needs to be returned from configure it should be handled through the interface directly. Move the initial call to setControls() out of configure() and into the start() method which is called after the IPA running_ state is updated. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa')
-rw-r--r--src/ipa/ipu3/ipu3.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index a5c5e029..34a907f2 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -32,7 +32,7 @@ public:
{
return 0;
}
- int start() override { return 0; }
+ int start() override;
void stop() override {}
void configure(const std::map<uint32_t, ControlInfoMap> &entityControls,
@@ -63,6 +63,13 @@ private:
uint32_t maxGain_;
};
+int IPAIPU3::start()
+{
+ setControls(0);
+
+ return 0;
+}
+
void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls,
[[maybe_unused]] const Size &bdsOutputSize)
{
@@ -90,8 +97,6 @@ void IPAIPU3::configure(const std::map<uint32_t, ControlInfoMap> &entityControls
minGain_ = std::max(itGain->second.min().get<int32_t>(), 1);
maxGain_ = itGain->second.max().get<int32_t>();
gain_ = maxGain_;
-
- setControls(0);
}
void IPAIPU3::mapBuffers(const std::vector<IPABuffer> &buffers)