Hi Jacopo. On Mon, 7 Nov 2022 at 20:50, Jacopo Mondi <jacopo@xxxxxxxxxx> wrote: > > The formula to compute the frame interval uses the analogue crop > rectangle dimensions to compute the total frame size in conjunction with > blankings. > > Horizontal and vertical blankings are realized by extending the time > interval during which no valid pixels are sent on the bus between > visible lines and between consecutive frames, whose size is smaller than > the analogue crop rectangle if any additional cropping or pixel > subsampling is applied on the sensor processing pipeline. > > Correct the documentation to use the visible line length and frame > height instead of the analogue crop dimensions. I'll defer to Sakari on this, but I think the original text is correct. Consider something like CCS where you have a separate array with analogue crop, and then binning and scaling steps. AIUI the pixel rate and [HV]BLANK will be defined for the array, not on the binned and scaled values which finally give the visible frame. See [1]. For the majority of sensors where analogue cropping, binning, and scaling are not broken out separately, then it may well have been incorrectly implemented as they do often look at the output width/height. Should they be using the w/h values returned by V4L2_SEL_TGT_CROP on V4L2_SUBDEV_FORMAT_ACTIVE for the sensor modes instead? Quite probably, but that also makes the userspace more complex (and probably needs fixing). Dave [1] https://github.com/torvalds/linux/blob/master/drivers/media/i2c/ccs/ccs-core.c#L734 > Signed-off-by: Jacopo Mondi <jacopo@xxxxxxxxxx> > --- > Documentation/driver-api/media/camera-sensor.rst | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/Documentation/driver-api/media/camera-sensor.rst b/Documentation/driver-api/media/camera-sensor.rst > index c7d4891bd24e..bb7d62db4cd1 100644 > --- a/Documentation/driver-api/media/camera-sensor.rst > +++ b/Documentation/driver-api/media/camera-sensor.rst > @@ -87,12 +87,11 @@ less all modern raw camera sensors. > > The frame interval is calculated using the following equation:: > > - frame interval = (analogue crop width + horizontal blanking) * > - (analogue crop height + vertical blanking) / pixel rate > + frame interval = (visible width + horizontal blanking) * > + (visibile height + vertical blanking) / pixel rate > > The formula is bus independent and is applicable for raw timing parameters on > -large variety of devices beyond camera sensors. Devices that have no analogue > -crop, use the full source image size, i.e. pixel array size. > +large variety of devices beyond camera sensors. > > Horizontal and vertical blanking are specified by ``V4L2_CID_HBLANK`` and > ``V4L2_CID_VBLANK``, respectively. The unit of the ``V4L2_CID_HBLANK`` control > -- > 2.38.1 >