[v5,02/24] ipa: libipa: agc: Change `AgcMSV` exposure mode
diff mbox series

Message ID 20261029125844.170324-3-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • ipa: libipa: agc: Take exposure margin into account
Related show

Commit Message

Barnabás Pőcze Oct. 29, 2026, 12:58 p.m. UTC
The `AgcMSV` implementation does not really support exposure modes like
`AgcMeanLuminance`. Instead it works by maximizing exposure time, then
analogue gain. This behaviour is best described by the newly introduced
"Maximize" exposure mode, so report that.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
 src/ipa/libipa/agc.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Kieran Bingham Oct. 29, 2026, 4:14 p.m. UTC | #1
Quoting Barnabás Pőcze (2026-10-29 12:58:22)
> The `AgcMSV` implementation does not really support exposure modes like
> `AgcMeanLuminance`. Instead it works by maximizing exposure time, then
> analogue gain. This behaviour is best described by the newly introduced
> "Maximize" exposure mode, so report that.
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>


Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> ---
>  src/ipa/libipa/agc.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp
> index 182dd7380e..7438825d30 100644
> --- a/src/ipa/libipa/agc.cpp
> +++ b/src/ipa/libipa/agc.cpp
> @@ -487,9 +487,9 @@ int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state,
>  
>         std::visit(utils::overloaded{
>                 [&](AgcMSV &) {
> -                       /* No constraint/exposure mode support. */
> +                       /* No constraint mode support. */
>                         state.constraintMode = controls::AeConstraintModeEnum::AeConstraintModeNormal;
> -                       state.exposureMode = controls::AeExposureModeEnum::AeExposureModeNormal;
> +                       state.exposureMode = controls::AeExposureModeEnum::AeExposureModeMaximize;
>  
>                         state.automatic.yTarget = 0; /* Not supported. */
>  
> -- 
> 2.56.0
>

Patch
diff mbox series

diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp
index 182dd7380e..7438825d30 100644
--- a/src/ipa/libipa/agc.cpp
+++ b/src/ipa/libipa/agc.cpp
@@ -487,9 +487,9 @@  int AgcAlgorithm::configure(agc::Session &session, agc::ActiveState &state,
 
 	std::visit(utils::overloaded{
 		[&](AgcMSV &) {
-			/* No constraint/exposure mode support. */
+			/* No constraint mode support. */
 			state.constraintMode = controls::AeConstraintModeEnum::AeConstraintModeNormal;
-			state.exposureMode = controls::AeExposureModeEnum::AeExposureModeNormal;
+			state.exposureMode = controls::AeExposureModeEnum::AeExposureModeMaximize;
 
 			state.automatic.yTarget = 0; /* Not supported. */