Hi Hans, Thank you for the review. On Mon, Feb 10, 2025 at 03:07:25PM +0100, Hans Verkuil wrote: > On 03/02/2025 09:58, Sakari Ailus wrote: > > Add V4L2_CID_BINNING control for configuring binning and enumerating a > > camera sensor's binning capabilities. The control combines horizontal and > > vertical binning into a single control as the two are generally related. > > > > New drivers should use this control to configure binning. > > > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > > Reviewed-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx> > > --- > > .../media/drivers/camera-sensor.rst | 10 +++++++ > > .../media/v4l/ext-ctrls-camera.rst | 29 +++++++++++++++++++ > > drivers/media/v4l2-core/v4l2-ctrls-defs.c | 2 ++ > > include/uapi/linux/v4l2-controls.h | 1 + > > 4 files changed, 42 insertions(+) > > > > diff --git a/Documentation/userspace-api/media/drivers/camera-sensor.rst b/Documentation/userspace-api/media/drivers/camera-sensor.rst > > index 91e5305458b9..59431ab0b923 100644 > > --- a/Documentation/userspace-api/media/drivers/camera-sensor.rst > > +++ b/Documentation/userspace-api/media/drivers/camera-sensor.rst > > @@ -120,6 +120,16 @@ values programmed by the register sequences. The default values of these > > controls shall be 0 (disabled). Especially these controls shall not be inverted, > > independently of the sensor's mounting rotation. > > > > +Binning > > +------- > > + > > +Binning has traditionally been configured using :ref:`the compose selection > > +rectangle <v4l2-selection-targets-table>`. The :ref:`V4L2_CID_BINNING > > +<v4l2-cid-camera-sensor-binning>` is also available for binning configuration and > > +users should use it when it's available. Drivers supporting the control shall > > +also support the compose rectangle, albeit the rectangle may be read-only when > > +the control is present. > > + > > .. _media_using_camera_sensor_drivers_embedded_data: > > > > Embedded data > > diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > index cdc515c60468..18b484ff5d75 100644 > > --- a/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-camera.rst > > @@ -672,3 +672,32 @@ enum v4l2_scene_mode - > > > > As modes differ for each sensor, menu items are not standardized by this > > control and are left to the programmer. > > + > > +.. _v4l2-cid-camera-sensor-binning: > > + > > +``V4L2_CID_BINNING_FACTORS (integer menu)`` > > + > > + Horizontal and vertical binning factors. Binning combines several > > + horizontal, vertical or both pixel values into a single pixel. It is a way > > + to scale an image. Binning typically produces fairly good quality output. > > + > > + Determines both horizontal and vertical binning factors for a camera > > + sensor. The values are encoded in the following way: > > + > > +.. flat-table:: > > + :header-rows: 1 > > + :stub-columns: 0 > > + > > + * - Bits > > + - Synopsis > > + * - 48--63 > > + - Horizontal binning numerator. > > + * - 32--47 > > + - Horizontal binning denominator. > > + * - 16--31 > > + - Vertical binning numerator. > > + * - 0--15 > > + - Vertical binning denominator. > > This suggests that the vertical and horizontal binning factors are not > independent settings, is that correct? There are dependencies between the two, yes. > > How does this control (and the subsampling controls) relate to the ROTATE control? > Does it happen before or after the rotate? In general there's no rotation support in (raw) camera sensors, just flipping. And flipping isn't affecting binning. -- Kind regards, Sakari Ailus