197fb5e8dSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 209c2845eSStanimir Varbanov /* 309c2845eSStanimir Varbanov * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. 409c2845eSStanimir Varbanov * Copyright (C) 2017 Linaro Ltd. 509c2845eSStanimir Varbanov */ 609c2845eSStanimir Varbanov #ifndef __VENUS_HFI_HELPER_H__ 709c2845eSStanimir Varbanov #define __VENUS_HFI_HELPER_H__ 809c2845eSStanimir Varbanov 909c2845eSStanimir Varbanov #define HFI_DOMAIN_BASE_COMMON 0 1009c2845eSStanimir Varbanov 1109c2845eSStanimir Varbanov #define HFI_DOMAIN_BASE_VDEC 0x1000000 1209c2845eSStanimir Varbanov #define HFI_DOMAIN_BASE_VENC 0x2000000 1309c2845eSStanimir Varbanov #define HFI_DOMAIN_BASE_VPE 0x3000000 1409c2845eSStanimir Varbanov 1509c2845eSStanimir Varbanov #define HFI_VIDEO_ARCH_OX 0x1 1609c2845eSStanimir Varbanov 1709c2845eSStanimir Varbanov #define HFI_ARCH_COMMON_OFFSET 0 1809c2845eSStanimir Varbanov #define HFI_ARCH_OX_OFFSET 0x200000 1909c2845eSStanimir Varbanov 2009c2845eSStanimir Varbanov #define HFI_OX_BASE 0x1000000 2109c2845eSStanimir Varbanov 2209c2845eSStanimir Varbanov #define HFI_CMD_START_OFFSET 0x10000 2309c2845eSStanimir Varbanov #define HFI_MSG_START_OFFSET 0x20000 2409c2845eSStanimir Varbanov 2509c2845eSStanimir Varbanov #define HFI_ERR_NONE 0x0 2609c2845eSStanimir Varbanov #define HFI_ERR_SYS_FATAL 0x1 2709c2845eSStanimir Varbanov #define HFI_ERR_SYS_INVALID_PARAMETER 0x2 2809c2845eSStanimir Varbanov #define HFI_ERR_SYS_VERSION_MISMATCH 0x3 2909c2845eSStanimir Varbanov #define HFI_ERR_SYS_INSUFFICIENT_RESOURCES 0x4 3009c2845eSStanimir Varbanov #define HFI_ERR_SYS_MAX_SESSIONS_REACHED 0x5 3109c2845eSStanimir Varbanov #define HFI_ERR_SYS_UNSUPPORTED_CODEC 0x6 3209c2845eSStanimir Varbanov #define HFI_ERR_SYS_SESSION_IN_USE 0x7 3309c2845eSStanimir Varbanov #define HFI_ERR_SYS_SESSION_ID_OUT_OF_RANGE 0x8 3409c2845eSStanimir Varbanov #define HFI_ERR_SYS_UNSUPPORTED_DOMAIN 0x9 3509c2845eSStanimir Varbanov 3609c2845eSStanimir Varbanov #define HFI_ERR_SESSION_FATAL 0x1001 3709c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INVALID_PARAMETER 0x1002 3809c2845eSStanimir Varbanov #define HFI_ERR_SESSION_BAD_POINTER 0x1003 3909c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INVALID_SESSION_ID 0x1004 4009c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INVALID_STREAM_ID 0x1005 4109c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INCORRECT_STATE_OPERATION 0x1006 4209c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UNSUPPORTED_PROPERTY 0x1007 4309c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UNSUPPORTED_SETTING 0x1008 4409c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INSUFFICIENT_RESOURCES 0x1009 4509c2845eSStanimir Varbanov #define HFI_ERR_SESSION_STREAM_CORRUPT_OUTPUT_STALLED 0x100a 4609c2845eSStanimir Varbanov #define HFI_ERR_SESSION_STREAM_CORRUPT 0x100b 4709c2845eSStanimir Varbanov #define HFI_ERR_SESSION_ENC_OVERFLOW 0x100c 4809c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UNSUPPORTED_STREAM 0x100d 4909c2845eSStanimir Varbanov #define HFI_ERR_SESSION_CMDSIZE 0x100e 5009c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UNSUPPORT_CMD 0x100f 5109c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UNSUPPORT_BUFFERTYPE 0x1010 5209c2845eSStanimir Varbanov #define HFI_ERR_SESSION_BUFFERCOUNT_TOOSMALL 0x1011 5309c2845eSStanimir Varbanov #define HFI_ERR_SESSION_INVALID_SCALE_FACTOR 0x1012 5409c2845eSStanimir Varbanov #define HFI_ERR_SESSION_UPSCALE_NOT_SUPPORTED 0x1013 5509c2845eSStanimir Varbanov 5609c2845eSStanimir Varbanov #define HFI_EVENT_SYS_ERROR 0x1 5709c2845eSStanimir Varbanov #define HFI_EVENT_SESSION_ERROR 0x2 5809c2845eSStanimir Varbanov 5909c2845eSStanimir Varbanov #define HFI_EVENT_DATA_SEQUENCE_CHANGED_SUFFICIENT_BUF_RESOURCES 0x1000001 6009c2845eSStanimir Varbanov #define HFI_EVENT_DATA_SEQUENCE_CHANGED_INSUFFICIENT_BUF_RESOURCES 0x1000002 6109c2845eSStanimir Varbanov #define HFI_EVENT_SESSION_SEQUENCE_CHANGED 0x1000003 6209c2845eSStanimir Varbanov #define HFI_EVENT_SESSION_PROPERTY_CHANGED 0x1000004 6309c2845eSStanimir Varbanov #define HFI_EVENT_SESSION_LTRUSE_FAILED 0x1000005 6409c2845eSStanimir Varbanov #define HFI_EVENT_RELEASE_BUFFER_REFERENCE 0x1000006 6509c2845eSStanimir Varbanov 6609c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_EOS 0x00000001 6709c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_STARTTIME 0x00000002 6809c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_DECODEONLY 0x00000004 6909c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_DATACORRUPT 0x00000008 7009c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_ENDOFFRAME 0x00000010 7109c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_SYNCFRAME 0x00000020 7209c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_EXTRADATA 0x00000040 7309c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_CODECCONFIG 0x00000080 7409c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_TIMESTAMPINVALID 0x00000100 7509c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_READONLY 0x00000200 7609c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_ENDOFSUBFRAME 0x00000400 7709c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_EOSEQ 0x00200000 7809c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_MBAFF 0x08000000 7909c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_VPE_YUV_601_709_CSC_CLAMP 0x10000000 8009c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_DROP_FRAME 0x20000000 8109c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_TEI 0x40000000 8209c2845eSStanimir Varbanov #define HFI_BUFFERFLAG_DISCONTINUITY 0x80000000 8309c2845eSStanimir Varbanov 8409c2845eSStanimir Varbanov #define HFI_ERR_SESSION_EMPTY_BUFFER_DONE_OUTPUT_PENDING 0x1001001 8509c2845eSStanimir Varbanov #define HFI_ERR_SESSION_SAME_STATE_OPERATION 0x1001002 8609c2845eSStanimir Varbanov #define HFI_ERR_SESSION_SYNC_FRAME_NOT_DETECTED 0x1001003 8709c2845eSStanimir Varbanov #define HFI_ERR_SESSION_START_CODE_NOT_FOUND 0x1001004 8809c2845eSStanimir Varbanov 8909c2845eSStanimir Varbanov #define HFI_FLUSH_INPUT 0x1000001 9009c2845eSStanimir Varbanov #define HFI_FLUSH_OUTPUT 0x1000002 9109c2845eSStanimir Varbanov #define HFI_FLUSH_OUTPUT2 0x1000003 9209c2845eSStanimir Varbanov #define HFI_FLUSH_ALL 0x1000004 9309c2845eSStanimir Varbanov 9409c2845eSStanimir Varbanov #define HFI_EXTRADATA_NONE 0x00000000 9509c2845eSStanimir Varbanov #define HFI_EXTRADATA_MB_QUANTIZATION 0x00000001 9609c2845eSStanimir Varbanov #define HFI_EXTRADATA_INTERLACE_VIDEO 0x00000002 9709c2845eSStanimir Varbanov #define HFI_EXTRADATA_VC1_FRAMEDISP 0x00000003 9809c2845eSStanimir Varbanov #define HFI_EXTRADATA_VC1_SEQDISP 0x00000004 9909c2845eSStanimir Varbanov #define HFI_EXTRADATA_TIMESTAMP 0x00000005 10009c2845eSStanimir Varbanov #define HFI_EXTRADATA_S3D_FRAME_PACKING 0x00000006 10109c2845eSStanimir Varbanov #define HFI_EXTRADATA_FRAME_RATE 0x00000007 10209c2845eSStanimir Varbanov #define HFI_EXTRADATA_PANSCAN_WINDOW 0x00000008 10309c2845eSStanimir Varbanov #define HFI_EXTRADATA_RECOVERY_POINT_SEI 0x00000009 10409c2845eSStanimir Varbanov #define HFI_EXTRADATA_MPEG2_SEQDISP 0x0000000d 10509c2845eSStanimir Varbanov #define HFI_EXTRADATA_STREAM_USERDATA 0x0000000e 10609c2845eSStanimir Varbanov #define HFI_EXTRADATA_FRAME_QP 0x0000000f 10709c2845eSStanimir Varbanov #define HFI_EXTRADATA_FRAME_BITS_INFO 0x00000010 10809c2845eSStanimir Varbanov #define HFI_EXTRADATA_MULTISLICE_INFO 0x7f100000 10909c2845eSStanimir Varbanov #define HFI_EXTRADATA_NUM_CONCEALED_MB 0x7f100001 11009c2845eSStanimir Varbanov #define HFI_EXTRADATA_INDEX 0x7f100002 11109c2845eSStanimir Varbanov #define HFI_EXTRADATA_METADATA_LTR 0x7f100004 11209c2845eSStanimir Varbanov #define HFI_EXTRADATA_METADATA_FILLER 0x7fe00002 11309c2845eSStanimir Varbanov 11409c2845eSStanimir Varbanov #define HFI_INDEX_EXTRADATA_INPUT_CROP 0x0700000e 115f04997bdSStanimir Varbanov #define HFI_INDEX_EXTRADATA_OUTPUT_CROP 0x0700000f 11609c2845eSStanimir Varbanov #define HFI_INDEX_EXTRADATA_DIGITAL_ZOOM 0x07000010 11709c2845eSStanimir Varbanov #define HFI_INDEX_EXTRADATA_ASPECT_RATIO 0x7f100003 11809c2845eSStanimir Varbanov 11909c2845eSStanimir Varbanov #define HFI_INTERLACE_FRAME_PROGRESSIVE 0x01 12009c2845eSStanimir Varbanov #define HFI_INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST 0x02 12109c2845eSStanimir Varbanov #define HFI_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST 0x04 12209c2845eSStanimir Varbanov #define HFI_INTERLACE_FRAME_TOPFIELDFIRST 0x08 12309c2845eSStanimir Varbanov #define HFI_INTERLACE_FRAME_BOTTOMFIELDFIRST 0x10 12409c2845eSStanimir Varbanov 12509c2845eSStanimir Varbanov /* 12609c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_OX_START 12709c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x1000 12809c2845eSStanimir Varbanov */ 12909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_BUFFER_COUNT_ACTUAL 0x201001 13009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_CONSTRAINTS_INFO 0x201002 13109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_INTERLACE_FORMAT_SUPPORTED 0x201003 13209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_CHROMA_SITE 0x201004 13309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_EXTRA_DATA_HEADER_CONFIG 0x201005 13409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_INDEX_EXTRADATA 0x201006 13509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_DIVX_FORMAT 0x201007 13609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE 0x201008 13709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_S3D_FRAME_PACKING_EXTRADATA 0x201009 13809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_ERR_DETECTION_CODE_EXTRADATA 0x20100a 13909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE_SUPPORTED 0x20100b 14009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_BUFFER_SIZE_ACTUAL 0x20100c 14109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_BUFFER_DISPLAY_HOLD_COUNT_ACTUAL 0x20100d 14209c2845eSStanimir Varbanov 14309c2845eSStanimir Varbanov /* 14409c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_OX_START 14509c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x2000 14609c2845eSStanimir Varbanov */ 14709c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS 0x202001 14809c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_REALTIME 0x202002 14909c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_PRIORITY 0x202003 15009c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_BATCH_INFO 0x202004 15109c2845eSStanimir Varbanov 15209c2845eSStanimir Varbanov /* 15309c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VDEC_OX_START \ 15409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x3000 15509c2845eSStanimir Varbanov */ 15609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_CONTINUE_DATA_TRANSFER 0x1203001 15709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_DISPLAY_PICTURE_BUFFER_COUNT 0x1203002 15809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_MULTI_VIEW_SELECT 0x1203003 15909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_PICTURE_TYPE_DECODE 0x1203004 16009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_OUTPUT_ORDER 0x1203005 16109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_MB_QUANTIZATION 0x1203006 16209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_NUM_CONCEALED_MB 0x1203007 16309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_H264_ENTROPY_SWITCHING 0x1203008 16409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO 0x1203009 16509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_FRAME_RATE_EXTRADATA 0x120300a 16609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_PANSCAN_WNDW_EXTRADATA 0x120300b 16709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_RECOVERY_POINT_SEI_EXTRADATA 0x120300c 16809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_THUMBNAIL_MODE 0x120300d 16909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_FRAME_ASSEMBLY 0x120300e 17016545aa3SDikshita Agarwal #define HFI_PROPERTY_PARAM_VDEC_DPB_COUNTS 0x120300e 17109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_VC1_FRAMEDISP_EXTRADATA 0x1203011 17209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_VC1_SEQDISP_EXTRADATA 0x1203012 17309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_TIMESTAMP_EXTRADATA 0x1203013 17409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_INTERLACE_VIDEO_EXTRADATA 0x1203014 17509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_AVC_SESSION_SELECT 0x1203015 17609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_MPEG2_SEQDISP_EXTRADATA 0x1203016 17709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_STREAM_USERDATA_EXTRADATA 0x1203017 17809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_FRAME_QP_EXTRADATA 0x1203018 17909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_FRAME_BITS_INFO_EXTRADATA 0x1203019 18009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_SCS_THRESHOLD 0x120301a 18109c2845eSStanimir Varbanov 18209c2845eSStanimir Varbanov /* 18309c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_VDEC_OX_START 18409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x0000 18509c2845eSStanimir Varbanov */ 18609c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER 0x1200001 18709c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VDEC_MB_ERROR_MAP_REPORTING 0x1200002 18809c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VDEC_MB_ERROR_MAP 0x1200003 18909c2845eSStanimir Varbanov 19009c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VDEC_ENTROPY 0x1204004 19109c2845eSStanimir Varbanov 19209c2845eSStanimir Varbanov /* 19309c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VENC_OX_START 19409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VENC + HFI_ARCH_OX_OFFSET + 0x5000 19509c2845eSStanimir Varbanov */ 19609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MULTI_SLICE_INFO 0x2205001 19709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_IDR_S3D_FRAME_PACKING_NAL 0x2205002 19809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_LTR_INFO 0x2205003 19909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MBI_DUMPING 0x2205005 20009c2845eSStanimir Varbanov 20109c2845eSStanimir Varbanov /* 20209c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_VENC_OX_START 20309c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VENC + HFI_ARCH_OX_OFFSET + 0x6000 20409c2845eSStanimir Varbanov */ 20509c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_FRAME_QP 0x2206001 20609c2845eSStanimir Varbanov 20709c2845eSStanimir Varbanov /* 20809c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VPE_OX_START 20909c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VPE + HFI_ARCH_OX_OFFSET + 0x7000 21009c2845eSStanimir Varbanov */ 21109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VPE_COLOR_SPACE_CONVERSION 0x3207001 21209c2845eSStanimir Varbanov 21309c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VPE_OX_START \ 21409c2845eSStanimir Varbanov (HFI_DOMAIN_BASE_VPE + HFI_ARCH_OX_OFFSET + 0x8000) 21509c2845eSStanimir Varbanov 21609c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_0 0x1000001 21709c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_1 0x1000002 21809c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_2 0x1000003 21909c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_3 0x1000004 22009c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_4 0x1000005 22109c2845eSStanimir Varbanov #define HFI_CHROMA_SITE_5 0x1000006 22209c2845eSStanimir Varbanov 22309c2845eSStanimir Varbanov #define HFI_PRIORITY_LOW 10 22409c2845eSStanimir Varbanov #define HFI_PRIOIRTY_MEDIUM 20 22509c2845eSStanimir Varbanov #define HFI_PRIORITY_HIGH 30 22609c2845eSStanimir Varbanov 22709c2845eSStanimir Varbanov #define HFI_OUTPUT_ORDER_DISPLAY 0x1000001 22809c2845eSStanimir Varbanov #define HFI_OUTPUT_ORDER_DECODE 0x1000002 22909c2845eSStanimir Varbanov 23009c2845eSStanimir Varbanov #define HFI_RATE_CONTROL_OFF 0x1000001 23109c2845eSStanimir Varbanov #define HFI_RATE_CONTROL_VBR_VFR 0x1000002 23209c2845eSStanimir Varbanov #define HFI_RATE_CONTROL_VBR_CFR 0x1000003 23309c2845eSStanimir Varbanov #define HFI_RATE_CONTROL_CBR_VFR 0x1000004 23409c2845eSStanimir Varbanov #define HFI_RATE_CONTROL_CBR_CFR 0x1000005 23569ff4b2cSStanimir Varbanov #define HFI_RATE_CONTROL_CQ 0x1000008 23609c2845eSStanimir Varbanov 23709c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_H264 0x00000002 23809c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_H263 0x00000004 23909c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_MPEG1 0x00000008 24009c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_MPEG2 0x00000010 24109c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_MPEG4 0x00000020 24209c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_DIVX_311 0x00000040 24309c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_DIVX 0x00000080 24409c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_VC1 0x00000100 24509c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_SPARK 0x00000200 24609c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_VP8 0x00001000 24709c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_HEVC 0x00002000 24809c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_VP9 0x00004000 24909c2845eSStanimir Varbanov #define HFI_VIDEO_CODEC_HEVC_HYBRID 0x80000000 25009c2845eSStanimir Varbanov 25109c2845eSStanimir Varbanov #define HFI_H264_PROFILE_BASELINE 0x00000001 25209c2845eSStanimir Varbanov #define HFI_H264_PROFILE_MAIN 0x00000002 25309c2845eSStanimir Varbanov #define HFI_H264_PROFILE_HIGH 0x00000004 25409c2845eSStanimir Varbanov #define HFI_H264_PROFILE_STEREO_HIGH 0x00000008 25509c2845eSStanimir Varbanov #define HFI_H264_PROFILE_MULTIVIEW_HIGH 0x00000010 25609c2845eSStanimir Varbanov #define HFI_H264_PROFILE_CONSTRAINED_BASE 0x00000020 25709c2845eSStanimir Varbanov #define HFI_H264_PROFILE_CONSTRAINED_HIGH 0x00000040 25809c2845eSStanimir Varbanov 25909c2845eSStanimir Varbanov #define HFI_H264_LEVEL_1 0x00000001 26009c2845eSStanimir Varbanov #define HFI_H264_LEVEL_1b 0x00000002 26109c2845eSStanimir Varbanov #define HFI_H264_LEVEL_11 0x00000004 26209c2845eSStanimir Varbanov #define HFI_H264_LEVEL_12 0x00000008 26309c2845eSStanimir Varbanov #define HFI_H264_LEVEL_13 0x00000010 26409c2845eSStanimir Varbanov #define HFI_H264_LEVEL_2 0x00000020 26509c2845eSStanimir Varbanov #define HFI_H264_LEVEL_21 0x00000040 26609c2845eSStanimir Varbanov #define HFI_H264_LEVEL_22 0x00000080 26709c2845eSStanimir Varbanov #define HFI_H264_LEVEL_3 0x00000100 26809c2845eSStanimir Varbanov #define HFI_H264_LEVEL_31 0x00000200 26909c2845eSStanimir Varbanov #define HFI_H264_LEVEL_32 0x00000400 27009c2845eSStanimir Varbanov #define HFI_H264_LEVEL_4 0x00000800 27109c2845eSStanimir Varbanov #define HFI_H264_LEVEL_41 0x00001000 27209c2845eSStanimir Varbanov #define HFI_H264_LEVEL_42 0x00002000 27309c2845eSStanimir Varbanov #define HFI_H264_LEVEL_5 0x00004000 27409c2845eSStanimir Varbanov #define HFI_H264_LEVEL_51 0x00008000 27509c2845eSStanimir Varbanov #define HFI_H264_LEVEL_52 0x00010000 27609c2845eSStanimir Varbanov 27709c2845eSStanimir Varbanov #define HFI_H263_PROFILE_BASELINE 0x00000001 27809c2845eSStanimir Varbanov 27909c2845eSStanimir Varbanov #define HFI_H263_LEVEL_10 0x00000001 28009c2845eSStanimir Varbanov #define HFI_H263_LEVEL_20 0x00000002 28109c2845eSStanimir Varbanov #define HFI_H263_LEVEL_30 0x00000004 28209c2845eSStanimir Varbanov #define HFI_H263_LEVEL_40 0x00000008 28309c2845eSStanimir Varbanov #define HFI_H263_LEVEL_45 0x00000010 28409c2845eSStanimir Varbanov #define HFI_H263_LEVEL_50 0x00000020 28509c2845eSStanimir Varbanov #define HFI_H263_LEVEL_60 0x00000040 28609c2845eSStanimir Varbanov #define HFI_H263_LEVEL_70 0x00000080 28709c2845eSStanimir Varbanov 28809c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_SIMPLE 0x00000001 28909c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_MAIN 0x00000002 29009c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_422 0x00000004 29109c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_SNR 0x00000008 29209c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_SPATIAL 0x00000010 29309c2845eSStanimir Varbanov #define HFI_MPEG2_PROFILE_HIGH 0x00000020 29409c2845eSStanimir Varbanov 29509c2845eSStanimir Varbanov #define HFI_MPEG2_LEVEL_LL 0x00000001 29609c2845eSStanimir Varbanov #define HFI_MPEG2_LEVEL_ML 0x00000002 29709c2845eSStanimir Varbanov #define HFI_MPEG2_LEVEL_H14 0x00000004 29809c2845eSStanimir Varbanov #define HFI_MPEG2_LEVEL_HL 0x00000008 29909c2845eSStanimir Varbanov 30009c2845eSStanimir Varbanov #define HFI_MPEG4_PROFILE_SIMPLE 0x00000001 30109c2845eSStanimir Varbanov #define HFI_MPEG4_PROFILE_ADVANCEDSIMPLE 0x00000002 30209c2845eSStanimir Varbanov 30309c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_0 0x00000001 30409c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_0b 0x00000002 30509c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_1 0x00000004 30609c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_2 0x00000008 30709c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_3 0x00000010 30809c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_4 0x00000020 30909c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_4a 0x00000040 31009c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_5 0x00000080 31109c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_6 0x00000100 31209c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_7 0x00000200 31309c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_8 0x00000400 31409c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_9 0x00000800 31509c2845eSStanimir Varbanov #define HFI_MPEG4_LEVEL_3b 0x00001000 31609c2845eSStanimir Varbanov 31709c2845eSStanimir Varbanov #define HFI_VC1_PROFILE_SIMPLE 0x00000001 31809c2845eSStanimir Varbanov #define HFI_VC1_PROFILE_MAIN 0x00000002 31909c2845eSStanimir Varbanov #define HFI_VC1_PROFILE_ADVANCED 0x00000004 32009c2845eSStanimir Varbanov 32109c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_LOW 0x00000001 32209c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_MEDIUM 0x00000002 32309c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_HIGH 0x00000004 32409c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_0 0x00000008 32509c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_1 0x00000010 32609c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_2 0x00000020 32709c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_3 0x00000040 32809c2845eSStanimir Varbanov #define HFI_VC1_LEVEL_4 0x00000080 32909c2845eSStanimir Varbanov 33009c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_SIMPLE 0x00000001 33109c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_ADVANCED 0x00000002 33209c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_VERSION_0 0x00000004 33309c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_VERSION_1 0x00000008 33409c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_VERSION_2 0x00000010 33509c2845eSStanimir Varbanov #define HFI_VPX_PROFILE_VERSION_3 0x00000020 33609c2845eSStanimir Varbanov 33709c2845eSStanimir Varbanov #define HFI_DIVX_FORMAT_4 0x1 33809c2845eSStanimir Varbanov #define HFI_DIVX_FORMAT_5 0x2 33909c2845eSStanimir Varbanov #define HFI_DIVX_FORMAT_6 0x3 34009c2845eSStanimir Varbanov 34109c2845eSStanimir Varbanov #define HFI_DIVX_PROFILE_QMOBILE 0x00000001 34209c2845eSStanimir Varbanov #define HFI_DIVX_PROFILE_MOBILE 0x00000002 34309c2845eSStanimir Varbanov #define HFI_DIVX_PROFILE_MT 0x00000004 34409c2845eSStanimir Varbanov #define HFI_DIVX_PROFILE_HT 0x00000008 34509c2845eSStanimir Varbanov #define HFI_DIVX_PROFILE_HD 0x00000010 34609c2845eSStanimir Varbanov 34709c2845eSStanimir Varbanov #define HFI_HEVC_PROFILE_MAIN 0x00000001 34809c2845eSStanimir Varbanov #define HFI_HEVC_PROFILE_MAIN10 0x00000002 34909c2845eSStanimir Varbanov #define HFI_HEVC_PROFILE_MAIN_STILL_PIC 0x00000004 35009c2845eSStanimir Varbanov 35109c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_1 0x00000001 35209c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_2 0x00000002 35309c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_21 0x00000004 35409c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_3 0x00000008 35509c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_31 0x00000010 35609c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_4 0x00000020 35709c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_41 0x00000040 35809c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_5 0x00000080 35909c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_51 0x00000100 36009c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_52 0x00000200 36109c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_6 0x00000400 36209c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_61 0x00000800 36309c2845eSStanimir Varbanov #define HFI_HEVC_LEVEL_62 0x00001000 36409c2845eSStanimir Varbanov 36509c2845eSStanimir Varbanov #define HFI_HEVC_TIER_MAIN 0x1 36609c2845eSStanimir Varbanov #define HFI_HEVC_TIER_HIGH0 0x2 36709c2845eSStanimir Varbanov 368c7f50ce5SStanimir Varbanov #define HFI_VPX_PROFILE_MAIN 0x00000001 369c7f50ce5SStanimir Varbanov 370c7f50ce5SStanimir Varbanov #define HFI_VPX_LEVEL_VERSION_0 0x00000001 371c7f50ce5SStanimir Varbanov #define HFI_VPX_LEVEL_VERSION_1 0x00000002 372c7f50ce5SStanimir Varbanov #define HFI_VPX_LEVEL_VERSION_2 0x00000004 373c7f50ce5SStanimir Varbanov #define HFI_VPX_LEVEL_VERSION_3 0x00000008 374c7f50ce5SStanimir Varbanov 375cbaa3117SStanimir Varbanov /* VP9 Profile 0, 8-bit */ 376cbaa3117SStanimir Varbanov #define HFI_VP9_PROFILE_P0 0x00000001 377cbaa3117SStanimir Varbanov /* VP9 Profile 2, 10-bit */ 378cbaa3117SStanimir Varbanov #define HFI_VP9_PROFILE_P2_10B 0x00000004 379cbaa3117SStanimir Varbanov 380cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_1 0x00000001 381cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_11 0x00000002 382cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_2 0x00000004 383cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_21 0x00000008 384cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_3 0x00000010 385cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_31 0x00000020 386cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_4 0x00000040 387cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_41 0x00000080 388cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_5 0x00000100 389cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_51 0x00000200 390cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_6 0x00000400 391cbaa3117SStanimir Varbanov #define HFI_VP9_LEVEL_61 0x00000800 392cbaa3117SStanimir Varbanov 39309c2845eSStanimir Varbanov #define HFI_BUFFER_INPUT 0x1 39409c2845eSStanimir Varbanov #define HFI_BUFFER_OUTPUT 0x2 39509c2845eSStanimir Varbanov #define HFI_BUFFER_OUTPUT2 0x3 39609c2845eSStanimir Varbanov #define HFI_BUFFER_INTERNAL_PERSIST 0x4 39709c2845eSStanimir Varbanov #define HFI_BUFFER_INTERNAL_PERSIST_1 0x5 398f04997bdSStanimir Varbanov #define HFI_BUFFER_INTERNAL_SCRATCH(ver) \ 399c934d9d4SDikshita Agarwal (((ver) == HFI_VERSION_4XX || \ 400c934d9d4SDikshita Agarwal (ver) == HFI_VERSION_6XX) ? 0x6 : 0x1000001) 401f04997bdSStanimir Varbanov #define HFI_BUFFER_INTERNAL_SCRATCH_1(ver) \ 402c934d9d4SDikshita Agarwal (((ver) == HFI_VERSION_4XX || \ 403c934d9d4SDikshita Agarwal (ver) == HFI_VERSION_6XX) ? 0x7 : 0x1000005) 404f04997bdSStanimir Varbanov #define HFI_BUFFER_INTERNAL_SCRATCH_2(ver) \ 405c934d9d4SDikshita Agarwal (((ver) == HFI_VERSION_4XX || \ 406c934d9d4SDikshita Agarwal (ver) == HFI_VERSION_6XX) ? 0x8 : 0x1000006) 407f04997bdSStanimir Varbanov #define HFI_BUFFER_EXTRADATA_INPUT(ver) \ 408f04997bdSStanimir Varbanov (((ver) == HFI_VERSION_4XX) ? 0xc : 0x1000002) 409f04997bdSStanimir Varbanov #define HFI_BUFFER_EXTRADATA_OUTPUT(ver) \ 410f04997bdSStanimir Varbanov (((ver) == HFI_VERSION_4XX) ? 0xa : 0x1000003) 411f04997bdSStanimir Varbanov #define HFI_BUFFER_EXTRADATA_OUTPUT2(ver) \ 412f04997bdSStanimir Varbanov (((ver) == HFI_VERSION_4XX) ? 0xb : 0x1000004) 41309c2845eSStanimir Varbanov #define HFI_BUFFER_TYPE_MAX 11 41409c2845eSStanimir Varbanov 41509c2845eSStanimir Varbanov #define HFI_BUFFER_MODE_STATIC 0x1000001 41609c2845eSStanimir Varbanov #define HFI_BUFFER_MODE_RING 0x1000002 41709c2845eSStanimir Varbanov #define HFI_BUFFER_MODE_DYNAMIC 0x1000003 41809c2845eSStanimir Varbanov 41909c2845eSStanimir Varbanov /* 42009c2845eSStanimir Varbanov * HFI_PROPERTY_SYS_COMMON_START 42109c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x0000 42209c2845eSStanimir Varbanov */ 42309c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_DEBUG_CONFIG 0x1 42409c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_RESOURCE_OCMEM_REQUIREMENT_INFO 0x2 42509c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_CONFIG_VCODEC_CLKFREQ 0x3 42609c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_IDLE_INDICATOR 0x4 42709c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_CODEC_POWER_PLANE_CTRL 0x5 42809c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_IMAGE_VERSION 0x6 42909c2845eSStanimir Varbanov #define HFI_PROPERTY_SYS_CONFIG_COVERAGE 0x7 430b228cf38SVikash Garodia #define HFI_PROPERTY_SYS_UBWC_CONFIG 0x8 43109c2845eSStanimir Varbanov 43209c2845eSStanimir Varbanov /* 43309c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_COMMON_START 43409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x1000 43509c2845eSStanimir Varbanov */ 43609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_FRAME_SIZE 0x1001 43709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_INFO 0x1002 43809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_UNCOMPRESSED_FORMAT_SELECT 0x1003 43909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_UNCOMPRESSED_FORMAT_SUPPORTED 0x1004 44009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT 0x1005 44109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_PROFILE_LEVEL_SUPPORTED 0x1006 44209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_CAPABILITY_SUPPORTED 0x1007 44309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_PROPERTIES_SUPPORTED 0x1008 44409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_CODEC_SUPPORTED 0x1009 44509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_NAL_STREAM_FORMAT_SUPPORTED 0x100a 44609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_NAL_STREAM_FORMAT_SELECT 0x100b 44709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_MULTI_VIEW_FORMAT 0x100c 44809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_MAX_SEQUENCE_HEADER_SIZE 0x100d 44909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_CODEC_MASK_SUPPORTED 0x100e 45009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_MVC_BUFFER_LAYOUT 0x100f 45109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_MAX_SESSIONS_SUPPORTED 0x1010 452f04997bdSStanimir Varbanov #define HFI_PROPERTY_PARAM_WORK_MODE 0x1015 4536483a8cbSDikshita Agarwal #define HFI_PROPERTY_PARAM_WORK_ROUTE 0x1017 45409c2845eSStanimir Varbanov 45509c2845eSStanimir Varbanov /* 45609c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_COMMON_START 45709c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x2000 45809c2845eSStanimir Varbanov */ 45909c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_FRAME_RATE 0x2001 460f04997bdSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VIDEOCORES_USAGE 0x2002 46109c2845eSStanimir Varbanov 46209c2845eSStanimir Varbanov /* 46309c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VDEC_COMMON_START 46409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_COMMON_OFFSET + 0x3000 46509c2845eSStanimir Varbanov */ 46609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_MULTI_STREAM 0x1003001 46709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_CONCEAL_COLOR 0x1003002 46809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_NONCP_OUTPUT2 0x1003003 469f04997bdSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_PIXEL_BITDEPTH 0x1003007 470f04997bdSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_PIC_STRUCT 0x1003009 471f04997bdSStanimir Varbanov #define HFI_PROPERTY_PARAM_VDEC_COLOUR_SPACE 0x100300a 472938beb48SDikshita Agarwal #define HFI_PROPERTY_PARAM_VDEC_ENABLE_SUFFICIENT_SEQCHANGE_EVENT \ 473938beb48SDikshita Agarwal 0x100300b 47409c2845eSStanimir Varbanov 47509c2845eSStanimir Varbanov /* 47609c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_VDEC_COMMON_START 47709c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_COMMON_OFFSET + 0x4000 47809c2845eSStanimir Varbanov */ 47909c2845eSStanimir Varbanov 48009c2845eSStanimir Varbanov /* 48109c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VENC_COMMON_START 48209c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x5000 48309c2845eSStanimir Varbanov */ 48409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_SLICE_DELIVERY_MODE 0x2005001 48509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL 0x2005002 48609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_DEBLOCK_CONTROL 0x2005003 48709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_RATE_CONTROL 0x2005004 48809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_PICORDER_CNT_TYPE 0x2005005 48909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_SESSION_QP 0x2005006 49009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MPEG4_AC_PREDICTION 0x2005007 49109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE 0x2005008 49290655e2eSViswanath Boma /* 49390655e2eSViswanath Boma * Note: HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2 is 49490655e2eSViswanath Boma * specific to HFI_VERSION_6XX and HFI_VERSION_4XX only 49590655e2eSViswanath Boma */ 49690655e2eSViswanath Boma #define HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2 0x2005009 49709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MPEG4_TIME_RESOLUTION 0x2005009 49809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MPEG4_SHORT_HEADER 0x200500a 49909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MPEG4_HEADER_EXTENSION 0x200500b 50009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_OPEN_GOP 0x200500c 50109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH 0x200500d 50209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MULTI_SLICE_CONTROL 0x200500e 50309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_VBV_HRD_BUF_SIZE 0x200500f 50409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_QUALITY_VS_SPEED 0x2005010 50509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_ADVANCED 0x2005012 50609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_SPS_ID 0x2005014 50709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_PPS_ID 0x2005015 50809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_GENERATE_AUDNAL 0x2005016 50909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_ASPECT_RATIO 0x2005017 51009c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_NUMREF 0x2005018 51109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MULTIREF_P 0x2005019 51209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_NAL_SVC_EXT 0x200501b 51309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_LTRMODE 0x200501c 51409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_VIDEO_FULL_RANGE 0x200501d 51509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO 0x200501e 51609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_VC1_PERF_CFG 0x200501f 51709c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES 0x2005020 51809c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_H264_VUI_BITSTREAM_RESTRC 0x2005021 51909c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_PRESERVE_TEXT_QUALITY 0x2005023 520bfee75f7SMansur Alisha Shaik #define HFI_PROPERTY_PARAM_VENC_H264_TRANSFORM_8X8 0x2005025 52109c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_HIER_P_MAX_NUM_ENH_LAYER 0x2005026 52209c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_DISABLE_RC_TIMESTAMP 0x2005027 52309c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_INITIAL_QP 0x2005028 52409c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_VPX_ERROR_RESILIENCE_MODE 0x2005029 52509c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_HIER_B_MAX_NUM_ENH_LAYER 0x200502c 52609c2845eSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_HIER_P_HYBRID_MODE 0x200502f 5279172652dSStanimir Varbanov #define HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI 0x2005036 52809c2845eSStanimir Varbanov 52909c2845eSStanimir Varbanov /* 53009c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_VENC_COMMON_START 53109c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000 53209c2845eSStanimir Varbanov */ 53309c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE 0x2006001 53409c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD 0x2006002 53509c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_INTRA_PERIOD 0x2006003 53609c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_REQUEST_SYNC_FRAME 0x2006004 53709c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_SLICE_SIZE 0x2006005 53809c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_MAX_BITRATE 0x2006007 53909c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER 0x2006008 54009c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_MARKLTRFRAME 0x2006009 54109c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_USELTRFRAME 0x200600a 54209c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_HIER_P_ENH_LAYER 0x200600b 54309c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_LTRPERIOD 0x200600c 54409c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VENC_PERF_MODE 0x200600e 54569ff4b2cSStanimir Varbanov #define HFI_PROPERTY_CONFIG_HEIC_FRAME_QUALITY 0x2006014 54609c2845eSStanimir Varbanov 54709c2845eSStanimir Varbanov /* 54809c2845eSStanimir Varbanov * HFI_PROPERTY_PARAM_VPE_COMMON_START 54909c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VPE + HFI_ARCH_COMMON_OFFSET + 0x7000 55009c2845eSStanimir Varbanov */ 55109c2845eSStanimir Varbanov 55209c2845eSStanimir Varbanov /* 55309c2845eSStanimir Varbanov * HFI_PROPERTY_CONFIG_VPE_COMMON_START 55409c2845eSStanimir Varbanov * HFI_DOMAIN_BASE_VPE + HFI_ARCH_COMMON_OFFSET + 0x8000 55509c2845eSStanimir Varbanov */ 55609c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VPE_DEINTERLACE 0x3008001 55709c2845eSStanimir Varbanov #define HFI_PROPERTY_CONFIG_VPE_OPERATIONS 0x3008002 55809c2845eSStanimir Varbanov 55909c2845eSStanimir Varbanov enum hfi_version { 56009c2845eSStanimir Varbanov HFI_VERSION_1XX, 56109c2845eSStanimir Varbanov HFI_VERSION_3XX, 56269ff4b2cSStanimir Varbanov HFI_VERSION_4XX, 56369ff4b2cSStanimir Varbanov HFI_VERSION_6XX, 56409c2845eSStanimir Varbanov }; 56509c2845eSStanimir Varbanov 56609c2845eSStanimir Varbanov struct hfi_buffer_info { 56709c2845eSStanimir Varbanov u32 buffer_addr; 56809c2845eSStanimir Varbanov u32 extradata_addr; 56909c2845eSStanimir Varbanov }; 57009c2845eSStanimir Varbanov 57109c2845eSStanimir Varbanov struct hfi_bitrate { 57209c2845eSStanimir Varbanov u32 bitrate; 57309c2845eSStanimir Varbanov u32 layer_id; 57409c2845eSStanimir Varbanov }; 57509c2845eSStanimir Varbanov 576bfee75f7SMansur Alisha Shaik struct hfi_h264_8x8_transform { 577bfee75f7SMansur Alisha Shaik u32 enable_type; 578bfee75f7SMansur Alisha Shaik }; 579bfee75f7SMansur Alisha Shaik 58009c2845eSStanimir Varbanov #define HFI_CAPABILITY_FRAME_WIDTH 0x01 58109c2845eSStanimir Varbanov #define HFI_CAPABILITY_FRAME_HEIGHT 0x02 58209c2845eSStanimir Varbanov #define HFI_CAPABILITY_MBS_PER_FRAME 0x03 58309c2845eSStanimir Varbanov #define HFI_CAPABILITY_MBS_PER_SECOND 0x04 58409c2845eSStanimir Varbanov #define HFI_CAPABILITY_FRAMERATE 0x05 58509c2845eSStanimir Varbanov #define HFI_CAPABILITY_SCALE_X 0x06 58609c2845eSStanimir Varbanov #define HFI_CAPABILITY_SCALE_Y 0x07 58709c2845eSStanimir Varbanov #define HFI_CAPABILITY_BITRATE 0x08 58809c2845eSStanimir Varbanov #define HFI_CAPABILITY_BFRAME 0x09 58909c2845eSStanimir Varbanov #define HFI_CAPABILITY_PEAKBITRATE 0x0a 59009c2845eSStanimir Varbanov #define HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS 0x10 59109c2845eSStanimir Varbanov #define HFI_CAPABILITY_ENC_LTR_COUNT 0x11 59209c2845eSStanimir Varbanov #define HFI_CAPABILITY_CP_OUTPUT2_THRESH 0x12 59309c2845eSStanimir Varbanov #define HFI_CAPABILITY_HIER_B_NUM_ENH_LAYERS 0x13 59409c2845eSStanimir Varbanov #define HFI_CAPABILITY_LCU_SIZE 0x14 59509c2845eSStanimir Varbanov #define HFI_CAPABILITY_HIER_P_HYBRID_NUM_ENH_LAYERS 0x15 59609c2845eSStanimir Varbanov #define HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE 0x16 597c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_I_FRAME_QP 0x20 598c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_P_FRAME_QP 0x21 599c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_B_FRAME_QP 0x22 600c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_RATE_CONTROL_MODES 0x23 601c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_BLUR_WIDTH 0x24 602c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_BLUR_HEIGHT 0x25 603c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_SLICE_BYTE 0x27 604c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_SLICE_MB 0x28 6054ebf9693SAniket Masule #define HFI_CAPABILITY_MAX_VIDEOCORES 0x2b 606c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_MAX_WORKMODES 0x2c 607c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_ROTATION 0x2f 608c7f50ce5SStanimir Varbanov #define HFI_CAPABILITY_COLOR_SPACE_CONVERSION 0x30 60909c2845eSStanimir Varbanov 61009c2845eSStanimir Varbanov struct hfi_capability { 61109c2845eSStanimir Varbanov u32 capability_type; 61209c2845eSStanimir Varbanov u32 min; 61309c2845eSStanimir Varbanov u32 max; 61409c2845eSStanimir Varbanov u32 step_size; 61509c2845eSStanimir Varbanov }; 61609c2845eSStanimir Varbanov 61709c2845eSStanimir Varbanov struct hfi_capabilities { 61809c2845eSStanimir Varbanov u32 num_capabilities; 619a200c721SStanimir Varbanov struct hfi_capability data[]; 62009c2845eSStanimir Varbanov }; 62109c2845eSStanimir Varbanov 62209c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_LOW 0x01 62309c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_MEDIUM 0x02 62409c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_HIGH 0x04 62509c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_ERROR 0x08 62609c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_FATAL 0x10 62709c2845eSStanimir Varbanov #define HFI_DEBUG_MSG_PERF 0x20 62809c2845eSStanimir Varbanov 62909c2845eSStanimir Varbanov #define HFI_DEBUG_MODE_QUEUE 0x01 63009c2845eSStanimir Varbanov #define HFI_DEBUG_MODE_QDSS 0x02 63109c2845eSStanimir Varbanov 63209c2845eSStanimir Varbanov struct hfi_debug_config { 63309c2845eSStanimir Varbanov u32 config; 63409c2845eSStanimir Varbanov u32 mode; 63509c2845eSStanimir Varbanov }; 63609c2845eSStanimir Varbanov 637b228cf38SVikash Garodia struct hfi_ubwc_config { 638b228cf38SVikash Garodia u32 size; 639b228cf38SVikash Garodia u32 packet_type; 640b228cf38SVikash Garodia struct { 641b228cf38SVikash Garodia u32 max_channel_override : 1; 642b228cf38SVikash Garodia u32 mal_length_override : 1; 643b228cf38SVikash Garodia u32 hb_override : 1; 644b228cf38SVikash Garodia u32 bank_swzl_level_override : 1; 645b228cf38SVikash Garodia u32 bank_spreading_override : 1; 646b228cf38SVikash Garodia u32 reserved : 27; 647b228cf38SVikash Garodia } override_bit_info; 648b228cf38SVikash Garodia u32 max_channels; 649b228cf38SVikash Garodia u32 mal_length; 650b228cf38SVikash Garodia u32 highest_bank_bit; 651b228cf38SVikash Garodia u32 bank_swzl_level; 652b228cf38SVikash Garodia u32 bank_spreading; 653b228cf38SVikash Garodia u32 reserved[2]; 654b228cf38SVikash Garodia }; 655b228cf38SVikash Garodia 65609c2845eSStanimir Varbanov struct hfi_enable { 65709c2845eSStanimir Varbanov u32 enable; 65809c2845eSStanimir Varbanov }; 65909c2845eSStanimir Varbanov 66009c2845eSStanimir Varbanov #define HFI_H264_DB_MODE_DISABLE 0x1 66109c2845eSStanimir Varbanov #define HFI_H264_DB_MODE_SKIP_SLICE_BOUNDARY 0x2 66209c2845eSStanimir Varbanov #define HFI_H264_DB_MODE_ALL_BOUNDARY 0x3 66309c2845eSStanimir Varbanov 66409c2845eSStanimir Varbanov struct hfi_h264_db_control { 66509c2845eSStanimir Varbanov u32 mode; 666f7d12feaSLoic Poulain s32 slice_alpha_offset; 667f7d12feaSLoic Poulain s32 slice_beta_offset; 66809c2845eSStanimir Varbanov }; 66909c2845eSStanimir Varbanov 67009c2845eSStanimir Varbanov #define HFI_H264_ENTROPY_CAVLC 0x1 67109c2845eSStanimir Varbanov #define HFI_H264_ENTROPY_CABAC 0x2 67209c2845eSStanimir Varbanov 67309c2845eSStanimir Varbanov #define HFI_H264_CABAC_MODEL_0 0x1 67409c2845eSStanimir Varbanov #define HFI_H264_CABAC_MODEL_1 0x2 67509c2845eSStanimir Varbanov #define HFI_H264_CABAC_MODEL_2 0x3 67609c2845eSStanimir Varbanov 67709c2845eSStanimir Varbanov struct hfi_h264_entropy_control { 67809c2845eSStanimir Varbanov u32 entropy_mode; 67909c2845eSStanimir Varbanov u32 cabac_model; 68009c2845eSStanimir Varbanov }; 68109c2845eSStanimir Varbanov 68209c2845eSStanimir Varbanov struct hfi_framerate { 68309c2845eSStanimir Varbanov u32 buffer_type; 68409c2845eSStanimir Varbanov u32 framerate; 68509c2845eSStanimir Varbanov }; 68609c2845eSStanimir Varbanov 68709c2845eSStanimir Varbanov #define HFI_INTRA_REFRESH_NONE 0x1 68809c2845eSStanimir Varbanov #define HFI_INTRA_REFRESH_CYCLIC 0x2 68909c2845eSStanimir Varbanov #define HFI_INTRA_REFRESH_ADAPTIVE 0x3 69009c2845eSStanimir Varbanov #define HFI_INTRA_REFRESH_CYCLIC_ADAPTIVE 0x4 69109c2845eSStanimir Varbanov #define HFI_INTRA_REFRESH_RANDOM 0x5 69209c2845eSStanimir Varbanov 69309c2845eSStanimir Varbanov struct hfi_intra_refresh { 69409c2845eSStanimir Varbanov u32 mode; 69509c2845eSStanimir Varbanov u32 air_mbs; 69609c2845eSStanimir Varbanov u32 air_ref; 69709c2845eSStanimir Varbanov u32 cir_mbs; 69809c2845eSStanimir Varbanov }; 69909c2845eSStanimir Varbanov 70009c2845eSStanimir Varbanov struct hfi_intra_refresh_3x { 70109c2845eSStanimir Varbanov u32 mode; 70209c2845eSStanimir Varbanov u32 mbs; 70309c2845eSStanimir Varbanov }; 70409c2845eSStanimir Varbanov 70509c2845eSStanimir Varbanov struct hfi_idr_period { 70609c2845eSStanimir Varbanov u32 idr_period; 70709c2845eSStanimir Varbanov }; 70809c2845eSStanimir Varbanov 70909c2845eSStanimir Varbanov struct hfi_operations_type { 71009c2845eSStanimir Varbanov u32 rotation; 71109c2845eSStanimir Varbanov u32 flip; 71209c2845eSStanimir Varbanov }; 71309c2845eSStanimir Varbanov 71409c2845eSStanimir Varbanov struct hfi_max_num_b_frames { 71509c2845eSStanimir Varbanov u32 max_num_b_frames; 71609c2845eSStanimir Varbanov }; 71709c2845eSStanimir Varbanov 71809c2845eSStanimir Varbanov struct hfi_vc1e_perf_cfg_type { 71909c2845eSStanimir Varbanov u32 search_range_x_subsampled[3]; 72009c2845eSStanimir Varbanov u32 search_range_y_subsampled[3]; 72109c2845eSStanimir Varbanov }; 72209c2845eSStanimir Varbanov 7234ef6039fSStanimir Varbanov /* 7244ef6039fSStanimir Varbanov * 0 - 7bit -> Luma (def: 16) 7254ef6039fSStanimir Varbanov * 8 - 15bit -> Chroma (def: 128) 7264ef6039fSStanimir Varbanov * format is valid up to v4 7274ef6039fSStanimir Varbanov */ 72809c2845eSStanimir Varbanov struct hfi_conceal_color { 72909c2845eSStanimir Varbanov u32 conceal_color; 73009c2845eSStanimir Varbanov }; 73109c2845eSStanimir Varbanov 7324ef6039fSStanimir Varbanov struct hfi_conceal_color_v4 { 7334ef6039fSStanimir Varbanov u32 conceal_color_8bit; 7344ef6039fSStanimir Varbanov u32 conceal_color_10bit; 7354ef6039fSStanimir Varbanov }; 7364ef6039fSStanimir Varbanov 73709c2845eSStanimir Varbanov struct hfi_intra_period { 73809c2845eSStanimir Varbanov u32 pframes; 73909c2845eSStanimir Varbanov u32 bframes; 74009c2845eSStanimir Varbanov }; 74109c2845eSStanimir Varbanov 74209c2845eSStanimir Varbanov struct hfi_mpeg4_header_extension { 74309c2845eSStanimir Varbanov u32 header_extension; 74409c2845eSStanimir Varbanov }; 74509c2845eSStanimir Varbanov 74609c2845eSStanimir Varbanov struct hfi_mpeg4_time_resolution { 74709c2845eSStanimir Varbanov u32 time_increment_resolution; 74809c2845eSStanimir Varbanov }; 74909c2845eSStanimir Varbanov 75009c2845eSStanimir Varbanov struct hfi_multi_stream { 75109c2845eSStanimir Varbanov u32 buffer_type; 75209c2845eSStanimir Varbanov u32 enable; 75309c2845eSStanimir Varbanov u32 width; 75409c2845eSStanimir Varbanov u32 height; 75509c2845eSStanimir Varbanov }; 75609c2845eSStanimir Varbanov 75709c2845eSStanimir Varbanov struct hfi_multi_stream_3x { 75809c2845eSStanimir Varbanov u32 buffer_type; 75909c2845eSStanimir Varbanov u32 enable; 76009c2845eSStanimir Varbanov }; 76109c2845eSStanimir Varbanov 76209c2845eSStanimir Varbanov struct hfi_multi_view_format { 76309c2845eSStanimir Varbanov u32 views; 76409c2845eSStanimir Varbanov u32 view_order[1]; 76509c2845eSStanimir Varbanov }; 76609c2845eSStanimir Varbanov 76709c2845eSStanimir Varbanov #define HFI_MULTI_SLICE_OFF 0x1 76809c2845eSStanimir Varbanov #define HFI_MULTI_SLICE_BY_MB_COUNT 0x2 76909c2845eSStanimir Varbanov #define HFI_MULTI_SLICE_BY_BYTE_COUNT 0x3 77009c2845eSStanimir Varbanov #define HFI_MULTI_SLICE_GOB 0x4 77109c2845eSStanimir Varbanov 77209c2845eSStanimir Varbanov struct hfi_multi_slice_control { 77309c2845eSStanimir Varbanov u32 multi_slice; 77409c2845eSStanimir Varbanov u32 slice_size; 77509c2845eSStanimir Varbanov }; 77609c2845eSStanimir Varbanov 77709c2845eSStanimir Varbanov #define HFI_NAL_FORMAT_STARTCODES 0x01 77809c2845eSStanimir Varbanov #define HFI_NAL_FORMAT_ONE_NAL_PER_BUFFER 0x02 77909c2845eSStanimir Varbanov #define HFI_NAL_FORMAT_ONE_BYTE_LENGTH 0x04 78009c2845eSStanimir Varbanov #define HFI_NAL_FORMAT_TWO_BYTE_LENGTH 0x08 78109c2845eSStanimir Varbanov #define HFI_NAL_FORMAT_FOUR_BYTE_LENGTH 0x10 78209c2845eSStanimir Varbanov 78309c2845eSStanimir Varbanov struct hfi_nal_stream_format { 78409c2845eSStanimir Varbanov u32 format; 78509c2845eSStanimir Varbanov }; 78609c2845eSStanimir Varbanov 78709c2845eSStanimir Varbanov struct hfi_nal_stream_format_select { 78809c2845eSStanimir Varbanov u32 format; 78909c2845eSStanimir Varbanov }; 79009c2845eSStanimir Varbanov 79109c2845eSStanimir Varbanov #define HFI_PICTURE_TYPE_I 0x01 79209c2845eSStanimir Varbanov #define HFI_PICTURE_TYPE_P 0x02 79309c2845eSStanimir Varbanov #define HFI_PICTURE_TYPE_B 0x04 79409c2845eSStanimir Varbanov #define HFI_PICTURE_TYPE_IDR 0x08 79509c2845eSStanimir Varbanov 79609c2845eSStanimir Varbanov struct hfi_profile_level { 79709c2845eSStanimir Varbanov u32 profile; 79809c2845eSStanimir Varbanov u32 level; 79909c2845eSStanimir Varbanov }; 80009c2845eSStanimir Varbanov 80109c2845eSStanimir Varbanov #define HFI_MAX_PROFILE_COUNT 16 80209c2845eSStanimir Varbanov 80309c2845eSStanimir Varbanov struct hfi_profile_level_supported { 80409c2845eSStanimir Varbanov u32 profile_count; 805a200c721SStanimir Varbanov struct hfi_profile_level profile_level[]; 80609c2845eSStanimir Varbanov }; 80709c2845eSStanimir Varbanov 80809c2845eSStanimir Varbanov struct hfi_quality_vs_speed { 80909c2845eSStanimir Varbanov u32 quality_vs_speed; 81009c2845eSStanimir Varbanov }; 81109c2845eSStanimir Varbanov 81269ff4b2cSStanimir Varbanov struct hfi_heic_frame_quality { 81369ff4b2cSStanimir Varbanov u32 frame_quality; 81469ff4b2cSStanimir Varbanov u32 reserved[3]; 81569ff4b2cSStanimir Varbanov }; 81669ff4b2cSStanimir Varbanov 81709c2845eSStanimir Varbanov struct hfi_quantization { 81809c2845eSStanimir Varbanov u32 qp_i; 81909c2845eSStanimir Varbanov u32 qp_p; 82009c2845eSStanimir Varbanov u32 qp_b; 82109c2845eSStanimir Varbanov u32 layer_id; 82209c2845eSStanimir Varbanov }; 82309c2845eSStanimir Varbanov 82409c2845eSStanimir Varbanov struct hfi_initial_quantization { 82509c2845eSStanimir Varbanov u32 qp_i; 82609c2845eSStanimir Varbanov u32 qp_p; 82709c2845eSStanimir Varbanov u32 qp_b; 82809c2845eSStanimir Varbanov u32 init_qp_enable; 82909c2845eSStanimir Varbanov }; 83009c2845eSStanimir Varbanov 83109c2845eSStanimir Varbanov struct hfi_quantization_range { 83209c2845eSStanimir Varbanov u32 min_qp; 83309c2845eSStanimir Varbanov u32 max_qp; 83409c2845eSStanimir Varbanov u32 layer_id; 83509c2845eSStanimir Varbanov }; 83609c2845eSStanimir Varbanov 83790655e2eSViswanath Boma struct hfi_quantization_v2 { 83890655e2eSViswanath Boma u32 qp_packed; 83990655e2eSViswanath Boma u32 layer_id; 84090655e2eSViswanath Boma u32 enable; 84190655e2eSViswanath Boma u32 reserved[3]; 84290655e2eSViswanath Boma }; 84390655e2eSViswanath Boma 84490655e2eSViswanath Boma struct hfi_quantization_range_v2 { 84590655e2eSViswanath Boma struct hfi_quantization_v2 min_qp; 84690655e2eSViswanath Boma struct hfi_quantization_v2 max_qp; 84790655e2eSViswanath Boma u32 reserved[4]; 84890655e2eSViswanath Boma }; 84990655e2eSViswanath Boma 85009c2845eSStanimir Varbanov #define HFI_LTR_MODE_DISABLE 0x0 85109c2845eSStanimir Varbanov #define HFI_LTR_MODE_MANUAL 0x1 85209c2845eSStanimir Varbanov #define HFI_LTR_MODE_PERIODIC 0x2 85309c2845eSStanimir Varbanov 85409c2845eSStanimir Varbanov struct hfi_ltr_mode { 85509c2845eSStanimir Varbanov u32 ltr_mode; 85609c2845eSStanimir Varbanov u32 ltr_count; 85709c2845eSStanimir Varbanov u32 trust_mode; 85809c2845eSStanimir Varbanov }; 85909c2845eSStanimir Varbanov 86009c2845eSStanimir Varbanov struct hfi_ltr_use { 86109c2845eSStanimir Varbanov u32 ref_ltr; 86209c2845eSStanimir Varbanov u32 use_constrnt; 86309c2845eSStanimir Varbanov u32 frames; 86409c2845eSStanimir Varbanov }; 86509c2845eSStanimir Varbanov 86609c2845eSStanimir Varbanov struct hfi_ltr_mark { 86709c2845eSStanimir Varbanov u32 mark_frame; 86809c2845eSStanimir Varbanov }; 86909c2845eSStanimir Varbanov 8709172652dSStanimir Varbanov struct hfi_mastering_display_colour_sei_payload { 8719172652dSStanimir Varbanov u32 display_primaries_x[3]; 8729172652dSStanimir Varbanov u32 display_primaries_y[3]; 8739172652dSStanimir Varbanov u32 white_point_x; 8749172652dSStanimir Varbanov u32 white_point_y; 8759172652dSStanimir Varbanov u32 max_display_mastering_luminance; 8769172652dSStanimir Varbanov u32 min_display_mastering_luminance; 8779172652dSStanimir Varbanov }; 8789172652dSStanimir Varbanov 8799172652dSStanimir Varbanov struct hfi_content_light_level_sei_payload { 8809172652dSStanimir Varbanov u32 max_content_light; 8819172652dSStanimir Varbanov u32 max_pic_average_light; 8829172652dSStanimir Varbanov }; 8839172652dSStanimir Varbanov 8849172652dSStanimir Varbanov struct hfi_hdr10_pq_sei { 8859172652dSStanimir Varbanov struct hfi_mastering_display_colour_sei_payload mastering; 8869172652dSStanimir Varbanov struct hfi_content_light_level_sei_payload cll; 8879172652dSStanimir Varbanov }; 8889172652dSStanimir Varbanov 88909c2845eSStanimir Varbanov struct hfi_framesize { 89009c2845eSStanimir Varbanov u32 buffer_type; 89109c2845eSStanimir Varbanov u32 width; 89209c2845eSStanimir Varbanov u32 height; 89309c2845eSStanimir Varbanov }; 89409c2845eSStanimir Varbanov 8953cfe5815SDikshita Agarwal #define HFI_VENC_PERFMODE_MAX_QUALITY 0x1 8963cfe5815SDikshita Agarwal #define HFI_VENC_PERFMODE_POWER_SAVE 0x2 8973cfe5815SDikshita Agarwal 8983cfe5815SDikshita Agarwal struct hfi_perf_mode { 8993cfe5815SDikshita Agarwal u32 video_perf_mode; 9003cfe5815SDikshita Agarwal }; 9013cfe5815SDikshita Agarwal 902f04997bdSStanimir Varbanov #define VIDC_CORE_ID_DEFAULT 0 903f04997bdSStanimir Varbanov #define VIDC_CORE_ID_1 1 904f04997bdSStanimir Varbanov #define VIDC_CORE_ID_2 2 905f04997bdSStanimir Varbanov #define VIDC_CORE_ID_3 3 906f04997bdSStanimir Varbanov 907f04997bdSStanimir Varbanov struct hfi_videocores_usage_type { 908f04997bdSStanimir Varbanov u32 video_core_enable_mask; 909f04997bdSStanimir Varbanov }; 910f04997bdSStanimir Varbanov 911f04997bdSStanimir Varbanov #define VIDC_WORK_MODE_1 1 912f04997bdSStanimir Varbanov #define VIDC_WORK_MODE_2 2 913f04997bdSStanimir Varbanov 914f04997bdSStanimir Varbanov struct hfi_video_work_mode { 915f04997bdSStanimir Varbanov u32 video_work_mode; 916f04997bdSStanimir Varbanov }; 917f04997bdSStanimir Varbanov 9186483a8cbSDikshita Agarwal struct hfi_video_work_route { 9196483a8cbSDikshita Agarwal u32 video_work_route; 9206483a8cbSDikshita Agarwal }; 9216483a8cbSDikshita Agarwal 92209c2845eSStanimir Varbanov struct hfi_h264_vui_timing_info { 92309c2845eSStanimir Varbanov u32 enable; 92409c2845eSStanimir Varbanov u32 fixed_framerate; 92509c2845eSStanimir Varbanov u32 time_scale; 92609c2845eSStanimir Varbanov }; 92709c2845eSStanimir Varbanov 928ab1eda44SAniket Masule #define VIDC_BITDEPTH_8 0x00000 929ab1eda44SAniket Masule #define VIDC_BITDEPTH_10 0x20002 930ab1eda44SAniket Masule 9319eb2146eSStanimir Varbanov struct hfi_bit_depth { 9329eb2146eSStanimir Varbanov u32 buffer_type; 9339eb2146eSStanimir Varbanov u32 bit_depth; 9349eb2146eSStanimir Varbanov }; 9359eb2146eSStanimir Varbanov 9369eb2146eSStanimir Varbanov struct hfi_picture_type { 9379eb2146eSStanimir Varbanov u32 is_sync_frame; 9389eb2146eSStanimir Varbanov u32 picture_type; 9399eb2146eSStanimir Varbanov }; 9409eb2146eSStanimir Varbanov 9419eb2146eSStanimir Varbanov struct hfi_pic_struct { 9429eb2146eSStanimir Varbanov u32 progressive_only; 9439eb2146eSStanimir Varbanov }; 9449eb2146eSStanimir Varbanov 9459eb2146eSStanimir Varbanov struct hfi_colour_space { 9469eb2146eSStanimir Varbanov u32 colour_space; 9479eb2146eSStanimir Varbanov }; 9489eb2146eSStanimir Varbanov 9499eb2146eSStanimir Varbanov struct hfi_extradata_input_crop { 9509eb2146eSStanimir Varbanov u32 size; 9519eb2146eSStanimir Varbanov u32 version; 9529eb2146eSStanimir Varbanov u32 port_index; 9539eb2146eSStanimir Varbanov u32 left; 9549eb2146eSStanimir Varbanov u32 top; 9559eb2146eSStanimir Varbanov u32 width; 9569eb2146eSStanimir Varbanov u32 height; 9579eb2146eSStanimir Varbanov }; 9589eb2146eSStanimir Varbanov 95916545aa3SDikshita Agarwal struct hfi_dpb_counts { 96016545aa3SDikshita Agarwal u32 max_dpb_count; 96116545aa3SDikshita Agarwal u32 max_ref_frames; 96216545aa3SDikshita Agarwal u32 max_dec_buffering; 96316545aa3SDikshita Agarwal u32 max_reorder_frames; 96416545aa3SDikshita Agarwal u32 fw_min_cnt; 96516545aa3SDikshita Agarwal }; 96616545aa3SDikshita Agarwal 96709c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_MONOCHROME 0x01 96809c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_NV12 0x02 96909c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_NV21 0x03 97009c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_NV12_4x4TILE 0x04 97109c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_NV21_4x4TILE 0x05 97209c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_YUYV 0x06 97309c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_YVYU 0x07 97409c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_UYVY 0x08 97509c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_VYUY 0x09 97609c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_RGB565 0x0a 97709c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_BGR565 0x0b 97809c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_RGB888 0x0c 97909c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_BGR888 0x0d 98009c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_YUV444 0x0e 98109c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_RGBA8888 0x10 98209c2845eSStanimir Varbanov 98309c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_UBWC_BASE 0x8000 98409c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_10_BIT_BASE 0x4000 98509c2845eSStanimir Varbanov 98609c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_YUV420_TP10 0x4002 987ab1eda44SAniket Masule #define HFI_COLOR_FORMAT_P010 0x4003 98809c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_NV12_UBWC 0x8002 98909c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_YUV420_TP10_UBWC 0xc002 990ab1eda44SAniket Masule #define HFI_COLOR_FORMAT_P010_UBWC 0xc003 99109c2845eSStanimir Varbanov #define HFI_COLOR_FORMAT_RGBA8888_UBWC 0x8010 99209c2845eSStanimir Varbanov 99309c2845eSStanimir Varbanov struct hfi_uncompressed_format_select { 99409c2845eSStanimir Varbanov u32 buffer_type; 99509c2845eSStanimir Varbanov u32 format; 99609c2845eSStanimir Varbanov }; 99709c2845eSStanimir Varbanov 9981a73374aSStanimir Varbanov struct hfi_uncompressed_plane_constraints { 9991a73374aSStanimir Varbanov u32 stride_multiples; 10001a73374aSStanimir Varbanov u32 max_stride; 10011a73374aSStanimir Varbanov u32 min_plane_buffer_height_multiple; 10021a73374aSStanimir Varbanov u32 buffer_alignment; 10031a73374aSStanimir Varbanov }; 10041a73374aSStanimir Varbanov 10051a73374aSStanimir Varbanov struct hfi_uncompressed_plane_info { 10061a73374aSStanimir Varbanov u32 format; 10071a73374aSStanimir Varbanov u32 num_planes; 10081a73374aSStanimir Varbanov struct hfi_uncompressed_plane_constraints plane_constraints[1]; 10091a73374aSStanimir Varbanov }; 10101a73374aSStanimir Varbanov 101109c2845eSStanimir Varbanov struct hfi_uncompressed_format_supported { 101209c2845eSStanimir Varbanov u32 buffer_type; 101309c2845eSStanimir Varbanov u32 format_entries; 10141a73374aSStanimir Varbanov struct hfi_uncompressed_plane_info plane_info[1]; 101509c2845eSStanimir Varbanov }; 101609c2845eSStanimir Varbanov 101709c2845eSStanimir Varbanov struct hfi_uncompressed_plane_actual { 101809c2845eSStanimir Varbanov int actual_stride; 101909c2845eSStanimir Varbanov u32 actual_plane_buffer_height; 102009c2845eSStanimir Varbanov }; 102109c2845eSStanimir Varbanov 102209c2845eSStanimir Varbanov struct hfi_uncompressed_plane_actual_info { 102309c2845eSStanimir Varbanov u32 buffer_type; 102409c2845eSStanimir Varbanov u32 num_planes; 102501e869e7SDikshita Agarwal struct hfi_uncompressed_plane_actual plane_format[2]; 102609c2845eSStanimir Varbanov }; 102709c2845eSStanimir Varbanov 102809c2845eSStanimir Varbanov struct hfi_uncompressed_plane_actual_constraints_info { 102909c2845eSStanimir Varbanov u32 buffer_type; 103009c2845eSStanimir Varbanov u32 num_planes; 103101e869e7SDikshita Agarwal struct hfi_uncompressed_plane_constraints plane_format[2]; 103209c2845eSStanimir Varbanov }; 103309c2845eSStanimir Varbanov 103409c2845eSStanimir Varbanov struct hfi_codec_supported { 103509c2845eSStanimir Varbanov u32 dec_codecs; 103609c2845eSStanimir Varbanov u32 enc_codecs; 103709c2845eSStanimir Varbanov }; 103809c2845eSStanimir Varbanov 103909c2845eSStanimir Varbanov struct hfi_properties_supported { 104009c2845eSStanimir Varbanov u32 num_properties; 104109c2845eSStanimir Varbanov u32 properties[1]; 104209c2845eSStanimir Varbanov }; 104309c2845eSStanimir Varbanov 104409c2845eSStanimir Varbanov struct hfi_max_sessions_supported { 104509c2845eSStanimir Varbanov u32 max_sessions; 104609c2845eSStanimir Varbanov }; 104709c2845eSStanimir Varbanov 104809c2845eSStanimir Varbanov #define HFI_MAX_MATRIX_COEFFS 9 104909c2845eSStanimir Varbanov #define HFI_MAX_BIAS_COEFFS 3 105009c2845eSStanimir Varbanov #define HFI_MAX_LIMIT_COEFFS 6 105109c2845eSStanimir Varbanov 105209c2845eSStanimir Varbanov struct hfi_vpe_color_space_conversion { 105309c2845eSStanimir Varbanov u32 csc_matrix[HFI_MAX_MATRIX_COEFFS]; 105409c2845eSStanimir Varbanov u32 csc_bias[HFI_MAX_BIAS_COEFFS]; 105509c2845eSStanimir Varbanov u32 csc_limit[HFI_MAX_LIMIT_COEFFS]; 105609c2845eSStanimir Varbanov }; 105709c2845eSStanimir Varbanov 105809c2845eSStanimir Varbanov #define HFI_ROTATE_NONE 0x1 105909c2845eSStanimir Varbanov #define HFI_ROTATE_90 0x2 106009c2845eSStanimir Varbanov #define HFI_ROTATE_180 0x3 106109c2845eSStanimir Varbanov #define HFI_ROTATE_270 0x4 106209c2845eSStanimir Varbanov 106309c2845eSStanimir Varbanov #define HFI_FLIP_NONE 0x1 106409c2845eSStanimir Varbanov #define HFI_FLIP_HORIZONTAL 0x2 106509c2845eSStanimir Varbanov #define HFI_FLIP_VERTICAL 0x3 106609c2845eSStanimir Varbanov 106709c2845eSStanimir Varbanov struct hfi_operations { 106809c2845eSStanimir Varbanov u32 rotate; 106909c2845eSStanimir Varbanov u32 flip; 107009c2845eSStanimir Varbanov }; 107109c2845eSStanimir Varbanov 107209c2845eSStanimir Varbanov #define HFI_RESOURCE_OCMEM 0x1 107309c2845eSStanimir Varbanov 107409c2845eSStanimir Varbanov struct hfi_resource_ocmem { 107509c2845eSStanimir Varbanov u32 size; 107609c2845eSStanimir Varbanov u32 mem; 107709c2845eSStanimir Varbanov }; 107809c2845eSStanimir Varbanov 107909c2845eSStanimir Varbanov struct hfi_resource_ocmem_requirement { 108009c2845eSStanimir Varbanov u32 session_domain; 108109c2845eSStanimir Varbanov u32 width; 108209c2845eSStanimir Varbanov u32 height; 108309c2845eSStanimir Varbanov u32 size; 108409c2845eSStanimir Varbanov }; 108509c2845eSStanimir Varbanov 108609c2845eSStanimir Varbanov struct hfi_resource_ocmem_requirement_info { 108709c2845eSStanimir Varbanov u32 num_entries; 108809c2845eSStanimir Varbanov struct hfi_resource_ocmem_requirement requirements[1]; 108909c2845eSStanimir Varbanov }; 109009c2845eSStanimir Varbanov 109109c2845eSStanimir Varbanov struct hfi_property_sys_image_version_info_type { 109209c2845eSStanimir Varbanov u32 string_size; 109309c2845eSStanimir Varbanov u8 str_image_version[1]; 109409c2845eSStanimir Varbanov }; 109509c2845eSStanimir Varbanov 109609c2845eSStanimir Varbanov struct hfi_codec_mask_supported { 109709c2845eSStanimir Varbanov u32 codecs; 109809c2845eSStanimir Varbanov u32 video_domains; 109909c2845eSStanimir Varbanov }; 110009c2845eSStanimir Varbanov 110109c2845eSStanimir Varbanov struct hfi_seq_header_info { 110209c2845eSStanimir Varbanov u32 max_hader_len; 110309c2845eSStanimir Varbanov }; 110409c2845eSStanimir Varbanov 110509c2845eSStanimir Varbanov struct hfi_aspect_ratio { 110609c2845eSStanimir Varbanov u32 aspect_width; 110709c2845eSStanimir Varbanov u32 aspect_height; 110809c2845eSStanimir Varbanov }; 110909c2845eSStanimir Varbanov 111009c2845eSStanimir Varbanov #define HFI_MVC_BUFFER_LAYOUT_TOP_BOTTOM 0 111109c2845eSStanimir Varbanov #define HFI_MVC_BUFFER_LAYOUT_SIDEBYSIDE 1 111209c2845eSStanimir Varbanov #define HFI_MVC_BUFFER_LAYOUT_SEQ 2 111309c2845eSStanimir Varbanov 111409c2845eSStanimir Varbanov struct hfi_mvc_buffer_layout_descp_type { 111509c2845eSStanimir Varbanov u32 layout_type; 111609c2845eSStanimir Varbanov u32 bright_view_first; 111709c2845eSStanimir Varbanov u32 ngap; 111809c2845eSStanimir Varbanov }; 111909c2845eSStanimir Varbanov 112009c2845eSStanimir Varbanov struct hfi_scs_threshold { 112109c2845eSStanimir Varbanov u32 threshold_value; 112209c2845eSStanimir Varbanov }; 112309c2845eSStanimir Varbanov 112409c2845eSStanimir Varbanov #define HFI_TEST_SSR_SW_ERR_FATAL 0x1 112509c2845eSStanimir Varbanov #define HFI_TEST_SSR_SW_DIV_BY_ZERO 0x2 112609c2845eSStanimir Varbanov #define HFI_TEST_SSR_HW_WDOG_IRQ 0x3 112709c2845eSStanimir Varbanov 112809c2845eSStanimir Varbanov struct hfi_buffer_alloc_mode { 112909c2845eSStanimir Varbanov u32 type; 113009c2845eSStanimir Varbanov u32 mode; 113109c2845eSStanimir Varbanov }; 113209c2845eSStanimir Varbanov 113309c2845eSStanimir Varbanov struct hfi_index_extradata_config { 113409c2845eSStanimir Varbanov u32 enable; 113509c2845eSStanimir Varbanov u32 index_extra_data_id; 113609c2845eSStanimir Varbanov }; 113709c2845eSStanimir Varbanov 113809c2845eSStanimir Varbanov struct hfi_extradata_header { 113909c2845eSStanimir Varbanov u32 size; 114009c2845eSStanimir Varbanov u32 version; 114109c2845eSStanimir Varbanov u32 port_index; 114209c2845eSStanimir Varbanov u32 type; 114309c2845eSStanimir Varbanov u32 data_size; 114409c2845eSStanimir Varbanov u8 data[1]; 114509c2845eSStanimir Varbanov }; 114609c2845eSStanimir Varbanov 114709c2845eSStanimir Varbanov struct hfi_batch_info { 114809c2845eSStanimir Varbanov u32 input_batch_count; 114909c2845eSStanimir Varbanov u32 output_batch_count; 115009c2845eSStanimir Varbanov }; 115109c2845eSStanimir Varbanov 115209c2845eSStanimir Varbanov struct hfi_buffer_count_actual { 115309c2845eSStanimir Varbanov u32 type; 115409c2845eSStanimir Varbanov u32 count_actual; 115509c2845eSStanimir Varbanov }; 115609c2845eSStanimir Varbanov 1157f04997bdSStanimir Varbanov struct hfi_buffer_count_actual_4xx { 1158f04997bdSStanimir Varbanov u32 type; 1159f04997bdSStanimir Varbanov u32 count_actual; 1160f04997bdSStanimir Varbanov u32 count_min_host; 1161f04997bdSStanimir Varbanov }; 1162f04997bdSStanimir Varbanov 116309c2845eSStanimir Varbanov struct hfi_buffer_size_actual { 116409c2845eSStanimir Varbanov u32 type; 116509c2845eSStanimir Varbanov u32 size; 116609c2845eSStanimir Varbanov }; 116709c2845eSStanimir Varbanov 116809c2845eSStanimir Varbanov struct hfi_buffer_display_hold_count_actual { 116909c2845eSStanimir Varbanov u32 type; 117009c2845eSStanimir Varbanov u32 hold_count; 117109c2845eSStanimir Varbanov }; 117209c2845eSStanimir Varbanov 1173f04997bdSStanimir Varbanov /* HFI 4XX reorder the fields, use these macros */ 1174f04997bdSStanimir Varbanov #define HFI_BUFREQ_HOLD_COUNT(bufreq, ver) \ 1175f04997bdSStanimir Varbanov ((ver) == HFI_VERSION_4XX ? 0 : (bufreq)->hold_count) 1176f04997bdSStanimir Varbanov #define HFI_BUFREQ_COUNT_MIN(bufreq, ver) \ 1177f04997bdSStanimir Varbanov ((ver) == HFI_VERSION_4XX ? (bufreq)->hold_count : (bufreq)->count_min) 1178f04997bdSStanimir Varbanov #define HFI_BUFREQ_COUNT_MIN_HOST(bufreq, ver) \ 1179f04997bdSStanimir Varbanov ((ver) == HFI_VERSION_4XX ? (bufreq)->count_min : 0) 1180f04997bdSStanimir Varbanov 118109c2845eSStanimir Varbanov struct hfi_buffer_requirements { 118209c2845eSStanimir Varbanov u32 type; 118309c2845eSStanimir Varbanov u32 size; 118409c2845eSStanimir Varbanov u32 region_size; 118509c2845eSStanimir Varbanov u32 hold_count; 118609c2845eSStanimir Varbanov u32 count_min; 118709c2845eSStanimir Varbanov u32 count_actual; 118809c2845eSStanimir Varbanov u32 contiguous; 118909c2845eSStanimir Varbanov u32 alignment; 119009c2845eSStanimir Varbanov }; 119109c2845eSStanimir Varbanov 119209c2845eSStanimir Varbanov struct hfi_data_payload { 119309c2845eSStanimir Varbanov u32 size; 119409c2845eSStanimir Varbanov u8 data[1]; 119509c2845eSStanimir Varbanov }; 119609c2845eSStanimir Varbanov 119709c2845eSStanimir Varbanov struct hfi_enable_picture { 119809c2845eSStanimir Varbanov u32 picture_type; 119909c2845eSStanimir Varbanov }; 120009c2845eSStanimir Varbanov 120109c2845eSStanimir Varbanov struct hfi_display_picture_buffer_count { 120209c2845eSStanimir Varbanov int enable; 120309c2845eSStanimir Varbanov u32 count; 120409c2845eSStanimir Varbanov }; 120509c2845eSStanimir Varbanov 120609c2845eSStanimir Varbanov struct hfi_extra_data_header_config { 120709c2845eSStanimir Varbanov u32 type; 120809c2845eSStanimir Varbanov u32 buffer_type; 120909c2845eSStanimir Varbanov u32 version; 121009c2845eSStanimir Varbanov u32 port_index; 121109c2845eSStanimir Varbanov u32 client_extra_data_id; 121209c2845eSStanimir Varbanov }; 121309c2845eSStanimir Varbanov 121409c2845eSStanimir Varbanov struct hfi_interlace_format_supported { 121509c2845eSStanimir Varbanov u32 buffer_type; 121609c2845eSStanimir Varbanov u32 format; 121709c2845eSStanimir Varbanov }; 121809c2845eSStanimir Varbanov 121909c2845eSStanimir Varbanov struct hfi_buffer_alloc_mode_supported { 122009c2845eSStanimir Varbanov u32 buffer_type; 122109c2845eSStanimir Varbanov u32 num_entries; 122209c2845eSStanimir Varbanov u32 data[1]; 122309c2845eSStanimir Varbanov }; 122409c2845eSStanimir Varbanov 122509c2845eSStanimir Varbanov struct hfi_mb_error_map { 122609c2845eSStanimir Varbanov u32 error_map_size; 122709c2845eSStanimir Varbanov u8 error_map[1]; 122809c2845eSStanimir Varbanov }; 122909c2845eSStanimir Varbanov 123009c2845eSStanimir Varbanov struct hfi_metadata_pass_through { 123109c2845eSStanimir Varbanov int enable; 123209c2845eSStanimir Varbanov u32 size; 123309c2845eSStanimir Varbanov }; 123409c2845eSStanimir Varbanov 123509c2845eSStanimir Varbanov struct hfi_multi_view_select { 123609c2845eSStanimir Varbanov u32 view_index; 123709c2845eSStanimir Varbanov }; 123809c2845eSStanimir Varbanov 123909c2845eSStanimir Varbanov struct hfi_hybrid_hierp { 124009c2845eSStanimir Varbanov u32 layers; 124109c2845eSStanimir Varbanov }; 124209c2845eSStanimir Varbanov 124309c2845eSStanimir Varbanov struct hfi_pkt_hdr { 124409c2845eSStanimir Varbanov u32 size; 124509c2845eSStanimir Varbanov u32 pkt_type; 124609c2845eSStanimir Varbanov }; 124709c2845eSStanimir Varbanov 124809c2845eSStanimir Varbanov struct hfi_session_hdr_pkt { 124909c2845eSStanimir Varbanov struct hfi_pkt_hdr hdr; 125009c2845eSStanimir Varbanov u32 session_id; 125109c2845eSStanimir Varbanov }; 125209c2845eSStanimir Varbanov 125309c2845eSStanimir Varbanov struct hfi_session_pkt { 125409c2845eSStanimir Varbanov struct hfi_session_hdr_pkt shdr; 125509c2845eSStanimir Varbanov }; 125609c2845eSStanimir Varbanov 125709c2845eSStanimir Varbanov #endif 1258