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:
committed by
Laurent Pinchart
parent
e81f9046ca
commit
f1b0c7f5e3
@@ -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
|
||||
---------------------
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user