[libcamera-devel,v2] ipa: rkisp1: Do not set controls during configure
diff mbox series

Message ID 20210327100550.17271-1-sebastian.fricke@posteo.net
State Superseded, archived
Headers show
Series
  • [libcamera-devel,v2] ipa: rkisp1: Do not set controls during configure
Related show

Commit Message

Sebastian Fricke March 27, 2021, 10:05 a.m. UTC
Do not send events back to the pipeline handler, while the IPA thread
has not been started.

If information needs to be returned from configure it should be returned
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: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Sebastian Fricke <sebastian.fricke@posteo.net>
---
Changes since v1:
- Fix whitespace issues (thanks to Laurent)
- Correct commit description (thanks to Paul)
---
 src/ipa/rkisp1/rkisp1.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index d2a10bb9..8a57b080 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -32,7 +32,7 @@  class IPARkISP1 : public ipa::rkisp1::IPARkISP1Interface
 {
 public:
 	int init(unsigned int hwRevision) override;
-	int start() override { return 0; }
+	int start() override;
 	void stop() override {}
 
 	int configure(const CameraSensorInfo &info,
@@ -80,6 +80,13 @@  int IPARkISP1::init(unsigned int hwRevision)
 	return 0;
 }
 
+int IPARkISP1::start()
+{
+	setControls(0);
+
+	return 0;
+}
+
 /**
  * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
  * if the connected sensor does not provide enough information to properly
@@ -121,7 +128,6 @@  int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
 		<< "Exposure: " << minExposure_ << "-" << maxExposure_
 		<< " Gain: " << minGain_ << "-" << maxGain_;
 
-	setControls(0);
 	return 0;
 }