Merge remote-tracking branch 'stable/linux-5.15.y' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / drivers / media / v4l2-core / v4l2-ctrls-core.c
index 0575866..4cc1266 100644 (file)
@@ -113,6 +113,7 @@ static void std_init_compound(const struct v4l2_ctrl *ctrl, u32 idx,
        struct v4l2_ctrl_mpeg2_quantisation *p_mpeg2_quant;
        struct v4l2_ctrl_vp8_frame *p_vp8_frame;
        struct v4l2_ctrl_fwht_params *p_fwht_params;
+       struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix;
        void *p = ptr.p + idx * ctrl->elem_size;
 
        if (ctrl->p_def.p_const)
@@ -160,6 +161,15 @@ static void std_init_compound(const struct v4l2_ctrl *ctrl, u32 idx,
                p_fwht_params->flags = V4L2_FWHT_FL_PIXENC_YUV |
                        (2 << V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET);
                break;
+       case V4L2_CTRL_TYPE_H264_SCALING_MATRIX:
+               p_h264_scaling_matrix = p;
+               /*
+                * The default (flat) H.264 scaling matrix when none are
+                * specified in the bitstream, this is according to formulas
+                *  (7-8) and (7-9) of the specification.
+                */
+               memset(p_h264_scaling_matrix, 16, sizeof(*p_h264_scaling_matrix));
+               break;
        }
 }