media: v4l: Add new Colorimetry Class
authorStanimir Varbanov <stanimir.varbanov@linaro.org>
Tue, 19 Jan 2021 14:04:22 +0000 (15:04 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 6 Apr 2021 12:55:06 +0000 (14:55 +0200)
Add Colorimetry control class for colorimetry controls

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/v4l2-core/v4l2-ctrls.c
include/uapi/linux/v4l2-controls.h

index 628fbeb..89780c5 100644 (file)
@@ -1215,6 +1215,10 @@ const char *v4l2_ctrl_get_name(u32 id)
        case V4L2_CID_STATELESS_H264_DECODE_PARAMS:             return "H264 Decode Parameters";
        case V4L2_CID_STATELESS_FWHT_PARAMS:                    return "FWHT Stateless Parameters";
        case V4L2_CID_STATELESS_VP8_FRAME:                      return "VP8 Frame Parameters";
+
+       /* Colorimetry controls */
+       /* Keep the order of the 'case's the same as in v4l2-controls.h! */
+       case V4L2_CID_COLORIMETRY_CLASS:        return "Colorimetry Controls";
        default:
                return NULL;
        }
@@ -1418,8 +1422,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
        case V4L2_CID_RF_TUNER_CLASS:
        case V4L2_CID_DETECT_CLASS:
        case V4L2_CID_CODEC_STATELESS_CLASS:
+       case V4L2_CID_COLORIMETRY_CLASS:
                *type = V4L2_CTRL_TYPE_CTRL_CLASS;
-               /* You can neither read not write these */
+               /* You can neither read nor write these */
                *flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY;
                *min = *max = *step = *def = 0;
                break;
index 6bae781..e376d81 100644 (file)
@@ -66,6 +66,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER       0x00a20000      /* RF tuner controls */
 #define V4L2_CTRL_CLASS_DETECT         0x00a30000      /* Detection controls */
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000     /* Stateless codecs controls */
+#define V4L2_CTRL_CLASS_COLORIMETRY    0x00a50000      /* Colorimetry controls */
 
 /* User-class control IDs */
 
@@ -1861,6 +1862,9 @@ struct v4l2_ctrl_vp8_frame {
        __u64 flags;
 };
 
+#define V4L2_CID_COLORIMETRY_CLASS_BASE        (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS     (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+
 /* MPEG-compression definitions kept for backwards compatibility */
 #ifndef __KERNEL__
 #define V4L2_CTRL_CLASS_MPEG            V4L2_CTRL_CLASS_CODEC