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>
This commit is contained in:
Jacopo Mondi 2021-01-29 11:16:12 +00:00 committed by Laurent Pinchart
parent e81f9046ca
commit f1b0c7f5e3
2 changed files with 5 additions and 2 deletions

View file

@ -27,18 +27,20 @@ The sensor driver shall support the following V4L2 controls:
* `V4L2_CID_EXPOSURE`_ * `V4L2_CID_EXPOSURE`_
* `V4L2_CID_HBLANK`_ * `V4L2_CID_HBLANK`_
* `V4L2_CID_PIXEL_RATE`_ * `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_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_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_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 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 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 comply with this requirement will need to be adapted or will produce incorrect
results. results.
The `HBLANK` and `PIXEL_RATE` controls are used to compute the sensor output The `HBLANK`, `PIXEL_RATE` and `VBLANK` controls are used to compute the sensor
timings. output timings.
Optional Requirements Optional Requirements
--------------------- ---------------------

View file

@ -244,6 +244,7 @@ int CameraSensor::validateSensorDriver()
V4L2_CID_EXPOSURE, V4L2_CID_EXPOSURE,
V4L2_CID_HBLANK, V4L2_CID_HBLANK,
V4L2_CID_PIXEL_RATE, V4L2_CID_PIXEL_RATE,
V4L2_CID_VBLANK,
}; };
ControlList ctrls = subdev_->getControls(mandatoryControls); ControlList ctrls = subdev_->getControls(mandatoryControls);