File Index
Files and directories
Sign in
FILE

iris_hfi_gen2_defines.h

File preview with syntax highlighting.

linux-6.19.14/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  4 */
  5
  6#ifndef __IRIS_HFI_GEN2_DEFINES_H__
  7#define __IRIS_HFI_GEN2_DEFINES_H__
  8
  9#include <linux/types.h>
 10
 11#define HFI_VIDEO_ARCH_LX			0x1
 12
 13#define HFI_CMD_BEGIN				0x01000000
 14#define HFI_CMD_INIT				0x01000001
 15#define HFI_CMD_POWER_COLLAPSE			0x01000002
 16#define HFI_CMD_OPEN				0x01000003
 17#define HFI_CMD_CLOSE				0x01000004
 18#define HFI_CMD_START				0x01000005
 19#define HFI_CMD_STOP				0x01000006
 20#define HFI_CMD_DRAIN				0x01000007
 21#define HFI_CMD_RESUME				0x01000008
 22#define HFI_CMD_BUFFER				0x01000009
 23#define HFI_CMD_SUBSCRIBE_MODE			0x0100000B
 24#define HFI_CMD_SETTINGS_CHANGE			0x0100000C
 25#define HFI_CMD_PAUSE				0x01000011
 26#define HFI_CMD_END				0x01FFFFFF
 27
 28#define HFI_BITMASK_BITSTREAM_WIDTH		0xffff0000
 29#define HFI_BITMASK_BITSTREAM_HEIGHT		0x0000ffff
 30#define HFI_BITMASK_FRAME_MBS_ONLY_FLAG		0x00000001
 31
 32#define HFI_PROP_BEGIN				0x03000000
 33#define HFI_PROP_IMAGE_VERSION			0x03000001
 34#define HFI_PROP_INTRA_FRAME_POWER_COLLAPSE	0x03000002
 35#define HFI_PROP_UBWC_MAX_CHANNELS		0x03000003
 36#define HFI_PROP_UBWC_MAL_LENGTH		0x03000004
 37#define HFI_PROP_UBWC_HBB			0x03000005
 38#define HFI_PROP_UBWC_BANK_SWZL_LEVEL1		0x03000006
 39#define HFI_PROP_UBWC_BANK_SWZL_LEVEL2		0x03000007
 40#define HFI_PROP_UBWC_BANK_SWZL_LEVEL3		0x03000008
 41#define HFI_PROP_UBWC_BANK_SPREADING		0x03000009
 42#define HFI_PROP_CODEC				0x03000100
 43#define HFI_PROP_COLOR_FORMAT			0x03000101
 44#define HFI_PROP_BITSTREAM_RESOLUTION		0x03000103
 45#define HFI_PROP_LINEAR_STRIDE_SCANLINE		0x03000104
 46#define HFI_PROP_CROP_OFFSETS			0x03000105
 47#define HFI_PROP_PROFILE			0x03000107
 48#define HFI_PROP_LEVEL				0x03000108
 49#define HFI_PROP_TIER				0x03000109
 50#define HFI_PROP_STAGE				0x0300010a
 51#define HFI_PROP_PIPE				0x0300010b
 52#define HFI_PROP_FRAME_RATE			0x0300010c
 53#define HFI_PROP_LUMA_CHROMA_BIT_DEPTH		0x0300010f
 54#define HFI_PROP_CODED_FRAMES			0x03000120
 55#define HFI_PROP_CABAC_SESSION			0x03000121
 56#define HFI_PROP_BUFFER_HOST_MAX_COUNT		0x03000123
 57#define HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT	0x03000124
 58#define HFI_PROP_PIC_ORDER_CNT_TYPE		0x03000128
 59
 60enum hfi_rate_control {
 61	HFI_RC_VBR_CFR		= 0x00000000,
 62	HFI_RC_CBR_CFR		= 0x00000001,
 63	HFI_RC_CQ		= 0x00000002,
 64	HFI_RC_OFF		= 0x00000003,
 65	HFI_RC_CBR_VFR		= 0x00000004,
 66	HFI_RC_LOSSLESS		= 0x00000005,
 67};
 68
 69#define HFI_PROP_RATE_CONTROL			0x0300012a
 70#define HFI_PROP_QP_PACKED			0x0300012e
 71#define HFI_PROP_MIN_QP_PACKED			0x0300012f
 72#define HFI_PROP_MAX_QP_PACKED			0x03000130
 73#define HFI_PROP_TOTAL_BITRATE			0x0300013b
 74#define HFI_PROP_MAX_GOP_FRAMES			0x03000146
 75#define HFI_PROP_MAX_B_FRAMES			0x03000147
 76#define HFI_PROP_QUALITY_MODE			0x03000148
 77
 78enum hfi_seq_header_mode {
 79	HFI_SEQ_HEADER_SEPERATE_FRAME		= 0x00000001,
 80	HFI_SEQ_HEADER_JOINED_WITH_1ST_FRAME	= 0x00000002,
 81	HFI_SEQ_HEADER_PREFIX_WITH_SYNC_FRAME	= 0x00000004,
 82	HFI_SEQ_HEADER_METADATA			= 0x00000008,
 83};
 84
 85#define HFI_PROP_SEQ_HEADER_MODE		0x03000149
 86#define HFI_PROP_SIGNAL_COLOR_INFO		0x03000155
 87#define HFI_PROP_PICTURE_TYPE			0x03000162
 88#define HFI_PROP_DEC_DEFAULT_HEADER		0x03000168
 89#define HFI_PROP_DEC_START_FROM_RAP_FRAME	0x03000169
 90#define HFI_PROP_NO_OUTPUT			0x0300016a
 91#define HFI_PROP_BUFFER_MARK			0x0300016c
 92#define HFI_PROP_RAW_RESOLUTION		0x03000178
 93#define HFI_PROP_TOTAL_PEAK_BITRATE		0x0300017C
 94#define HFI_PROP_OPB_ENABLE			0x03000184
 95#define HFI_PROP_COMV_BUFFER_COUNT		0x03000193
 96#define HFI_PROP_END				0x03FFFFFF
 97
 98#define HFI_SESSION_ERROR_BEGIN			0x04000000
 99#define HFI_ERROR_UNKNOWN_SESSION		0x04000001
100#define HFI_ERROR_MAX_SESSIONS			0x04000002
101#define HFI_ERROR_FATAL				0x04000003
102#define HFI_ERROR_INVALID_STATE			0x04000004
103#define HFI_ERROR_INSUFFICIENT_RESOURCES	0x04000005
104#define HFI_ERROR_BUFFER_NOT_SET		0x04000006
105#define HFI_ERROR_STREAM_UNSUPPORTED		0x04000008
106#define HFI_SESSION_ERROR_END			0x04FFFFFF
107
108#define HFI_SYSTEM_ERROR_BEGIN			0x05000000
109#define HFI_SYS_ERROR_WD_TIMEOUT		0x05000001
110#define HFI_SYSTEM_ERROR_END			0x05FFFFFF
111
112#define HFI_INFORMATION_BEGIN			0x06000000
113#define HFI_INFO_UNSUPPORTED			0x06000001
114#define HFI_INFO_DATA_CORRUPT			0x06000002
115#define HFI_INFO_BUFFER_OVERFLOW		0x06000004
116#define HFI_INFO_HFI_FLAG_DRAIN_LAST		0x06000006
117#define HFI_INFO_HFI_FLAG_PSC_LAST		0x06000007
118#define HFI_INFORMATION_END			0x06FFFFFF
119
120enum hfi_property_mode_type {
121	HFI_MODE_PORT_SETTINGS_CHANGE		= 0x00000001,
122	HFI_MODE_PROPERTY			= 0x00000002,
123};
124
125enum hfi_color_format {
126	HFI_COLOR_FMT_OPAQUE			= 0,
127	HFI_COLOR_FMT_NV12			= 1,
128	HFI_COLOR_FMT_NV12_UBWC			= 2,
129	HFI_COLOR_FMT_P010			= 3,
130	HFI_COLOR_FMT_TP10_UBWC			= 4,
131	HFI_COLOR_FMT_RGBA8888			= 5,
132	HFI_COLOR_FMT_RGBA8888_UBWC		= 6,
133	HFI_COLOR_FMT_NV21			= 7,
134};
135
136enum hfi_codec_type {
137	HFI_CODEC_DECODE_AVC			= 1,
138	HFI_CODEC_ENCODE_AVC			= 2,
139	HFI_CODEC_DECODE_HEVC			= 3,
140	HFI_CODEC_ENCODE_HEVC			= 4,
141	HFI_CODEC_DECODE_VP9			= 5,
142};
143
144enum hfi_picture_type {
145	HFI_GEN2_PICTURE_IDR		= 0x00000001,
146	HFI_GEN2_PICTURE_P			= 0x00000002,
147	HFI_GEN2_PICTURE_B			= 0x00000004,
148	HFI_GEN2_PICTURE_I			= 0x00000008,
149	HFI_GEN2_PICTURE_CRA		= 0x00000010,
150	HFI_GEN2_PICTURE_BLA		= 0x00000020,
151	HFI_GEN2_PICTURE_NOSHOW     = 0x00000040,
152};
153
154enum hfi_buffer_type {
155	HFI_BUFFER_BITSTREAM			= 0x00000001,
156	HFI_BUFFER_RAW				= 0x00000002,
157	HFI_BUFFER_METADATA			= 0x00000003,
158	HFI_BUFFER_SUBCACHE			= 0x00000004,
159	HFI_BUFFER_PARTIAL_DATA			= 0x00000005,
160	HFI_BUFFER_DPB				= 0x00000006,
161	HFI_BUFFER_BIN				= 0x00000007,
162	HFI_BUFFER_LINE				= 0x00000008,
163	HFI_BUFFER_ARP				= 0x00000009,
164	HFI_BUFFER_COMV				= 0x0000000A,
165	HFI_BUFFER_NON_COMV			= 0x0000000B,
166	HFI_BUFFER_PERSIST			= 0x0000000C,
167	HFI_BUFFER_VPSS				= 0x0000000D,
168};
169
170enum hfi_buffer_host_flags {
171	HFI_BUF_HOST_FLAG_RELEASE		= 0x00000001,
172	HFI_BUF_HOST_FLAG_READONLY		= 0x00000010,
173	HFI_BUF_HOST_FLAG_CODEC_CONFIG		= 0x00000100,
174	HFI_BUF_HOST_FLAGS_CB_NON_SECURE	= 0x00000200,
175};
176
177enum hfi_buffer_firmware_flags {
178	HFI_BUF_FW_FLAG_RELEASE_DONE		= 0x00000001,
179	HFI_BUF_FW_FLAG_READONLY		= 0x00000010,
180	HFI_BUF_FW_FLAG_LAST			= 0x10000000,
181	HFI_BUF_FW_FLAG_PSC_LAST		= 0x20000000,
182};
183
184enum hfi_packet_firmware_flags {
185	HFI_FW_FLAGS_SUCCESS			= 0x00000001,
186	HFI_FW_FLAGS_INFORMATION		= 0x00000002,
187	HFI_FW_FLAGS_SESSION_ERROR		= 0x00000004,
188	HFI_FW_FLAGS_SYSTEM_ERROR		= 0x00000008,
189};
190
191struct hfi_debug_header {
192	u32 size;
193	u32 debug_level;
194	u32 reserved[2];
195};
196
197#endif
~/ Read-only file preview.