[libcamera-devel] [IPU3-IPA PATCH] ipu3: ipa: Update to latest IPACameraSensorInfo

Umang Jain umang.jain at ideasonboard.com
Wed Oct 19 10:41:46 CEST 2022


Hi Kieran,

Thanks for the patch

On 10/19/22 4:43 AM, Kieran Bingham via libcamera-devel wrote:
> In libcamera commit e5fc0132f80d ("camera_sensor: Add minimum and
> maximum line length to IPACameraSensorInfo"), the IPU3 IPA interface is
> updated to provide both minimum and maximum line lengths, replacing the
> existing lineLenght field.

s/lineLenght/lineLength
>
> Update the ipu3-ipa to use IPACameraSensorInfo::minLineLength instead of
> IPACameraSensorInfo::lineLength, as logically we will always want to use
> the fastest sensor readout by default.
>
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

> ---
>   aiq/aiq_input_parameters.cpp | 2 +-
>   ipu3.cpp                     | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/aiq/aiq_input_parameters.cpp b/aiq/aiq_input_parameters.cpp
> index 7a6a1fac8a37..1639b61b1831 100644
> --- a/aiq/aiq_input_parameters.cpp
> +++ b/aiq/aiq_input_parameters.cpp
> @@ -79,7 +79,7 @@ void AiqInputParameters::reset()
>   int AiqInputParameters::configure(const IPAConfigInfo &configInfo)
>   {
>   	sensorDescriptor.pixel_clock_freq_mhz = configInfo.sensorInfo.pixelRate / 1000000;
> -	sensorDescriptor.pixel_periods_per_line = configInfo.sensorInfo.lineLength;
> +	sensorDescriptor.pixel_periods_per_line = configInfo.sensorInfo.minLineLength;
>   	sensorDescriptor.line_periods_per_field = configInfo.sensorInfo.minFrameLength;
>   	sensorDescriptor.line_periods_vertical_blanking = 106; /* default */
>   	//INFO: fine integration is not supported by v4l2
> diff --git a/ipu3.cpp b/ipu3.cpp
> index 7ecd377346f0..f3c65c7c142d 100644
> --- a/ipu3.cpp
> +++ b/ipu3.cpp
> @@ -118,7 +118,7 @@ void IPAIPU3::updateControls(const IPACameraSensorInfo &sensorInfo,
>   	 * exposure min, max and default and convert it from lines to
>   	 * microseconds.
>   	 */
> -	double lineDuration = sensorInfo.lineLength / (sensorInfo.pixelRate / 1e6);
> +	double lineDuration = sensorInfo.minLineLength / (sensorInfo.pixelRate / 1e6);
>   	const ControlInfo &v4l2Exposure = sensorControls.find(V4L2_CID_EXPOSURE)->second;
>   	int32_t minExposure = v4l2Exposure.min().get<int32_t>() * lineDuration;
>   	int32_t maxExposure = v4l2Exposure.max().get<int32_t>() * lineDuration;



More information about the libcamera-devel mailing list