فهرست منبع

video: driver: Prepare dependency list without parent

This is change 2 of the Prepare dependency list without
parent change.
In this change we remove all parent information from
the CAP database.

Change-Id: Ie0b878050ae2d24e3c1a41cbd579ef0f19d42250
Signed-off-by: Ankush Mitra <[email protected]>
Ankush Mitra 2 سال پیش
والد
کامیت
bd1cd4368b

+ 5 - 115
driver/platform/anorak/src/msm_vidc_anorak.c

@@ -1752,119 +1752,97 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_anor
 	 */
 
 	{PIX_FMTS, ENC, H264,
-		{0},
 		{META_ROI_INFO, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEVC,
-		{0},
 		{PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
 			B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEIC,
-		{0},
 		{PROFILE}},
 
 	{PIX_FMTS, DEC, HEVC|HEIC,
-		{0},
 		{PROFILE}},
 
 	{FRAME_RATE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_q16},
 
 	{FRAME_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_frame_rate},
 
 	{OPERATING_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_operating_rate},
 
 	{SECURE_MODE, ENC|DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{META_OUTBUF_FENCE, DEC, H264|HEVC|VP9|AV1,
-		{OUTPUT_ORDER},
 		{LOWLATENCY_MODE, SLICE_DECODE},
 		msm_vidc_adjust_dec_outbuf_fence,
 		NULL},
 
 	{HFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{VFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{ROTATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_rotation},
 
 	{SUPER_FRAME, ENC, H264|HEVC,
-		{0},
 		{INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
 		NULL,
 		NULL},
 
 	{SLICE_DECODE, DEC, H264|HEVC|AV1,
-		{LOWLATENCY_MODE, META_OUTBUF_FENCE, OUTPUT_ORDER},
 		{0},
 		msm_vidc_adjust_dec_slice_mode,
 		msm_vidc_set_u32},
 
 	{HEADER_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_header_mode},
 
 	{WITHOUT_STARTCODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_nal_length},
 
 	{WITHOUT_STARTCODE, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{REQUEST_I_FRAME, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_req_sync_frame},
 
 	{BIT_RATE, ENC, H264,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ENTROPY_MODE,
-			ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BIT_RATE, ENC, HEVC,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BITRATE_MODE, ENC, H264,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
 			META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -1874,7 +1852,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_anor
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEVC,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
 			BIT_RATE, META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -1884,515 +1861,428 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_anor
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEIC,
-		{0},
 		{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
 		msm_vidc_adjust_bitrate_mode,
 		msm_vidc_set_u32_enum},
 
 	{CONSTANT_QUALITY, ENC, HEVC|HEIC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_constant_quality},
 
 	{GOP_SIZE, ENC, CODECS_ALL,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_gop_size,
 		msm_vidc_set_gop_size},
 
 	{GOP_SIZE, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, H264|HEVC,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_b_frame,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{BLUR_TYPES, ENC, H264|HEVC,
-		{PIX_FMTS, BITRATE_MODE, MIN_QUALITY, META_ROI_INFO},
 		{BLUR_RESOLUTION},
 		msm_vidc_adjust_blur_type,
 		msm_vidc_set_u32_enum},
 
 	{BLUR_RESOLUTION, ENC, H264|HEVC,
-		{BLUR_TYPES},
 		{0},
 		msm_vidc_adjust_blur_resolution,
 		msm_vidc_set_blur_resolution},
 
 	{CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_csc_custom_matrix},
 
 	{LOWLATENCY_MODE, ENC, H264 | HEVC,
-		{BITRATE_MODE, DELIVERY_MODE},
 		{STAGE, BIT_RATE},
 		msm_vidc_adjust_enc_lowlatency_mode,
 		NULL},
 
 	{LOWLATENCY_MODE, DEC, H264|HEVC|VP9|AV1,
-		{META_OUTBUF_FENCE},
 		{STAGE, SLICE_DECODE},
 		msm_vidc_adjust_dec_lowlatency_mode,
 		NULL},
 
 	{LTR_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA},
 		{0},
 		msm_vidc_adjust_ltr_count,
 		msm_vidc_set_u32},
 
 	{USE_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_use_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{MARK_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_mark_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{IR_PERIOD, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, META_ROI_INFO, PIX_FMTS},
 		{0},
 		msm_vidc_adjust_ir_period,
 		msm_vidc_set_ir_period},
 
 	{AU_DELIMITER, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
-		{BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_delta_based_rc,
 		msm_vidc_set_u32},
 
 	{CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
-		{BITRATE_MODE, LAYER_ENABLE, LAYER_TYPE},
 		{REQUEST_PREPROCESS},
 		msm_vidc_adjust_brs,
 		msm_vidc_set_vbr_related_properties},
 
 	{REQUEST_PREPROCESS, ENC, H264|HEVC,
-		{CONTENT_ADAPTIVE_CODING, META_EVA_STATS},
 		{0},
 		msm_vidc_adjust_preprocess,
 		msm_vidc_set_preprocess},
 
 	{BITRATE_BOOST, ENC, H264|HEVC,
-		{BITRATE_MODE, MIN_QUALITY, BIT_RATE},
 		{0},
 		msm_vidc_adjust_bitrate_boost_iris3,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, H264,
-		{BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, HEVC,
-		{BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
-			META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_vbr_related_properties},
 
 	{VBV_DELAY, ENC, H264|HEVC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_cbr_related_properties},
 
 	{PEAK_BITRATE, ENC, H264|HEVC,
-		{BITRATE_MODE, BIT_RATE},
 		{0},
 		msm_vidc_adjust_peak_bitrate,
 		msm_vidc_set_cbr_related_properties},
 
 	{MIN_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_min_qp},
 
-	{MIN_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MIN_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_min_qp,
 		msm_vidc_set_min_qp},
 
 	{MAX_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_max_qp},
 
-	{MAX_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MAX_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_max_qp,
 		msm_vidc_set_max_qp},
 
 	{I_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_i_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{I_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_p_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_b_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
-	{LAYER_TYPE, ENC, H264,
-		{0},
+	{LAYER_TYPE, ENC, H264|HEVC,
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{LAYER_ENABLE, ENC, H264|HEVC,
-		{0},
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{ENH_LAYER_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, META_EVA_STATS},
 		{GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY, SLICE_MODE},
 		msm_vidc_adjust_layer_count,
 		msm_vidc_set_layer_count_and_type},
 
 	{ENH_LAYER_COUNT, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{L0_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L1_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L2_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L3_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L4_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L5_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{ENTROPY_MODE, ENC, H264,
-		{PROFILE},
 		{BIT_RATE},
 		msm_vidc_adjust_entropy_mode,
 		msm_vidc_set_u32},
 
 	{PROFILE, ENC, H264,
-		{0},
 		{ENTROPY_MODE, TRANSFORM_8X8},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, H264,
-		{0},
 		{ENTROPY_MODE},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, ENC|DEC, HEVC|HEIC,
-		{PIX_FMTS},
 		{0},
 		msm_vidc_adjust_profile,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_level},
 
 	{AV1_TIER, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{HEVC_TIER, ENC|DEC, HEVC|HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LF_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_deblock_mode},
 
 	{SLICE_MODE, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, ENH_LAYER_COUNT},
 		{STAGE, DELIVERY_MODE},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{SLICE_MODE, ENC, HEIC,
-		{0},
 		{0},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{TRANSFORM_8X8, ENC, H264,
-		{PROFILE},
 		{0},
 		msm_vidc_adjust_transform_8x8,
 		msm_vidc_set_u32},
 
 	{CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_chroma_qp_index_offset,
 		msm_vidc_set_chroma_qp_index_offset},
 
 	{DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{OUTPUT_ORDER, DEC, H264|HEVC|VP9|AV1,
-		{THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
 		{META_OUTBUF_FENCE, SLICE_DECODE},
 		msm_vidc_adjust_output_order,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME, DELIVERY_MODE},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{STAGE, ENC | DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, ENC, H264|HEVC,
-		{LOWLATENCY_MODE, SLICE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, DEC, H264|HEVC|VP9|AV1,
-		{LOWLATENCY_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{PIPE, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_pipe},
 
 	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		msm_vidc_set_u32},
 
 	{THUMBNAIL_MODE, DEC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{RAP_FRAME, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{PRIORITY, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_session_priority,
 		msm_vidc_set_session_priority},
 
 	{FIRMWARE_PRIORITY_OFFSET, DEC | ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{CRITICAL_PRIORITY, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{RESERVE_DURATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_reserve_duration},
 
 	{DPB_LIST, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{DRAP, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{ALL_INTRA, ENC, H264|HEVC,
-		{GOP_SIZE, B_FRAME},
 		{LTR_COUNT, IR_PERIOD, SLICE_MODE, BIT_RATE},
 		msm_vidc_adjust_all_intra,
 		NULL},
 
 	{META_EVA_STATS, ENC, H264|HEVC,
-		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 	{META_EVA_STATS, ENC, HEIC,
-		{0},
 		{0}},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
-		{BITRATE_MODE, PIX_FMTS},
-		{MIN_QUALITY, IR_PERIOD},
+		{MIN_QUALITY, IR_PERIOD, BLUR_TYPES},
 		msm_vidc_adjust_roi_info,
 		NULL},
 
 	{GRID, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{DELIVERY_MODE, ENC, H264|HEVC,
-		{SLICE_MODE}, {LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
+		{LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
 		msm_vidc_adjust_delivery_mode,
 		msm_vidc_set_u32},
 
 	{VUI_TIMING_INFO, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_vui_timing_info},

+ 0 - 1
driver/platform/common/inc/msm_vidc_platform.h

@@ -146,7 +146,6 @@ struct msm_platform_inst_cap_dependency {
 	enum msm_vidc_inst_capability_type cap_id;
 	enum msm_vidc_domain_type domain;
 	enum msm_vidc_codec_type codec;
-	enum msm_vidc_inst_capability_type parents[MAX_CAP_PARENTS];
 	enum msm_vidc_inst_capability_type children[MAX_CAP_CHILDREN];
 	int (*adjust)(void *inst,
 		struct v4l2_ctrl *ctrl);

+ 8 - 5
driver/platform/common/src/msm_vidc_platform.c

@@ -523,12 +523,15 @@ bool is_parent_available(struct msm_vidc_inst *inst,
 	u32 cap_id, u32 check_parent, const char *func)
 {
 	int i = 0;
-	u32 cap_parent;
+	u32 cap_child;
 
-	while (i < MAX_CAP_PARENTS &&
-		inst->capabilities->cap[cap_id].parents[i]) {
-		cap_parent = inst->capabilities->cap[cap_id].parents[i];
-		if (cap_parent == check_parent)
+	if (!is_valid_cap_id(cap_id) || !is_valid_cap_id(check_parent))
+		return false;
+
+	while (i < MAX_CAP_CHILDREN &&
+		inst->capabilities->cap[check_parent].children[i]) {
+		cap_child = inst->capabilities->cap[check_parent].children[i];
+		if (cap_child == cap_id)
 			return true;
 		i++;
 	}

+ 5 - 114
driver/platform/kalama/src/msm_vidc_kalama.c

@@ -1944,113 +1944,92 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kala
 	 */
 
 	{PIX_FMTS, ENC, H264,
-		{0},
 		{META_ROI_INFO, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEVC,
-		{0},
 		{PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
 			B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEIC,
-		{0},
 		{PROFILE}},
 
 	{PIX_FMTS, DEC, HEVC|HEIC,
-		{0},
 		{PROFILE}},
 
 	{FRAME_RATE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_q16},
 
 	{FRAME_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_frame_rate},
 
 	{OPERATING_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_operating_rate},
 
 	{SECURE_MODE, ENC|DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{META_OUTBUF_FENCE, DEC, H264|HEVC|VP9|AV1,
-		{OUTPUT_ORDER},
 		{LOWLATENCY_MODE},
 		msm_vidc_adjust_dec_outbuf_fence,
 		NULL},
 
 	{HFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{VFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{ROTATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_rotation},
 
 	{SUPER_FRAME, ENC, H264|HEVC,
-		{0},
 		{INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
 		NULL,
 		NULL},
 
 	{HEADER_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_header_mode},
 
 	{WITHOUT_STARTCODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_nal_length},
 
 	{WITHOUT_STARTCODE, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{REQUEST_I_FRAME, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_req_sync_frame},
 
 	{BIT_RATE, ENC, H264,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ENTROPY_MODE,
-			ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BIT_RATE, ENC, HEVC,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BITRATE_MODE, ENC, H264,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
 			META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -2060,7 +2039,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kala
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEVC,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
 			BIT_RATE, META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -2070,515 +2048,428 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_kala
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEIC,
-		{0},
 		{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
 		msm_vidc_adjust_bitrate_mode,
 		msm_vidc_set_u32_enum},
 
 	{CONSTANT_QUALITY, ENC, HEVC|HEIC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_constant_quality},
 
 	{GOP_SIZE, ENC, CODECS_ALL,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_gop_size,
 		msm_vidc_set_gop_size},
 
 	{GOP_SIZE, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, H264|HEVC,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_b_frame,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{BLUR_TYPES, ENC, H264|HEVC,
-		{PIX_FMTS, BITRATE_MODE, MIN_QUALITY, META_ROI_INFO},
 		{BLUR_RESOLUTION},
 		msm_vidc_adjust_blur_type,
 		msm_vidc_set_u32_enum},
 
 	{BLUR_RESOLUTION, ENC, H264|HEVC,
-		{BLUR_TYPES},
 		{0},
 		msm_vidc_adjust_blur_resolution,
 		msm_vidc_set_blur_resolution},
 
 	{CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_csc_custom_matrix},
 
 	{LOWLATENCY_MODE, ENC, H264 | HEVC,
-		{BITRATE_MODE, DELIVERY_MODE},
 		{STAGE, BIT_RATE},
 		msm_vidc_adjust_enc_lowlatency_mode,
 		NULL},
 
 	{LOWLATENCY_MODE, DEC, H264|HEVC|VP9|AV1,
-		{META_OUTBUF_FENCE},
 		{STAGE},
 		msm_vidc_adjust_dec_lowlatency_mode,
 		NULL},
 
 	{LTR_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA},
 		{0},
 		msm_vidc_adjust_ltr_count,
 		msm_vidc_set_u32},
 
 	{USE_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_use_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{MARK_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_mark_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{IR_PERIOD, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, META_ROI_INFO, PIX_FMTS},
 		{0},
 		msm_vidc_adjust_ir_period,
 		msm_vidc_set_ir_period},
 
 	{AU_DELIMITER, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
-		{BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_delta_based_rc,
 		msm_vidc_set_u32},
 
 	{CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
-		{BITRATE_MODE, LAYER_ENABLE, LAYER_TYPE},
 		{REQUEST_PREPROCESS},
 		msm_vidc_adjust_brs,
 		msm_vidc_set_vbr_related_properties},
 
 	{REQUEST_PREPROCESS, ENC, H264|HEVC,
-		{CONTENT_ADAPTIVE_CODING, META_EVA_STATS},
 		{0},
 		msm_vidc_adjust_preprocess,
 		msm_vidc_set_preprocess},
 
 	{BITRATE_BOOST, ENC, H264|HEVC,
-		{BITRATE_MODE, MIN_QUALITY, BIT_RATE},
 		{0},
 		msm_vidc_adjust_bitrate_boost_iris3,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, H264,
-		{BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_u32},
 
 	{MIN_QUALITY, ENC, HEVC,
-		{BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
-			META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_u32},
 
 	{VBV_DELAY, ENC, H264|HEVC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_cbr_related_properties},
 
 	{PEAK_BITRATE, ENC, H264|HEVC,
-		{BITRATE_MODE, BIT_RATE},
 		{0},
 		msm_vidc_adjust_peak_bitrate,
 		msm_vidc_set_cbr_related_properties},
 
 	{MIN_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_min_qp},
 
-	{MIN_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MIN_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_min_qp,
 		msm_vidc_set_min_qp},
 
 	{MAX_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_max_qp},
 
-	{MAX_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MAX_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_max_qp,
 		msm_vidc_set_max_qp},
 
 	{I_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_i_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{I_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_p_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_b_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
-	{LAYER_TYPE, ENC, H264,
-		{0},
+	{LAYER_TYPE, ENC, H264|HEVC,
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{LAYER_ENABLE, ENC, H264|HEVC,
-		{0},
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{ENH_LAYER_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, META_EVA_STATS},
 		{GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY, SLICE_MODE},
 		msm_vidc_adjust_layer_count,
 		msm_vidc_set_layer_count_and_type},
 
 	{ENH_LAYER_COUNT, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{L0_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L1_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L2_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L3_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L4_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L5_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{ENTROPY_MODE, ENC, H264,
-		{PROFILE},
 		{BIT_RATE},
 		msm_vidc_adjust_entropy_mode,
 		msm_vidc_set_u32},
 
 	{PROFILE, ENC, H264,
-		{0},
 		{ENTROPY_MODE, TRANSFORM_8X8},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, H264,
-		{0},
 		{ENTROPY_MODE},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, ENC|DEC, HEVC|HEIC,
-		{PIX_FMTS},
 		{0},
 		msm_vidc_adjust_profile,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_level},
 
 	{AV1_TIER, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{HEVC_TIER, ENC|DEC, HEVC|HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LF_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_deblock_mode},
 
 	{SLICE_MODE, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, ENH_LAYER_COUNT},
 		{STAGE, DELIVERY_MODE},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{SLICE_MODE, ENC, HEIC,
-		{0},
 		{0},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{TRANSFORM_8X8, ENC, H264,
-		{PROFILE},
 		{0},
 		msm_vidc_adjust_transform_8x8,
 		msm_vidc_set_u32},
 
 	{CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_chroma_qp_index_offset,
 		msm_vidc_set_chroma_qp_index_offset},
 
 	{DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{OUTPUT_ORDER, DEC, H264|HEVC|VP9|AV1,
-		{THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
 		{META_OUTBUF_FENCE},
 		msm_vidc_adjust_output_order,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME, DELIVERY_MODE},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{STAGE, ENC | DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, ENC, H264|HEVC,
-		{LOWLATENCY_MODE, SLICE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, DEC, H264|HEVC|VP9|AV1,
-		{LOWLATENCY_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{PIPE, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_pipe},
 
 	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		msm_vidc_set_u32},
 
 	{THUMBNAIL_MODE, DEC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{RAP_FRAME, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{PRIORITY, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_session_priority,
 		msm_vidc_set_session_priority},
 
 	{FIRMWARE_PRIORITY_OFFSET, DEC | ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{CRITICAL_PRIORITY, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{RESERVE_DURATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_reserve_duration},
 
 	{DPB_LIST, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{DRAP, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{ALL_INTRA, ENC, H264|HEVC,
-		{GOP_SIZE, B_FRAME},
 		{LTR_COUNT, IR_PERIOD, SLICE_MODE, BIT_RATE},
 		msm_vidc_adjust_all_intra,
 		NULL},
 
 	{META_EVA_STATS, ENC, H264|HEVC,
-		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 	{META_EVA_STATS, ENC, HEIC,
-		{0},
 		{0}},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
-		{BITRATE_MODE, PIX_FMTS},
-		{MIN_QUALITY, IR_PERIOD},
+		{MIN_QUALITY, IR_PERIOD, BLUR_TYPES},
 		msm_vidc_adjust_roi_info,
 		NULL},
 
 	{GRID, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{DELIVERY_MODE, ENC, H264|HEVC,
-		{SLICE_MODE}, {LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
+		{LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
 		msm_vidc_adjust_delivery_mode,
 		msm_vidc_set_u32},
 
 	{VUI_TIMING_INFO, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_vui_timing_info},

+ 5 - 116
driver/platform/pineapple/src/msm_vidc_pineapple.c

@@ -1952,119 +1952,97 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
 	 */
 
 	{PIX_FMTS, ENC, H264,
-		{0},
 		{META_ROI_INFO, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEVC,
-		{0},
 		{PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
 			B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEIC,
-		{0},
 		{PROFILE}},
 
 	{PIX_FMTS, DEC, HEVC|HEIC,
-		{0},
 		{PROFILE}},
 
 	{FRAME_RATE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_q16},
 
 	{FRAME_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_frame_rate},
 
 	{OPERATING_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_operating_rate},
 
 	{SECURE_MODE, ENC|DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{META_OUTBUF_FENCE, DEC, H264|HEVC|VP9|AV1,
-		{OUTPUT_ORDER},
 		{LOWLATENCY_MODE, SLICE_DECODE},
 		msm_vidc_adjust_dec_outbuf_fence,
 		NULL},
 
 	{HFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{VFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{ROTATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_rotation},
 
 	{SUPER_FRAME, ENC, H264|HEVC,
-		{0},
 		{INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
 		NULL,
 		NULL},
 
 	{SLICE_DECODE, DEC, H264|HEVC|AV1,
-		{LOWLATENCY_MODE, META_OUTBUF_FENCE, OUTPUT_ORDER},
 		{0},
 		NULL,
 		NULL},
 
 	{HEADER_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_header_mode},
 
 	{WITHOUT_STARTCODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_nal_length},
 
 	{WITHOUT_STARTCODE, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{REQUEST_I_FRAME, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_req_sync_frame},
 
 	{BIT_RATE, ENC, H264,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ENTROPY_MODE,
-			ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BIT_RATE, ENC, HEVC,
-		{ENH_LAYER_COUNT, BITRATE_MODE, ALL_INTRA, LOWLATENCY_MODE},
 		{PEAK_BITRATE, BITRATE_BOOST},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BITRATE_MODE, ENC, H264,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
 			META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -2074,7 +2052,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEVC,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
 			BIT_RATE, META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -2084,521 +2061,433 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_pine
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEIC,
-		{0},
 		{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
 		msm_vidc_adjust_bitrate_mode,
 		msm_vidc_set_u32_enum},
 
 	{CONSTANT_QUALITY, ENC, HEVC|HEIC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_constant_quality},
 
 	{GOP_SIZE, ENC, CODECS_ALL,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_gop_size,
 		msm_vidc_set_gop_size},
 
 	{GOP_SIZE, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, H264|HEVC,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_b_frame,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{BLUR_TYPES, ENC, H264|HEVC,
-		{PIX_FMTS, BITRATE_MODE, MIN_QUALITY, META_ROI_INFO},
 		{BLUR_RESOLUTION},
 		msm_vidc_adjust_blur_type,
 		msm_vidc_set_u32_enum},
 
 	{BLUR_RESOLUTION, ENC, H264|HEVC,
-		{BLUR_TYPES},
 		{0},
 		msm_vidc_adjust_blur_resolution,
 		msm_vidc_set_blur_resolution},
 
 	{CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_csc_custom_matrix},
 
 	{LOWLATENCY_MODE, ENC, H264 | HEVC,
-		{BITRATE_MODE, DELIVERY_MODE},
 		{STAGE, BIT_RATE},
 		msm_vidc_adjust_enc_lowlatency_mode,
 		NULL},
 
 	{LOWLATENCY_MODE, DEC, H264|HEVC|VP9|AV1,
-		{META_OUTBUF_FENCE},
 		{STAGE, SLICE_DECODE},
 		msm_vidc_adjust_dec_lowlatency_mode,
 		NULL},
 
 	{LTR_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA},
 		{0},
 		msm_vidc_adjust_ltr_count,
 		msm_vidc_set_u32},
 
 	{USE_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_use_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{MARK_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_mark_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{IR_PERIOD, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, META_ROI_INFO, PIX_FMTS},
 		{0},
 		msm_vidc_adjust_ir_period,
 		msm_vidc_set_ir_period},
 
 	{AU_DELIMITER, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{BASELAYER_PRIORITY, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
-		{BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_delta_based_rc,
 		msm_vidc_set_u32},
 
 	{CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
-		{BITRATE_MODE, LAYER_ENABLE, LAYER_TYPE},
 		{REQUEST_PREPROCESS},
 		msm_vidc_adjust_brs,
 		msm_vidc_set_vbr_related_properties},
 
 	{REQUEST_PREPROCESS, ENC, H264|HEVC,
-		{CONTENT_ADAPTIVE_CODING, META_EVA_STATS},
 		{0},
 		msm_vidc_adjust_preprocess,
 		msm_vidc_set_preprocess},
 
 	{BITRATE_BOOST, ENC, H264|HEVC,
-		{BITRATE_MODE, MIN_QUALITY, BIT_RATE},
 		{0},
 		msm_vidc_adjust_bitrate_boost_iris33,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, H264,
-		{BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_u32},
 
 	{MIN_QUALITY, ENC, HEVC,
-		{BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
-			META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_u32},
 
 	{VBV_DELAY, ENC, H264|HEVC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_cbr_related_properties},
 
 	{PEAK_BITRATE, ENC, H264|HEVC,
-		{BITRATE_MODE, BIT_RATE},
 		{0},
 		msm_vidc_adjust_peak_bitrate,
 		msm_vidc_set_cbr_related_properties},
 
 	{MIN_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_min_qp},
 
-	{MIN_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MIN_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_min_qp,
 		msm_vidc_set_min_qp},
 
 	{MAX_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_max_qp},
 
-	{MAX_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MAX_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_max_qp,
 		msm_vidc_set_max_qp},
 
 	{I_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_i_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{I_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_p_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_b_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
-	{LAYER_TYPE, ENC, H264,
-		{0},
+	{LAYER_TYPE, ENC, H264|HEVC,
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{LAYER_ENABLE, ENC, H264|HEVC,
-		{0},
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{ENH_LAYER_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, META_EVA_STATS},
 		{GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY, SLICE_MODE},
 		msm_vidc_adjust_layer_count,
 		msm_vidc_set_layer_count_and_type},
 
 	{ENH_LAYER_COUNT, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{L0_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L1_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L2_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L3_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L4_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L5_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{ENTROPY_MODE, ENC, H264,
-		{PROFILE},
 		{BIT_RATE},
 		msm_vidc_adjust_entropy_mode,
 		msm_vidc_set_u32},
 
 	{PROFILE, ENC, H264,
-		{0},
 		{ENTROPY_MODE, TRANSFORM_8X8},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, H264,
-		{0},
 		{ENTROPY_MODE},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, ENC|DEC, HEVC|HEIC,
-		{PIX_FMTS},
 		{0},
 		msm_vidc_adjust_profile,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, VP9|AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_level},
 
 	{AV1_TIER, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{HEVC_TIER, ENC|DEC, HEVC|HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LF_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_deblock_mode},
 
 	{SLICE_MODE, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, ENH_LAYER_COUNT},
 		{STAGE, DELIVERY_MODE},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{SLICE_MODE, ENC, HEIC,
-		{0},
 		{0},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{TRANSFORM_8X8, ENC, H264,
-		{PROFILE},
 		{0},
 		msm_vidc_adjust_transform_8x8,
 		msm_vidc_set_u32},
 
 	{CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_chroma_qp_index_offset,
 		msm_vidc_set_chroma_qp_index_offset},
 
 	{DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{OUTPUT_ORDER, DEC, H264|HEVC|VP9|AV1,
-		{THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
 		{META_OUTBUF_FENCE, SLICE_DECODE},
 		msm_vidc_adjust_output_order,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME, DELIVERY_MODE},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{STAGE, ENC | DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, ENC, H264|HEVC,
-		{LOWLATENCY_MODE, SLICE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, DEC, H264|HEVC|VP9|AV1,
-		{LOWLATENCY_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{PIPE, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_pipe},
 
 	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		msm_vidc_set_u32},
 
 	{THUMBNAIL_MODE, DEC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{RAP_FRAME, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{PRIORITY, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_session_priority,
 		msm_vidc_set_session_priority},
 
 	{FIRMWARE_PRIORITY_OFFSET, DEC | ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{CRITICAL_PRIORITY, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{RESERVE_DURATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_reserve_duration},
 
 	{DPB_LIST, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{DRAP, DEC, AV1,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{ALL_INTRA, ENC, H264|HEVC,
-		{GOP_SIZE, B_FRAME},
 		{LTR_COUNT, IR_PERIOD, SLICE_MODE, BIT_RATE},
 		msm_vidc_adjust_all_intra,
 		NULL},
 
 	{META_EVA_STATS, ENC, H264|HEVC,
-		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 	{META_EVA_STATS, ENC, HEIC,
-		{0},
 		{0}},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
-		{BITRATE_MODE, PIX_FMTS},
-		{MIN_QUALITY, IR_PERIOD},
+		{MIN_QUALITY, IR_PERIOD, BLUR_TYPES},
 		msm_vidc_adjust_roi_info,
 		NULL},
 
 	{GRID, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{DELIVERY_MODE, ENC, H264|HEVC,
-		{SLICE_MODE}, {LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
+		{LOWLATENCY_MODE, OUTPUT_BUF_HOST_MAX_COUNT},
 		msm_vidc_adjust_delivery_mode,
 		msm_vidc_set_u32},
 
 	{VUI_TIMING_INFO, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_vui_timing_info},

+ 3 - 107
driver/platform/waipio/src/msm_vidc_waipio.c

@@ -1533,100 +1533,82 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waip
 	 */
 
 	{PIX_FMTS, ENC, H264,
-		{0},
 		{META_ROI_INFO, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEVC,
-		{0},
 		{PROFILE, MIN_FRAME_QP, MAX_FRAME_QP, I_FRAME_QP, P_FRAME_QP,
 			B_FRAME_QP, META_ROI_INFO, MIN_QUALITY, BLUR_TYPES, IR_PERIOD}},
 
 	{PIX_FMTS, ENC, HEIC,
-		{0},
 		{PROFILE}},
 
 	{PIX_FMTS, DEC, HEVC|HEIC,
-		{0},
 		{PROFILE}},
 
 	{FRAME_RATE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_q16},
 
 	{FRAME_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_frame_rate},
 
 	{OPERATING_RATE, DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_dec_operating_rate},
 
 	{SECURE_MODE, ENC|DEC, H264|HEVC|VP9,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{META_OUTBUF_FENCE, DEC, H264|HEVC|VP9,
-		{OUTPUT_ORDER},
 		{LOWLATENCY_MODE},
 		NULL,
 		NULL},
 
 	{HFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{VFLIP, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_flip},
 
 	{ROTATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_rotation},
 
 	{SUPER_FRAME, ENC, H264|HEVC,
-		{0},
 		{INPUT_BUF_HOST_MAX_COUNT, OUTPUT_BUF_HOST_MAX_COUNT},
 		NULL,
 		NULL},
 
 	{HEADER_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_header_mode},
 
 	{WITHOUT_STARTCODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_nal_length},
 
 	{REQUEST_I_FRAME, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_req_sync_frame},
 
 	{BIT_RATE, ENC, H264|HEVC,
-		{ENH_LAYER_COUNT, BITRATE_MODE},
 		{PEAK_BITRATE},
 		msm_vidc_adjust_bitrate,
 		msm_vidc_set_bitrate},
 
 	{BITRATE_MODE, ENC, H264,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE,
 			META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -1636,7 +1618,6 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waip
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEVC,
-		{0},
 		{LTR_COUNT, IR_PERIOD, TIME_DELTA_BASED_RC, I_FRAME_QP,
 			P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT,
 			BIT_RATE, META_ROI_INFO, MIN_QUALITY, BITRATE_BOOST, VBV_DELAY,
@@ -1646,493 +1627,408 @@ static struct msm_platform_inst_cap_dependency instance_cap_dependency_data_waip
 		msm_vidc_set_u32_enum},
 
 	{BITRATE_MODE, ENC, HEIC,
-		{0},
 		{TIME_DELTA_BASED_RC, CONSTANT_QUALITY},
 		msm_vidc_adjust_bitrate_mode,
 		msm_vidc_set_u32_enum},
 
 	{CONSTANT_QUALITY, ENC, HEVC|HEIC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_constant_quality},
 
 	{GOP_SIZE, ENC, CODECS_ALL,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_gop_size,
 		msm_vidc_set_gop_size},
 
 	{GOP_SIZE, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, H264|HEVC,
-		{ENH_LAYER_COUNT},
 		{ALL_INTRA},
 		msm_vidc_adjust_b_frame,
 		msm_vidc_set_u32},
 
 	{B_FRAME, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{BLUR_TYPES, ENC, H264|HEVC,
-		{PIX_FMTS, BITRATE_MODE, MIN_QUALITY,
-			CONTENT_ADAPTIVE_CODING, META_ROI_INFO},
 		{BLUR_RESOLUTION},
 		msm_vidc_adjust_blur_type_iris2,
 		msm_vidc_set_u32_enum},
 
 	{BLUR_RESOLUTION, ENC, H264|HEVC,
-		{BLUR_TYPES},
 		{0},
 		msm_vidc_adjust_blur_resolution,
 		msm_vidc_set_blur_resolution},
 
 	{CSC_CUSTOM_MATRIX, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_csc_custom_matrix},
 
 	{LOWLATENCY_MODE, ENC, H264 | HEVC,
-		{BITRATE_MODE},
 		{STAGE},
 		msm_vidc_adjust_enc_lowlatency_mode,
 		NULL},
 
 	{LOWLATENCY_MODE, DEC, H264|HEVC|VP9,
-		{META_OUTBUF_FENCE},
 		{STAGE},
 		msm_vidc_adjust_dec_lowlatency_mode,
 		NULL},
 
 	{LTR_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA},
 		{0},
 		msm_vidc_adjust_ltr_count,
 		msm_vidc_set_u32},
 
 	{USE_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_use_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{MARK_LTR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_mark_ltr,
 		msm_vidc_set_use_and_mark_ltr},
 
 	{IR_PERIOD, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, META_ROI_INFO, PIX_FMTS},
 		{0},
 		msm_vidc_adjust_ir_period,
 		msm_vidc_set_ir_period},
 
 	{AU_DELIMITER, ENC, H264|HEVC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{TIME_DELTA_BASED_RC, ENC, CODECS_ALL,
-		{BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_delta_based_rc,
 		msm_vidc_set_u32},
 
 	{CONTENT_ADAPTIVE_CODING, ENC, H264|HEVC,
-		{BITRATE_MODE, LAYER_ENABLE, LAYER_TYPE},
 		{REQUEST_PREPROCESS},
 		msm_vidc_adjust_brs,
 		msm_vidc_set_vbr_related_properties},
 
 	{REQUEST_PREPROCESS, ENC, H264|HEVC,
-		{CONTENT_ADAPTIVE_CODING, META_EVA_STATS},
 		{0},
 		msm_vidc_adjust_preprocess,
 		NULL},
 
 	{BITRATE_BOOST, ENC, H264|HEVC,
-		{BITRATE_MODE, MIN_QUALITY},
 		{0},
 		msm_vidc_adjust_bitrate_boost,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, H264,
-		{BITRATE_MODE, ENH_LAYER_COUNT, META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_vbr_related_properties},
 
 	{MIN_QUALITY, ENC, HEVC,
-		{BITRATE_MODE, PIX_FMTS, ENH_LAYER_COUNT,
-			META_ROI_INFO},
 		{BLUR_TYPES},
 		msm_vidc_adjust_min_quality,
 		msm_vidc_set_vbr_related_properties},
 
 	{VBV_DELAY, ENC, H264|HEVC,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_cbr_related_properties},
 
 	{PEAK_BITRATE, ENC, H264|HEVC,
-		{BITRATE_MODE, BIT_RATE},
 		{0},
 		msm_vidc_adjust_peak_bitrate,
 		msm_vidc_set_cbr_related_properties},
 
 	{MIN_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_min_qp},
 
-	{MIN_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MIN_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_min_qp,
 		msm_vidc_set_min_qp},
 
 	{MAX_FRAME_QP, ENC, H264,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_max_qp},
 
-	{MAX_FRAME_QP, ENC, HEVC|HEIC,
-		{PIX_FMTS},
+	{MAX_FRAME_QP, ENC, HEVC,
 		{0},
 		msm_vidc_adjust_hevc_max_qp,
 		msm_vidc_set_max_qp},
 
 	{I_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_i_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{I_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_p_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{P_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, HEVC,
-		{PIX_FMTS, BITRATE_MODE},
 		{0},
 		msm_vidc_adjust_hevc_b_frame_qp,
 		msm_vidc_set_frame_qp},
 
 	{B_FRAME_QP, ENC, H264,
-		{BITRATE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_frame_qp},
 
 	{LAYER_TYPE, ENC, H264|HEVC,
-		{0},
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{LAYER_ENABLE, ENC, H264|HEVC,
-		{0},
 		{CONTENT_ADAPTIVE_CODING}},
 
 	{ENH_LAYER_COUNT, ENC, H264|HEVC,
-		{BITRATE_MODE, META_EVA_STATS},
 		{GOP_SIZE, B_FRAME, BIT_RATE, MIN_QUALITY, SLICE_MODE},
 		msm_vidc_adjust_layer_count,
 		msm_vidc_set_layer_count_and_type},
 
 	{L0_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L1_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L2_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L3_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L4_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{L5_BR, ENC, H264|HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_dynamic_layer_bitrate,
 		msm_vidc_set_dynamic_layer_bitrate},
 
 	{ENTROPY_MODE, ENC, H264,
-		{PROFILE},
 		{0},
 		msm_vidc_adjust_entropy_mode,
 		msm_vidc_set_u32},
 
 	{PROFILE, ENC, H264,
-		{0},
 		{ENTROPY_MODE, TRANSFORM_8X8},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, H264,
-		{0},
 		{ENTROPY_MODE},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, ENC|DEC, HEVC|HEIC,
-		{PIX_FMTS},
 		{0},
 		msm_vidc_adjust_profile,
 		msm_vidc_set_u32_enum},
 
 	{PROFILE, DEC, VP9,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LEVEL, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_level},
 
 	{HEVC_TIER, ENC|DEC, HEVC|HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_enum},
 
 	{LF_MODE, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_deblock_mode},
 
 	{SLICE_MODE, ENC, H264|HEVC,
-		{BITRATE_MODE, ALL_INTRA, ENH_LAYER_COUNT},
 		{STAGE},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{SLICE_MODE, ENC, HEIC,
-		{0},
 		{0},
 		msm_vidc_adjust_slice_count,
 		msm_vidc_set_slice_count},
 
 	{TRANSFORM_8X8, ENC, H264,
-		{PROFILE},
 		{0},
 		msm_vidc_adjust_transform_8x8,
 		msm_vidc_set_u32},
 
 	{CHROMA_QP_INDEX_OFFSET, ENC, HEVC,
-		{0},
 		{0},
 		msm_vidc_adjust_chroma_qp_index_offset,
 		msm_vidc_set_chroma_qp_index_offset},
 
 	{DISPLAY_DELAY_ENABLE, DEC, H264|HEVC|VP9,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{DISPLAY_DELAY, DEC, H264|HEVC|VP9,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		NULL},
 
 	{OUTPUT_ORDER, DEC, H264|HEVC|VP9,
-		{THUMBNAIL_MODE, DISPLAY_DELAY, DISPLAY_DELAY_ENABLE},
 		{META_OUTBUF_FENCE},
 		msm_vidc_adjust_output_order,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{INPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME},
 		{0},
 		msm_vidc_adjust_input_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{OUTPUT_BUF_HOST_MAX_COUNT, ENC, H264|HEVC,
-		{SUPER_FRAME},
 		{0},
 		msm_vidc_adjust_output_buf_host_max_count,
 		msm_vidc_set_u32},
 
 	{CONCEAL_COLOR_8BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{CONCEAL_COLOR_10BIT, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32_packed},
 
 	{STAGE, ENC|DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, ENC, H264|HEVC,
-		{LOWLATENCY_MODE, SLICE_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{STAGE, DEC, H264|HEVC|VP9,
-		{LOWLATENCY_MODE},
 		{0},
 		NULL,
 		msm_vidc_set_stage},
 
 	{PIPE, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_pipe},
 
 	{THUMBNAIL_MODE, DEC, H264|HEVC|VP9|AV1,
-		{0},
 		{OUTPUT_ORDER},
 		NULL,
 		msm_vidc_set_u32},
 
 	{THUMBNAIL_MODE, DEC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{RAP_FRAME, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},
 
 	{PRIORITY, DEC|ENC, CODECS_ALL,
-		{0},
 		{0},
 		msm_vidc_adjust_session_priority,
 		msm_vidc_set_session_priority},
 
 	{FIRMWARE_PRIORITY_OFFSET, DEC | ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{CRITICAL_PRIORITY, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{RESERVE_DURATION, ENC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_reserve_duration},
 
 	{DPB_LIST, DEC, CODECS_ALL,
-		{0},
 		{0},
 		NULL,
 		NULL},
 
 	{ALL_INTRA, ENC, H264|HEVC,
-		{GOP_SIZE, B_FRAME},
 		{LTR_COUNT, IR_PERIOD, SLICE_MODE},
 		msm_vidc_adjust_all_intra,
 		NULL},
 
 	{META_EVA_STATS, ENC, H264|HEVC,
-		{0},
 		{ENH_LAYER_COUNT, REQUEST_PREPROCESS}},
 
 	{META_EVA_STATS, ENC, HEIC,
-		{0},
 		{0}},
 
 	{META_ROI_INFO, ENC, H264|HEVC,
-		{BITRATE_MODE, PIX_FMTS},
-		{MIN_QUALITY, IR_PERIOD},
+		{MIN_QUALITY, IR_PERIOD, BLUR_TYPES},
 		msm_vidc_adjust_roi_info,
 		NULL},
 
 	{META_ROI_INFO, ENC, HEIC,
-		{BITRATE_MODE, PIX_FMTS},
 		{0},
 		msm_vidc_adjust_roi_info,
 		NULL},
 
 	{GRID, ENC, HEIC,
-		{0},
 		{0},
 		NULL,
 		msm_vidc_set_u32},

+ 1 - 1
driver/variant/iris2/src/msm_vidc_iris2.c

@@ -9,7 +9,7 @@
 #include "msm_vidc_inst.h"
 #include "msm_vidc_core.h"
 #include "msm_vidc_driver.h"
-#include "msm_vidc_plaform.h"
+#include "msm_vidc_platform.h"
 #include "msm_vidc_internal.h"
 #include "msm_vidc_buffer.h"
 #include "msm_vidc_debug.h"

+ 0 - 1
driver/vidc/inc/msm_vidc_internal.h

@@ -612,7 +612,6 @@ struct msm_vidc_inst_cap {
 	u32 v4l2_id;
 	u32 hfi_id;
 	enum msm_vidc_inst_capability_flags flags;
-	enum msm_vidc_inst_capability_type parents[MAX_CAP_PARENTS];
 	enum msm_vidc_inst_capability_type children[MAX_CAP_CHILDREN];
 	int (*adjust)(void *inst,
 		struct v4l2_ctrl *ctrl);

+ 0 - 2
driver/vidc/src/msm_vidc_driver.c

@@ -4568,8 +4568,6 @@ static void update_inst_cap_dependency(
 	}
 
 	capability->cap[in->cap_id].cap_id = in->cap_id;
-	memcpy(capability->cap[in->cap_id].parents, in->parents,
-		sizeof(capability->cap[in->cap_id].parents));
 	memcpy(capability->cap[in->cap_id].children, in->children,
 		sizeof(capability->cap[in->cap_id].children));
 	capability->cap[in->cap_id].adjust = in->adjust;