[PATCH] ipa: rpi: Fix for incorrectly reported max shutter speed

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed May 1 17:53:09 CEST 2024


Hi Naush,

Thank you for the patch.

On Fri, Apr 26, 2024 at 12:18:15PM +0100, Naushir Patuck wrote:
> The maximum shutter speed calculation in the cam-helper relied on
> the frame duration limits being correctly set in the cam-helper's mode
> structure. This was not the case on first startup, so the maximum
> shutter speed reported back via the ControlInfo was incorrect.
> 
> Fix this by setting up the camera mode in the cam-helper before querying
> for the max shutter value.
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  src/ipa/rpi/common/ipa_base.cpp | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp
> index 149a133ab662..1d12262bda01 100644
> --- a/src/ipa/rpi/common/ipa_base.cpp
> +++ b/src/ipa/rpi/common/ipa_base.cpp
> @@ -592,6 +592,12 @@ void IpaBase::setMode(const IPACameraSensorInfo &sensorInfo)
>  	mode_.minAnalogueGain = helper_->gain(gainCtrl.min().get<int32_t>());
>  	mode_.maxAnalogueGain = helper_->gain(gainCtrl.max().get<int32_t>());
>  
> +	/*
> +	 * We need to give the helper the min/max frame durations so it can calculate
> +	 * the correct exposure limits below.
> +	 */
> +	helper_->setCameraMode(mode_);
> +

Don't you end up doing this twice, once here, and once in
IpaBase::configure(), which calls IpaBase::setMode() ?

>  	/* Shutter speed is calculated based on the limits of the frame durations. */
>  	mode_.minShutter = helper_->exposure(shutterCtrl.min().get<int32_t>(), mode_.minLineLength);
>  	mode_.maxShutter = Duration::max();

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list