[libcamera-devel,1/3] libcamera: ipa: raspberrypi: ALSC: Camera mode does not need to be atomic

Message ID 20200730111134.641-2-david.plowman@raspberrypi.com
State Superseded
Headers show
Series
  • Raspberry Pi ALSC improvements
Related show

Commit Message

David Plowman July 30, 2020, 11:11 a.m. UTC
In the libcamera framework, SwitchMode (which overwrites the
camera_mode) cannot run concurrently with Prepare (which uses it).

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
 src/ipa/raspberrypi/controller/rpi/alsc.hpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Laurent Pinchart July 30, 2020, 10:45 p.m. UTC | #1
Hi David,

Thank you for the patch.

On Thu, Jul 30, 2020 at 12:11:32PM +0100, David Plowman wrote:
> In the libcamera framework, SwitchMode (which overwrites the
> camera_mode) cannot run concurrently with Prepare (which uses it).
> 
> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  src/ipa/raspberrypi/controller/rpi/alsc.hpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> index 3806257..e895913 100644
> --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
> @@ -59,7 +59,7 @@ private:
>  	// configuration is read-only, and available to both threads
>  	AlscConfig config_;
>  	bool first_time_;
> -	std::atomic<CameraMode> camera_mode_;
> +	CameraMode camera_mode_;
>  	std::thread async_thread_;
>  	void asyncFunc(); // asynchronous thread function
>  	std::mutex mutex_;

Patch

diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
index 3806257..e895913 100644
--- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp
+++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp
@@ -59,7 +59,7 @@  private:
 	// configuration is read-only, and available to both threads
 	AlscConfig config_;
 	bool first_time_;
-	std::atomic<CameraMode> camera_mode_;
+	CameraMode camera_mode_;
 	std::thread async_thread_;
 	void asyncFunc(); // asynchronous thread function
 	std::mutex mutex_;