xref: /linux/drivers/media/platform/qcom/iris/iris_hfi_gen2_defines.h (revision 0cdee263bc5e7b20f657ea09f9272f50c568f35b)
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_LUMA_CHROMA_BIT_DEPTH		0x0300010f
53 #define HFI_PROP_CODED_FRAMES			0x03000120
54 #define HFI_PROP_CABAC_SESSION			0x03000121
55 #define HFI_PROP_BUFFER_HOST_MAX_COUNT		0x03000123
56 #define HFI_PROP_BUFFER_FW_MIN_OUTPUT_COUNT	0x03000124
57 #define HFI_PROP_PIC_ORDER_CNT_TYPE		0x03000128
58 #define HFI_PROP_QUALITY_MODE			0x03000148
59 #define HFI_PROP_SIGNAL_COLOR_INFO		0x03000155
60 #define HFI_PROP_PICTURE_TYPE			0x03000162
61 #define HFI_PROP_DEC_DEFAULT_HEADER		0x03000168
62 #define HFI_PROP_DEC_START_FROM_RAP_FRAME	0x03000169
63 #define HFI_PROP_NO_OUTPUT			0x0300016a
64 #define HFI_PROP_COMV_BUFFER_COUNT		0x03000193
65 #define HFI_PROP_END				0x03FFFFFF
66 
67 #define HFI_SESSION_ERROR_BEGIN			0x04000000
68 #define HFI_ERROR_UNKNOWN_SESSION		0x04000001
69 #define HFI_ERROR_MAX_SESSIONS			0x04000002
70 #define HFI_ERROR_FATAL				0x04000003
71 #define HFI_ERROR_INVALID_STATE			0x04000004
72 #define HFI_ERROR_INSUFFICIENT_RESOURCES	0x04000005
73 #define HFI_ERROR_BUFFER_NOT_SET		0x04000006
74 #define HFI_ERROR_STREAM_UNSUPPORTED		0x04000008
75 #define HFI_SESSION_ERROR_END			0x04FFFFFF
76 
77 #define HFI_SYSTEM_ERROR_BEGIN			0x05000000
78 #define HFI_SYS_ERROR_WD_TIMEOUT		0x05000001
79 #define HFI_SYSTEM_ERROR_END			0x05FFFFFF
80 
81 #define HFI_INFORMATION_BEGIN			0x06000000
82 #define HFI_INFO_UNSUPPORTED			0x06000001
83 #define HFI_INFO_DATA_CORRUPT			0x06000002
84 #define HFI_INFO_BUFFER_OVERFLOW		0x06000004
85 #define HFI_INFO_HFI_FLAG_DRAIN_LAST		0x06000006
86 #define HFI_INFO_HFI_FLAG_PSC_LAST		0x06000007
87 #define HFI_INFORMATION_END			0x06FFFFFF
88 
89 enum hfi_property_mode_type {
90 	HFI_MODE_PORT_SETTINGS_CHANGE		= 0x00000001,
91 	HFI_MODE_PROPERTY			= 0x00000002,
92 };
93 
94 enum hfi_color_format {
95 	HFI_COLOR_FMT_OPAQUE			= 0,
96 	HFI_COLOR_FMT_NV12			= 1,
97 	HFI_COLOR_FMT_NV12_UBWC			= 2,
98 	HFI_COLOR_FMT_P010			= 3,
99 	HFI_COLOR_FMT_TP10_UBWC			= 4,
100 	HFI_COLOR_FMT_RGBA8888			= 5,
101 	HFI_COLOR_FMT_RGBA8888_UBWC		= 6,
102 	HFI_COLOR_FMT_NV21			= 7,
103 };
104 
105 enum hfi_codec_type {
106 	HFI_CODEC_DECODE_AVC			= 1,
107 	HFI_CODEC_ENCODE_AVC			= 2,
108 	HFI_CODEC_DECODE_HEVC			= 3,
109 	HFI_CODEC_ENCODE_HEVC			= 4,
110 	HFI_CODEC_DECODE_VP9			= 5,
111 };
112 
113 enum hfi_picture_type {
114 	HFI_PICTURE_IDR				= 0x00000001,
115 	HFI_PICTURE_P				= 0x00000002,
116 	HFI_PICTURE_B				= 0x00000004,
117 	HFI_PICTURE_I				= 0x00000008,
118 	HFI_PICTURE_CRA				= 0x00000010,
119 	HFI_PICTURE_BLA				= 0x00000020,
120 	HFI_PICTURE_NOSHOW			= 0x00000040,
121 };
122 
123 enum hfi_buffer_type {
124 	HFI_BUFFER_BITSTREAM			= 0x00000001,
125 	HFI_BUFFER_RAW				= 0x00000002,
126 	HFI_BUFFER_METADATA			= 0x00000003,
127 	HFI_BUFFER_SUBCACHE			= 0x00000004,
128 	HFI_BUFFER_PARTIAL_DATA			= 0x00000005,
129 	HFI_BUFFER_DPB				= 0x00000006,
130 	HFI_BUFFER_BIN				= 0x00000007,
131 	HFI_BUFFER_LINE				= 0x00000008,
132 	HFI_BUFFER_ARP				= 0x00000009,
133 	HFI_BUFFER_COMV				= 0x0000000A,
134 	HFI_BUFFER_NON_COMV			= 0x0000000B,
135 	HFI_BUFFER_PERSIST			= 0x0000000C,
136 	HFI_BUFFER_VPSS				= 0x0000000D,
137 };
138 
139 enum hfi_buffer_host_flags {
140 	HFI_BUF_HOST_FLAG_RELEASE		= 0x00000001,
141 	HFI_BUF_HOST_FLAG_READONLY		= 0x00000010,
142 	HFI_BUF_HOST_FLAG_CODEC_CONFIG		= 0x00000100,
143 	HFI_BUF_HOST_FLAGS_CB_NON_SECURE	= 0x00000200,
144 };
145 
146 enum hfi_buffer_firmware_flags {
147 	HFI_BUF_FW_FLAG_RELEASE_DONE		= 0x00000001,
148 	HFI_BUF_FW_FLAG_READONLY		= 0x00000010,
149 	HFI_BUF_FW_FLAG_LAST			= 0x10000000,
150 	HFI_BUF_FW_FLAG_PSC_LAST		= 0x20000000,
151 };
152 
153 enum hfi_packet_firmware_flags {
154 	HFI_FW_FLAGS_SUCCESS			= 0x00000001,
155 	HFI_FW_FLAGS_INFORMATION		= 0x00000002,
156 	HFI_FW_FLAGS_SESSION_ERROR		= 0x00000004,
157 	HFI_FW_FLAGS_SYSTEM_ERROR		= 0x00000008,
158 };
159 
160 struct hfi_debug_header {
161 	u32 size;
162 	u32 debug_level;
163 	u32 reserved[2];
164 };
165 
166 #endif
167