@@ -27,10 +27,12 @@ The sensor driver shall support the following V4L2 controls:
* `V4L2_CID_EXPOSURE`_
* `V4L2_CID_HBLANK`_
* `V4L2_CID_PIXEL_RATE`_
+* `V4L2_CID_VBLANK`_
.. _V4L2_CID_EXPOSURE: https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/control.html
.. _V4L2_CID_HBLANK: https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/ext-ctrls-image-source.html
.. _V4L2_CID_PIXEL_RATE: https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/ext-ctrls-image-process.html
+.. _V4L2_CID_VBLANK: https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/ext-ctrls-image-source.html
The `EXPOSURE` control shall report the image integration time in number of
lines. While V4L2 doesn't specify a unit for the `EXPOSURE` control, libcamera
@@ -38,8 +40,8 @@ requires it to be expressed as a number of image lines. Camera sensor drivers
that do not comply with this requirement will need to be adapted or will produce
incorrect results.
-The `HBLANK` and `PIXEL_RATE` controls are used to compute the sensor output
-timings.
+The `HBLANK`, `PIXEL_RATE` and `VBLANK` controls are used to compute the sensor
+output timings.
Optional Requirements
---------------------
@@ -244,6 +244,7 @@ int CameraSensor::validateSensorDriver()
V4L2_CID_EXPOSURE,
V4L2_CID_HBLANK,
V4L2_CID_PIXEL_RATE,
+ V4L2_CID_VBLANK,
};
ControlList ctrls = subdev_->getControls(mandatoryControls);
Add the V4L2_CID_VBLANK control to the list of mandatory controls the sensor driver has to report and document the new requirement. The vertical blanking control is used to calculate the frame duration. Signed-off-by: Jacopo Mondi <jacopo@jmondi.org> --- Documentation/sensor_driver_requirements.rst | 6 ++++-- src/libcamera/camera_sensor.cpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-)