media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS control
authorDavid Plowman <david.plowman@raspberrypi.com>
Mon, 16 Aug 2021 11:39:08 +0000 (13:39 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 30 Sep 2021 08:07:46 +0000 (10:07 +0200)
We add a new control V4L2_CID_NOTIFY_GAINS which allows the sensor to
be notified what gains will be applied to the different colour
channels by subsequent processing (such as by an ISP), even though the
sensor will not apply any of these gains itself.

For Bayer sensors this will be an array control taking 4 values which
are the 4 gains arranged in the fixed order B, Gb, Gr and R,
irrespective of the exact Bayer order of the sensor itself. The use of
an array makes it straightforward to extend this control to non-Bayer
sensors (for example, sensors with an RGBW pattern) in future.

The units are in all cases linear with the default value indicating a
gain of exactly 1.0. For example, if the default value were reported as
128 then the value 192 would represent a gain of exactly 1.5.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/v4l2-core/v4l2-ctrls-defs.c
include/uapi/linux/v4l2-controls.h

index eae300c58274d0a794b2bd0c47cdfc95b7ded3fb..ebe82b6ba6e6def5901a7c76634dbf00873d87ab 100644 (file)
@@ -1108,6 +1108,7 @@ const char *v4l2_ctrl_get_name(u32 id)
        case V4L2_CID_TEST_PATTERN_GREENR:      return "Green (Red) Pixel Value";
        case V4L2_CID_TEST_PATTERN_BLUE:        return "Blue Pixel Value";
        case V4L2_CID_TEST_PATTERN_GREENB:      return "Green (Blue) Pixel Value";
+       case V4L2_CID_NOTIFY_GAINS:             return "Notify Gains";
 
        /* Image processing controls */
        /* Keep the order of the 'case's the same as in v4l2-controls.h! */
index 5532b5f6849358b5c8b74e0bad57560579ed8ebd..133e20444939367c7bcf0d4f4189df2da3a97d75 100644 (file)
@@ -1118,6 +1118,7 @@ enum v4l2_jpeg_chroma_subsampling {
 #define V4L2_CID_TEST_PATTERN_BLUE             (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB           (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE                        (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS                  (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 
 
 /* Image processing controls */