freedreno: update generated headers
[mesa.git] / src / gallium / drivers / freedreno / adreno_pm4.xml.h
1 #ifndef ADRENO_PM4_XML
2 #define ADRENO_PM4_XML
3
4 /* Autogenerated file, DO NOT EDIT manually!
5
6 This file was generated by the rules-ng-ng headergen tool in this git repository:
7 http://github.com/freedreno/envytools/
8 git clone https://github.com/freedreno/envytools.git
9
10 The rules-ng-ng source files this header was generated from are:
11 - /home/robclark/src/freedreno/envytools/rnndb/adreno.xml ( 431 bytes, from 2017-04-14 19:13:31)
12 - /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1572 bytes, from 2017-04-14 19:13:31)
13 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml ( 37162 bytes, from 2017-04-14 19:14:25)
14 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml ( 12025 bytes, from 2017-04-14 19:13:31)
15 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml ( 28504 bytes, from 2017-04-21 20:00:50)
16 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml ( 83840 bytes, from 2017-04-14 19:13:31)
17 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml ( 110757 bytes, from 2017-04-14 19:13:31)
18 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml ( 103235 bytes, from 2017-04-21 13:16:50)
19 - /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2017-04-14 19:13:30)
20
21 Copyright (C) 2013-2017 by the following authors:
22 - Rob Clark <robdclark@gmail.com> (robclark)
23 - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
24
25 Permission is hereby granted, free of charge, to any person obtaining
26 a copy of this software and associated documentation files (the
27 "Software"), to deal in the Software without restriction, including
28 without limitation the rights to use, copy, modify, merge, publish,
29 distribute, sublicense, and/or sell copies of the Software, and to
30 permit persons to whom the Software is furnished to do so, subject to
31 the following conditions:
32
33 The above copyright notice and this permission notice (including the
34 next paragraph) shall be included in all copies or substantial
35 portions of the Software.
36
37 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40 IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
41 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
42 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
43 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46
47 enum vgt_event_type {
48 VS_DEALLOC = 0,
49 PS_DEALLOC = 1,
50 VS_DONE_TS = 2,
51 PS_DONE_TS = 3,
52 CACHE_FLUSH_TS = 4,
53 CONTEXT_DONE = 5,
54 CACHE_FLUSH = 6,
55 HLSQ_FLUSH = 7,
56 VIZQUERY_START = 7,
57 VIZQUERY_END = 8,
58 SC_WAIT_WC = 9,
59 RST_PIX_CNT = 13,
60 RST_VTX_CNT = 14,
61 TILE_FLUSH = 15,
62 STAT_EVENT = 16,
63 CACHE_FLUSH_AND_INV_TS_EVENT = 20,
64 ZPASS_DONE = 21,
65 CACHE_FLUSH_AND_INV_EVENT = 22,
66 PERFCOUNTER_START = 23,
67 PERFCOUNTER_STOP = 24,
68 VS_FETCH_DONE = 27,
69 FACENESS_FLUSH = 28,
70 FLUSH_SO_0 = 17,
71 FLUSH_SO_1 = 18,
72 FLUSH_SO_2 = 19,
73 FLUSH_SO_3 = 20,
74 UNK_19 = 25,
75 UNK_1C = 28,
76 UNK_1D = 29,
77 BLIT = 30,
78 UNK_25 = 37,
79 UNK_26 = 38,
80 UNK_2C = 44,
81 UNK_2D = 45,
82 };
83
84 enum pc_di_primtype {
85 DI_PT_NONE = 0,
86 DI_PT_POINTLIST_PSIZE = 1,
87 DI_PT_LINELIST = 2,
88 DI_PT_LINESTRIP = 3,
89 DI_PT_TRILIST = 4,
90 DI_PT_TRIFAN = 5,
91 DI_PT_TRISTRIP = 6,
92 DI_PT_LINELOOP = 7,
93 DI_PT_RECTLIST = 8,
94 DI_PT_POINTLIST = 9,
95 DI_PT_LINE_ADJ = 10,
96 DI_PT_LINESTRIP_ADJ = 11,
97 DI_PT_TRI_ADJ = 12,
98 DI_PT_TRISTRIP_ADJ = 13,
99 };
100
101 enum pc_di_src_sel {
102 DI_SRC_SEL_DMA = 0,
103 DI_SRC_SEL_IMMEDIATE = 1,
104 DI_SRC_SEL_AUTO_INDEX = 2,
105 DI_SRC_SEL_RESERVED = 3,
106 };
107
108 enum pc_di_index_size {
109 INDEX_SIZE_IGN = 0,
110 INDEX_SIZE_16_BIT = 0,
111 INDEX_SIZE_32_BIT = 1,
112 INDEX_SIZE_8_BIT = 2,
113 INDEX_SIZE_INVALID = 0,
114 };
115
116 enum pc_di_vis_cull_mode {
117 IGNORE_VISIBILITY = 0,
118 USE_VISIBILITY = 1,
119 };
120
121 enum adreno_pm4_packet_type {
122 CP_TYPE0_PKT = 0,
123 CP_TYPE1_PKT = 0x40000000,
124 CP_TYPE2_PKT = 0x80000000,
125 CP_TYPE3_PKT = 0xc0000000,
126 CP_TYPE4_PKT = 0x40000000,
127 CP_TYPE7_PKT = 0x70000000,
128 };
129
130 enum adreno_pm4_type3_packets {
131 CP_ME_INIT = 72,
132 CP_NOP = 16,
133 CP_PREEMPT_ENABLE = 28,
134 CP_PREEMPT_TOKEN = 30,
135 CP_INDIRECT_BUFFER = 63,
136 CP_INDIRECT_BUFFER_PFD = 55,
137 CP_WAIT_FOR_IDLE = 38,
138 CP_WAIT_REG_MEM = 60,
139 CP_WAIT_REG_EQ = 82,
140 CP_WAIT_REG_GTE = 83,
141 CP_WAIT_UNTIL_READ = 92,
142 CP_WAIT_IB_PFD_COMPLETE = 93,
143 CP_REG_RMW = 33,
144 CP_SET_BIN_DATA = 47,
145 CP_REG_TO_MEM = 62,
146 CP_MEM_WRITE = 61,
147 CP_MEM_WRITE_CNTR = 79,
148 CP_COND_EXEC = 68,
149 CP_COND_WRITE = 69,
150 CP_EVENT_WRITE = 70,
151 CP_EVENT_WRITE_SHD = 88,
152 CP_EVENT_WRITE_CFL = 89,
153 CP_EVENT_WRITE_ZPD = 91,
154 CP_RUN_OPENCL = 49,
155 CP_DRAW_INDX = 34,
156 CP_DRAW_INDX_2 = 54,
157 CP_DRAW_INDX_BIN = 52,
158 CP_DRAW_INDX_2_BIN = 53,
159 CP_VIZ_QUERY = 35,
160 CP_SET_STATE = 37,
161 CP_SET_CONSTANT = 45,
162 CP_IM_LOAD = 39,
163 CP_IM_LOAD_IMMEDIATE = 43,
164 CP_LOAD_CONSTANT_CONTEXT = 46,
165 CP_INVALIDATE_STATE = 59,
166 CP_SET_SHADER_BASES = 74,
167 CP_SET_BIN_MASK = 80,
168 CP_SET_BIN_SELECT = 81,
169 CP_CONTEXT_UPDATE = 94,
170 CP_INTERRUPT = 64,
171 CP_IM_STORE = 44,
172 CP_SET_DRAW_INIT_FLAGS = 75,
173 CP_SET_PROTECTED_MODE = 95,
174 CP_BOOTSTRAP_UCODE = 111,
175 CP_LOAD_STATE = 48,
176 CP_LOAD_STATE4 = 48,
177 CP_COND_INDIRECT_BUFFER_PFE = 58,
178 CP_COND_INDIRECT_BUFFER_PFD = 50,
179 CP_INDIRECT_BUFFER_PFE = 63,
180 CP_SET_BIN = 76,
181 CP_TEST_TWO_MEMS = 113,
182 CP_REG_WR_NO_CTXT = 120,
183 CP_RECORD_PFP_TIMESTAMP = 17,
184 CP_SET_SECURE_MODE = 102,
185 CP_WAIT_FOR_ME = 19,
186 CP_SET_DRAW_STATE = 67,
187 CP_DRAW_INDX_OFFSET = 56,
188 CP_DRAW_INDIRECT = 40,
189 CP_DRAW_INDX_INDIRECT = 41,
190 CP_DRAW_AUTO = 36,
191 CP_UNKNOWN_19 = 25,
192 CP_UNKNOWN_1A = 26,
193 CP_UNKNOWN_4E = 78,
194 CP_WIDE_REG_WRITE = 116,
195 CP_SCRATCH_TO_REG = 77,
196 CP_REG_TO_SCRATCH = 74,
197 CP_WAIT_MEM_WRITES = 18,
198 CP_COND_REG_EXEC = 71,
199 CP_MEM_TO_REG = 66,
200 CP_EXEC_CS = 51,
201 CP_PERFCOUNTER_ACTION = 80,
202 CP_SMMU_TABLE_UPDATE = 83,
203 CP_CONTEXT_REG_BUNCH = 92,
204 CP_YIELD_ENABLE = 28,
205 CP_SKIP_IB2_ENABLE_GLOBAL = 29,
206 CP_SKIP_IB2_ENABLE_LOCAL = 35,
207 CP_SET_SUBDRAW_SIZE = 53,
208 CP_SET_VISIBILITY_OVERRIDE = 100,
209 CP_PREEMPT_ENABLE_GLOBAL = 105,
210 CP_PREEMPT_ENABLE_LOCAL = 106,
211 CP_CONTEXT_SWITCH_YIELD = 107,
212 CP_SET_RENDER_MODE = 108,
213 CP_COMPUTE_CHECKPOINT = 110,
214 CP_MEM_TO_MEM = 115,
215 CP_BLIT = 44,
216 CP_UNK_39 = 57,
217 IN_IB_PREFETCH_END = 23,
218 IN_SUBBLK_PREFETCH = 31,
219 IN_INSTR_PREFETCH = 32,
220 IN_INSTR_MATCH = 71,
221 IN_CONST_PREFETCH = 73,
222 IN_INCR_UPDT_STATE = 85,
223 IN_INCR_UPDT_CONST = 86,
224 IN_INCR_UPDT_INSTR = 87,
225 };
226
227 enum adreno_state_block {
228 SB_VERT_TEX = 0,
229 SB_VERT_MIPADDR = 1,
230 SB_FRAG_TEX = 2,
231 SB_FRAG_MIPADDR = 3,
232 SB_VERT_SHADER = 4,
233 SB_GEOM_SHADER = 5,
234 SB_FRAG_SHADER = 6,
235 SB_COMPUTE_SHADER = 7,
236 };
237
238 enum adreno_state_type {
239 ST_SHADER = 0,
240 ST_CONSTANTS = 1,
241 };
242
243 enum adreno_state_src {
244 SS_DIRECT = 0,
245 SS_INVALID_ALL_IC = 2,
246 SS_INVALID_PART_IC = 3,
247 SS_INDIRECT = 4,
248 SS_INDIRECT_TCM = 5,
249 SS_INDIRECT_STM = 6,
250 };
251
252 enum a4xx_state_block {
253 SB4_VS_TEX = 0,
254 SB4_HS_TEX = 1,
255 SB4_DS_TEX = 2,
256 SB4_GS_TEX = 3,
257 SB4_FS_TEX = 4,
258 SB4_CS_TEX = 5,
259 SB4_VS_SHADER = 8,
260 SB4_HS_SHADER = 9,
261 SB4_DS_SHADER = 10,
262 SB4_GS_SHADER = 11,
263 SB4_FS_SHADER = 12,
264 SB4_CS_SHADER = 13,
265 SB4_SSBO = 14,
266 SB4_CS_SSBO = 15,
267 };
268
269 enum a4xx_state_type {
270 ST4_SHADER = 0,
271 ST4_CONSTANTS = 1,
272 };
273
274 enum a4xx_state_src {
275 SS4_DIRECT = 0,
276 SS4_INDIRECT = 2,
277 };
278
279 enum a4xx_index_size {
280 INDEX4_SIZE_8_BIT = 0,
281 INDEX4_SIZE_16_BIT = 1,
282 INDEX4_SIZE_32_BIT = 2,
283 };
284
285 enum render_mode_cmd {
286 BYPASS = 1,
287 BINNING = 2,
288 GMEM = 3,
289 BLIT2D = 5,
290 };
291
292 enum cp_blit_cmd {
293 BLIT_OP_FILL = 0,
294 BLIT_OP_COPY = 1,
295 };
296
297 #define REG_CP_LOAD_STATE_0 0x00000000
298 #define CP_LOAD_STATE_0_DST_OFF__MASK 0x0000ffff
299 #define CP_LOAD_STATE_0_DST_OFF__SHIFT 0
300 static inline uint32_t CP_LOAD_STATE_0_DST_OFF(uint32_t val)
301 {
302 return ((val) << CP_LOAD_STATE_0_DST_OFF__SHIFT) & CP_LOAD_STATE_0_DST_OFF__MASK;
303 }
304 #define CP_LOAD_STATE_0_STATE_SRC__MASK 0x00070000
305 #define CP_LOAD_STATE_0_STATE_SRC__SHIFT 16
306 static inline uint32_t CP_LOAD_STATE_0_STATE_SRC(enum adreno_state_src val)
307 {
308 return ((val) << CP_LOAD_STATE_0_STATE_SRC__SHIFT) & CP_LOAD_STATE_0_STATE_SRC__MASK;
309 }
310 #define CP_LOAD_STATE_0_STATE_BLOCK__MASK 0x00380000
311 #define CP_LOAD_STATE_0_STATE_BLOCK__SHIFT 19
312 static inline uint32_t CP_LOAD_STATE_0_STATE_BLOCK(enum adreno_state_block val)
313 {
314 return ((val) << CP_LOAD_STATE_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE_0_STATE_BLOCK__MASK;
315 }
316 #define CP_LOAD_STATE_0_NUM_UNIT__MASK 0xffc00000
317 #define CP_LOAD_STATE_0_NUM_UNIT__SHIFT 22
318 static inline uint32_t CP_LOAD_STATE_0_NUM_UNIT(uint32_t val)
319 {
320 return ((val) << CP_LOAD_STATE_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE_0_NUM_UNIT__MASK;
321 }
322
323 #define REG_CP_LOAD_STATE_1 0x00000001
324 #define CP_LOAD_STATE_1_STATE_TYPE__MASK 0x00000003
325 #define CP_LOAD_STATE_1_STATE_TYPE__SHIFT 0
326 static inline uint32_t CP_LOAD_STATE_1_STATE_TYPE(enum adreno_state_type val)
327 {
328 return ((val) << CP_LOAD_STATE_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE_1_STATE_TYPE__MASK;
329 }
330 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK 0xfffffffc
331 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT 2
332 static inline uint32_t CP_LOAD_STATE_1_EXT_SRC_ADDR(uint32_t val)
333 {
334 assert(!(val & 0x3));
335 return ((val >> 2) << CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK;
336 }
337
338 #define REG_CP_LOAD_STATE4_0 0x00000000
339 #define CP_LOAD_STATE4_0_DST_OFF__MASK 0x0000ffff
340 #define CP_LOAD_STATE4_0_DST_OFF__SHIFT 0
341 static inline uint32_t CP_LOAD_STATE4_0_DST_OFF(uint32_t val)
342 {
343 return ((val) << CP_LOAD_STATE4_0_DST_OFF__SHIFT) & CP_LOAD_STATE4_0_DST_OFF__MASK;
344 }
345 #define CP_LOAD_STATE4_0_STATE_SRC__MASK 0x00030000
346 #define CP_LOAD_STATE4_0_STATE_SRC__SHIFT 16
347 static inline uint32_t CP_LOAD_STATE4_0_STATE_SRC(enum a4xx_state_src val)
348 {
349 return ((val) << CP_LOAD_STATE4_0_STATE_SRC__SHIFT) & CP_LOAD_STATE4_0_STATE_SRC__MASK;
350 }
351 #define CP_LOAD_STATE4_0_STATE_BLOCK__MASK 0x003c0000
352 #define CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT 18
353 static inline uint32_t CP_LOAD_STATE4_0_STATE_BLOCK(enum a4xx_state_block val)
354 {
355 return ((val) << CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE4_0_STATE_BLOCK__MASK;
356 }
357 #define CP_LOAD_STATE4_0_NUM_UNIT__MASK 0xffc00000
358 #define CP_LOAD_STATE4_0_NUM_UNIT__SHIFT 22
359 static inline uint32_t CP_LOAD_STATE4_0_NUM_UNIT(uint32_t val)
360 {
361 return ((val) << CP_LOAD_STATE4_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE4_0_NUM_UNIT__MASK;
362 }
363
364 #define REG_CP_LOAD_STATE4_1 0x00000001
365 #define CP_LOAD_STATE4_1_STATE_TYPE__MASK 0x00000003
366 #define CP_LOAD_STATE4_1_STATE_TYPE__SHIFT 0
367 static inline uint32_t CP_LOAD_STATE4_1_STATE_TYPE(enum a4xx_state_type val)
368 {
369 return ((val) << CP_LOAD_STATE4_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE4_1_STATE_TYPE__MASK;
370 }
371 #define CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK 0xfffffffc
372 #define CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT 2
373 static inline uint32_t CP_LOAD_STATE4_1_EXT_SRC_ADDR(uint32_t val)
374 {
375 assert(!(val & 0x3));
376 return ((val >> 2) << CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK;
377 }
378
379 #define REG_CP_LOAD_STATE4_2 0x00000002
380 #define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK 0xffffffff
381 #define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT 0
382 static inline uint32_t CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(uint32_t val)
383 {
384 return ((val) << CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK;
385 }
386
387 #define REG_CP_DRAW_INDX_0 0x00000000
388 #define CP_DRAW_INDX_0_VIZ_QUERY__MASK 0xffffffff
389 #define CP_DRAW_INDX_0_VIZ_QUERY__SHIFT 0
390 static inline uint32_t CP_DRAW_INDX_0_VIZ_QUERY(uint32_t val)
391 {
392 return ((val) << CP_DRAW_INDX_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_0_VIZ_QUERY__MASK;
393 }
394
395 #define REG_CP_DRAW_INDX_1 0x00000001
396 #define CP_DRAW_INDX_1_PRIM_TYPE__MASK 0x0000003f
397 #define CP_DRAW_INDX_1_PRIM_TYPE__SHIFT 0
398 static inline uint32_t CP_DRAW_INDX_1_PRIM_TYPE(enum pc_di_primtype val)
399 {
400 return ((val) << CP_DRAW_INDX_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_1_PRIM_TYPE__MASK;
401 }
402 #define CP_DRAW_INDX_1_SOURCE_SELECT__MASK 0x000000c0
403 #define CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT 6
404 static inline uint32_t CP_DRAW_INDX_1_SOURCE_SELECT(enum pc_di_src_sel val)
405 {
406 return ((val) << CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_1_SOURCE_SELECT__MASK;
407 }
408 #define CP_DRAW_INDX_1_VIS_CULL__MASK 0x00000600
409 #define CP_DRAW_INDX_1_VIS_CULL__SHIFT 9
410 static inline uint32_t CP_DRAW_INDX_1_VIS_CULL(enum pc_di_vis_cull_mode val)
411 {
412 return ((val) << CP_DRAW_INDX_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_1_VIS_CULL__MASK;
413 }
414 #define CP_DRAW_INDX_1_INDEX_SIZE__MASK 0x00000800
415 #define CP_DRAW_INDX_1_INDEX_SIZE__SHIFT 11
416 static inline uint32_t CP_DRAW_INDX_1_INDEX_SIZE(enum pc_di_index_size val)
417 {
418 return ((val) << CP_DRAW_INDX_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_1_INDEX_SIZE__MASK;
419 }
420 #define CP_DRAW_INDX_1_NOT_EOP 0x00001000
421 #define CP_DRAW_INDX_1_SMALL_INDEX 0x00002000
422 #define CP_DRAW_INDX_1_PRE_DRAW_INITIATOR_ENABLE 0x00004000
423 #define CP_DRAW_INDX_1_NUM_INSTANCES__MASK 0xff000000
424 #define CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT 24
425 static inline uint32_t CP_DRAW_INDX_1_NUM_INSTANCES(uint32_t val)
426 {
427 return ((val) << CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_1_NUM_INSTANCES__MASK;
428 }
429
430 #define REG_CP_DRAW_INDX_2 0x00000002
431 #define CP_DRAW_INDX_2_NUM_INDICES__MASK 0xffffffff
432 #define CP_DRAW_INDX_2_NUM_INDICES__SHIFT 0
433 static inline uint32_t CP_DRAW_INDX_2_NUM_INDICES(uint32_t val)
434 {
435 return ((val) << CP_DRAW_INDX_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_NUM_INDICES__MASK;
436 }
437
438 #define REG_CP_DRAW_INDX_3 0x00000003
439 #define CP_DRAW_INDX_3_INDX_BASE__MASK 0xffffffff
440 #define CP_DRAW_INDX_3_INDX_BASE__SHIFT 0
441 static inline uint32_t CP_DRAW_INDX_3_INDX_BASE(uint32_t val)
442 {
443 return ((val) << CP_DRAW_INDX_3_INDX_BASE__SHIFT) & CP_DRAW_INDX_3_INDX_BASE__MASK;
444 }
445
446 #define REG_CP_DRAW_INDX_4 0x00000004
447 #define CP_DRAW_INDX_4_INDX_SIZE__MASK 0xffffffff
448 #define CP_DRAW_INDX_4_INDX_SIZE__SHIFT 0
449 static inline uint32_t CP_DRAW_INDX_4_INDX_SIZE(uint32_t val)
450 {
451 return ((val) << CP_DRAW_INDX_4_INDX_SIZE__SHIFT) & CP_DRAW_INDX_4_INDX_SIZE__MASK;
452 }
453
454 #define REG_CP_DRAW_INDX_2_0 0x00000000
455 #define CP_DRAW_INDX_2_0_VIZ_QUERY__MASK 0xffffffff
456 #define CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT 0
457 static inline uint32_t CP_DRAW_INDX_2_0_VIZ_QUERY(uint32_t val)
458 {
459 return ((val) << CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_2_0_VIZ_QUERY__MASK;
460 }
461
462 #define REG_CP_DRAW_INDX_2_1 0x00000001
463 #define CP_DRAW_INDX_2_1_PRIM_TYPE__MASK 0x0000003f
464 #define CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT 0
465 static inline uint32_t CP_DRAW_INDX_2_1_PRIM_TYPE(enum pc_di_primtype val)
466 {
467 return ((val) << CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_2_1_PRIM_TYPE__MASK;
468 }
469 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK 0x000000c0
470 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT 6
471 static inline uint32_t CP_DRAW_INDX_2_1_SOURCE_SELECT(enum pc_di_src_sel val)
472 {
473 return ((val) << CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK;
474 }
475 #define CP_DRAW_INDX_2_1_VIS_CULL__MASK 0x00000600
476 #define CP_DRAW_INDX_2_1_VIS_CULL__SHIFT 9
477 static inline uint32_t CP_DRAW_INDX_2_1_VIS_CULL(enum pc_di_vis_cull_mode val)
478 {
479 return ((val) << CP_DRAW_INDX_2_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_2_1_VIS_CULL__MASK;
480 }
481 #define CP_DRAW_INDX_2_1_INDEX_SIZE__MASK 0x00000800
482 #define CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT 11
483 static inline uint32_t CP_DRAW_INDX_2_1_INDEX_SIZE(enum pc_di_index_size val)
484 {
485 return ((val) << CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_2_1_INDEX_SIZE__MASK;
486 }
487 #define CP_DRAW_INDX_2_1_NOT_EOP 0x00001000
488 #define CP_DRAW_INDX_2_1_SMALL_INDEX 0x00002000
489 #define CP_DRAW_INDX_2_1_PRE_DRAW_INITIATOR_ENABLE 0x00004000
490 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK 0xff000000
491 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT 24
492 static inline uint32_t CP_DRAW_INDX_2_1_NUM_INSTANCES(uint32_t val)
493 {
494 return ((val) << CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK;
495 }
496
497 #define REG_CP_DRAW_INDX_2_2 0x00000002
498 #define CP_DRAW_INDX_2_2_NUM_INDICES__MASK 0xffffffff
499 #define CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT 0
500 static inline uint32_t CP_DRAW_INDX_2_2_NUM_INDICES(uint32_t val)
501 {
502 return ((val) << CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_2_NUM_INDICES__MASK;
503 }
504
505 #define REG_CP_DRAW_INDX_OFFSET_0 0x00000000
506 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK 0x0000003f
507 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT 0
508 static inline uint32_t CP_DRAW_INDX_OFFSET_0_PRIM_TYPE(enum pc_di_primtype val)
509 {
510 return ((val) << CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK;
511 }
512 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK 0x000000c0
513 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT 6
514 static inline uint32_t CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT(enum pc_di_src_sel val)
515 {
516 return ((val) << CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK;
517 }
518 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK 0x00000300
519 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT 8
520 static inline uint32_t CP_DRAW_INDX_OFFSET_0_VIS_CULL(enum pc_di_vis_cull_mode val)
521 {
522 return ((val) << CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT) & CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK;
523 }
524 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK 0x00000c00
525 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT 10
526 static inline uint32_t CP_DRAW_INDX_OFFSET_0_INDEX_SIZE(enum a4xx_index_size val)
527 {
528 return ((val) << CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK;
529 }
530 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK 0x01f00000
531 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT 20
532 static inline uint32_t CP_DRAW_INDX_OFFSET_0_TESS_MODE(uint32_t val)
533 {
534 return ((val) << CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK;
535 }
536
537 #define REG_CP_DRAW_INDX_OFFSET_1 0x00000001
538 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK 0xffffffff
539 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT 0
540 static inline uint32_t CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES(uint32_t val)
541 {
542 return ((val) << CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK;
543 }
544
545 #define REG_CP_DRAW_INDX_OFFSET_2 0x00000002
546 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK 0xffffffff
547 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT 0
548 static inline uint32_t CP_DRAW_INDX_OFFSET_2_NUM_INDICES(uint32_t val)
549 {
550 return ((val) << CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK;
551 }
552
553 #define REG_CP_DRAW_INDX_OFFSET_3 0x00000003
554
555 #define REG_CP_DRAW_INDX_OFFSET_4 0x00000004
556 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK 0xffffffff
557 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT 0
558 static inline uint32_t CP_DRAW_INDX_OFFSET_4_INDX_BASE(uint32_t val)
559 {
560 return ((val) << CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT) & CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK;
561 }
562
563 #define REG_CP_DRAW_INDX_OFFSET_5 0x00000005
564 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK 0xffffffff
565 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT 0
566 static inline uint32_t CP_DRAW_INDX_OFFSET_5_INDX_SIZE(uint32_t val)
567 {
568 return ((val) << CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK;
569 }
570
571 static inline uint32_t REG_CP_SET_DRAW_STATE_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
572
573 static inline uint32_t REG_CP_SET_DRAW_STATE__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
574 #define CP_SET_DRAW_STATE__0_COUNT__MASK 0x0000ffff
575 #define CP_SET_DRAW_STATE__0_COUNT__SHIFT 0
576 static inline uint32_t CP_SET_DRAW_STATE__0_COUNT(uint32_t val)
577 {
578 return ((val) << CP_SET_DRAW_STATE__0_COUNT__SHIFT) & CP_SET_DRAW_STATE__0_COUNT__MASK;
579 }
580 #define CP_SET_DRAW_STATE__0_DIRTY 0x00010000
581 #define CP_SET_DRAW_STATE__0_DISABLE 0x00020000
582 #define CP_SET_DRAW_STATE__0_DISABLE_ALL_GROUPS 0x00040000
583 #define CP_SET_DRAW_STATE__0_LOAD_IMMED 0x00080000
584 #define CP_SET_DRAW_STATE__0_GROUP_ID__MASK 0x1f000000
585 #define CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT 24
586 static inline uint32_t CP_SET_DRAW_STATE__0_GROUP_ID(uint32_t val)
587 {
588 return ((val) << CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT) & CP_SET_DRAW_STATE__0_GROUP_ID__MASK;
589 }
590
591 static inline uint32_t REG_CP_SET_DRAW_STATE__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
592 #define CP_SET_DRAW_STATE__1_ADDR_LO__MASK 0xffffffff
593 #define CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT 0
594 static inline uint32_t CP_SET_DRAW_STATE__1_ADDR_LO(uint32_t val)
595 {
596 return ((val) << CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT) & CP_SET_DRAW_STATE__1_ADDR_LO__MASK;
597 }
598
599 static inline uint32_t REG_CP_SET_DRAW_STATE__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
600 #define CP_SET_DRAW_STATE__2_ADDR_HI__MASK 0xffffffff
601 #define CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT 0
602 static inline uint32_t CP_SET_DRAW_STATE__2_ADDR_HI(uint32_t val)
603 {
604 return ((val) << CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT) & CP_SET_DRAW_STATE__2_ADDR_HI__MASK;
605 }
606
607 #define REG_CP_SET_BIN_0 0x00000000
608
609 #define REG_CP_SET_BIN_1 0x00000001
610 #define CP_SET_BIN_1_X1__MASK 0x0000ffff
611 #define CP_SET_BIN_1_X1__SHIFT 0
612 static inline uint32_t CP_SET_BIN_1_X1(uint32_t val)
613 {
614 return ((val) << CP_SET_BIN_1_X1__SHIFT) & CP_SET_BIN_1_X1__MASK;
615 }
616 #define CP_SET_BIN_1_Y1__MASK 0xffff0000
617 #define CP_SET_BIN_1_Y1__SHIFT 16
618 static inline uint32_t CP_SET_BIN_1_Y1(uint32_t val)
619 {
620 return ((val) << CP_SET_BIN_1_Y1__SHIFT) & CP_SET_BIN_1_Y1__MASK;
621 }
622
623 #define REG_CP_SET_BIN_2 0x00000002
624 #define CP_SET_BIN_2_X2__MASK 0x0000ffff
625 #define CP_SET_BIN_2_X2__SHIFT 0
626 static inline uint32_t CP_SET_BIN_2_X2(uint32_t val)
627 {
628 return ((val) << CP_SET_BIN_2_X2__SHIFT) & CP_SET_BIN_2_X2__MASK;
629 }
630 #define CP_SET_BIN_2_Y2__MASK 0xffff0000
631 #define CP_SET_BIN_2_Y2__SHIFT 16
632 static inline uint32_t CP_SET_BIN_2_Y2(uint32_t val)
633 {
634 return ((val) << CP_SET_BIN_2_Y2__SHIFT) & CP_SET_BIN_2_Y2__MASK;
635 }
636
637 #define REG_CP_SET_BIN_DATA_0 0x00000000
638 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK 0xffffffff
639 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT 0
640 static inline uint32_t CP_SET_BIN_DATA_0_BIN_DATA_ADDR(uint32_t val)
641 {
642 return ((val) << CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT) & CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK;
643 }
644
645 #define REG_CP_SET_BIN_DATA_1 0x00000001
646 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK 0xffffffff
647 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT 0
648 static inline uint32_t CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS(uint32_t val)
649 {
650 return ((val) << CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT) & CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK;
651 }
652
653 #define REG_CP_REG_TO_MEM_0 0x00000000
654 #define CP_REG_TO_MEM_0_REG__MASK 0x0000ffff
655 #define CP_REG_TO_MEM_0_REG__SHIFT 0
656 static inline uint32_t CP_REG_TO_MEM_0_REG(uint32_t val)
657 {
658 return ((val) << CP_REG_TO_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_0_REG__MASK;
659 }
660 #define CP_REG_TO_MEM_0_CNT__MASK 0x3ff80000
661 #define CP_REG_TO_MEM_0_CNT__SHIFT 19
662 static inline uint32_t CP_REG_TO_MEM_0_CNT(uint32_t val)
663 {
664 return ((val) << CP_REG_TO_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_0_CNT__MASK;
665 }
666 #define CP_REG_TO_MEM_0_64B 0x40000000
667 #define CP_REG_TO_MEM_0_ACCUMULATE 0x80000000
668
669 #define REG_CP_REG_TO_MEM_1 0x00000001
670 #define CP_REG_TO_MEM_1_DEST__MASK 0xffffffff
671 #define CP_REG_TO_MEM_1_DEST__SHIFT 0
672 static inline uint32_t CP_REG_TO_MEM_1_DEST(uint32_t val)
673 {
674 return ((val) << CP_REG_TO_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_1_DEST__MASK;
675 }
676
677 #define REG_CP_MEM_TO_MEM_0 0x00000000
678 #define CP_MEM_TO_MEM_0_NEG_A 0x00000001
679 #define CP_MEM_TO_MEM_0_NEG_B 0x00000002
680 #define CP_MEM_TO_MEM_0_NEG_C 0x00000004
681 #define CP_MEM_TO_MEM_0_DOUBLE 0x20000000
682
683 #define REG_CP_DISPATCH_COMPUTE_0 0x00000000
684
685 #define REG_CP_DISPATCH_COMPUTE_1 0x00000001
686 #define CP_DISPATCH_COMPUTE_1_X__MASK 0xffffffff
687 #define CP_DISPATCH_COMPUTE_1_X__SHIFT 0
688 static inline uint32_t CP_DISPATCH_COMPUTE_1_X(uint32_t val)
689 {
690 return ((val) << CP_DISPATCH_COMPUTE_1_X__SHIFT) & CP_DISPATCH_COMPUTE_1_X__MASK;
691 }
692
693 #define REG_CP_DISPATCH_COMPUTE_2 0x00000002
694 #define CP_DISPATCH_COMPUTE_2_Y__MASK 0xffffffff
695 #define CP_DISPATCH_COMPUTE_2_Y__SHIFT 0
696 static inline uint32_t CP_DISPATCH_COMPUTE_2_Y(uint32_t val)
697 {
698 return ((val) << CP_DISPATCH_COMPUTE_2_Y__SHIFT) & CP_DISPATCH_COMPUTE_2_Y__MASK;
699 }
700
701 #define REG_CP_DISPATCH_COMPUTE_3 0x00000003
702 #define CP_DISPATCH_COMPUTE_3_Z__MASK 0xffffffff
703 #define CP_DISPATCH_COMPUTE_3_Z__SHIFT 0
704 static inline uint32_t CP_DISPATCH_COMPUTE_3_Z(uint32_t val)
705 {
706 return ((val) << CP_DISPATCH_COMPUTE_3_Z__SHIFT) & CP_DISPATCH_COMPUTE_3_Z__MASK;
707 }
708
709 #define REG_CP_SET_RENDER_MODE_0 0x00000000
710 #define CP_SET_RENDER_MODE_0_MODE__MASK 0x000001ff
711 #define CP_SET_RENDER_MODE_0_MODE__SHIFT 0
712 static inline uint32_t CP_SET_RENDER_MODE_0_MODE(enum render_mode_cmd val)
713 {
714 return ((val) << CP_SET_RENDER_MODE_0_MODE__SHIFT) & CP_SET_RENDER_MODE_0_MODE__MASK;
715 }
716
717 #define REG_CP_SET_RENDER_MODE_1 0x00000001
718 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK 0xffffffff
719 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT 0
720 static inline uint32_t CP_SET_RENDER_MODE_1_ADDR_0_LO(uint32_t val)
721 {
722 return ((val) << CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT) & CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK;
723 }
724
725 #define REG_CP_SET_RENDER_MODE_2 0x00000002
726 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK 0xffffffff
727 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT 0
728 static inline uint32_t CP_SET_RENDER_MODE_2_ADDR_0_HI(uint32_t val)
729 {
730 return ((val) << CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT) & CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK;
731 }
732
733 #define REG_CP_SET_RENDER_MODE_3 0x00000003
734 #define CP_SET_RENDER_MODE_3_GMEM_ENABLE 0x00000010
735
736 #define REG_CP_SET_RENDER_MODE_4 0x00000004
737
738 #define REG_CP_SET_RENDER_MODE_5 0x00000005
739 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK 0xffffffff
740 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT 0
741 static inline uint32_t CP_SET_RENDER_MODE_5_ADDR_1_LEN(uint32_t val)
742 {
743 return ((val) << CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT) & CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK;
744 }
745
746 #define REG_CP_SET_RENDER_MODE_6 0x00000006
747 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK 0xffffffff
748 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT 0
749 static inline uint32_t CP_SET_RENDER_MODE_6_ADDR_1_LO(uint32_t val)
750 {
751 return ((val) << CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT) & CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK;
752 }
753
754 #define REG_CP_SET_RENDER_MODE_7 0x00000007
755 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK 0xffffffff
756 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT 0
757 static inline uint32_t CP_SET_RENDER_MODE_7_ADDR_1_HI(uint32_t val)
758 {
759 return ((val) << CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT) & CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK;
760 }
761
762 #define REG_CP_COMPUTE_CHECKPOINT_0 0x00000000
763 #define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK 0xffffffff
764 #define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT 0
765 static inline uint32_t CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO(uint32_t val)
766 {
767 return ((val) << CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK;
768 }
769
770 #define REG_CP_COMPUTE_CHECKPOINT_1 0x00000001
771 #define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK 0xffffffff
772 #define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT 0
773 static inline uint32_t CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI(uint32_t val)
774 {
775 return ((val) << CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK;
776 }
777
778 #define REG_CP_COMPUTE_CHECKPOINT_2 0x00000002
779
780 #define REG_CP_COMPUTE_CHECKPOINT_3 0x00000003
781
782 #define REG_CP_COMPUTE_CHECKPOINT_4 0x00000004
783 #define CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__MASK 0xffffffff
784 #define CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__SHIFT 0
785 static inline uint32_t CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN(uint32_t val)
786 {
787 return ((val) << CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__SHIFT) & CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__MASK;
788 }
789
790 #define REG_CP_COMPUTE_CHECKPOINT_5 0x00000005
791 #define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK 0xffffffff
792 #define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT 0
793 static inline uint32_t CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO(uint32_t val)
794 {
795 return ((val) << CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK;
796 }
797
798 #define REG_CP_COMPUTE_CHECKPOINT_6 0x00000006
799 #define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK 0xffffffff
800 #define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT 0
801 static inline uint32_t CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI(uint32_t val)
802 {
803 return ((val) << CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK;
804 }
805
806 #define REG_CP_PERFCOUNTER_ACTION_0 0x00000000
807
808 #define REG_CP_PERFCOUNTER_ACTION_1 0x00000001
809 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK 0xffffffff
810 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT 0
811 static inline uint32_t CP_PERFCOUNTER_ACTION_1_ADDR_0_LO(uint32_t val)
812 {
813 return ((val) << CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT) & CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK;
814 }
815
816 #define REG_CP_PERFCOUNTER_ACTION_2 0x00000002
817 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK 0xffffffff
818 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT 0
819 static inline uint32_t CP_PERFCOUNTER_ACTION_2_ADDR_0_HI(uint32_t val)
820 {
821 return ((val) << CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT) & CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK;
822 }
823
824 #define REG_CP_EVENT_WRITE_0 0x00000000
825 #define CP_EVENT_WRITE_0_EVENT__MASK 0x000000ff
826 #define CP_EVENT_WRITE_0_EVENT__SHIFT 0
827 static inline uint32_t CP_EVENT_WRITE_0_EVENT(enum vgt_event_type val)
828 {
829 return ((val) << CP_EVENT_WRITE_0_EVENT__SHIFT) & CP_EVENT_WRITE_0_EVENT__MASK;
830 }
831
832 #define REG_CP_EVENT_WRITE_1 0x00000001
833 #define CP_EVENT_WRITE_1_ADDR_0_LO__MASK 0xffffffff
834 #define CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT 0
835 static inline uint32_t CP_EVENT_WRITE_1_ADDR_0_LO(uint32_t val)
836 {
837 return ((val) << CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT) & CP_EVENT_WRITE_1_ADDR_0_LO__MASK;
838 }
839
840 #define REG_CP_EVENT_WRITE_2 0x00000002
841 #define CP_EVENT_WRITE_2_ADDR_0_HI__MASK 0xffffffff
842 #define CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT 0
843 static inline uint32_t CP_EVENT_WRITE_2_ADDR_0_HI(uint32_t val)
844 {
845 return ((val) << CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT) & CP_EVENT_WRITE_2_ADDR_0_HI__MASK;
846 }
847
848 #define REG_CP_EVENT_WRITE_3 0x00000003
849
850 #define REG_CP_BLIT_0 0x00000000
851 #define CP_BLIT_0_OP__MASK 0x0000000f
852 #define CP_BLIT_0_OP__SHIFT 0
853 static inline uint32_t CP_BLIT_0_OP(enum cp_blit_cmd val)
854 {
855 return ((val) << CP_BLIT_0_OP__SHIFT) & CP_BLIT_0_OP__MASK;
856 }
857
858 #define REG_CP_BLIT_1 0x00000001
859 #define CP_BLIT_1_SRC_X1__MASK 0x0000ffff
860 #define CP_BLIT_1_SRC_X1__SHIFT 0
861 static inline uint32_t CP_BLIT_1_SRC_X1(uint32_t val)
862 {
863 return ((val) << CP_BLIT_1_SRC_X1__SHIFT) & CP_BLIT_1_SRC_X1__MASK;
864 }
865 #define CP_BLIT_1_SRC_Y1__MASK 0xffff0000
866 #define CP_BLIT_1_SRC_Y1__SHIFT 16
867 static inline uint32_t CP_BLIT_1_SRC_Y1(uint32_t val)
868 {
869 return ((val) << CP_BLIT_1_SRC_Y1__SHIFT) & CP_BLIT_1_SRC_Y1__MASK;
870 }
871
872 #define REG_CP_BLIT_2 0x00000002
873 #define CP_BLIT_2_SRC_X2__MASK 0x0000ffff
874 #define CP_BLIT_2_SRC_X2__SHIFT 0
875 static inline uint32_t CP_BLIT_2_SRC_X2(uint32_t val)
876 {
877 return ((val) << CP_BLIT_2_SRC_X2__SHIFT) & CP_BLIT_2_SRC_X2__MASK;
878 }
879 #define CP_BLIT_2_SRC_Y2__MASK 0xffff0000
880 #define CP_BLIT_2_SRC_Y2__SHIFT 16
881 static inline uint32_t CP_BLIT_2_SRC_Y2(uint32_t val)
882 {
883 return ((val) << CP_BLIT_2_SRC_Y2__SHIFT) & CP_BLIT_2_SRC_Y2__MASK;
884 }
885
886 #define REG_CP_BLIT_3 0x00000003
887 #define CP_BLIT_3_DST_X1__MASK 0x0000ffff
888 #define CP_BLIT_3_DST_X1__SHIFT 0
889 static inline uint32_t CP_BLIT_3_DST_X1(uint32_t val)
890 {
891 return ((val) << CP_BLIT_3_DST_X1__SHIFT) & CP_BLIT_3_DST_X1__MASK;
892 }
893 #define CP_BLIT_3_DST_Y1__MASK 0xffff0000
894 #define CP_BLIT_3_DST_Y1__SHIFT 16
895 static inline uint32_t CP_BLIT_3_DST_Y1(uint32_t val)
896 {
897 return ((val) << CP_BLIT_3_DST_Y1__SHIFT) & CP_BLIT_3_DST_Y1__MASK;
898 }
899
900 #define REG_CP_BLIT_4 0x00000004
901 #define CP_BLIT_4_DST_X2__MASK 0x0000ffff
902 #define CP_BLIT_4_DST_X2__SHIFT 0
903 static inline uint32_t CP_BLIT_4_DST_X2(uint32_t val)
904 {
905 return ((val) << CP_BLIT_4_DST_X2__SHIFT) & CP_BLIT_4_DST_X2__MASK;
906 }
907 #define CP_BLIT_4_DST_Y2__MASK 0xffff0000
908 #define CP_BLIT_4_DST_Y2__SHIFT 16
909 static inline uint32_t CP_BLIT_4_DST_Y2(uint32_t val)
910 {
911 return ((val) << CP_BLIT_4_DST_Y2__SHIFT) & CP_BLIT_4_DST_Y2__MASK;
912 }
913
914 #define REG_CP_EXEC_CS_0 0x00000000
915
916 #define REG_CP_EXEC_CS_1 0x00000001
917 #define CP_EXEC_CS_1_NGROUPS_X__MASK 0xffffffff
918 #define CP_EXEC_CS_1_NGROUPS_X__SHIFT 0
919 static inline uint32_t CP_EXEC_CS_1_NGROUPS_X(uint32_t val)
920 {
921 return ((val) << CP_EXEC_CS_1_NGROUPS_X__SHIFT) & CP_EXEC_CS_1_NGROUPS_X__MASK;
922 }
923
924 #define REG_CP_EXEC_CS_2 0x00000002
925 #define CP_EXEC_CS_2_NGROUPS_Y__MASK 0xffffffff
926 #define CP_EXEC_CS_2_NGROUPS_Y__SHIFT 0
927 static inline uint32_t CP_EXEC_CS_2_NGROUPS_Y(uint32_t val)
928 {
929 return ((val) << CP_EXEC_CS_2_NGROUPS_Y__SHIFT) & CP_EXEC_CS_2_NGROUPS_Y__MASK;
930 }
931
932 #define REG_CP_EXEC_CS_3 0x00000003
933 #define CP_EXEC_CS_3_NGROUPS_Z__MASK 0xffffffff
934 #define CP_EXEC_CS_3_NGROUPS_Z__SHIFT 0
935 static inline uint32_t CP_EXEC_CS_3_NGROUPS_Z(uint32_t val)
936 {
937 return ((val) << CP_EXEC_CS_3_NGROUPS_Z__SHIFT) & CP_EXEC_CS_3_NGROUPS_Z__MASK;
938 }
939
940
941 #endif /* ADRENO_PM4_XML */