[PATCH] ipa: rpi: common: Avoid warnings when AeEnable control is used

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Apr 29 20:47:54 CEST 2025


On Mon, Apr 28, 2025 at 02:49:40PM +0100, Kieran Bingham wrote:
> Quoting Kieran Bingham (2025-04-28 14:48:26)
> > Quoting Naushir Patuck (2025-04-28 14:20:11)
> > > On Mon, 28 Apr 2025 at 14:16, David Plowman wrote:
> > > >
> > > > The AeEnable control is now just a wrapper that is converted to
> > > > ExposureTimeMode and AnalogueGainMode controls instead. Therefore, it
> > > > should simply be ignored when we encounter it, without the need for
> > > > any warnings.
> > > >
> > > > Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
> > > 
> > > Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
> > 
> > Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > 
> > > > ---
> > > >  src/ipa/rpi/common/ipa_base.cpp | 11 +++++++++++
> > > >  1 file changed, 11 insertions(+)
> > > >
> > > > diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> > > > index 4c09a093..80c17588 100644
> > > > --- a/src/ipa/rpi/common/ipa_base.cpp
> > > > +++ b/src/ipa/rpi/common/ipa_base.cpp
> > > > @@ -967,6 +967,17 @@ void IpaBase::applyControls(const ControlList &controls)
> > > >                         break;
> > > >                 }
> > > >
> > > > +               case controls::AE_ENABLE: {
> > > > +                       /*
> > > > +                        * The AeEnable control is now just a wrapper that will already have been
> > > > +                        * converted to ExposureTimeMode and AnalogueGainMode equivalents, so there
> > > > +                        * would be nothing to do here. Nonetheless, "handle" the control so as to
> > > > +                        * avoid warnings from the "default:" clause of the switch statement.
> > > > +                        */
> > > > +
> 
> Is this encountered at runtime? I wonder if the higher level should
> 'remove' the control that has been handled from the list ... But I'm not
> sure I like the idea of modifying the incoming control list ...

We're lacking infrastructure to modify the control list at the moment.
That's something we'll fix, in the meantime this workaround is fine.

> > > > +                       break;
> > > > +               }
> > > > +
> > > >                 case controls::AE_FLICKER_MODE: {
> > > >                         RPiController::AgcAlgorithm *agc = dynamic_cast<RPiController::AgcAlgorithm *>(
> > > >                                 controller_.getAlgorithm("agc"));

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list