summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo@jmondi.org>2021-01-29 11:16:12 +0000
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-02-05 00:05:26 +0200
commitf1b0c7f5e3f2d55c30934d1f2f9f417e0ff778ae (patch)
treefebd7f7bf1174a6f0219900b7f393119c927a749
parente81f9046caa26b06098eaef93b825a08bb3a5564 (diff)
libcamera: camera_sensor: Make VBLANK mandatory
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> Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-rw-r--r--Documentation/sensor_driver_requirements.rst6
-rw-r--r--src/libcamera/camera_sensor.cpp1
2 files changed, 5 insertions, 2 deletions
diff --git a/Documentation/sensor_driver_requirements.rst b/Documentation/sensor_driver_requirements.rst
index 6dcd4e68..590797f0 100644
--- a/Documentation/sensor_driver_requirements.rst
+++ b/Documentation/sensor_driver_requirements.rst
@@ -27,18 +27,20 @@ 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
While V4L2 doesn't specify a unit for the `EXPOSURE` control, libcamera 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
---------------------
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 2d150434..e008efd9 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -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);