Merge "video: driver: misc video changes"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
dc71b3eaf1
File diff suppressed because it is too large
Load Diff
@@ -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,
|
||||
|
@@ -138,7 +138,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,
|
||||
@@ -152,7 +152,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
|
||||
@@ -169,7 +169,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}},
|
||||
|
||||
@@ -192,7 +192,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},
|
||||
@@ -221,7 +221,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},
|
||||
|
||||
@@ -274,7 +274,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},
|
||||
@@ -296,7 +296,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},
|
||||
@@ -319,7 +319,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},
|
||||
|
||||
@@ -341,7 +341,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},
|
||||
|
||||
@@ -386,7 +386,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,
|
||||
@@ -404,7 +404,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,
|
||||
@@ -500,7 +500,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},
|
||||
|
||||
@@ -553,7 +553,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,
|
||||
@@ -569,7 +569,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},
|
||||
|
||||
@@ -649,7 +649,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},
|
||||
|
||||
@@ -689,7 +689,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},
|
||||
|
||||
@@ -984,7 +984,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},
|
||||
@@ -1000,7 +1000,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},
|
||||
@@ -1028,7 +1028,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},
|
||||
@@ -1051,7 +1051,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},
|
||||
@@ -1081,7 +1081,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},
|
||||
@@ -1110,7 +1110,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},
|
||||
@@ -1133,7 +1133,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},
|
||||
@@ -1155,7 +1155,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},
|
||||
@@ -1172,7 +1172,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},
|
||||
@@ -1186,7 +1186,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},
|
||||
|
||||
@@ -1199,7 +1199,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},
|
||||
|
||||
@@ -1251,7 +1251,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,
|
||||
@@ -1267,7 +1267,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},
|
||||
@@ -1277,26 +1277,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,
|
||||
@@ -1305,7 +1305,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},
|
||||
|
||||
@@ -1325,7 +1325,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},
|
||||
@@ -1383,7 +1383,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},
|
||||
|
||||
@@ -1482,7 +1482,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}},
|
||||
|
||||
@@ -1558,7 +1558,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},
|
||||
@@ -1567,7 +1567,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,
|
||||
@@ -1583,14 +1583,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},
|
||||
@@ -1599,7 +1599,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,
|
||||
@@ -1608,7 +1608,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,
|
||||
@@ -1618,7 +1618,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},
|
||||
@@ -1627,7 +1627,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,
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
|
@@ -352,9 +352,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,
|
||||
@@ -368,86 +368,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,
|
||||
@@ -456,20 +429,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,
|
||||
@@ -482,25 +455,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;
|
||||
|
@@ -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_
|
@@ -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;
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -942,8 +942,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++)
|
||||
|
@@ -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;
|
||||
}
|
||||
@@ -326,14 +326,14 @@ static int msm_vidc_add_children(struct msm_vidc_inst *inst,
|
||||
}
|
||||
|
||||
static bool is_parent_available(struct msm_vidc_inst *inst,
|
||||
u32 cap, u32 check_parent, const char* func)
|
||||
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)
|
||||
|
@@ -51,7 +51,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;
|
||||
};
|
||||
|
||||
@@ -67,9 +67,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" },
|
||||
@@ -83,86 +83,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" },
|
||||
@@ -171,20 +144,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" },
|
||||
@@ -197,24 +170,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;
|
||||
@@ -2168,7 +2168,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;
|
||||
}
|
||||
}
|
||||
@@ -2195,7 +2195,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;
|
||||
}
|
||||
}
|
||||
@@ -2361,7 +2361,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;
|
||||
@@ -2380,7 +2380,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;
|
||||
@@ -2408,7 +2408,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;
|
||||
@@ -2425,7 +2425,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;
|
||||
@@ -2456,7 +2456,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;
|
||||
}
|
||||
}
|
||||
@@ -2488,7 +2488,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;
|
||||
}
|
||||
@@ -2506,7 +2506,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;
|
||||
|
||||
@@ -2553,7 +2553,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;
|
||||
@@ -2621,7 +2621,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;
|
||||
@@ -2656,7 +2656,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;
|
||||
@@ -2672,7 +2672,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;
|
||||
}
|
||||
}
|
||||
@@ -2703,7 +2703,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;
|
||||
}
|
||||
@@ -2729,7 +2729,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;
|
||||
@@ -2757,7 +2757,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;
|
||||
}
|
||||
|
||||
@@ -3027,22 +3027,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3337,7 +3337,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;
|
||||
}
|
||||
}
|
||||
@@ -3346,7 +3346,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;
|
||||
}
|
||||
}
|
||||
@@ -3354,7 +3354,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;
|
||||
}
|
||||
}
|
||||
@@ -3434,7 +3434,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;
|
||||
@@ -3445,7 +3445,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;
|
||||
@@ -3461,7 +3461,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;
|
||||
@@ -4354,24 +4354,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5196,13 +5196,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++) {
|
||||
@@ -5224,14 +5224,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) {
|
||||
|
@@ -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;
|
||||
|
@@ -649,7 +649,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;
|
||||
@@ -700,7 +700,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;
|
||||
|
Reference in New Issue
Block a user