summaryrefslogtreecommitdiff
path: root/src/ipa
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2023-10-13 08:48:25 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2023-10-18 11:01:22 +0100
commit71bb5b345f5f5fe251e73082b5216708ab660a5c (patch)
treeb57a82fa61363f9ce04117377dc23924efbf569b /src/ipa
parent92a74cf454a9a3e969b001d03411a0b43921c864 (diff)
ipa: rpi: Add IpaBase::platformStart() member function
Add a virtual IpaBase::platformStart() member function that is called at the end of IpaBase::start(). For the IpaVc4 derived class, this function does nothing, but will be used in the PiSP derived class to reset internal state on startup. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa')
-rw-r--r--src/ipa/rpi/common/ipa_base.cpp2
-rw-r--r--src/ipa/rpi/common/ipa_base.h1
-rw-r--r--src/ipa/rpi/vc4/vc4.cpp7
3 files changed, 10 insertions, 0 deletions
diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
index 5df1998c..5939fe57 100644
--- a/src/ipa/rpi/common/ipa_base.cpp
+++ b/src/ipa/rpi/common/ipa_base.cpp
@@ -341,6 +341,8 @@ void IpaBase::start(const ControlList &controls, StartResult *result)
firstStart_ = false;
lastRunTimestamp_ = 0;
+
+ platformStart(controls, result);
}
void IpaBase::mapBuffers(const std::vector<IPABuffer> &buffers)
diff --git a/src/ipa/rpi/common/ipa_base.h b/src/ipa/rpi/common/ipa_base.h
index 097f436a..eaa9f711 100644
--- a/src/ipa/rpi/common/ipa_base.h
+++ b/src/ipa/rpi/common/ipa_base.h
@@ -67,6 +67,7 @@ private:
static constexpr unsigned int numMetadataContexts = 16;
virtual int32_t platformInit(const InitParams &params, InitResult *result) = 0;
+ virtual int32_t platformStart(const ControlList &controls, StartResult *result) = 0;
virtual int32_t platformConfigure(const ConfigParams &params, ConfigResult *result) = 0;
virtual void platformPrepareIsp(const PrepareParams &params,
diff --git a/src/ipa/rpi/vc4/vc4.cpp b/src/ipa/rpi/vc4/vc4.cpp
index 1de0d3cc..4a4d720c 100644
--- a/src/ipa/rpi/vc4/vc4.cpp
+++ b/src/ipa/rpi/vc4/vc4.cpp
@@ -51,6 +51,7 @@ public:
private:
int32_t platformInit(const InitParams &params, InitResult *result) override;
+ int32_t platformStart(const ControlList &controls, StartResult *result) override;
int32_t platformConfigure(const ConfigParams &params, ConfigResult *result) override;
void platformPrepareIsp(const PrepareParams &params, RPiController::Metadata &rpiMetadata) override;
@@ -94,6 +95,12 @@ int32_t IpaVc4::platformInit([[maybe_unused]] const InitParams &params, [[maybe_
return 0;
}
+int32_t IpaVc4::platformStart([[maybe_unused]] const ControlList &controls,
+ [[maybe_unused]] StartResult *result)
+{
+ return 0;
+}
+
int32_t IpaVc4::platformConfigure(const ConfigParams &params, [[maybe_unused]] ConfigResult *result)
{
ispCtrls_ = params.ispControls;