From 0ba80e395663fe40738a8d192dd5bea3ad8f558c Mon Sep 17 00:00:00 2001 From: Govindaraj Rajagopal Date: Wed, 2 Feb 2022 17:27:18 +0530 Subject: [PATCH] video: driver: misc video changes [1] Remove CAP_FLAG_ROOT flag. Root willbe identified with has_parents() api. [2] Replace field(struct msm_vidc_inst_cap) cap -> cap_id. [3] Rename below pool apis. msm_memory_alloc -> msm_memory_pool_alloc msm_memory_free -> msm_memory_pool_free [4] Remove struct msm_vidc_inst_cap_entry usage in inst. inst->firmware.list -> inst->firmware_list inst->children.list -> inst->children_list [5] Organize msm_vidc_inst_capability_type enums in such a way that all parents placed first then children. It will save CPU cycles while preparing caps_list. Change-Id: I376f4e6ddec37ce326c393fba133e19ba70bab09 Signed-off-by: Govindaraj Rajagopal --- driver/platform/diwali/src/msm_vidc_diwali.c | 270 +++++++++---------- driver/platform/kalama/src/msm_vidc_kalama.c | 96 +++---- driver/platform/waipio/src/msm_vidc_waipio.c | 90 +++---- driver/vidc/inc/msm_vidc_driver.h | 2 +- driver/vidc/inc/msm_vidc_inst.h | 6 +- driver/vidc/inc/msm_vidc_internal.h | 95 ++++--- driver/vidc/inc/msm_vidc_memory.h | 4 +- driver/vidc/inc/msm_vidc_platform.h | 2 +- driver/vidc/src/msm_vdec.c | 2 +- driver/vidc/src/msm_vidc.c | 4 +- driver/vidc/src/msm_vidc_control.c | 60 ++--- driver/vidc/src/msm_vidc_driver.c | 186 ++++++------- driver/vidc/src/msm_vidc_memory.c | 10 +- driver/vidc/src/venus_hfi_response.c | 4 +- 14 files changed, 415 insertions(+), 416 deletions(-) diff --git a/driver/platform/diwali/src/msm_vidc_diwali.c b/driver/platform/diwali/src/msm_vidc_diwali.c index 15888c1273..723f436f8d 100644 --- a/driver/platform/diwali/src/msm_vidc_diwali.c +++ b/driver/platform/diwali/src/msm_vidc_diwali.c @@ -259,7 +259,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {META_ROI_INFO}}, {PIX_FMTS, ENC, HEVC, @@ -273,7 +273,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES * Since parent -> children relationship for these cap_ids is @@ -290,7 +290,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C, MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, @@ -313,7 +313,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 0, 64, 1, 4, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, /* (4096 * 2304) / 256 */ {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864}, @@ -343,7 +343,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, (DEFAULT_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, @@ -396,7 +396,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_HFLIP, HFI_PROP_FLIP, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, @@ -418,7 +418,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 0, 270, 90, 0, V4L2_CID_ROTATE, HFI_PROP_ROTATION, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_rotation}, @@ -441,7 +441,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, HFI_PROP_SEQ_HEADER_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_header_mode}, @@ -463,7 +463,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE, HFI_PROP_NAL_LENGTH_FIELD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_nal_length}, @@ -508,7 +508,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE, @@ -526,7 +526,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT, @@ -632,7 +632,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX, HFI_PROP_CSC_MATRIX, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_csc_custom_matrix}, @@ -685,7 +685,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0, V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, HFI_PROP_BASELAYER_PRIORITYID, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {IR_RANDOM, ENC, H264|HEVC, 0, INT_MAX, 1, 0, @@ -701,7 +701,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_AU_DELIMITER, HFI_PROP_AUD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -781,7 +781,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, HFI_PROP_MIN_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_min_qp}, @@ -821,7 +821,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MIN_QP_8BIT, MAX_QP, 1, MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, HFI_PROP_MAX_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_max_qp}, @@ -1116,7 +1116,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE, TRANSFORM_8X8}, NULL, msm_vidc_set_u32_enum}, @@ -1132,7 +1132,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE}, NULL, msm_vidc_set_u32_enum}, @@ -1160,7 +1160,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_VP9_PROFILE_0, V4L2_CID_MPEG_VIDEO_VP9_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1182,7 +1182,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_VP9_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_VP9_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1211,7 +1211,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1240,7 +1240,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1262,7 +1262,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1283,7 +1283,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1300,7 +1300,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1314,7 +1314,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1327,7 +1327,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1379,7 +1379,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 0, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {TRANSFORM_8X8, ENC, H264, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, @@ -1395,7 +1395,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, MAX_CHROMA_QP_OFFSET, V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET, HFI_PROP_CHROMA_QP_OFFSET, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, msm_vidc_adjust_chroma_qp_index_offset, msm_vidc_set_chroma_qp_index_offset}, @@ -1405,26 +1405,26 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, {DISPLAY_DELAY, DEC, H264|HEVC|VP9, 0, 1, 1, 0, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, /* conceal color */ {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_8BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_10BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, // TODO {STAGE, DEC|ENC, CODECS_ALL, @@ -1433,7 +1433,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MSM_VIDC_STAGE_2, 0, HFI_PROP_STAGE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_stage}, @@ -1453,7 +1453,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MSM_VIDC_PIPE_2, 0, HFI_PROP_PIPE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_pipe}, {POC, DEC, H264, 0, 18, 1, 1}, @@ -1511,7 +1511,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 0, 2, 1, 1, V4L2_CID_MPEG_VIDC_PRIORITY, HFI_PROP_SESSION_PRIORITY, - CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED, + CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, msm_vidc_adjust_session_priority, msm_vidc_set_session_priority}, @@ -1610,7 +1610,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, HFI_PROP_EVA_STAT_INFO, - CAP_FLAG_ROOT, + 0, {0}, {ENH_LAYER_COUNT}}, @@ -1686,7 +1686,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {TIME_DELTA_BASED_RC, CONSTANT_QUALITY}, msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum}, @@ -1695,7 +1695,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC, HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {BITRATE_MODE}, {0}, msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32}, {CONSTANT_QUALITY, ENC, HEIC, @@ -1711,14 +1711,14 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, 0, HFI_PROP_HEIC_GRID_ENABLE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {GOP_SIZE, ENC, HEIC, 0, INT_MAX, 1, 0 /* all intra */, V4L2_CID_MPEG_VIDEO_GOP_SIZE, HFI_PROP_MAX_GOP_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -1727,7 +1727,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_B_FRAMES, HFI_PROP_MAX_B_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {PIX_FMTS, ENC, HEIC, @@ -1736,7 +1736,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010, MSM_VIDC_FMT_NV12, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, {HEVC_TIER, ENC|DEC, HEIC, @@ -1746,7 +1746,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1755,7 +1755,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v0[] = { 1, (MINIMUM_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, {META_SUBFRAME_OUTPUT, ENC, HEIC, @@ -1805,7 +1805,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {META_ROI_INFO}}, {PIX_FMTS, ENC, HEVC, @@ -1819,7 +1819,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES * Since parent -> children relationship for these cap_ids is @@ -1836,7 +1836,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C, MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, @@ -1859,7 +1859,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 0, 64, 1, 4, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, /* (4096 * 2304) / 256 */ {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864}, @@ -1885,7 +1885,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, (DEFAULT_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, @@ -1933,7 +1933,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_HFLIP, HFI_PROP_FLIP, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, @@ -1955,7 +1955,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 0, 270, 90, 0, V4L2_CID_ROTATE, HFI_PROP_ROTATION, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_rotation}, @@ -1978,7 +1978,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, HFI_PROP_SEQ_HEADER_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_header_mode}, @@ -2000,7 +2000,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE, HFI_PROP_NAL_LENGTH_FIELD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_nal_length}, @@ -2045,7 +2045,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE, @@ -2063,7 +2063,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT, @@ -2169,7 +2169,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX, HFI_PROP_CSC_MATRIX, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_csc_custom_matrix}, @@ -2222,7 +2222,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0, V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, HFI_PROP_BASELAYER_PRIORITYID, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {IR_RANDOM, ENC, H264|HEVC, 0, INT_MAX, 1, 0, @@ -2238,7 +2238,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_AU_DELIMITER, HFI_PROP_AUD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -2318,7 +2318,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, HFI_PROP_MIN_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_min_qp}, @@ -2358,7 +2358,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MIN_QP_8BIT, MAX_QP, 1, MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, HFI_PROP_MAX_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_max_qp}, @@ -2653,7 +2653,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE, TRANSFORM_8X8}, NULL, msm_vidc_set_u32_enum}, @@ -2669,7 +2669,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE}, NULL, msm_vidc_set_u32_enum}, @@ -2697,7 +2697,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_VP9_PROFILE_0, V4L2_CID_MPEG_VIDEO_VP9_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -2719,7 +2719,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_VP9_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_VP9_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -2748,7 +2748,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -2777,7 +2777,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -2798,7 +2798,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -2819,7 +2819,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -2836,7 +2836,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -2850,7 +2850,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -2863,7 +2863,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -2915,7 +2915,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 0, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {TRANSFORM_8X8, ENC, H264, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, @@ -2931,7 +2931,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, MAX_CHROMA_QP_OFFSET, V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET, HFI_PROP_CHROMA_QP_OFFSET, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, msm_vidc_adjust_chroma_qp_index_offset, msm_vidc_set_chroma_qp_index_offset}, @@ -2941,26 +2941,26 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, {DISPLAY_DELAY, DEC, H264|HEVC|VP9, 0, 1, 1, 0, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, /* conceal color */ {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_8BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_10BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, // TODO {STAGE, DEC|ENC, CODECS_ALL, @@ -2969,7 +2969,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MSM_VIDC_STAGE_2, 0, HFI_PROP_STAGE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_stage}, @@ -2989,7 +2989,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MSM_VIDC_PIPE_2, 0, HFI_PROP_PIPE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_pipe}, {POC, DEC, H264, 0, 18, 1, 1}, @@ -3047,7 +3047,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 0, 2, 1, 1, V4L2_CID_MPEG_VIDC_PRIORITY, HFI_PROP_SESSION_PRIORITY, - CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED, + CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, msm_vidc_adjust_session_priority, msm_vidc_set_session_priority}, @@ -3146,7 +3146,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, HFI_PROP_EVA_STAT_INFO, - CAP_FLAG_ROOT, + 0, {0}, {ENH_LAYER_COUNT}}, @@ -3222,7 +3222,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {TIME_DELTA_BASED_RC, CONSTANT_QUALITY}, msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum}, @@ -3231,7 +3231,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC, HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {BITRATE_MODE}, {0}, msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32}, {CONSTANT_QUALITY, ENC, HEIC, @@ -3247,14 +3247,14 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, 0, HFI_PROP_HEIC_GRID_ENABLE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {GOP_SIZE, ENC, HEIC, 0, INT_MAX, 1, 0 /* all intra */, V4L2_CID_MPEG_VIDEO_GOP_SIZE, HFI_PROP_MAX_GOP_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -3263,7 +3263,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_B_FRAMES, HFI_PROP_MAX_B_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {PIX_FMTS, ENC, HEIC, @@ -3272,7 +3272,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010, MSM_VIDC_FMT_NV12, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, {HEVC_TIER, ENC|DEC, HEIC, @@ -3282,7 +3282,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -3291,7 +3291,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v1[] = { 1, (MINIMUM_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, {META_SUBFRAME_OUTPUT, ENC, HEIC, @@ -3341,7 +3341,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {META_ROI_INFO}}, {PIX_FMTS, ENC, HEVC, @@ -3355,7 +3355,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES * Since parent -> children relationship for these cap_ids is @@ -3372,7 +3372,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C, MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, @@ -3395,7 +3395,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 0, 64, 1, 4, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, /* (4096 * 2304) / 256 */ {MBPF, ENC, CODECS_ALL, 64, 36864, 1, 36864}, @@ -3417,7 +3417,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, (DEFAULT_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, @@ -3465,7 +3465,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_HFLIP, HFI_PROP_FLIP, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, @@ -3487,7 +3487,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 0, 270, 90, 0, V4L2_CID_ROTATE, HFI_PROP_ROTATION, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_rotation}, @@ -3510,7 +3510,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, HFI_PROP_SEQ_HEADER_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_header_mode}, @@ -3532,7 +3532,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE, HFI_PROP_NAL_LENGTH_FIELD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_nal_length}, @@ -3577,7 +3577,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE, @@ -3595,7 +3595,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT, @@ -3701,7 +3701,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX, HFI_PROP_CSC_MATRIX, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_csc_custom_matrix}, @@ -3754,7 +3754,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0, V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, HFI_PROP_BASELAYER_PRIORITYID, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {IR_RANDOM, ENC, H264|HEVC, 0, INT_MAX, 1, 0, @@ -3770,7 +3770,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_AU_DELIMITER, HFI_PROP_AUD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -3850,7 +3850,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, HFI_PROP_MIN_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_min_qp}, @@ -3890,7 +3890,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MIN_QP_8BIT, MAX_QP, 1, MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, HFI_PROP_MAX_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_max_qp}, @@ -4185,7 +4185,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE, TRANSFORM_8X8}, NULL, msm_vidc_set_u32_enum}, @@ -4201,7 +4201,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE}, NULL, msm_vidc_set_u32_enum}, @@ -4229,7 +4229,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_VP9_PROFILE_0, V4L2_CID_MPEG_VIDEO_VP9_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4250,7 +4250,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_VP9_LEVEL_5_1, V4L2_CID_MPEG_VIDEO_VP9_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4278,7 +4278,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_H264_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4306,7 +4306,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_H264_LEVEL_5_2, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -4326,7 +4326,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4346,7 +4346,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -4363,7 +4363,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4377,7 +4377,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -4390,7 +4390,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -4442,7 +4442,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 0, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {TRANSFORM_8X8, ENC, H264, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, @@ -4458,7 +4458,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, MAX_CHROMA_QP_OFFSET, V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET, HFI_PROP_CHROMA_QP_OFFSET, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, msm_vidc_adjust_chroma_qp_index_offset, msm_vidc_set_chroma_qp_index_offset}, @@ -4468,26 +4468,26 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, {DISPLAY_DELAY, DEC, H264|HEVC|VP9, 0, 1, 1, 0, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, /* conceal color */ {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_8BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_10BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, // TODO {STAGE, DEC|ENC, CODECS_ALL, @@ -4496,7 +4496,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MSM_VIDC_STAGE_2, 0, HFI_PROP_STAGE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_stage}, @@ -4516,7 +4516,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MSM_VIDC_PIPE_2, 0, HFI_PROP_PIPE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_pipe}, {POC, DEC, H264, 0, 18, 1, 1}, @@ -4574,7 +4574,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 0, 2, 1, 1, V4L2_CID_MPEG_VIDC_PRIORITY, HFI_PROP_SESSION_PRIORITY, - CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED, + CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, msm_vidc_adjust_session_priority, msm_vidc_set_session_priority}, @@ -4673,7 +4673,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, HFI_PROP_EVA_STAT_INFO, - CAP_FLAG_ROOT, + 0, {0}, {ENH_LAYER_COUNT}}, @@ -4749,7 +4749,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {TIME_DELTA_BASED_RC, CONSTANT_QUALITY}, msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum}, @@ -4758,7 +4758,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC, HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {BITRATE_MODE}, {0}, msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32}, {CONSTANT_QUALITY, ENC, HEIC, @@ -4774,14 +4774,14 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, 0, HFI_PROP_HEIC_GRID_ENABLE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {GOP_SIZE, ENC, HEIC, 0, INT_MAX, 1, 0 /* all intra */, V4L2_CID_MPEG_VIDEO_GOP_SIZE, HFI_PROP_MAX_GOP_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -4790,7 +4790,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_B_FRAMES, HFI_PROP_MAX_B_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {PIX_FMTS, ENC, HEIC, @@ -4799,7 +4799,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010, MSM_VIDC_FMT_NV12, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, {HEVC_TIER, ENC|DEC, HEIC, @@ -4809,7 +4809,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -4818,7 +4818,7 @@ static struct msm_platform_inst_capability instance_data_diwali_v2[] = { 1, (MINIMUM_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, {META_SUBFRAME_OUTPUT, ENC, HEIC, diff --git a/driver/platform/kalama/src/msm_vidc_kalama.c b/driver/platform/kalama/src/msm_vidc_kalama.c index 182731ea2f..3661ea221a 100644 --- a/driver/platform/kalama/src/msm_vidc_kalama.c +++ b/driver/platform/kalama/src/msm_vidc_kalama.c @@ -141,7 +141,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {META_ROI_INFO}}, {PIX_FMTS, ENC, HEVC, @@ -155,7 +155,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES * Since parent -> children relationship for these cap_ids is @@ -172,7 +172,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C, MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, @@ -202,7 +202,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 0, 64, 1, 4, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, /* (8192 * 4320) / 256 */ {MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240}, @@ -231,7 +231,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, (DEFAULT_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, @@ -279,7 +279,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_HFLIP, HFI_PROP_FLIP, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, @@ -301,7 +301,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 0, 270, 90, 0, V4L2_CID_ROTATE, HFI_PROP_ROTATION, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_rotation}, @@ -324,7 +324,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, HFI_PROP_SEQ_HEADER_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_header_mode}, @@ -346,7 +346,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE, HFI_PROP_NAL_LENGTH_FIELD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_nal_length}, @@ -397,7 +397,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE, @@ -415,7 +415,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT, @@ -512,7 +512,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX, HFI_PROP_CSC_MATRIX, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_csc_custom_matrix}, @@ -565,7 +565,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0, V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, HFI_PROP_BASELAYER_PRIORITYID, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {IR_RANDOM, ENC, H264|HEVC, 0, INT_MAX, 1, 0, @@ -581,7 +581,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_AU_DELIMITER, HFI_PROP_AUD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -661,7 +661,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, HFI_PROP_MIN_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_min_qp}, @@ -701,7 +701,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MIN_QP_8BIT, MAX_QP, 1, MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, HFI_PROP_MAX_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_max_qp}, @@ -1001,7 +1001,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE, TRANSFORM_8X8}, NULL, msm_vidc_set_u32_enum}, @@ -1017,7 +1017,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE}, NULL, msm_vidc_set_u32_enum}, @@ -1045,7 +1045,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_VP9_PROFILE_0, V4L2_CID_MPEG_VIDEO_VP9_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1068,7 +1068,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_VP9_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_VP9_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1080,7 +1080,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_AV1_PROFILE_MAIN, V4L2_CID_MPEG_VIDEO_AV1_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1109,7 +1109,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_AV1_LEVEL_6_1, V4L2_CID_MPEG_VIDEO_AV1_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1122,7 +1122,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_AV1_TIER_HIGH, V4L2_CID_MPEG_VIDEO_AV1_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1152,7 +1152,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_1, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1181,7 +1181,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_H264_LEVEL_5_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1204,7 +1204,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1226,7 +1226,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1243,7 +1243,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1257,7 +1257,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1270,7 +1270,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1322,7 +1322,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 0, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {TRANSFORM_8X8, ENC, H264, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, @@ -1338,7 +1338,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, MAX_CHROMA_QP_OFFSET, V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET, HFI_PROP_CHROMA_QP_OFFSET, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, msm_vidc_adjust_chroma_qp_index_offset, msm_vidc_set_chroma_qp_index_offset}, @@ -1348,26 +1348,26 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, {DISPLAY_DELAY, DEC, H264|HEVC|VP9|AV1, 0, 1, 1, 0, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, /* conceal color */ {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_8BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_10BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, // TODO {STAGE, DEC|ENC, CODECS_ALL, @@ -1376,7 +1376,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MSM_VIDC_STAGE_2, 0, HFI_PROP_STAGE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_stage}, @@ -1396,7 +1396,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MSM_VIDC_PIPE_4, 0, HFI_PROP_PIPE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_pipe}, {POC, DEC, H264, 0, 18, 1, 1}, @@ -1454,7 +1454,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 0, 2, 1, 1, V4L2_CID_MPEG_VIDC_PRIORITY, HFI_PROP_SESSION_PRIORITY, - CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED, + CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, msm_vidc_adjust_session_priority, msm_vidc_set_session_priority}, @@ -1590,7 +1590,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, HFI_PROP_EVA_STAT_INFO, - CAP_FLAG_ROOT, + 0, {0}, {ENH_LAYER_COUNT}}, @@ -1666,7 +1666,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {TIME_DELTA_BASED_RC, CONSTANT_QUALITY}, msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum}, @@ -1675,7 +1675,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC, HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {BITRATE_MODE}, {0}, msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32}, {CONSTANT_QUALITY, ENC, HEIC, @@ -1691,14 +1691,14 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, 0, HFI_PROP_HEIC_GRID_ENABLE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {GOP_SIZE, ENC, HEIC, 0, INT_MAX, 1, 0 /* all intra */, V4L2_CID_MPEG_VIDEO_GOP_SIZE, HFI_PROP_MAX_GOP_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -1707,7 +1707,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_B_FRAMES, HFI_PROP_MAX_B_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {PIX_FMTS, ENC, HEIC, @@ -1716,7 +1716,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010, MSM_VIDC_FMT_NV12, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, {HEVC_TIER, ENC|DEC, HEIC, @@ -1726,7 +1726,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1735,7 +1735,7 @@ static struct msm_platform_inst_capability instance_data_kalama[] = { 1, (MINIMUM_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, {META_SUBFRAME_OUTPUT, ENC, HEIC, diff --git a/driver/platform/waipio/src/msm_vidc_waipio.c b/driver/platform/waipio/src/msm_vidc_waipio.c index 7ee4964e0e..715037c656 100644 --- a/driver/platform/waipio/src/msm_vidc_waipio.c +++ b/driver/platform/waipio/src/msm_vidc_waipio.c @@ -137,7 +137,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {META_ROI_INFO}}, {PIX_FMTS, ENC, HEVC, @@ -151,7 +151,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { */ MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {/* Do not change order of META_ROI_INFO, MIN_QUALITY, BLUR_TYPES * Since parent -> children relationship for these cap_ids is @@ -168,7 +168,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MSM_VIDC_FMT_P010 | MSM_VIDC_FMT_TP10C, MSM_VIDC_FMT_NV12C, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, @@ -191,7 +191,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 0, 64, 1, 4, V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, /* (8192 * 4320) / 256 */ {MBPF, ENC, CODECS_ALL, 64, 138240, 1, 138240}, @@ -220,7 +220,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, (DEFAULT_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, @@ -273,7 +273,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_HFLIP, HFI_PROP_FLIP, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, @@ -295,7 +295,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 0, 270, 90, 0, V4L2_CID_ROTATE, HFI_PROP_ROTATION, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_rotation}, @@ -318,7 +318,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, V4L2_CID_MPEG_VIDEO_HEADER_MODE, HFI_PROP_SEQ_HEADER_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_header_mode}, @@ -340,7 +340,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE, HFI_PROP_NAL_LENGTH_FIELD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_nal_length}, @@ -385,7 +385,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, ENH_LAYER_COUNT, BIT_RATE, @@ -403,7 +403,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {LTR_COUNT, IR_RANDOM, TIME_DELTA_BASED_RC, I_FRAME_QP, P_FRAME_QP, B_FRAME_QP, CONSTANT_QUALITY, ENH_LAYER_COUNT, @@ -499,7 +499,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX, HFI_PROP_CSC_MATRIX, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_csc_custom_matrix}, @@ -552,7 +552,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 0, MAX_BASE_LAYER_PRIORITY_ID, 1, 0, V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID, HFI_PROP_BASELAYER_PRIORITYID, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {IR_RANDOM, ENC, H264|HEVC, 0, INT_MAX, 1, 0, @@ -568,7 +568,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_AU_DELIMITER, HFI_PROP_AUD, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -648,7 +648,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MIN_QP_8BIT, MAX_QP, 1, MIN_QP_8BIT, V4L2_CID_MPEG_VIDEO_H264_MIN_QP, HFI_PROP_MIN_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_min_qp}, @@ -688,7 +688,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MIN_QP_8BIT, MAX_QP, 1, MAX_QP, V4L2_CID_MPEG_VIDEO_H264_MAX_QP, HFI_PROP_MAX_QP_PACKED, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_max_qp}, @@ -983,7 +983,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE, TRANSFORM_8X8}, NULL, msm_vidc_set_u32_enum}, @@ -999,7 +999,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, V4L2_CID_MPEG_VIDEO_H264_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {ENTROPY_MODE}, NULL, msm_vidc_set_u32_enum}, @@ -1027,7 +1027,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_VP9_PROFILE_0, V4L2_CID_MPEG_VIDEO_VP9_PROFILE, HFI_PROP_PROFILE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1050,7 +1050,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_VP9_LEVEL_6_0, V4L2_CID_MPEG_VIDEO_VP9_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1080,7 +1080,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_H264_LEVEL_6_1, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1109,7 +1109,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_H264_LEVEL_5_0, V4L2_CID_MPEG_VIDEO_H264_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1132,7 +1132,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1154,7 +1154,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEVC_LEVEL_5, V4L2_CID_MPEG_VIDEO_HEVC_LEVEL, HFI_PROP_LEVEL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_level}, @@ -1171,7 +1171,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEVC_TIER_HIGH, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1185,7 +1185,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1198,7 +1198,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED, V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE, HFI_PROP_DEBLOCKING_MODE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_deblock_mode}, @@ -1250,7 +1250,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE, 0, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {TRANSFORM_8X8, ENC, H264, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_MPEG_MSM_VIDC_ENABLE, @@ -1266,7 +1266,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, MAX_CHROMA_QP_OFFSET, V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET, HFI_PROP_CHROMA_QP_OFFSET, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, msm_vidc_adjust_chroma_qp_index_offset, msm_vidc_set_chroma_qp_index_offset}, @@ -1276,26 +1276,26 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, {DISPLAY_DELAY, DEC, H264|HEVC|VP9, 0, 1, 1, 0, V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY, HFI_PROP_DECODE_ORDER_OUTPUT, - CAP_FLAG_ROOT | CAP_FLAG_INPUT_PORT}, + CAP_FLAG_INPUT_PORT}, /* conceal color */ {CONCEAL_COLOR_8BIT, DEC, CODECS_ALL, 0x0, 0xff3fcff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_8BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, {CONCEAL_COLOR_10BIT, DEC, CODECS_ALL, 0x0, 0x3fffffff, 1, DEFAULT_VIDEO_CONCEAL_COLOR_BLACK, V4L2_CID_MPEG_VIDEO_MUTE_YUV, HFI_PROP_CONCEAL_COLOR_10BIT, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT}, + CAP_FLAG_OUTPUT_PORT}, // TODO {STAGE, DEC|ENC, CODECS_ALL, @@ -1304,7 +1304,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MSM_VIDC_STAGE_2, 0, HFI_PROP_STAGE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_stage}, @@ -1324,7 +1324,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MSM_VIDC_PIPE_4, 0, HFI_PROP_PIPE, - CAP_FLAG_ROOT, + 0, {0}, {0}, NULL, msm_vidc_set_pipe}, {POC, DEC, H264, 0, 18, 1, 1}, @@ -1382,7 +1382,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 0, 2, 1, 1, V4L2_CID_MPEG_VIDC_PRIORITY, HFI_PROP_SESSION_PRIORITY, - CAP_FLAG_ROOT | CAP_FLAG_DYNAMIC_ALLOWED, + CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, msm_vidc_adjust_session_priority, msm_vidc_set_session_priority}, @@ -1481,7 +1481,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_METADATA_EVA_STATS, HFI_PROP_EVA_STAT_INFO, - CAP_FLAG_ROOT, + 0, {0}, {ENH_LAYER_COUNT}}, @@ -1557,7 +1557,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_BITRATE_MODE_CQ, V4L2_CID_MPEG_VIDEO_BITRATE_MODE, HFI_PROP_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {TIME_DELTA_BASED_RC, CONSTANT_QUALITY}, msm_vidc_adjust_bitrate_mode, msm_vidc_set_u32_enum}, @@ -1566,7 +1566,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDC_TIME_DELTA_BASED_RC, HFI_PROP_TIME_DELTA_BASED_RATE_CONTROL, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {BITRATE_MODE}, {0}, msm_vidc_adjust_delta_based_rc, msm_vidc_set_u32}, {CONSTANT_QUALITY, ENC, HEIC, @@ -1582,14 +1582,14 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_ENABLE, 0, HFI_PROP_HEIC_GRID_ENABLE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {GOP_SIZE, ENC, HEIC, 0, INT_MAX, 1, 0 /* all intra */, V4L2_CID_MPEG_VIDEO_GOP_SIZE, HFI_PROP_MAX_GOP_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | CAP_FLAG_DYNAMIC_ALLOWED, {0}, {0}, NULL, msm_vidc_set_u32}, @@ -1598,7 +1598,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, V4L2_MPEG_MSM_VIDC_DISABLE, V4L2_CID_MPEG_VIDEO_B_FRAMES, HFI_PROP_MAX_B_FRAMES, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_u32}, {PIX_FMTS, ENC, HEIC, @@ -1607,7 +1607,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { MSM_VIDC_FMT_NV12 | MSM_VIDC_FMT_P010, MSM_VIDC_FMT_NV12, 0, 0, - CAP_FLAG_ROOT, + 0, {0}, {PROFILE}}, {HEVC_TIER, ENC|DEC, HEIC, @@ -1617,7 +1617,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { V4L2_MPEG_VIDEO_HEVC_TIER_MAIN, V4L2_CID_MPEG_VIDEO_HEVC_TIER, HFI_PROP_TIER, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, {0}, {0}, NULL, msm_vidc_set_u32_enum}, @@ -1626,7 +1626,7 @@ static struct msm_platform_inst_capability instance_data_waipio[] = { 1, (MINIMUM_FPS << 16), 0, HFI_PROP_FRAME_RATE, - CAP_FLAG_ROOT | CAP_FLAG_OUTPUT_PORT, + CAP_FLAG_OUTPUT_PORT, {0}, {0}, NULL, msm_vidc_set_q16}, {META_SUBFRAME_OUTPUT, ENC, HEIC, diff --git a/driver/vidc/inc/msm_vidc_driver.h b/driver/vidc/inc/msm_vidc_driver.h index af043699f4..b44dd63416 100644 --- a/driver/vidc/inc/msm_vidc_driver.h +++ b/driver/vidc/inc/msm_vidc_driver.h @@ -252,7 +252,7 @@ static inline bool is_secure_region(enum msm_vidc_buffer_region region) region == MSM_VIDC_NON_SECURE_PIXEL); } -const char *cap_name(enum msm_vidc_inst_capability_type cap); +const char *cap_name(enum msm_vidc_inst_capability_type cap_id); const char *v4l2_pixelfmt_name(u32 pixelfmt); const char *v4l2_type_name(u32 port); void print_vidc_buffer(u32 tag, const char *tag_str, const char *str, struct msm_vidc_inst *inst, diff --git a/driver/vidc/inc/msm_vidc_inst.h b/driver/vidc/inc/msm_vidc_inst.h index 9e294bcf3f..d1841a9a56 100644 --- a/driver/vidc/inc/msm_vidc_inst.h +++ b/driver/vidc/inc/msm_vidc_inst.h @@ -110,8 +110,6 @@ struct msm_vidc_inst { struct v4l2_m2m_ctx *m2m_ctx; struct v4l2_ctrl **ctrls; u32 num_ctrls; - struct msm_vidc_inst_cap_entry children; - struct msm_vidc_inst_cap_entry firmware; enum hfi_rate_control hfi_rc_type; enum hfi_layer_encoding_type hfi_layer_type; bool request; @@ -143,7 +141,9 @@ struct msm_vidc_inst { struct list_head response_works; /* list of struct response_work */ struct list_head enc_input_crs; struct list_head dmabuf_tracker; /* list of struct msm_memory_dmabuf */ - struct list_head caps_list; /* list of struct msm_vidc_inst_cap_entry */ + struct list_head caps_list; + struct list_head children_list; + struct list_head firmware_list; bool once_per_session_set; bool ipsc_properties_set; bool opsc_properties_set; diff --git a/driver/vidc/inc/msm_vidc_internal.h b/driver/vidc/inc/msm_vidc_internal.h index 3d0adb460f..31ac22d028 100644 --- a/driver/vidc/inc/msm_vidc_internal.h +++ b/driver/vidc/inc/msm_vidc_internal.h @@ -349,9 +349,9 @@ enum msm_vidc_inst_capability_type { MIN_BUFFERS_INPUT, MIN_BUFFERS_OUTPUT, MBPF, - LOSSLESS_MBPF, BATCH_MBPF, BATCH_FPS, + LOSSLESS_MBPF, SECURE_MBPF, MBPS, POWER_SAVE_MBPS, @@ -365,86 +365,59 @@ enum msm_vidc_inst_capability_type { MB_CYCLES_FW_VPP, SECURE_MODE, TS_REORDER, + SLICE_INTERFACE, HFLIP, VFLIP, ROTATION, SUPER_FRAME, - SLICE_INTERFACE, HEADER_MODE, PREPEND_SPSPPS_TO_IDR, META_SEQ_HDR_NAL, WITHOUT_STARTCODE, NAL_LENGTH_FIELD, REQUEST_I_FRAME, - BIT_RATE, BITRATE_MODE, LOSSLESS, FRAME_SKIP_MODE, FRAME_RC_ENABLE, - CONSTANT_QUALITY, - GOP_SIZE, GOP_CLOSURE, - B_FRAME, - BLUR_TYPES, - BLUR_RESOLUTION, CSC, CSC_CUSTOM_MATRIX, - GRID, - LOWLATENCY_MODE, - LTR_COUNT, USE_LTR, MARK_LTR, BASELAYER_PRIORITY, - IR_RANDOM, AU_DELIMITER, - TIME_DELTA_BASED_RC, - CONTENT_ADAPTIVE_CODING, - BITRATE_BOOST, - MIN_QUALITY, - VBV_DELAY, - PEAK_BITRATE, - MIN_FRAME_QP, + GRID, I_FRAME_MIN_QP, P_FRAME_MIN_QP, B_FRAME_MIN_QP, - MAX_FRAME_QP, I_FRAME_MAX_QP, P_FRAME_MAX_QP, B_FRAME_MAX_QP, - I_FRAME_QP, - P_FRAME_QP, - B_FRAME_QP, LAYER_TYPE, LAYER_ENABLE, - ENH_LAYER_COUNT, L0_BR, L1_BR, L2_BR, L3_BR, L4_BR, L5_BR, - ENTROPY_MODE, - PROFILE, LEVEL, HEVC_TIER, AV1_TIER, - LF_MODE, - LF_ALPHA, - LF_BETA, - SLICE_MODE, - SLICE_MAX_BYTES, - SLICE_MAX_MB, - MB_RC, - TRANSFORM_8X8, - CHROMA_QP_INDEX_OFFSET, DISPLAY_DELAY_ENABLE, DISPLAY_DELAY, CONCEAL_COLOR_8BIT, CONCEAL_COLOR_10BIT, - STAGE, + LF_MODE, + LF_ALPHA, + LF_BETA, + SLICE_MAX_BYTES, + SLICE_MAX_MB, + MB_RC, + CHROMA_QP_INDEX_OFFSET, PIPE, POC, - QUALITY_MODE, CODED_FRAMES, BIT_DEPTH, CODEC_CONFIG, @@ -453,20 +426,20 @@ enum msm_vidc_inst_capability_type { DEFAULT_HEADER, RAP_FRAME, SEQ_CHANGE_AT_SYNC_FRAME, + QUALITY_MODE, PRIORITY, - ENC_IP_CR, DPB_LIST, FILM_GRAIN, SUPER_BLOCK, DRAP, - ALL_INTRA, INPUT_METADATA_FD, META_BITSTREAM_RESOLUTION, META_CROP_OFFSETS, - META_LTR_MARK_USE, META_DPB_MISR, META_OPB_MISR, META_INTERLACE, + ENC_IP_CR, + META_LTR_MARK_USE, META_TIMESTAMP, META_CONCEALED_MB_CNT, META_HIST_INFO, @@ -479,25 +452,51 @@ enum msm_vidc_inst_capability_type { META_OUTPUT_BUF_TAG, META_SUBFRAME_OUTPUT, META_ENC_QP_METADATA, - META_ROI_INFO, META_DEC_QP_METADATA, COMPLEXITY, META_MAX_NUM_REORDER_FRAMES, + PROFILE, + MIN_FRAME_QP, + MAX_FRAME_QP, + I_FRAME_QP, + P_FRAME_QP, + B_FRAME_QP, + META_ROI_INFO, + TIME_DELTA_BASED_RC, + CONSTANT_QUALITY, + ENH_LAYER_COUNT, + BIT_RATE, + VBV_DELAY, + PEAK_BITRATE, + LOWLATENCY_MODE, + ENTROPY_MODE, + TRANSFORM_8X8, + GOP_SIZE, + B_FRAME, + BLUR_RESOLUTION, + STAGE, + ALL_INTRA, + MIN_QUALITY, + LTR_COUNT, + IR_RANDOM, + BITRATE_BOOST, + SLICE_MODE, + CONTENT_ADAPTIVE_CODING, + BLUR_TYPES, INST_CAP_MAX, }; enum msm_vidc_inst_capability_flags { CAP_FLAG_NONE = 0, - CAP_FLAG_ROOT = BIT(0), - CAP_FLAG_DYNAMIC_ALLOWED = BIT(1), - CAP_FLAG_MENU = BIT(2), - CAP_FLAG_INPUT_PORT = BIT(3), - CAP_FLAG_OUTPUT_PORT = BIT(4), - CAP_FLAG_CLIENT_SET = BIT(5), + CAP_FLAG_DYNAMIC_ALLOWED = BIT(0), + CAP_FLAG_MENU = BIT(1), + CAP_FLAG_INPUT_PORT = BIT(2), + CAP_FLAG_OUTPUT_PORT = BIT(3), + CAP_FLAG_CLIENT_SET = BIT(4), }; struct msm_vidc_inst_cap { - enum msm_vidc_inst_capability_type cap; + enum msm_vidc_inst_capability_type cap_id; s32 min; s32 max; u32 step_or_mask; diff --git a/driver/vidc/inc/msm_vidc_memory.h b/driver/vidc/inc/msm_vidc_memory.h index 733f73b158..1226205875 100644 --- a/driver/vidc/inc/msm_vidc_memory.h +++ b/driver/vidc/inc/msm_vidc_memory.h @@ -56,8 +56,8 @@ void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst, struct msm_memory_dmabuf *buf); int msm_memory_pools_init(struct msm_vidc_inst *inst); void msm_memory_pools_deinit(struct msm_vidc_inst *inst); -void *msm_memory_alloc(struct msm_vidc_inst *inst, +void *msm_memory_pool_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type type); -void msm_memory_free(struct msm_vidc_inst *inst, void *vidc_buf); +void msm_memory_pool_free(struct msm_vidc_inst *inst, void *vidc_buf); #endif // _MSM_VIDC_MEMORY_H_ \ No newline at end of file diff --git a/driver/vidc/inc/msm_vidc_platform.h b/driver/vidc/inc/msm_vidc_platform.h index 3ce27f775e..0e4e40abcc 100644 --- a/driver/vidc/inc/msm_vidc_platform.h +++ b/driver/vidc/inc/msm_vidc_platform.h @@ -17,7 +17,7 @@ struct msm_platform_core_capability { }; struct msm_platform_inst_capability { - enum msm_vidc_inst_capability_type cap; + enum msm_vidc_inst_capability_type cap_id; enum msm_vidc_domain_type domain; enum msm_vidc_codec_type codec; s32 min; diff --git a/driver/vidc/src/msm_vdec.c b/driver/vidc/src/msm_vdec.c index f01bc012ec..837f7bd96d 100644 --- a/driver/vidc/src/msm_vdec.c +++ b/driver/vidc/src/msm_vdec.c @@ -2163,7 +2163,7 @@ int msm_vdec_handle_release_buffer(struct msm_vidc_inst *inst, inst->debug_count.ebd, inst->debug_count.ftb, inst->debug_count.fbd); /* delete the buffer from release list */ list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); return rc; } diff --git a/driver/vidc/src/msm_vidc.c b/driver/vidc/src/msm_vidc.c index d24620f0aa..3d09ab5a86 100644 --- a/driver/vidc/src/msm_vidc.c +++ b/driver/vidc/src/msm_vidc.c @@ -941,8 +941,8 @@ void *msm_vidc_open(void *vidc_core, u32 session_type) INIT_LIST_HEAD(&inst->mappings.dpb.list); INIT_LIST_HEAD(&inst->mappings.persist.list); INIT_LIST_HEAD(&inst->mappings.vpss.list); - INIT_LIST_HEAD(&inst->children.list); - INIT_LIST_HEAD(&inst->firmware.list); + INIT_LIST_HEAD(&inst->children_list); + INIT_LIST_HEAD(&inst->firmware_list); INIT_LIST_HEAD(&inst->enc_input_crs); INIT_LIST_HEAD(&inst->dmabuf_tracker); for (i = 0; i < MAX_SIGNAL; i++) diff --git a/driver/vidc/src/msm_vidc_control.c b/driver/vidc/src/msm_vidc_control.c index e6b4877c76..18a3706005 100644 --- a/driver/vidc/src/msm_vidc_control.c +++ b/driver/vidc/src/msm_vidc_control.c @@ -265,7 +265,7 @@ static enum msm_vidc_inst_capability_type msm_vidc_get_cap_id( capability = inst->capabilities; do { if (capability->cap[i].v4l2_id == id) { - cap_id = capability->cap[i].cap; + cap_id = capability->cap[i].cap_id; break; } i++; @@ -282,7 +282,7 @@ static int msm_vidc_add_capid_to_list(struct msm_vidc_inst *inst, /* skip adding if cap_id already present in list */ if (type & FW_LIST) { - list_for_each_entry(curr_node, &inst->firmware.list, list) { + list_for_each_entry(curr_node, &inst->firmware_list, list) { if (curr_node->cap_id == cap_id) { i_vpr_l(inst, "%s: cap[%d] %s already present in FW_LIST\n", @@ -299,9 +299,9 @@ static int msm_vidc_add_capid_to_list(struct msm_vidc_inst *inst, } entry->cap_id = cap_id; if (type & CHILD_LIST) - list_add_tail(&entry->list, &inst->children.list); + list_add_tail(&entry->list, &inst->children_list); if (type & FW_LIST) - list_add_tail(&entry->list, &inst->firmware.list); + list_add_tail(&entry->list, &inst->firmware_list); return 0; } @@ -325,15 +325,15 @@ static int msm_vidc_add_children(struct msm_vidc_inst *inst, return rc; } -static bool is_parent_available(struct msm_vidc_inst* inst, - u32 cap, u32 check_parent, const char* func) +static bool is_parent_available(struct msm_vidc_inst *inst, + u32 cap_id, u32 check_parent, const char *func) { int i = 0; u32 cap_parent; while (i < MAX_CAP_PARENTS && - inst->capabilities->cap[cap].parents[i]) { - cap_parent = inst->capabilities->cap[cap].parents[i]; + inst->capabilities->cap[cap_id].parents[i]) { + cap_parent = inst->capabilities->cap[cap_id].parents[i]; if (cap_parent == check_parent) { return true; } @@ -342,11 +342,11 @@ static bool is_parent_available(struct msm_vidc_inst* inst, i_vpr_e(inst, "%s: missing parent %s for %s\n", - func, cap_name(check_parent), cap_name(cap)); + func, cap_name(check_parent), cap_name(cap_id)); return false; } -int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap, +int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap_id, s32 adjusted_val, const char *func) { if (!inst || !inst->capabilities) { @@ -354,23 +354,23 @@ int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap, return -EINVAL; } - if (inst->capabilities->cap[cap].value != adjusted_val) + if (inst->capabilities->cap[cap_id].value != adjusted_val) i_vpr_h(inst, "%s: updated database: name: %s, value: %#x -> %#x\n", - func, cap_name(cap), - inst->capabilities->cap[cap].value, adjusted_val); + func, cap_name(cap_id), + inst->capabilities->cap[cap_id].value, adjusted_val); - inst->capabilities->cap[cap].value = adjusted_val; + inst->capabilities->cap[cap_id].value = adjusted_val; return 0; } int msm_vidc_get_parent_value(struct msm_vidc_inst* inst, - u32 cap, u32 parent, s32 *value, const char *func) + u32 cap_id, u32 parent, s32 *value, const char *func) { int rc = 0; - if (is_parent_available(inst, cap, parent, func)) { + if (is_parent_available(inst, cap_id, parent, func)) { switch (parent) { case BITRATE_MODE: *value = inst->hfi_rc_type; @@ -438,7 +438,7 @@ static int msm_vidc_adjust_property(struct msm_vidc_inst *inst, * skip for uninitialized cap properties. * Eg: Skip Tramform 8x8 cap that is uninitialized for HEVC codec */ - if (!capability->cap[cap_id].cap) + if (!capability->cap[cap_id].cap_id) return 0; if (capability->cap[cap_id].adjust) { @@ -490,8 +490,8 @@ static int msm_vidc_adjust_dynamic_property(struct msm_vidc_inst *inst, if (!ctrl && !capability->cap[cap_id].adjust) { i_vpr_e(inst, "%s: child cap[%d] %s must have ajdust function\n", - __func__, capability->cap[cap_id].cap, - cap_name(capability->cap[cap_id].cap)); + __func__, capability->cap[cap_id].cap_id, + cap_name(capability->cap[cap_id].cap_id)); return -EINVAL; } prev_value = capability->cap[cap_id].value; @@ -645,7 +645,7 @@ int msm_vidc_ctrl_init(struct msm_vidc_inst *inst) ctrl_cfg.step = capability->cap[idx].step_or_mask; } - ctrl_cfg.name = cap_name(capability->cap[idx].cap); + ctrl_cfg.name = cap_name(capability->cap[idx].cap_id); if (!ctrl_cfg.name) { i_vpr_e(inst, "%s: %#x ctrl name is null\n", __func__, ctrl_cfg.id); @@ -936,7 +936,7 @@ int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl) /* adjust all children if any */ list_for_each_entry_safe(curr_node, tmp_node, - &inst->children.list, list) { + &inst->children_list, list) { rc = msm_vidc_adjust_dynamic_property( inst, curr_node->cap_id, NULL); if (rc) @@ -2494,7 +2494,7 @@ static inline bool is_root(struct msm_vidc_inst_cap *cap) static inline bool is_valid_cap(struct msm_vidc_inst_cap *cap) { - return cap->cap != INST_CAP_NONE; + return cap->cap_id != INST_CAP_NONE; } static inline bool is_all_parents_visited( @@ -2519,7 +2519,7 @@ static int add_node( { struct msm_vidc_inst_cap_entry *entry; - if (lookup[rcap->cap]) + if (lookup[rcap->cap_id]) return 0; entry = kzalloc(sizeof(struct msm_vidc_inst_cap_entry), GFP_KERNEL); @@ -2529,8 +2529,8 @@ static int add_node( } INIT_LIST_HEAD(&entry->list); - entry->cap_id = rcap->cap; - lookup[rcap->cap] = true; + entry->cap_id = rcap->cap_id; + lookup[rcap->cap_id] = true; list_add_tail(&entry->list, list); return 0; @@ -2571,9 +2571,9 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst) continue; /* sanitize cap value */ - if (i != rcap->cap) { + if (i != rcap->cap_id) { i_vpr_e(inst, "%s: cap id mismatch. expected %s, actual %s\n", - __func__, cap_name(i), cap_name(rcap->cap)); + __func__, cap_name(i), cap_name(rcap->cap_id)); rc = -EINVAL; goto error; } @@ -2604,7 +2604,7 @@ int msm_vidc_prepare_dependency_list(struct msm_vidc_inst *inst) * if child node is already part of root or optional list * then no need to add it again. */ - if (root_visited[cap->cap] || opt_visited[cap->cap]) + if (root_visited[cap->cap_id] || opt_visited[cap->cap_id]) continue; /** @@ -2722,7 +2722,7 @@ int msm_vidc_adjust_v4l2_properties(struct msm_vidc_inst *inst) * added to inst->children list at this point */ list_for_each_entry_safe(curr_node, tmp_node, - &inst->children.list, list) { + &inst->children_list, list) { /* * call adjust for each child. Each child adjust * will also update child list at the tail with @@ -3858,7 +3858,7 @@ int msm_vidc_set_v4l2_properties(struct msm_vidc_inst *inst) capability = inst->capabilities; list_for_each_entry_safe(curr_node, tmp_node, - &inst->firmware.list, list) { + &inst->firmware_list, list) { /* cap_id's like PIX_FMT etc may not have set functions */ if (!capability->cap[curr_node->cap_id].set) diff --git a/driver/vidc/src/msm_vidc_driver.c b/driver/vidc/src/msm_vidc_driver.c index 2c103af88b..9e96d4c329 100644 --- a/driver/vidc/src/msm_vidc_driver.c +++ b/driver/vidc/src/msm_vidc_driver.c @@ -50,7 +50,7 @@ extern struct msm_vidc_core *g_core; #define STABILITY_PAYLOAD_SHIFT 32 struct msm_vidc_cap_name { - enum msm_vidc_inst_capability_type cap; + enum msm_vidc_inst_capability_type cap_id; char *name; }; @@ -66,9 +66,9 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {MIN_BUFFERS_INPUT, "MIN_BUFFERS_INPUT" }, {MIN_BUFFERS_OUTPUT, "MIN_BUFFERS_OUTPUT" }, {MBPF, "MBPF" }, - {LOSSLESS_MBPF, "LOSSLESS_MBPF" }, {BATCH_MBPF, "BATCH_MBPF" }, {BATCH_FPS, "BATCH_FPS" }, + {LOSSLESS_MBPF, "LOSSLESS_MBPF" }, {SECURE_MBPF, "SECURE_MBPF" }, {MBPS, "MBPS" }, {POWER_SAVE_MBPS, "POWER_SAVE_MBPS" }, @@ -82,86 +82,59 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {MB_CYCLES_FW_VPP, "MB_CYCLES_FW_VPP" }, {SECURE_MODE, "SECURE_MODE" }, {TS_REORDER, "TS_REORDER" }, + {SLICE_INTERFACE, "SLICE_INTERFACE" }, {HFLIP, "HFLIP" }, {VFLIP, "VFLIP" }, {ROTATION, "ROTATION" }, {SUPER_FRAME, "SUPER_FRAME" }, - {SLICE_INTERFACE, "SLICE_INTERFACE" }, {HEADER_MODE, "HEADER_MODE" }, {PREPEND_SPSPPS_TO_IDR, "PREPEND_SPSPPS_TO_IDR" }, {META_SEQ_HDR_NAL, "META_SEQ_HDR_NAL" }, {WITHOUT_STARTCODE, "WITHOUT_STARTCODE" }, {NAL_LENGTH_FIELD, "NAL_LENGTH_FIELD" }, {REQUEST_I_FRAME, "REQUEST_I_FRAME" }, - {BIT_RATE, "BIT_RATE" }, {BITRATE_MODE, "BITRATE_MODE" }, {LOSSLESS, "LOSSLESS" }, {FRAME_SKIP_MODE, "FRAME_SKIP_MODE" }, {FRAME_RC_ENABLE, "FRAME_RC_ENABLE" }, - {CONSTANT_QUALITY, "CONSTANT_QUALITY" }, - {GOP_SIZE, "GOP_SIZE" }, {GOP_CLOSURE, "GOP_CLOSURE" }, - {B_FRAME, "B_FRAME" }, - {BLUR_TYPES, "BLUR_TYPES" }, - {BLUR_RESOLUTION, "BLUR_RESOLUTION" }, {CSC, "CSC" }, {CSC_CUSTOM_MATRIX, "CSC_CUSTOM_MATRIX" }, - {GRID, "GRID" }, - {LOWLATENCY_MODE, "LOWLATENCY_MODE" }, - {LTR_COUNT, "LTR_COUNT" }, {USE_LTR, "USE_LTR" }, {MARK_LTR, "MARK_LTR" }, {BASELAYER_PRIORITY, "BASELAYER_PRIORITY" }, - {IR_RANDOM, "IR_RANDOM" }, {AU_DELIMITER, "AU_DELIMITER" }, - {TIME_DELTA_BASED_RC, "TIME_DELTA_BASED_RC" }, - {CONTENT_ADAPTIVE_CODING, "CONTENT_ADAPTIVE_CODING" }, - {BITRATE_BOOST, "BITRATE_BOOST" }, - {MIN_QUALITY, "MIN_QUALITY" }, - {VBV_DELAY, "VBV_DELAY" }, - {PEAK_BITRATE, "PEAK_BITRATE" }, - {MIN_FRAME_QP, "MIN_FRAME_QP" }, + {GRID, "GRID" }, {I_FRAME_MIN_QP, "I_FRAME_MIN_QP" }, {P_FRAME_MIN_QP, "P_FRAME_MIN_QP" }, {B_FRAME_MIN_QP, "B_FRAME_MIN_QP" }, - {MAX_FRAME_QP, "MAX_FRAME_QP" }, {I_FRAME_MAX_QP, "I_FRAME_MAX_QP" }, {P_FRAME_MAX_QP, "P_FRAME_MAX_QP" }, {B_FRAME_MAX_QP, "B_FRAME_MAX_QP" }, - {I_FRAME_QP, "I_FRAME_QP" }, - {P_FRAME_QP, "P_FRAME_QP" }, - {B_FRAME_QP, "B_FRAME_QP" }, {LAYER_TYPE, "LAYER_TYPE" }, {LAYER_ENABLE, "LAYER_ENABLE" }, - {ENH_LAYER_COUNT, "ENH_LAYER_COUNT" }, {L0_BR, "L0_BR" }, {L1_BR, "L1_BR" }, {L2_BR, "L2_BR" }, {L3_BR, "L3_BR" }, {L4_BR, "L4_BR" }, {L5_BR, "L5_BR" }, - {ENTROPY_MODE, "ENTROPY_MODE" }, - {PROFILE, "PROFILE" }, {LEVEL, "LEVEL" }, {HEVC_TIER, "HEVC_TIER" }, {AV1_TIER, "AV1_TIER" }, - {LF_MODE, "LF_MODE" }, - {LF_ALPHA, "LF_ALPHA" }, - {LF_BETA, "LF_BETA" }, - {SLICE_MODE, "SLICE_MODE" }, - {SLICE_MAX_BYTES, "SLICE_MAX_BYTES" }, - {SLICE_MAX_MB, "SLICE_MAX_MB" }, - {MB_RC, "MB_RC" }, - {TRANSFORM_8X8, "TRANSFORM_8X8" }, - {CHROMA_QP_INDEX_OFFSET, "CHROMA_QP_INDEX_OFFSET" }, {DISPLAY_DELAY_ENABLE, "DISPLAY_DELAY_ENABLE" }, {DISPLAY_DELAY, "DISPLAY_DELAY" }, {CONCEAL_COLOR_8BIT, "CONCEAL_COLOR_8BIT" }, {CONCEAL_COLOR_10BIT, "CONCEAL_COLOR_10BIT" }, - {STAGE, "STAGE" }, + {LF_MODE, "LF_MODE" }, + {LF_ALPHA, "LF_ALPHA" }, + {LF_BETA, "LF_BETA" }, + {SLICE_MAX_BYTES, "SLICE_MAX_BYTES" }, + {SLICE_MAX_MB, "SLICE_MAX_MB" }, + {MB_RC, "MB_RC" }, + {CHROMA_QP_INDEX_OFFSET, "CHROMA_QP_INDEX_OFFSET" }, {PIPE, "PIPE" }, {POC, "POC" }, - {QUALITY_MODE, "QUALITY_MODE" }, {CODED_FRAMES, "CODED_FRAMES" }, {BIT_DEPTH, "BIT_DEPTH" }, {CODEC_CONFIG, "CODEC_CONFIG" }, @@ -170,20 +143,20 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {DEFAULT_HEADER, "DEFAULT_HEADER" }, {RAP_FRAME, "RAP_FRAME" }, {SEQ_CHANGE_AT_SYNC_FRAME, "SEQ_CHANGE_AT_SYNC_FRAME" }, + {QUALITY_MODE, "QUALITY_MODE" }, {PRIORITY, "PRIORITY" }, - {ENC_IP_CR, "ENC_IP_CR" }, {DPB_LIST, "DPB_LIST" }, {FILM_GRAIN, "FILM_GRAIN" }, {SUPER_BLOCK, "SUPER_BLOCK" }, {DRAP, "DRAP" }, - {ALL_INTRA, "ALL_INTRA" }, {INPUT_METADATA_FD, "INPUT_METADATA_FD" }, {META_BITSTREAM_RESOLUTION, "META_BITSTREAM_RESOLUTION" }, {META_CROP_OFFSETS, "META_CROP_OFFSETS" }, - {META_LTR_MARK_USE, "META_LTR_MARK_USE" }, {META_DPB_MISR, "META_DPB_MISR" }, {META_OPB_MISR, "META_OPB_MISR" }, {META_INTERLACE, "META_INTERLACE" }, + {ENC_IP_CR, "ENC_IP_CR" }, + {META_LTR_MARK_USE, "META_LTR_MARK_USE" }, {META_TIMESTAMP, "META_TIMESTAMP" }, {META_CONCEALED_MB_CNT, "META_CONCEALED_MB_CNT" }, {META_HIST_INFO, "META_HIST_INFO" }, @@ -196,24 +169,51 @@ static const struct msm_vidc_cap_name cap_name_arr[] = { {META_OUTPUT_BUF_TAG, "META_OUTPUT_BUF_TAG" }, {META_SUBFRAME_OUTPUT, "META_SUBFRAME_OUTPUT" }, {META_ENC_QP_METADATA, "META_ENC_QP_METADATA" }, - {META_ROI_INFO, "META_ROI_INFO" }, {META_DEC_QP_METADATA, "META_DEC_QP_METADATA" }, {COMPLEXITY, "COMPLEXITY" }, {META_MAX_NUM_REORDER_FRAMES, "META_MAX_NUM_REORDER_FRAMES"}, + {PROFILE, "PROFILE" }, + {MIN_FRAME_QP, "MIN_FRAME_QP" }, + {MAX_FRAME_QP, "MAX_FRAME_QP" }, + {I_FRAME_QP, "I_FRAME_QP" }, + {P_FRAME_QP, "P_FRAME_QP" }, + {B_FRAME_QP, "B_FRAME_QP" }, + {META_ROI_INFO, "META_ROI_INFO" }, + {TIME_DELTA_BASED_RC, "TIME_DELTA_BASED_RC" }, + {CONSTANT_QUALITY, "CONSTANT_QUALITY" }, + {ENH_LAYER_COUNT, "ENH_LAYER_COUNT" }, + {BIT_RATE, "BIT_RATE" }, + {VBV_DELAY, "VBV_DELAY" }, + {PEAK_BITRATE, "PEAK_BITRATE" }, + {LOWLATENCY_MODE, "LOWLATENCY_MODE" }, + {ENTROPY_MODE, "ENTROPY_MODE" }, + {TRANSFORM_8X8, "TRANSFORM_8X8" }, + {GOP_SIZE, "GOP_SIZE" }, + {B_FRAME, "B_FRAME" }, + {BLUR_RESOLUTION, "BLUR_RESOLUTION" }, + {STAGE, "STAGE" }, + {ALL_INTRA, "ALL_INTRA" }, + {MIN_QUALITY, "MIN_QUALITY" }, + {LTR_COUNT, "LTR_COUNT" }, + {IR_RANDOM, "IR_RANDOM" }, + {BITRATE_BOOST, "BITRATE_BOOST" }, + {SLICE_MODE, "SLICE_MODE" }, + {CONTENT_ADAPTIVE_CODING, "CONTENT_ADAPTIVE_CODING" }, + {BLUR_TYPES, "BLUR_TYPES" }, {INST_CAP_MAX, "INST_CAP_MAX" }, }; -const char *cap_name(enum msm_vidc_inst_capability_type cap) +const char *cap_name(enum msm_vidc_inst_capability_type cap_id) { const char *name = "UNKNOWN CAP"; - if (cap > ARRAY_SIZE(cap_name_arr)) + if (cap_id > ARRAY_SIZE(cap_name_arr)) goto exit; - if (cap_name_arr[cap].cap != cap) + if (cap_name_arr[cap_id].cap_id != cap_id) goto exit; - name = cap_name_arr[cap].name; + name = cap_name_arr[cap_id].name; exit: return name; @@ -2167,7 +2167,7 @@ int msm_vidc_process_readonly_buffers(struct msm_vidc_inst *inst, buf->attr |= MSM_VIDC_ATTR_READ_ONLY; print_vidc_buffer(VIDC_LOW, "low ", "ro buf removed", inst, ro_buf); list_del(&ro_buf->list); - msm_memory_free(inst, ro_buf); + msm_memory_pool_free(inst, ro_buf); break; } } @@ -2194,7 +2194,7 @@ int msm_vidc_memory_unmap_completely(struct msm_vidc_inst *inst, if (!map->refcount) { msm_vidc_memory_put_dmabuf(inst, map->dmabuf); list_del(&map->list); - msm_memory_free(inst, map); + msm_memory_pool_free(inst, map); break; } } @@ -2360,7 +2360,7 @@ int msm_vidc_flush_ts(struct msm_vidc_inst *inst) i_vpr_l(inst, "%s: flushing ts: val %llu, rank %llu\n", __func__, ts->sort.val, ts->rank); list_del(&ts->sort.list); - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); } inst->timestamps.count = 0; inst->timestamps.rank = 0; @@ -2379,7 +2379,7 @@ int msm_vidc_update_timestamp(struct msm_vidc_inst *inst, u64 timestamp) return -EINVAL; } - ts = msm_memory_alloc(inst, MSM_MEM_POOL_TIMESTAMP); + ts = msm_memory_pool_alloc(inst, MSM_MEM_POOL_TIMESTAMP); if (!ts) { i_vpr_e(inst, "%s: ts alloc failed\n", __func__); return -ENOMEM; @@ -2407,7 +2407,7 @@ int msm_vidc_update_timestamp(struct msm_vidc_inst *inst, u64 timestamp) } inst->timestamps.count--; list_del(&ts->sort.list); - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); } return 0; @@ -2424,7 +2424,7 @@ int msm_vidc_ts_reorder_insert_timestamp(struct msm_vidc_inst *inst, u64 timesta } /* allocate ts from pool */ - ts = msm_memory_alloc(inst, MSM_MEM_POOL_TIMESTAMP); + ts = msm_memory_pool_alloc(inst, MSM_MEM_POOL_TIMESTAMP); if (!ts) { i_vpr_e(inst, "%s: ts alloc failed\n", __func__); return -ENOMEM; @@ -2455,7 +2455,7 @@ int msm_vidc_ts_reorder_remove_timestamp(struct msm_vidc_inst *inst, u64 timesta if (ts->sort.val == timestamp) { list_del_init(&ts->sort.list); inst->ts_reorder.count--; - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); break; } } @@ -2487,7 +2487,7 @@ int msm_vidc_ts_reorder_get_first_timestamp(struct msm_vidc_inst *inst, u64 *tim *timestamp = ts->sort.val; inst->ts_reorder.count--; - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); return 0; } @@ -2505,7 +2505,7 @@ int msm_vidc_ts_reorder_flush(struct msm_vidc_inst *inst) list_for_each_entry_safe(ts, temp, &inst->ts_reorder.list, sort.list) { i_vpr_l(inst, "%s: flushing ts: val %lld\n", __func__, ts->sort.val); list_del(&ts->sort.list); - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); } inst->ts_reorder.count = 0; @@ -2552,7 +2552,7 @@ int msm_vidc_put_delayed_unmap(struct msm_vidc_inst *inst, struct msm_vidc_map * if (!map->refcount) { msm_vidc_memory_put_dmabuf(inst, map->dmabuf); list_del(&map->list); - msm_memory_free(inst, map); + msm_memory_pool_free(inst, map); } return rc; @@ -2620,7 +2620,7 @@ int msm_vidc_unmap_driver_buf(struct msm_vidc_inst *inst, if (!map->refcount) { msm_vidc_memory_put_dmabuf(inst, map->dmabuf); list_del(&map->list); - msm_memory_free(inst, map); + msm_memory_pool_free(inst, map); } return rc; @@ -2655,7 +2655,7 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst, } if (!found) { /* new buffer case */ - map = msm_memory_alloc(inst, MSM_MEM_POOL_MAP); + map = msm_memory_pool_alloc(inst, MSM_MEM_POOL_MAP); if (!map) { i_vpr_e(inst, "%s: alloc failed\n", __func__); return -ENOMEM; @@ -2671,7 +2671,7 @@ int msm_vidc_map_driver_buf(struct msm_vidc_inst *inst, rc = msm_vidc_get_delayed_unmap(inst, map); if (rc) { msm_vidc_memory_put_dmabuf(inst, map->dmabuf); - msm_memory_free(inst, map); + msm_memory_pool_free(inst, map); return rc; } } @@ -2702,7 +2702,7 @@ int msm_vidc_put_driver_buf(struct msm_vidc_inst *inst, /* delete the buffer from buffers->list */ list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); return rc; } @@ -2728,7 +2728,7 @@ struct msm_vidc_buffer *msm_vidc_get_driver_buf(struct msm_vidc_inst *inst, if (!buffers) return NULL; - buf = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER); + buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER); if (!buf) { i_vpr_e(inst, "%s: alloc failed\n", __func__); return NULL; @@ -2756,7 +2756,7 @@ struct msm_vidc_buffer *msm_vidc_get_driver_buf(struct msm_vidc_inst *inst, error: msm_vidc_memory_put_dmabuf(inst, buf->dmabuf); list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); return NULL; } @@ -3026,22 +3026,22 @@ void msm_vidc_free_capabililty_list(struct msm_vidc_inst *inst, struct msm_vidc_inst_cap_entry *temp = NULL, *next = NULL; if (list_type & CHILD_LIST) { - list_for_each_entry_safe(temp, next, &inst->children.list, list) { + list_for_each_entry_safe(temp, next, &inst->children_list, list) { list_del(&temp->list); kfree(temp); } - INIT_LIST_HEAD(&inst->children.list); + INIT_LIST_HEAD(&inst->children_list); } temp = NULL; next = NULL; if (list_type & FW_LIST) { - list_for_each_entry_safe(temp, next, &inst->firmware.list, list) { + list_for_each_entry_safe(temp, next, &inst->firmware_list, list) { list_del(&temp->list); kfree(temp); } - INIT_LIST_HEAD(&inst->firmware.list); + INIT_LIST_HEAD(&inst->firmware_list); } } @@ -3321,7 +3321,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst, if (map->dmabuf == buffer->dmabuf) { msm_vidc_memory_unmap(inst->core, map); list_del(&map->list); - msm_memory_free(inst, map); + msm_memory_pool_free(inst, map); break; } } @@ -3330,7 +3330,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst, if (alloc->dmabuf == buffer->dmabuf) { msm_vidc_memory_free(inst->core, alloc); list_del(&alloc->list); - msm_memory_free(inst, alloc); + msm_memory_pool_free(inst, alloc); break; } } @@ -3338,7 +3338,7 @@ int msm_vidc_destroy_internal_buffer(struct msm_vidc_inst *inst, list_for_each_entry_safe(buf, dummy, &buffers->list, list) { if (buf->dmabuf == buffer->dmabuf) { list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); break; } } @@ -3418,7 +3418,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst, if (!buffers->size) return 0; - buffer = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER); + buffer = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER); if (!buffer) { i_vpr_e(inst, "%s: buf alloc failed\n", __func__); return -ENOMEM; @@ -3429,7 +3429,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst, buffer->buffer_size = buffers->size; list_add_tail(&buffer->list, &buffers->list); - alloc = msm_memory_alloc(inst, MSM_MEM_POOL_ALLOC); + alloc = msm_memory_pool_alloc(inst, MSM_MEM_POOL_ALLOC); if (!alloc) { i_vpr_e(inst, "%s: alloc failed\n", __func__); return -ENOMEM; @@ -3445,7 +3445,7 @@ int msm_vidc_create_internal_buffer(struct msm_vidc_inst *inst, return -ENOMEM; list_add_tail(&alloc->list, &allocations->list); - map = msm_memory_alloc(inst, MSM_MEM_POOL_MAP); + map = msm_memory_pool_alloc(inst, MSM_MEM_POOL_MAP); if (!map) { i_vpr_e(inst, "%s: map alloc failed\n", __func__); return -ENOMEM; @@ -4338,24 +4338,24 @@ static void update_inst_capability(struct msm_platform_inst_capability *in, __func__, in, capability); return; } - if (in->cap < INST_CAP_MAX) { - capability->cap[in->cap].cap = in->cap; - capability->cap[in->cap].min = in->min; - capability->cap[in->cap].max = in->max; - capability->cap[in->cap].step_or_mask = in->step_or_mask; - capability->cap[in->cap].value = in->value; - capability->cap[in->cap].flags = in->flags; - capability->cap[in->cap].v4l2_id = in->v4l2_id; - capability->cap[in->cap].hfi_id = in->hfi_id; - memcpy(capability->cap[in->cap].parents, in->parents, - sizeof(capability->cap[in->cap].parents)); - memcpy(capability->cap[in->cap].children, in->children, - sizeof(capability->cap[in->cap].children)); - capability->cap[in->cap].adjust = in->adjust; - capability->cap[in->cap].set = in->set; + if (in->cap_id < INST_CAP_MAX) { + capability->cap[in->cap_id].cap_id = in->cap_id; + capability->cap[in->cap_id].min = in->min; + capability->cap[in->cap_id].max = in->max; + capability->cap[in->cap_id].step_or_mask = in->step_or_mask; + capability->cap[in->cap_id].value = in->value; + capability->cap[in->cap_id].flags = in->flags; + capability->cap[in->cap_id].v4l2_id = in->v4l2_id; + capability->cap[in->cap_id].hfi_id = in->hfi_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; + capability->cap[in->cap_id].set = in->set; } else { - d_vpr_e("%s: invalid cap %d\n", - __func__, in->cap); + d_vpr_e("%s: invalid cap id %d\n", + __func__, in->cap_id); } } @@ -5180,13 +5180,13 @@ void msm_vidc_destroy_buffers(struct msm_vidc_inst *inst) list_for_each_entry_safe(buf, dummy, &inst->buffers.read_only.list, list) { print_vidc_buffer(VIDC_ERR, "err ", "destroying ro buffer", inst, buf); list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); } list_for_each_entry_safe(buf, dummy, &inst->buffers.release.list, list) { print_vidc_buffer(VIDC_ERR, "err ", "destroying release buffer", inst, buf); list_del(&buf->list); - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); } for (i = 0; i < ARRAY_SIZE(ext_buf_types); i++) { @@ -5207,14 +5207,14 @@ void msm_vidc_destroy_buffers(struct msm_vidc_inst *inst) i_vpr_e(inst, "%s: removing ts: val %lld, rank %lld\n", __func__, ts->sort.val, ts->rank); list_del(&ts->sort.list); - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); } list_for_each_entry_safe(ts, dummy_ts, &inst->ts_reorder.list, sort.list) { i_vpr_e(inst, "%s: removing reorder ts: val %lld\n", __func__, ts->sort.val); list_del(&ts->sort.list); - msm_memory_free(inst, ts); + msm_memory_pool_free(inst, ts); } list_for_each_entry_safe(dbuf, dummy_dbuf, &inst->dmabuf_tracker, list) { diff --git a/driver/vidc/src/msm_vidc_memory.c b/driver/vidc/src/msm_vidc_memory.c index 723b435f11..8e54aa8b57 100644 --- a/driver/vidc/src/msm_vidc_memory.c +++ b/driver/vidc/src/msm_vidc_memory.c @@ -95,7 +95,7 @@ struct dma_buf *msm_vidc_memory_get_dmabuf(struct msm_vidc_inst *inst, int fd) } /* get tracker instance from pool */ - buf = msm_memory_alloc(inst, MSM_MEM_POOL_DMABUF); + buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_DMABUF); if (!buf) { i_vpr_e(inst, "%s: dmabuf alloc failed\n", __func__); dma_buf_put(dmabuf); @@ -146,7 +146,7 @@ void msm_vidc_memory_put_dmabuf(struct msm_vidc_inst *inst, struct dma_buf *dmab dma_buf_put(buf->dmabuf); /* put tracker instance back to pool */ - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); } void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst, @@ -167,7 +167,7 @@ void msm_vidc_memory_put_dmabuf_completely(struct msm_vidc_inst *inst, dma_buf_put(buf->dmabuf); /* put tracker instance back to pool */ - msm_memory_free(inst, buf); + msm_memory_pool_free(inst, buf); break; } } @@ -445,7 +445,7 @@ int msm_vidc_memory_free(struct msm_vidc_core *core, struct msm_vidc_alloc *mem) return rc; }; -void *msm_memory_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type type) +void *msm_memory_pool_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type type) { struct msm_memory_alloc_header *hdr; struct msm_memory_pool *pool; @@ -488,7 +488,7 @@ void *msm_memory_alloc(struct msm_vidc_inst *inst, enum msm_memory_pool_type typ return hdr->buf; } -void msm_memory_free(struct msm_vidc_inst *inst, void *vidc_buf) +void msm_memory_pool_free(struct msm_vidc_inst *inst, void *vidc_buf) { struct msm_memory_alloc_header *hdr; struct msm_memory_pool *pool; diff --git a/driver/vidc/src/venus_hfi_response.c b/driver/vidc/src/venus_hfi_response.c index 440b4dd666..2b28a3d90b 100644 --- a/driver/vidc/src/venus_hfi_response.c +++ b/driver/vidc/src/venus_hfi_response.c @@ -648,7 +648,7 @@ static int handle_read_only_buffer(struct msm_vidc_inst *inst, * if present, do nothing */ if (!found) { - ro_buf = msm_memory_alloc(inst, MSM_MEM_POOL_BUFFER); + ro_buf = msm_memory_pool_alloc(inst, MSM_MEM_POOL_BUFFER); if (!ro_buf) { i_vpr_e(inst, "%s: buffer alloc failed\n", __func__); return -ENOMEM; @@ -699,7 +699,7 @@ static int handle_non_read_only_buffer(struct msm_vidc_inst *inst, if (found) { print_vidc_buffer(VIDC_LOW, "low ", "ro buf deleted", inst, ro_buf); list_del(&ro_buf->list); - msm_memory_free(inst, ro_buf); + msm_memory_pool_free(inst, ro_buf); } return 0;