camera_sensor: Add minimum and maximum line length to IPACameraSensorInfo

Add fields for minimum and maximum line length (in units of pixels) to
the IPACameraSensorInfo structure. This replaces the existing lineLength
field.

Update the ipu3, raspberrypi and rkisp1 IPAs to use
IPACameraSensorInfo::minLineLength instead of
IPACameraSensorInfo::lineLength, as logically we will always want to use
the fastest sensor readout by default.

Since the IPAs now use minLineLength for their calculations, set the
starting value of the V4L2_CID_HBLANK control to its minimum in
CameraSensor::init().

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Tested-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2022-10-10 08:42:32 +01:00 committed by Laurent Pinchart
parent ae7809307e
commit e5fc0132f8
5 changed files with 51 additions and 12 deletions

View file

@ -356,7 +356,7 @@ void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
* Calculate the line length as the ratio between the line length in
* pixels and the pixel rate.
*/
mode_.lineLength = sensorInfo.lineLength * (1.0s / sensorInfo.pixelRate);
mode_.lineLength = sensorInfo.minLineLength * (1.0s / sensorInfo.pixelRate);
/*
* Set the frame length limits for the mode to ensure exposure and