From 4ff236804432937861c3ee151f4001cd1de9fafc Mon Sep 17 00:00:00 2001 From: Kieran Bingham Date: Tue, 18 Oct 2022 23:55:41 +0100 Subject: ipu3: ipa: Update to latest IPACameraSensorInfo 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 lineLength field. 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. Reviewed-by: Umang Jain Reviewed-by: Laurent Pinchart Signed-off-by: Kieran Bingham --- 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 7a6a1fa..1639b61 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 7ecd377..f3c65c7 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() * lineDuration; int32_t maxExposure = v4l2Exposure.max().get() * lineDuration; -- cgit v1.2.1