brintos

brintos / linux-shallow public Read only

0
0
Text · 35.7 KiB · f44059f Raw
1303 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.4 * Copyright (C) 2017 Linaro Ltd.5 */6#ifndef __VENUS_HFI_HELPER_H__7#define __VENUS_HFI_HELPER_H__8 9#define HFI_DOMAIN_BASE_COMMON				010 11#define HFI_DOMAIN_BASE_VDEC				0x100000012#define HFI_DOMAIN_BASE_VENC				0x200000013#define HFI_DOMAIN_BASE_VPE				0x300000014 15#define HFI_VIDEO_ARCH_OX				0x116 17#define HFI_ARCH_COMMON_OFFSET				018#define HFI_ARCH_OX_OFFSET				0x20000019 20#define HFI_OX_BASE					0x100000021 22#define HFI_CMD_START_OFFSET				0x1000023#define HFI_MSG_START_OFFSET				0x2000024 25#define HFI_ERR_NONE					0x026#define HFI_ERR_SYS_FATAL				0x127#define HFI_ERR_SYS_INVALID_PARAMETER			0x228#define HFI_ERR_SYS_VERSION_MISMATCH			0x329#define HFI_ERR_SYS_INSUFFICIENT_RESOURCES		0x430#define HFI_ERR_SYS_MAX_SESSIONS_REACHED		0x531#define HFI_ERR_SYS_UNSUPPORTED_CODEC			0x632#define HFI_ERR_SYS_SESSION_IN_USE			0x733#define HFI_ERR_SYS_SESSION_ID_OUT_OF_RANGE		0x834#define HFI_ERR_SYS_UNSUPPORTED_DOMAIN			0x935 36#define HFI_ERR_SESSION_FATAL				0x100137#define HFI_ERR_SESSION_INVALID_PARAMETER		0x100238#define HFI_ERR_SESSION_BAD_POINTER			0x100339#define HFI_ERR_SESSION_INVALID_SESSION_ID		0x100440#define HFI_ERR_SESSION_INVALID_STREAM_ID		0x100541#define HFI_ERR_SESSION_INCORRECT_STATE_OPERATION	0x100642#define HFI_ERR_SESSION_UNSUPPORTED_PROPERTY		0x100743#define HFI_ERR_SESSION_UNSUPPORTED_SETTING		0x100844#define HFI_ERR_SESSION_INSUFFICIENT_RESOURCES		0x100945#define HFI_ERR_SESSION_STREAM_CORRUPT_OUTPUT_STALLED	0x100a46#define HFI_ERR_SESSION_STREAM_CORRUPT			0x100b47#define HFI_ERR_SESSION_ENC_OVERFLOW			0x100c48#define HFI_ERR_SESSION_UNSUPPORTED_STREAM		0x100d49#define HFI_ERR_SESSION_CMDSIZE				0x100e50#define HFI_ERR_SESSION_UNSUPPORT_CMD			0x100f51#define HFI_ERR_SESSION_UNSUPPORT_BUFFERTYPE		0x101052#define HFI_ERR_SESSION_BUFFERCOUNT_TOOSMALL		0x101153#define HFI_ERR_SESSION_INVALID_SCALE_FACTOR		0x101254#define HFI_ERR_SESSION_UPSCALE_NOT_SUPPORTED		0x101355 56#define HFI_EVENT_SYS_ERROR				0x157#define HFI_EVENT_SESSION_ERROR				0x258 59#define HFI_EVENT_DATA_SEQUENCE_CHANGED_SUFFICIENT_BUF_RESOURCES   0x100000160#define HFI_EVENT_DATA_SEQUENCE_CHANGED_INSUFFICIENT_BUF_RESOURCES 0x100000261#define HFI_EVENT_SESSION_SEQUENCE_CHANGED			   0x100000362#define HFI_EVENT_SESSION_PROPERTY_CHANGED			   0x100000463#define HFI_EVENT_SESSION_LTRUSE_FAILED				   0x100000564#define HFI_EVENT_RELEASE_BUFFER_REFERENCE			   0x100000665 66#define HFI_BUFFERFLAG_EOS				0x0000000167#define HFI_BUFFERFLAG_STARTTIME			0x0000000268#define HFI_BUFFERFLAG_DECODEONLY			0x0000000469#define HFI_BUFFERFLAG_DATACORRUPT			0x0000000870#define HFI_BUFFERFLAG_ENDOFFRAME			0x0000001071#define HFI_BUFFERFLAG_SYNCFRAME			0x0000002072#define HFI_BUFFERFLAG_EXTRADATA			0x0000004073#define HFI_BUFFERFLAG_CODECCONFIG			0x0000008074#define HFI_BUFFERFLAG_TIMESTAMPINVALID			0x0000010075#define HFI_BUFFERFLAG_READONLY				0x0000020076#define HFI_BUFFERFLAG_ENDOFSUBFRAME			0x0000040077#define HFI_BUFFERFLAG_EOSEQ				0x0020000078#define HFI_BUFFERFLAG_MBAFF				0x0800000079#define HFI_BUFFERFLAG_VPE_YUV_601_709_CSC_CLAMP	0x1000000080#define HFI_BUFFERFLAG_DROP_FRAME			0x2000000081#define HFI_BUFFERFLAG_TEI				0x4000000082#define HFI_BUFFERFLAG_DISCONTINUITY			0x8000000083 84#define HFI_ERR_SESSION_EMPTY_BUFFER_DONE_OUTPUT_PENDING	0x100100185#define HFI_ERR_SESSION_SAME_STATE_OPERATION			0x100100286#define HFI_ERR_SESSION_SYNC_FRAME_NOT_DETECTED			0x100100387#define HFI_ERR_SESSION_START_CODE_NOT_FOUND			0x100100488 89#define HFI_FLUSH_INPUT					0x100000190#define HFI_FLUSH_OUTPUT				0x100000291#define HFI_FLUSH_OUTPUT2				0x100000392#define HFI_FLUSH_ALL					0x100000493 94#define HFI_EXTRADATA_NONE				0x0000000095#define HFI_EXTRADATA_MB_QUANTIZATION			0x0000000196#define HFI_EXTRADATA_INTERLACE_VIDEO			0x0000000297#define HFI_EXTRADATA_VC1_FRAMEDISP			0x0000000398#define HFI_EXTRADATA_VC1_SEQDISP			0x0000000499#define HFI_EXTRADATA_TIMESTAMP				0x00000005100#define HFI_EXTRADATA_S3D_FRAME_PACKING			0x00000006101#define HFI_EXTRADATA_FRAME_RATE			0x00000007102#define HFI_EXTRADATA_PANSCAN_WINDOW			0x00000008103#define HFI_EXTRADATA_RECOVERY_POINT_SEI		0x00000009104#define HFI_EXTRADATA_MPEG2_SEQDISP			0x0000000d105#define HFI_EXTRADATA_STREAM_USERDATA			0x0000000e106#define HFI_EXTRADATA_FRAME_QP				0x0000000f107#define HFI_EXTRADATA_FRAME_BITS_INFO			0x00000010108#define HFI_EXTRADATA_MULTISLICE_INFO			0x7f100000109#define HFI_EXTRADATA_NUM_CONCEALED_MB			0x7f100001110#define HFI_EXTRADATA_INDEX				0x7f100002111#define HFI_EXTRADATA_METADATA_LTR			0x7f100004112#define HFI_EXTRADATA_METADATA_FILLER			0x7fe00002113 114#define HFI_INDEX_EXTRADATA_INPUT_CROP			0x0700000e115#define HFI_INDEX_EXTRADATA_OUTPUT_CROP			0x0700000f116#define HFI_INDEX_EXTRADATA_DIGITAL_ZOOM		0x07000010117#define HFI_INDEX_EXTRADATA_ASPECT_RATIO		0x7f100003118 119#define HFI_INTERLACE_FRAME_PROGRESSIVE			0x01120#define HFI_INTERLACE_INTERLEAVE_FRAME_TOPFIELDFIRST	0x02121#define HFI_INTERLACE_INTERLEAVE_FRAME_BOTTOMFIELDFIRST	0x04122#define HFI_INTERLACE_FRAME_TOPFIELDFIRST		0x08123#define HFI_INTERLACE_FRAME_BOTTOMFIELDFIRST		0x10124 125/*126 * HFI_PROPERTY_PARAM_OX_START127 * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x1000128 */129#define HFI_PROPERTY_PARAM_BUFFER_COUNT_ACTUAL				0x201001130#define HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_CONSTRAINTS_INFO	0x201002131#define HFI_PROPERTY_PARAM_INTERLACE_FORMAT_SUPPORTED			0x201003132#define HFI_PROPERTY_PARAM_CHROMA_SITE					0x201004133#define HFI_PROPERTY_PARAM_EXTRA_DATA_HEADER_CONFIG			0x201005134#define HFI_PROPERTY_PARAM_INDEX_EXTRADATA				0x201006135#define HFI_PROPERTY_PARAM_DIVX_FORMAT					0x201007136#define HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE				0x201008137#define HFI_PROPERTY_PARAM_S3D_FRAME_PACKING_EXTRADATA			0x201009138#define HFI_PROPERTY_PARAM_ERR_DETECTION_CODE_EXTRADATA			0x20100a139#define HFI_PROPERTY_PARAM_BUFFER_ALLOC_MODE_SUPPORTED			0x20100b140#define HFI_PROPERTY_PARAM_BUFFER_SIZE_ACTUAL				0x20100c141#define HFI_PROPERTY_PARAM_BUFFER_DISPLAY_HOLD_COUNT_ACTUAL		0x20100d142 143/*144 * HFI_PROPERTY_CONFIG_OX_START145 * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_OX_OFFSET + 0x2000146 */147#define HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS		0x202001148#define HFI_PROPERTY_CONFIG_REALTIME			0x202002149#define HFI_PROPERTY_CONFIG_PRIORITY			0x202003150#define HFI_PROPERTY_CONFIG_BATCH_INFO			0x202004151 152/*153 * HFI_PROPERTY_PARAM_VDEC_OX_START	\154 * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x3000155 */156#define HFI_PROPERTY_PARAM_VDEC_CONTINUE_DATA_TRANSFER		0x1203001157#define HFI_PROPERTY_PARAM_VDEC_DISPLAY_PICTURE_BUFFER_COUNT	0x1203002158#define HFI_PROPERTY_PARAM_VDEC_MULTI_VIEW_SELECT		0x1203003159#define HFI_PROPERTY_PARAM_VDEC_PICTURE_TYPE_DECODE		0x1203004160#define HFI_PROPERTY_PARAM_VDEC_OUTPUT_ORDER			0x1203005161#define HFI_PROPERTY_PARAM_VDEC_MB_QUANTIZATION			0x1203006162#define HFI_PROPERTY_PARAM_VDEC_NUM_CONCEALED_MB		0x1203007163#define HFI_PROPERTY_PARAM_VDEC_H264_ENTROPY_SWITCHING		0x1203008164#define HFI_PROPERTY_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO	0x1203009165#define HFI_PROPERTY_PARAM_VDEC_FRAME_RATE_EXTRADATA		0x120300a166#define HFI_PROPERTY_PARAM_VDEC_PANSCAN_WNDW_EXTRADATA		0x120300b167#define HFI_PROPERTY_PARAM_VDEC_RECOVERY_POINT_SEI_EXTRADATA	0x120300c168#define HFI_PROPERTY_PARAM_VDEC_THUMBNAIL_MODE			0x120300d169#define HFI_PROPERTY_PARAM_VDEC_FRAME_ASSEMBLY			0x120300e170#define HFI_PROPERTY_PARAM_VDEC_DPB_COUNTS				0x120300e171#define HFI_PROPERTY_PARAM_VDEC_VC1_FRAMEDISP_EXTRADATA		0x1203011172#define HFI_PROPERTY_PARAM_VDEC_VC1_SEQDISP_EXTRADATA		0x1203012173#define HFI_PROPERTY_PARAM_VDEC_TIMESTAMP_EXTRADATA		0x1203013174#define HFI_PROPERTY_PARAM_VDEC_INTERLACE_VIDEO_EXTRADATA	0x1203014175#define HFI_PROPERTY_PARAM_VDEC_AVC_SESSION_SELECT		0x1203015176#define HFI_PROPERTY_PARAM_VDEC_MPEG2_SEQDISP_EXTRADATA		0x1203016177#define HFI_PROPERTY_PARAM_VDEC_STREAM_USERDATA_EXTRADATA	0x1203017178#define HFI_PROPERTY_PARAM_VDEC_FRAME_QP_EXTRADATA		0x1203018179#define HFI_PROPERTY_PARAM_VDEC_FRAME_BITS_INFO_EXTRADATA	0x1203019180#define HFI_PROPERTY_PARAM_VDEC_SCS_THRESHOLD			0x120301a181 182/*183 * HFI_PROPERTY_CONFIG_VDEC_OX_START184 * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_OX_OFFSET + 0x0000185 */186#define HFI_PROPERTY_CONFIG_VDEC_POST_LOOP_DEBLOCKER		0x1200001187#define HFI_PROPERTY_CONFIG_VDEC_MB_ERROR_MAP_REPORTING		0x1200002188#define HFI_PROPERTY_CONFIG_VDEC_MB_ERROR_MAP			0x1200003189 190#define HFI_PROPERTY_CONFIG_VDEC_ENTROPY			0x1204004191 192/*193 * HFI_PROPERTY_PARAM_VENC_OX_START194 * HFI_DOMAIN_BASE_VENC + HFI_ARCH_OX_OFFSET + 0x5000195 */196#define  HFI_PROPERTY_PARAM_VENC_MULTI_SLICE_INFO		0x2205001197#define  HFI_PROPERTY_PARAM_VENC_H264_IDR_S3D_FRAME_PACKING_NAL	0x2205002198#define  HFI_PROPERTY_PARAM_VENC_LTR_INFO			0x2205003199#define  HFI_PROPERTY_PARAM_VENC_MBI_DUMPING			0x2205005200 201/*202 * HFI_PROPERTY_CONFIG_VENC_OX_START203 * HFI_DOMAIN_BASE_VENC + HFI_ARCH_OX_OFFSET + 0x6000204 */205#define HFI_PROPERTY_CONFIG_VENC_FRAME_QP			0x2206001206 207/*208 * HFI_PROPERTY_PARAM_VPE_OX_START209 * HFI_DOMAIN_BASE_VPE + HFI_ARCH_OX_OFFSET + 0x7000210 */211#define HFI_PROPERTY_PARAM_VPE_COLOR_SPACE_CONVERSION		0x3207001212 213#define HFI_PROPERTY_CONFIG_VPE_OX_START	\214	(HFI_DOMAIN_BASE_VPE + HFI_ARCH_OX_OFFSET + 0x8000)215 216#define HFI_CHROMA_SITE_0			0x1000001217#define HFI_CHROMA_SITE_1			0x1000002218#define HFI_CHROMA_SITE_2			0x1000003219#define HFI_CHROMA_SITE_3			0x1000004220#define HFI_CHROMA_SITE_4			0x1000005221#define HFI_CHROMA_SITE_5			0x1000006222 223#define HFI_PRIORITY_LOW			10224#define HFI_PRIOIRTY_MEDIUM			20225#define HFI_PRIORITY_HIGH			30226 227#define HFI_OUTPUT_ORDER_DISPLAY		0x1000001228#define HFI_OUTPUT_ORDER_DECODE			0x1000002229 230#define HFI_RATE_CONTROL_OFF			0x1000001231#define HFI_RATE_CONTROL_VBR_VFR		0x1000002232#define HFI_RATE_CONTROL_VBR_CFR		0x1000003233#define HFI_RATE_CONTROL_CBR_VFR		0x1000004234#define HFI_RATE_CONTROL_CBR_CFR		0x1000005235#define HFI_RATE_CONTROL_CQ			0x1000008236 237#define HFI_VIDEO_CODEC_H264			0x00000002238#define HFI_VIDEO_CODEC_H263			0x00000004239#define HFI_VIDEO_CODEC_MPEG1			0x00000008240#define HFI_VIDEO_CODEC_MPEG2			0x00000010241#define HFI_VIDEO_CODEC_MPEG4			0x00000020242#define HFI_VIDEO_CODEC_DIVX_311		0x00000040243#define HFI_VIDEO_CODEC_DIVX			0x00000080244#define HFI_VIDEO_CODEC_VC1			0x00000100245#define HFI_VIDEO_CODEC_SPARK			0x00000200246#define HFI_VIDEO_CODEC_VP8			0x00001000247#define HFI_VIDEO_CODEC_HEVC			0x00002000248#define HFI_VIDEO_CODEC_VP9			0x00004000249#define HFI_VIDEO_CODEC_HEVC_HYBRID		0x80000000250 251#define HFI_H264_PROFILE_BASELINE		0x00000001252#define HFI_H264_PROFILE_MAIN			0x00000002253#define HFI_H264_PROFILE_HIGH			0x00000004254#define HFI_H264_PROFILE_STEREO_HIGH		0x00000008255#define HFI_H264_PROFILE_MULTIVIEW_HIGH		0x00000010256#define HFI_H264_PROFILE_CONSTRAINED_BASE	0x00000020257#define HFI_H264_PROFILE_CONSTRAINED_HIGH	0x00000040258 259#define HFI_H264_LEVEL_1			0x00000001260#define HFI_H264_LEVEL_1b			0x00000002261#define HFI_H264_LEVEL_11			0x00000004262#define HFI_H264_LEVEL_12			0x00000008263#define HFI_H264_LEVEL_13			0x00000010264#define HFI_H264_LEVEL_2			0x00000020265#define HFI_H264_LEVEL_21			0x00000040266#define HFI_H264_LEVEL_22			0x00000080267#define HFI_H264_LEVEL_3			0x00000100268#define HFI_H264_LEVEL_31			0x00000200269#define HFI_H264_LEVEL_32			0x00000400270#define HFI_H264_LEVEL_4			0x00000800271#define HFI_H264_LEVEL_41			0x00001000272#define HFI_H264_LEVEL_42			0x00002000273#define HFI_H264_LEVEL_5			0x00004000274#define HFI_H264_LEVEL_51			0x00008000275#define HFI_H264_LEVEL_52			0x00010000276 277#define HFI_H263_PROFILE_BASELINE		0x00000001278 279#define HFI_H263_LEVEL_10			0x00000001280#define HFI_H263_LEVEL_20			0x00000002281#define HFI_H263_LEVEL_30			0x00000004282#define HFI_H263_LEVEL_40			0x00000008283#define HFI_H263_LEVEL_45			0x00000010284#define HFI_H263_LEVEL_50			0x00000020285#define HFI_H263_LEVEL_60			0x00000040286#define HFI_H263_LEVEL_70			0x00000080287 288#define HFI_MPEG2_PROFILE_SIMPLE		0x00000001289#define HFI_MPEG2_PROFILE_MAIN			0x00000002290#define HFI_MPEG2_PROFILE_422			0x00000004291#define HFI_MPEG2_PROFILE_SNR			0x00000008292#define HFI_MPEG2_PROFILE_SPATIAL		0x00000010293#define HFI_MPEG2_PROFILE_HIGH			0x00000020294 295#define HFI_MPEG2_LEVEL_LL			0x00000001296#define HFI_MPEG2_LEVEL_ML			0x00000002297#define HFI_MPEG2_LEVEL_H14			0x00000004298#define HFI_MPEG2_LEVEL_HL			0x00000008299 300#define HFI_MPEG4_PROFILE_SIMPLE		0x00000001301#define HFI_MPEG4_PROFILE_ADVANCEDSIMPLE	0x00000002302 303#define HFI_MPEG4_LEVEL_0			0x00000001304#define HFI_MPEG4_LEVEL_0b			0x00000002305#define HFI_MPEG4_LEVEL_1			0x00000004306#define HFI_MPEG4_LEVEL_2			0x00000008307#define HFI_MPEG4_LEVEL_3			0x00000010308#define HFI_MPEG4_LEVEL_4			0x00000020309#define HFI_MPEG4_LEVEL_4a			0x00000040310#define HFI_MPEG4_LEVEL_5			0x00000080311#define HFI_MPEG4_LEVEL_6			0x00000100312#define HFI_MPEG4_LEVEL_7			0x00000200313#define HFI_MPEG4_LEVEL_8			0x00000400314#define HFI_MPEG4_LEVEL_9			0x00000800315#define HFI_MPEG4_LEVEL_3b			0x00001000316 317#define HFI_VC1_PROFILE_SIMPLE			0x00000001318#define HFI_VC1_PROFILE_MAIN			0x00000002319#define HFI_VC1_PROFILE_ADVANCED		0x00000004320 321#define HFI_VC1_LEVEL_LOW			0x00000001322#define HFI_VC1_LEVEL_MEDIUM			0x00000002323#define HFI_VC1_LEVEL_HIGH			0x00000004324#define HFI_VC1_LEVEL_0				0x00000008325#define HFI_VC1_LEVEL_1				0x00000010326#define HFI_VC1_LEVEL_2				0x00000020327#define HFI_VC1_LEVEL_3				0x00000040328#define HFI_VC1_LEVEL_4				0x00000080329 330#define HFI_VPX_PROFILE_SIMPLE			0x00000001331#define HFI_VPX_PROFILE_ADVANCED		0x00000002332#define HFI_VPX_PROFILE_VERSION_0		0x00000004333#define HFI_VPX_PROFILE_VERSION_1		0x00000008334#define HFI_VPX_PROFILE_VERSION_2		0x00000010335#define HFI_VPX_PROFILE_VERSION_3		0x00000020336 337#define HFI_DIVX_FORMAT_4			0x1338#define HFI_DIVX_FORMAT_5			0x2339#define HFI_DIVX_FORMAT_6			0x3340 341#define HFI_DIVX_PROFILE_QMOBILE		0x00000001342#define HFI_DIVX_PROFILE_MOBILE			0x00000002343#define HFI_DIVX_PROFILE_MT			0x00000004344#define HFI_DIVX_PROFILE_HT			0x00000008345#define HFI_DIVX_PROFILE_HD			0x00000010346 347#define HFI_HEVC_PROFILE_MAIN			0x00000001348#define HFI_HEVC_PROFILE_MAIN10			0x00000002349#define HFI_HEVC_PROFILE_MAIN_STILL_PIC		0x00000004350 351#define HFI_HEVC_LEVEL_1			0x00000001352#define HFI_HEVC_LEVEL_2			0x00000002353#define HFI_HEVC_LEVEL_21			0x00000004354#define HFI_HEVC_LEVEL_3			0x00000008355#define HFI_HEVC_LEVEL_31			0x00000010356#define HFI_HEVC_LEVEL_4			0x00000020357#define HFI_HEVC_LEVEL_41			0x00000040358#define HFI_HEVC_LEVEL_5			0x00000080359#define HFI_HEVC_LEVEL_51			0x00000100360#define HFI_HEVC_LEVEL_52			0x00000200361#define HFI_HEVC_LEVEL_6			0x00000400362#define HFI_HEVC_LEVEL_61			0x00000800363#define HFI_HEVC_LEVEL_62			0x00001000364 365#define HFI_HEVC_TIER_MAIN			0x1366#define HFI_HEVC_TIER_HIGH0			0x2367 368#define HFI_VPX_PROFILE_MAIN			0x00000001369 370#define HFI_VPX_LEVEL_VERSION_0			0x00000001371#define HFI_VPX_LEVEL_VERSION_1			0x00000002372#define HFI_VPX_LEVEL_VERSION_2			0x00000004373#define HFI_VPX_LEVEL_VERSION_3			0x00000008374 375/* VP9 Profile 0, 8-bit */376#define HFI_VP9_PROFILE_P0			0x00000001377/* VP9 Profile 2, 10-bit */378#define HFI_VP9_PROFILE_P2_10B			0x00000004379 380#define HFI_VP9_LEVEL_1				0x00000001381#define HFI_VP9_LEVEL_11			0x00000002382#define HFI_VP9_LEVEL_2				0x00000004383#define HFI_VP9_LEVEL_21			0x00000008384#define HFI_VP9_LEVEL_3				0x00000010385#define HFI_VP9_LEVEL_31			0x00000020386#define HFI_VP9_LEVEL_4				0x00000040387#define HFI_VP9_LEVEL_41			0x00000080388#define HFI_VP9_LEVEL_5				0x00000100389#define HFI_VP9_LEVEL_51			0x00000200390#define HFI_VP9_LEVEL_6				0x00000400391#define HFI_VP9_LEVEL_61			0x00000800392 393#define HFI_BUFFER_INPUT			0x1394#define HFI_BUFFER_OUTPUT			0x2395#define HFI_BUFFER_OUTPUT2			0x3396#define HFI_BUFFER_INTERNAL_PERSIST		0x4397#define HFI_BUFFER_INTERNAL_PERSIST_1		0x5398#define HFI_BUFFER_INTERNAL_SCRATCH(ver)	\399	(((ver) == HFI_VERSION_4XX ||		\400	(ver) == HFI_VERSION_6XX) ? 0x6 : 0x1000001)401#define HFI_BUFFER_INTERNAL_SCRATCH_1(ver)	\402	(((ver) == HFI_VERSION_4XX ||		\403	(ver) == HFI_VERSION_6XX) ? 0x7 : 0x1000005)404#define HFI_BUFFER_INTERNAL_SCRATCH_2(ver)	\405	(((ver) == HFI_VERSION_4XX ||		\406	(ver) == HFI_VERSION_6XX) ? 0x8 : 0x1000006)407#define HFI_BUFFER_EXTRADATA_INPUT(ver)		\408	(((ver) == HFI_VERSION_4XX) ? 0xc : 0x1000002)409#define HFI_BUFFER_EXTRADATA_OUTPUT(ver)	\410	(((ver) == HFI_VERSION_4XX) ? 0xa : 0x1000003)411#define HFI_BUFFER_EXTRADATA_OUTPUT2(ver)	\412	(((ver) == HFI_VERSION_4XX) ? 0xb : 0x1000004)413#define HFI_BUFFER_TYPE_MAX			11414 415#define HFI_BUFFER_MODE_STATIC			0x1000001416#define HFI_BUFFER_MODE_RING			0x1000002417#define HFI_BUFFER_MODE_DYNAMIC			0x1000003418 419/*420 * HFI_PROPERTY_SYS_COMMON_START421 * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x0000422 */423#define HFI_PROPERTY_SYS_DEBUG_CONFIG				0x1424#define HFI_PROPERTY_SYS_RESOURCE_OCMEM_REQUIREMENT_INFO	0x2425#define HFI_PROPERTY_SYS_CONFIG_VCODEC_CLKFREQ			0x3426#define HFI_PROPERTY_SYS_IDLE_INDICATOR				0x4427#define HFI_PROPERTY_SYS_CODEC_POWER_PLANE_CTRL			0x5428#define HFI_PROPERTY_SYS_IMAGE_VERSION				0x6429#define HFI_PROPERTY_SYS_CONFIG_COVERAGE			0x7430#define HFI_PROPERTY_SYS_UBWC_CONFIG				0x8431 432/*433 * HFI_PROPERTY_PARAM_COMMON_START434 * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x1000435 */436#define HFI_PROPERTY_PARAM_FRAME_SIZE				0x1001437#define HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_INFO	0x1002438#define HFI_PROPERTY_PARAM_UNCOMPRESSED_FORMAT_SELECT		0x1003439#define HFI_PROPERTY_PARAM_UNCOMPRESSED_FORMAT_SUPPORTED	0x1004440#define HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT		0x1005441#define HFI_PROPERTY_PARAM_PROFILE_LEVEL_SUPPORTED		0x1006442#define HFI_PROPERTY_PARAM_CAPABILITY_SUPPORTED			0x1007443#define HFI_PROPERTY_PARAM_PROPERTIES_SUPPORTED			0x1008444#define HFI_PROPERTY_PARAM_CODEC_SUPPORTED			0x1009445#define HFI_PROPERTY_PARAM_NAL_STREAM_FORMAT_SUPPORTED		0x100a446#define HFI_PROPERTY_PARAM_NAL_STREAM_FORMAT_SELECT		0x100b447#define HFI_PROPERTY_PARAM_MULTI_VIEW_FORMAT			0x100c448#define HFI_PROPERTY_PARAM_MAX_SEQUENCE_HEADER_SIZE		0x100d449#define HFI_PROPERTY_PARAM_CODEC_MASK_SUPPORTED			0x100e450#define HFI_PROPERTY_PARAM_MVC_BUFFER_LAYOUT			0x100f451#define HFI_PROPERTY_PARAM_MAX_SESSIONS_SUPPORTED		0x1010452#define HFI_PROPERTY_PARAM_WORK_MODE				0x1015453#define HFI_PROPERTY_PARAM_WORK_ROUTE				0x1017454 455/*456 * HFI_PROPERTY_CONFIG_COMMON_START457 * HFI_DOMAIN_BASE_COMMON + HFI_ARCH_COMMON_OFFSET + 0x2000458 */459#define HFI_PROPERTY_CONFIG_FRAME_RATE				0x2001460#define HFI_PROPERTY_CONFIG_VIDEOCORES_USAGE			0x2002461 462/*463 * HFI_PROPERTY_PARAM_VDEC_COMMON_START464 * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_COMMON_OFFSET + 0x3000465 */466#define HFI_PROPERTY_PARAM_VDEC_MULTI_STREAM			0x1003001467#define HFI_PROPERTY_PARAM_VDEC_CONCEAL_COLOR			0x1003002468#define HFI_PROPERTY_PARAM_VDEC_NONCP_OUTPUT2			0x1003003469#define HFI_PROPERTY_PARAM_VDEC_PIXEL_BITDEPTH			0x1003007470#define HFI_PROPERTY_PARAM_VDEC_PIC_STRUCT			0x1003009471#define HFI_PROPERTY_PARAM_VDEC_COLOUR_SPACE			0x100300a472#define HFI_PROPERTY_PARAM_VDEC_ENABLE_SUFFICIENT_SEQCHANGE_EVENT \473								0x100300b474 475/*476 * HFI_PROPERTY_CONFIG_VDEC_COMMON_START477 * HFI_DOMAIN_BASE_VDEC + HFI_ARCH_COMMON_OFFSET + 0x4000478 */479 480/*481 * HFI_PROPERTY_PARAM_VENC_COMMON_START482 * HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x5000483 */484#define HFI_PROPERTY_PARAM_VENC_SLICE_DELIVERY_MODE		0x2005001485#define HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL		0x2005002486#define HFI_PROPERTY_PARAM_VENC_H264_DEBLOCK_CONTROL		0x2005003487#define HFI_PROPERTY_PARAM_VENC_RATE_CONTROL			0x2005004488#define HFI_PROPERTY_PARAM_VENC_H264_PICORDER_CNT_TYPE		0x2005005489#define HFI_PROPERTY_PARAM_VENC_SESSION_QP			0x2005006490#define HFI_PROPERTY_PARAM_VENC_MPEG4_AC_PREDICTION		0x2005007491#define HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE		0x2005008492/*493 * Note: HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2 is494 * specific to HFI_VERSION_6XX and HFI_VERSION_4XX only495 */496#define HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2		0x2005009497#define HFI_PROPERTY_PARAM_VENC_MPEG4_TIME_RESOLUTION		0x2005009498#define HFI_PROPERTY_PARAM_VENC_MPEG4_SHORT_HEADER		0x200500a499#define HFI_PROPERTY_PARAM_VENC_MPEG4_HEADER_EXTENSION		0x200500b500#define HFI_PROPERTY_PARAM_VENC_OPEN_GOP			0x200500c501#define HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH			0x200500d502#define HFI_PROPERTY_PARAM_VENC_MULTI_SLICE_CONTROL		0x200500e503#define HFI_PROPERTY_PARAM_VENC_VBV_HRD_BUF_SIZE		0x200500f504#define HFI_PROPERTY_PARAM_VENC_QUALITY_VS_SPEED		0x2005010505#define HFI_PROPERTY_PARAM_VENC_ADVANCED			0x2005012506#define HFI_PROPERTY_PARAM_VENC_H264_SPS_ID			0x2005014507#define HFI_PROPERTY_PARAM_VENC_H264_PPS_ID			0x2005015508#define HFI_PROPERTY_PARAM_VENC_H264_GENERATE_AUDNAL		0x2005016509#define HFI_PROPERTY_PARAM_VENC_ASPECT_RATIO			0x2005017510#define HFI_PROPERTY_PARAM_VENC_NUMREF				0x2005018511#define HFI_PROPERTY_PARAM_VENC_MULTIREF_P			0x2005019512#define HFI_PROPERTY_PARAM_VENC_H264_NAL_SVC_EXT		0x200501b513#define HFI_PROPERTY_PARAM_VENC_LTRMODE				0x200501c514#define HFI_PROPERTY_PARAM_VENC_VIDEO_FULL_RANGE		0x200501d515#define HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO		0x200501e516#define HFI_PROPERTY_PARAM_VENC_VC1_PERF_CFG			0x200501f517#define HFI_PROPERTY_PARAM_VENC_MAX_NUM_B_FRAMES		0x2005020518#define HFI_PROPERTY_PARAM_VENC_H264_VUI_BITSTREAM_RESTRC	0x2005021519#define HFI_PROPERTY_PARAM_VENC_PRESERVE_TEXT_QUALITY		0x2005023520#define HFI_PROPERTY_PARAM_VENC_H264_TRANSFORM_8X8			0x2005025521#define HFI_PROPERTY_PARAM_VENC_HIER_P_MAX_NUM_ENH_LAYER	0x2005026522#define HFI_PROPERTY_PARAM_VENC_DISABLE_RC_TIMESTAMP		0x2005027523#define HFI_PROPERTY_PARAM_VENC_INITIAL_QP			0x2005028524#define HFI_PROPERTY_PARAM_VENC_VPX_ERROR_RESILIENCE_MODE	0x2005029525#define HFI_PROPERTY_PARAM_VENC_HIER_B_MAX_NUM_ENH_LAYER	0x200502c526#define HFI_PROPERTY_PARAM_VENC_HIER_P_HYBRID_MODE		0x200502f527#define HFI_PROPERTY_PARAM_VENC_HDR10_PQ_SEI			0x2005036528 529/*530 * HFI_PROPERTY_CONFIG_VENC_COMMON_START531 * HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000532 */533#define HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE			0x2006001534#define HFI_PROPERTY_CONFIG_VENC_IDR_PERIOD			0x2006002535#define HFI_PROPERTY_CONFIG_VENC_INTRA_PERIOD			0x2006003536#define HFI_PROPERTY_CONFIG_VENC_REQUEST_SYNC_FRAME		0x2006004537#define HFI_PROPERTY_CONFIG_VENC_SLICE_SIZE			0x2006005538#define HFI_PROPERTY_CONFIG_VENC_MAX_BITRATE			0x2006007539#define HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER	0x2006008540#define HFI_PROPERTY_CONFIG_VENC_MARKLTRFRAME			0x2006009541#define HFI_PROPERTY_CONFIG_VENC_USELTRFRAME			0x200600a542#define HFI_PROPERTY_CONFIG_VENC_HIER_P_ENH_LAYER		0x200600b543#define HFI_PROPERTY_CONFIG_VENC_LTRPERIOD			0x200600c544#define HFI_PROPERTY_CONFIG_VENC_PERF_MODE			0x200600e545#define HFI_PROPERTY_CONFIG_HEIC_FRAME_QUALITY			0x2006014546 547/*548 * HFI_PROPERTY_PARAM_VPE_COMMON_START549 * HFI_DOMAIN_BASE_VPE + HFI_ARCH_COMMON_OFFSET + 0x7000550 */551 552/*553 * HFI_PROPERTY_CONFIG_VPE_COMMON_START554 * HFI_DOMAIN_BASE_VPE + HFI_ARCH_COMMON_OFFSET + 0x8000555 */556#define HFI_PROPERTY_CONFIG_VPE_DEINTERLACE			0x3008001557#define HFI_PROPERTY_CONFIG_VPE_OPERATIONS			0x3008002558 559enum hfi_version {560	HFI_VERSION_1XX,561	HFI_VERSION_3XX,562	HFI_VERSION_4XX,563	HFI_VERSION_6XX,564};565 566struct hfi_buffer_info {567	u32 buffer_addr;568	u32 extradata_addr;569};570 571struct hfi_bitrate {572	u32 bitrate;573	u32 layer_id;574};575 576struct hfi_h264_8x8_transform {577	u32 enable_type;578};579 580#define HFI_CAPABILITY_FRAME_WIDTH			0x01581#define HFI_CAPABILITY_FRAME_HEIGHT			0x02582#define HFI_CAPABILITY_MBS_PER_FRAME			0x03583#define HFI_CAPABILITY_MBS_PER_SECOND			0x04584#define HFI_CAPABILITY_FRAMERATE			0x05585#define HFI_CAPABILITY_SCALE_X				0x06586#define HFI_CAPABILITY_SCALE_Y				0x07587#define HFI_CAPABILITY_BITRATE				0x08588#define HFI_CAPABILITY_BFRAME				0x09589#define HFI_CAPABILITY_PEAKBITRATE			0x0a590#define HFI_CAPABILITY_HIER_P_NUM_ENH_LAYERS		0x10591#define HFI_CAPABILITY_ENC_LTR_COUNT			0x11592#define HFI_CAPABILITY_CP_OUTPUT2_THRESH		0x12593#define HFI_CAPABILITY_HIER_B_NUM_ENH_LAYERS		0x13594#define HFI_CAPABILITY_LCU_SIZE				0x14595#define HFI_CAPABILITY_HIER_P_HYBRID_NUM_ENH_LAYERS	0x15596#define HFI_CAPABILITY_MBS_PER_SECOND_POWERSAVE		0x16597#define HFI_CAPABILITY_I_FRAME_QP			0x20598#define HFI_CAPABILITY_P_FRAME_QP			0x21599#define HFI_CAPABILITY_B_FRAME_QP			0x22600#define HFI_CAPABILITY_RATE_CONTROL_MODES		0x23601#define HFI_CAPABILITY_BLUR_WIDTH			0x24602#define HFI_CAPABILITY_BLUR_HEIGHT			0x25603#define HFI_CAPABILITY_SLICE_BYTE			0x27604#define HFI_CAPABILITY_SLICE_MB				0x28605#define HFI_CAPABILITY_MAX_VIDEOCORES			0x2b606#define HFI_CAPABILITY_MAX_WORKMODES			0x2c607#define HFI_CAPABILITY_ROTATION				0x2f608#define HFI_CAPABILITY_COLOR_SPACE_CONVERSION		0x30609 610struct hfi_capability {611	u32 capability_type;612	u32 min;613	u32 max;614	u32 step_size;615};616 617struct hfi_capabilities {618	u32 num_capabilities;619	struct hfi_capability data[];620};621 622#define HFI_DEBUG_MSG_LOW	0x01623#define HFI_DEBUG_MSG_MEDIUM	0x02624#define HFI_DEBUG_MSG_HIGH	0x04625#define HFI_DEBUG_MSG_ERROR	0x08626#define HFI_DEBUG_MSG_FATAL	0x10627#define HFI_DEBUG_MSG_PERF	0x20628 629#define HFI_DEBUG_MODE_QUEUE	0x01630#define HFI_DEBUG_MODE_QDSS	0x02631 632struct hfi_debug_config {633	u32 config;634	u32 mode;635};636 637struct hfi_ubwc_config {638	u32 size;639	u32 packet_type;640	struct {641		u32 max_channel_override : 1;642		u32 mal_length_override : 1;643		u32 hb_override : 1;644		u32 bank_swzl_level_override : 1;645		u32 bank_spreading_override : 1;646		u32 reserved : 27;647		} override_bit_info;648	u32 max_channels;649	u32 mal_length;650	u32 highest_bank_bit;651	u32 bank_swzl_level;652	u32 bank_spreading;653	u32 reserved[2];654};655 656struct hfi_enable {657	u32 enable;658};659 660#define HFI_H264_DB_MODE_DISABLE		0x1661#define HFI_H264_DB_MODE_SKIP_SLICE_BOUNDARY	0x2662#define HFI_H264_DB_MODE_ALL_BOUNDARY		0x3663 664struct hfi_h264_db_control {665	u32 mode;666	s32 slice_alpha_offset;667	s32 slice_beta_offset;668};669 670#define HFI_H264_ENTROPY_CAVLC			0x1671#define HFI_H264_ENTROPY_CABAC			0x2672 673#define HFI_H264_CABAC_MODEL_0			0x1674#define HFI_H264_CABAC_MODEL_1			0x2675#define HFI_H264_CABAC_MODEL_2			0x3676 677struct hfi_h264_entropy_control {678	u32 entropy_mode;679	u32 cabac_model;680};681 682struct hfi_framerate {683	u32 buffer_type;684	u32 framerate;685};686 687#define HFI_INTRA_REFRESH_NONE			0x1688#define HFI_INTRA_REFRESH_CYCLIC		0x2689#define HFI_INTRA_REFRESH_ADAPTIVE		0x3690#define HFI_INTRA_REFRESH_CYCLIC_ADAPTIVE	0x4691#define HFI_INTRA_REFRESH_RANDOM		0x5692 693struct hfi_intra_refresh {694	u32 mode;695	u32 air_mbs;696	u32 air_ref;697	u32 cir_mbs;698};699 700struct hfi_intra_refresh_3x {701	u32 mode;702	u32 mbs;703};704 705struct hfi_idr_period {706	u32 idr_period;707};708 709struct hfi_operations_type {710	u32 rotation;711	u32 flip;712};713 714struct hfi_max_num_b_frames {715	u32 max_num_b_frames;716};717 718struct hfi_vc1e_perf_cfg_type {719	u32 search_range_x_subsampled[3];720	u32 search_range_y_subsampled[3];721};722 723/*724 * 0 - 7bit -> Luma (def: 16)725 * 8 - 15bit -> Chroma (def: 128)726 * format is valid up to v4727 */728struct hfi_conceal_color {729	u32 conceal_color;730};731 732struct hfi_conceal_color_v4 {733	u32 conceal_color_8bit;734	u32 conceal_color_10bit;735};736 737struct hfi_intra_period {738	u32 pframes;739	u32 bframes;740};741 742struct hfi_mpeg4_header_extension {743	u32 header_extension;744};745 746struct hfi_mpeg4_time_resolution {747	u32 time_increment_resolution;748};749 750struct hfi_multi_stream {751	u32 buffer_type;752	u32 enable;753	u32 width;754	u32 height;755};756 757struct hfi_multi_stream_3x {758	u32 buffer_type;759	u32 enable;760};761 762struct hfi_multi_view_format {763	u32 views;764	u32 view_order[];765};766 767#define HFI_MULTI_SLICE_OFF			0x1768#define HFI_MULTI_SLICE_BY_MB_COUNT		0x2769#define HFI_MULTI_SLICE_BY_BYTE_COUNT		0x3770#define HFI_MULTI_SLICE_GOB			0x4771 772struct hfi_multi_slice_control {773	u32 multi_slice;774	u32 slice_size;775};776 777#define HFI_NAL_FORMAT_STARTCODES		0x01778#define HFI_NAL_FORMAT_ONE_NAL_PER_BUFFER	0x02779#define HFI_NAL_FORMAT_ONE_BYTE_LENGTH		0x04780#define HFI_NAL_FORMAT_TWO_BYTE_LENGTH		0x08781#define HFI_NAL_FORMAT_FOUR_BYTE_LENGTH		0x10782 783struct hfi_nal_stream_format {784	u32 format;785};786 787struct hfi_nal_stream_format_select {788	u32 format;789};790 791#define HFI_PICTURE_TYPE_I			0x01792#define HFI_PICTURE_TYPE_P			0x02793#define HFI_PICTURE_TYPE_B			0x04794#define HFI_PICTURE_TYPE_IDR			0x08795 796struct hfi_profile_level {797	u32 profile;798	u32 level;799};800 801#define HFI_MAX_PROFILE_COUNT			16802 803struct hfi_profile_level_supported {804	u32 profile_count;805	struct hfi_profile_level profile_level[];806};807 808struct hfi_quality_vs_speed {809	u32 quality_vs_speed;810};811 812struct hfi_heic_frame_quality {813	u32 frame_quality;814	u32 reserved[3];815};816 817struct hfi_quantization {818	u32 qp_i;819	u32 qp_p;820	u32 qp_b;821	u32 layer_id;822};823 824struct hfi_initial_quantization {825	u32 qp_i;826	u32 qp_p;827	u32 qp_b;828	u32 init_qp_enable;829};830 831struct hfi_quantization_range {832	u32 min_qp;833	u32 max_qp;834	u32 layer_id;835};836 837struct hfi_quantization_v2 {838	u32 qp_packed;839	u32 layer_id;840	u32 enable;841	u32 reserved[3];842};843 844struct hfi_quantization_range_v2 {845	struct hfi_quantization_v2 min_qp;846	struct hfi_quantization_v2 max_qp;847	u32 reserved[4];848};849 850#define HFI_LTR_MODE_DISABLE	0x0851#define HFI_LTR_MODE_MANUAL	0x1852#define HFI_LTR_MODE_PERIODIC	0x2853 854struct hfi_ltr_mode {855	u32 ltr_mode;856	u32 ltr_count;857	u32 trust_mode;858};859 860struct hfi_ltr_use {861	u32 ref_ltr;862	u32 use_constrnt;863	u32 frames;864};865 866struct hfi_ltr_mark {867	u32 mark_frame;868};869 870struct hfi_mastering_display_colour_sei_payload {871	u32 display_primaries_x[3];872	u32 display_primaries_y[3];873	u32 white_point_x;874	u32 white_point_y;875	u32 max_display_mastering_luminance;876	u32 min_display_mastering_luminance;877};878 879struct hfi_content_light_level_sei_payload {880	u32 max_content_light;881	u32 max_pic_average_light;882};883 884struct hfi_hdr10_pq_sei {885	struct hfi_mastering_display_colour_sei_payload mastering;886	struct hfi_content_light_level_sei_payload cll;887};888 889struct hfi_framesize {890	u32 buffer_type;891	u32 width;892	u32 height;893};894 895#define HFI_VENC_PERFMODE_MAX_QUALITY		0x1896#define HFI_VENC_PERFMODE_POWER_SAVE		0x2897 898struct hfi_perf_mode {899	u32 video_perf_mode;900};901 902#define VIDC_CORE_ID_DEFAULT	0903#define VIDC_CORE_ID_1		1904#define VIDC_CORE_ID_2		2905#define VIDC_CORE_ID_3		3906 907struct hfi_videocores_usage_type {908	u32 video_core_enable_mask;909};910 911#define VIDC_WORK_MODE_1	1912#define VIDC_WORK_MODE_2	2913 914struct hfi_video_work_mode {915	u32 video_work_mode;916};917 918struct hfi_video_work_route {919	u32 video_work_route;920};921 922struct hfi_h264_vui_timing_info {923	u32 enable;924	u32 fixed_framerate;925	u32 time_scale;926};927 928#define VIDC_BITDEPTH_8		0x00000929#define VIDC_BITDEPTH_10	0x20002930 931struct hfi_bit_depth {932	u32 buffer_type;933	u32 bit_depth;934};935 936struct hfi_picture_type {937	u32 is_sync_frame;938	u32 picture_type;939};940 941struct hfi_pic_struct {942	u32 progressive_only;943};944 945struct hfi_colour_space {946	u32 colour_space;947};948 949struct hfi_extradata_input_crop {950	u32 size;951	u32 version;952	u32 port_index;953	u32 left;954	u32 top;955	u32 width;956	u32 height;957};958 959struct hfi_dpb_counts {960	u32 max_dpb_count;961	u32 max_ref_frames;962	u32 max_dec_buffering;963	u32 max_reorder_frames;964	u32 fw_min_cnt;965};966 967#define HFI_COLOR_FORMAT_MONOCHROME		0x01968#define HFI_COLOR_FORMAT_NV12			0x02969#define HFI_COLOR_FORMAT_NV21			0x03970#define HFI_COLOR_FORMAT_NV12_4x4TILE		0x04971#define HFI_COLOR_FORMAT_NV21_4x4TILE		0x05972#define HFI_COLOR_FORMAT_YUYV			0x06973#define HFI_COLOR_FORMAT_YVYU			0x07974#define HFI_COLOR_FORMAT_UYVY			0x08975#define HFI_COLOR_FORMAT_VYUY			0x09976#define HFI_COLOR_FORMAT_RGB565			0x0a977#define HFI_COLOR_FORMAT_BGR565			0x0b978#define HFI_COLOR_FORMAT_RGB888			0x0c979#define HFI_COLOR_FORMAT_BGR888			0x0d980#define HFI_COLOR_FORMAT_YUV444			0x0e981#define HFI_COLOR_FORMAT_RGBA8888		0x10982 983#define HFI_COLOR_FORMAT_UBWC_BASE		0x8000984#define HFI_COLOR_FORMAT_10_BIT_BASE		0x4000985 986#define HFI_COLOR_FORMAT_YUV420_TP10		0x4002987#define HFI_COLOR_FORMAT_P010			0x4003988#define HFI_COLOR_FORMAT_NV12_UBWC		0x8002989#define HFI_COLOR_FORMAT_YUV420_TP10_UBWC	0xc002990#define HFI_COLOR_FORMAT_P010_UBWC		0xc003991#define HFI_COLOR_FORMAT_RGBA8888_UBWC		0x8010992 993struct hfi_uncompressed_format_select {994	u32 buffer_type;995	u32 format;996};997 998struct hfi_uncompressed_plane_constraints {999	u32 stride_multiples;1000	u32 max_stride;1001	u32 min_plane_buffer_height_multiple;1002	u32 buffer_alignment;1003};1004 1005struct hfi_uncompressed_plane_info {1006	u32 format;1007	u32 num_planes;1008	struct hfi_uncompressed_plane_constraints plane_constraints;1009};1010 1011struct hfi_uncompressed_format_supported {1012	u32 buffer_type;1013	u32 format_entries;1014	struct hfi_uncompressed_plane_info plane_info;1015};1016 1017struct hfi_uncompressed_plane_actual {1018	int actual_stride;1019	u32 actual_plane_buffer_height;1020};1021 1022struct hfi_uncompressed_plane_actual_info {1023	u32 buffer_type;1024	u32 num_planes;1025	struct hfi_uncompressed_plane_actual plane_format[2];1026};1027 1028struct hfi_uncompressed_plane_actual_constraints_info {1029	u32 buffer_type;1030	u32 num_planes;1031	struct hfi_uncompressed_plane_constraints plane_format[2];1032};1033 1034struct hfi_codec_supported {1035	u32 dec_codecs;1036	u32 enc_codecs;1037};1038 1039struct hfi_properties_supported {1040	u32 num_properties;1041	u32 properties[];1042};1043 1044struct hfi_max_sessions_supported {1045	u32 max_sessions;1046};1047 1048#define HFI_MAX_MATRIX_COEFFS	91049#define HFI_MAX_BIAS_COEFFS	31050#define HFI_MAX_LIMIT_COEFFS	61051 1052struct hfi_vpe_color_space_conversion {1053	u32 csc_matrix[HFI_MAX_MATRIX_COEFFS];1054	u32 csc_bias[HFI_MAX_BIAS_COEFFS];1055	u32 csc_limit[HFI_MAX_LIMIT_COEFFS];1056};1057 1058#define HFI_ROTATE_NONE		0x11059#define HFI_ROTATE_90		0x21060#define HFI_ROTATE_180		0x31061#define HFI_ROTATE_270		0x41062 1063#define HFI_FLIP_NONE		0x11064#define HFI_FLIP_HORIZONTAL	0x21065#define HFI_FLIP_VERTICAL	0x31066 1067struct hfi_operations {1068	u32 rotate;1069	u32 flip;1070};1071 1072#define HFI_RESOURCE_OCMEM	0x11073 1074struct hfi_resource_ocmem {1075	u32 size;1076	u32 mem;1077};1078 1079struct hfi_resource_ocmem_requirement {1080	u32 session_domain;1081	u32 width;1082	u32 height;1083	u32 size;1084};1085 1086struct hfi_resource_ocmem_requirement_info {1087	u32 num_entries;1088	struct hfi_resource_ocmem_requirement requirements[];1089};1090 1091struct hfi_property_sys_image_version_info_type {1092	u32 string_size;1093	u8  str_image_version[];1094};1095 1096struct hfi_codec_mask_supported {1097	u32 codecs;1098	u32 video_domains;1099};1100 1101struct hfi_seq_header_info {1102	u32 max_hader_len;1103};1104 1105struct hfi_aspect_ratio {1106	u32 aspect_width;1107	u32 aspect_height;1108};1109 1110#define HFI_MVC_BUFFER_LAYOUT_TOP_BOTTOM	01111#define HFI_MVC_BUFFER_LAYOUT_SIDEBYSIDE	11112#define HFI_MVC_BUFFER_LAYOUT_SEQ		21113 1114struct hfi_mvc_buffer_layout_descp_type {1115	u32 layout_type;1116	u32 bright_view_first;1117	u32 ngap;1118};1119 1120struct hfi_scs_threshold {1121	u32 threshold_value;1122};1123 1124#define HFI_TEST_SSR_SW_ERR_FATAL	0x11125#define HFI_TEST_SSR_SW_DIV_BY_ZERO	0x21126#define HFI_TEST_SSR_HW_WDOG_IRQ	0x31127 1128struct hfi_buffer_alloc_mode {1129	u32 type;1130	u32 mode;1131};1132 1133struct hfi_index_extradata_config {1134	u32 enable;1135	u32 index_extra_data_id;1136};1137 1138struct hfi_extradata_header {1139	u32 size;1140	u32 version;1141	u32 port_index;1142	u32 type;1143	u32 data_size;1144	u8 data[];1145};1146 1147struct hfi_batch_info {1148	u32 input_batch_count;1149	u32 output_batch_count;1150};1151 1152struct hfi_buffer_count_actual {1153	u32 type;1154	u32 count_actual;1155};1156 1157struct hfi_buffer_count_actual_4xx {1158	u32 type;1159	u32 count_actual;1160	u32 count_min_host;1161};1162 1163struct hfi_buffer_size_actual {1164	u32 type;1165	u32 size;1166};1167 1168struct hfi_buffer_display_hold_count_actual {1169	u32 type;1170	u32 hold_count;1171};1172 1173struct hfi_buffer_requirements {1174	u32 type;1175	u32 size;1176	u32 region_size;1177	u32 hold_count;1178	u32 count_min;1179	u32 count_actual;1180	u32 contiguous;1181	u32 alignment;1182};1183 1184/* On HFI 4XX, some of the struct members have been swapped. */1185static inline u32 hfi_bufreq_get_hold_count(struct hfi_buffer_requirements *req,1186					    u32 ver)1187{1188	if (ver == HFI_VERSION_4XX)1189		return 0;1190 1191	return req->hold_count;1192};1193 1194static inline u32 hfi_bufreq_get_count_min(struct hfi_buffer_requirements *req,1195					   u32 ver)1196{1197	if (ver == HFI_VERSION_4XX)1198		return req->hold_count;1199 1200	return req->count_min;1201};1202 1203static inline u32 hfi_bufreq_get_count_min_host(struct hfi_buffer_requirements *req,1204						u32 ver)1205{1206	if (ver == HFI_VERSION_4XX)1207		return req->count_min;1208 1209	return 0;1210};1211 1212static inline void hfi_bufreq_set_hold_count(struct hfi_buffer_requirements *req,1213					     u32 ver, u32 val)1214{1215	if (ver == HFI_VERSION_4XX)1216		return;1217 1218	req->hold_count = val;1219};1220 1221static inline void hfi_bufreq_set_count_min(struct hfi_buffer_requirements *req,1222					    u32 ver, u32 val)1223{1224	if (ver == HFI_VERSION_4XX)1225		req->hold_count = val;1226 1227	req->count_min = val;1228};1229 1230static inline void hfi_bufreq_set_count_min_host(struct hfi_buffer_requirements *req,1231						 u32 ver, u32 val)1232{1233	if (ver == HFI_VERSION_4XX)1234		req->count_min = val;1235};1236 1237struct hfi_data_payload {1238	u32 size;1239	u8 data[];1240};1241 1242struct hfi_enable_picture {1243	u32 picture_type;1244};1245 1246struct hfi_display_picture_buffer_count {1247	int enable;1248	u32 count;1249};1250 1251struct hfi_extra_data_header_config {1252	u32 type;1253	u32 buffer_type;1254	u32 version;1255	u32 port_index;1256	u32 client_extra_data_id;1257};1258 1259struct hfi_interlace_format_supported {1260	u32 buffer_type;1261	u32 format;1262};1263 1264struct hfi_buffer_alloc_mode_supported {1265	u32 buffer_type;1266	u32 num_entries;1267	u32 data[];1268};1269 1270struct hfi_mb_error_map {1271	u32 error_map_size;1272	u8 error_map[];1273};1274 1275struct hfi_metadata_pass_through {1276	int enable;1277	u32 size;1278};1279 1280struct hfi_multi_view_select {1281	u32 view_index;1282};1283 1284struct hfi_hybrid_hierp {1285	u32 layers;1286};1287 1288struct hfi_pkt_hdr {1289	u32 size;1290	u32 pkt_type;1291};1292 1293struct hfi_session_hdr_pkt {1294	struct hfi_pkt_hdr hdr;1295	u32 session_id;1296};1297 1298struct hfi_session_pkt {1299	struct hfi_session_hdr_pkt shdr;1300};1301 1302#endif1303