99404e8c0c94f9bf1ce8460c94ac800c90006a55
[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-05-17 13:21:27)
12 - /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml ( 1572 bytes, from 2017-05-17 13:21:27)
13 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml ( 37162 bytes, from 2017-05-17 13:21:27)
14 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml ( 13324 bytes, from 2017-05-17 13:21:27)
15 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml ( 33379 bytes, from 2017-11-14 21:00:47)
16 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml ( 83840 bytes, from 2017-05-17 13:21:27)
17 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml ( 111898 bytes, from 2017-06-06 18:23:59)
18 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml ( 143420 bytes, from 2017-11-16 20:29:34)
19 - /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml ( 1773 bytes, from 2017-05-17 13:21:27)
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 LRZ_FLUSH = 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_SET_BIN_DATA5 = 47,
146 CP_REG_TO_MEM = 62,
147 CP_MEM_WRITE = 61,
148 CP_MEM_WRITE_CNTR = 79,
149 CP_COND_EXEC = 68,
150 CP_COND_WRITE = 69,
151 CP_COND_WRITE5 = 69,
152 CP_EVENT_WRITE = 70,
153 CP_EVENT_WRITE_SHD = 88,
154 CP_EVENT_WRITE_CFL = 89,
155 CP_EVENT_WRITE_ZPD = 91,
156 CP_RUN_OPENCL = 49,
157 CP_DRAW_INDX = 34,
158 CP_DRAW_INDX_2 = 54,
159 CP_DRAW_INDX_BIN = 52,
160 CP_DRAW_INDX_2_BIN = 53,
161 CP_VIZ_QUERY = 35,
162 CP_SET_STATE = 37,
163 CP_SET_CONSTANT = 45,
164 CP_IM_LOAD = 39,
165 CP_IM_LOAD_IMMEDIATE = 43,
166 CP_LOAD_CONSTANT_CONTEXT = 46,
167 CP_INVALIDATE_STATE = 59,
168 CP_SET_SHADER_BASES = 74,
169 CP_SET_BIN_MASK = 80,
170 CP_SET_BIN_SELECT = 81,
171 CP_CONTEXT_UPDATE = 94,
172 CP_INTERRUPT = 64,
173 CP_IM_STORE = 44,
174 CP_SET_DRAW_INIT_FLAGS = 75,
175 CP_SET_PROTECTED_MODE = 95,
176 CP_BOOTSTRAP_UCODE = 111,
177 CP_LOAD_STATE = 48,
178 CP_LOAD_STATE4 = 48,
179 CP_COND_INDIRECT_BUFFER_PFE = 58,
180 CP_COND_INDIRECT_BUFFER_PFD = 50,
181 CP_INDIRECT_BUFFER_PFE = 63,
182 CP_SET_BIN = 76,
183 CP_TEST_TWO_MEMS = 113,
184 CP_REG_WR_NO_CTXT = 120,
185 CP_RECORD_PFP_TIMESTAMP = 17,
186 CP_SET_SECURE_MODE = 102,
187 CP_WAIT_FOR_ME = 19,
188 CP_SET_DRAW_STATE = 67,
189 CP_DRAW_INDX_OFFSET = 56,
190 CP_DRAW_INDIRECT = 40,
191 CP_DRAW_INDX_INDIRECT = 41,
192 CP_DRAW_AUTO = 36,
193 CP_UNKNOWN_19 = 25,
194 CP_UNKNOWN_1A = 26,
195 CP_UNKNOWN_4E = 78,
196 CP_WIDE_REG_WRITE = 116,
197 CP_SCRATCH_TO_REG = 77,
198 CP_REG_TO_SCRATCH = 74,
199 CP_WAIT_MEM_WRITES = 18,
200 CP_COND_REG_EXEC = 71,
201 CP_MEM_TO_REG = 66,
202 CP_EXEC_CS_INDIRECT = 65,
203 CP_EXEC_CS = 51,
204 CP_PERFCOUNTER_ACTION = 80,
205 CP_SMMU_TABLE_UPDATE = 83,
206 CP_CONTEXT_REG_BUNCH = 92,
207 CP_YIELD_ENABLE = 28,
208 CP_SKIP_IB2_ENABLE_GLOBAL = 29,
209 CP_SKIP_IB2_ENABLE_LOCAL = 35,
210 CP_SET_SUBDRAW_SIZE = 53,
211 CP_SET_VISIBILITY_OVERRIDE = 100,
212 CP_PREEMPT_ENABLE_GLOBAL = 105,
213 CP_PREEMPT_ENABLE_LOCAL = 106,
214 CP_CONTEXT_SWITCH_YIELD = 107,
215 CP_SET_RENDER_MODE = 108,
216 CP_COMPUTE_CHECKPOINT = 110,
217 CP_MEM_TO_MEM = 115,
218 CP_BLIT = 44,
219 CP_UNK_39 = 57,
220 IN_IB_PREFETCH_END = 23,
221 IN_SUBBLK_PREFETCH = 31,
222 IN_INSTR_PREFETCH = 32,
223 IN_INSTR_MATCH = 71,
224 IN_CONST_PREFETCH = 73,
225 IN_INCR_UPDT_STATE = 85,
226 IN_INCR_UPDT_CONST = 86,
227 IN_INCR_UPDT_INSTR = 87,
228 };
229
230 enum adreno_state_block {
231 SB_VERT_TEX = 0,
232 SB_VERT_MIPADDR = 1,
233 SB_FRAG_TEX = 2,
234 SB_FRAG_MIPADDR = 3,
235 SB_VERT_SHADER = 4,
236 SB_GEOM_SHADER = 5,
237 SB_FRAG_SHADER = 6,
238 SB_COMPUTE_SHADER = 7,
239 };
240
241 enum adreno_state_type {
242 ST_SHADER = 0,
243 ST_CONSTANTS = 1,
244 };
245
246 enum adreno_state_src {
247 SS_DIRECT = 0,
248 SS_INVALID_ALL_IC = 2,
249 SS_INVALID_PART_IC = 3,
250 SS_INDIRECT = 4,
251 SS_INDIRECT_TCM = 5,
252 SS_INDIRECT_STM = 6,
253 };
254
255 enum a4xx_state_block {
256 SB4_VS_TEX = 0,
257 SB4_HS_TEX = 1,
258 SB4_DS_TEX = 2,
259 SB4_GS_TEX = 3,
260 SB4_FS_TEX = 4,
261 SB4_CS_TEX = 5,
262 SB4_VS_SHADER = 8,
263 SB4_HS_SHADER = 9,
264 SB4_DS_SHADER = 10,
265 SB4_GS_SHADER = 11,
266 SB4_FS_SHADER = 12,
267 SB4_CS_SHADER = 13,
268 SB4_SSBO = 14,
269 SB4_CS_SSBO = 15,
270 };
271
272 enum a4xx_state_type {
273 ST4_SHADER = 0,
274 ST4_CONSTANTS = 1,
275 };
276
277 enum a4xx_state_src {
278 SS4_DIRECT = 0,
279 SS4_INDIRECT = 2,
280 };
281
282 enum a4xx_index_size {
283 INDEX4_SIZE_8_BIT = 0,
284 INDEX4_SIZE_16_BIT = 1,
285 INDEX4_SIZE_32_BIT = 2,
286 };
287
288 enum cp_cond_function {
289 WRITE_ALWAYS = 0,
290 WRITE_LT = 1,
291 WRITE_LE = 2,
292 WRITE_EQ = 3,
293 WRITE_NE = 4,
294 WRITE_GE = 5,
295 WRITE_GT = 6,
296 };
297
298 enum render_mode_cmd {
299 BYPASS = 1,
300 BINNING = 2,
301 GMEM = 3,
302 BLIT2D = 5,
303 BLIT2DSCALE = 7,
304 };
305
306 enum cp_blit_cmd {
307 BLIT_OP_FILL = 0,
308 BLIT_OP_COPY = 1,
309 BLIT_OP_SCALE = 3,
310 };
311
312 #define REG_CP_LOAD_STATE_0 0x00000000
313 #define CP_LOAD_STATE_0_DST_OFF__MASK 0x0000ffff
314 #define CP_LOAD_STATE_0_DST_OFF__SHIFT 0
315 static inline uint32_t CP_LOAD_STATE_0_DST_OFF(uint32_t val)
316 {
317 return ((val) << CP_LOAD_STATE_0_DST_OFF__SHIFT) & CP_LOAD_STATE_0_DST_OFF__MASK;
318 }
319 #define CP_LOAD_STATE_0_STATE_SRC__MASK 0x00070000
320 #define CP_LOAD_STATE_0_STATE_SRC__SHIFT 16
321 static inline uint32_t CP_LOAD_STATE_0_STATE_SRC(enum adreno_state_src val)
322 {
323 return ((val) << CP_LOAD_STATE_0_STATE_SRC__SHIFT) & CP_LOAD_STATE_0_STATE_SRC__MASK;
324 }
325 #define CP_LOAD_STATE_0_STATE_BLOCK__MASK 0x00380000
326 #define CP_LOAD_STATE_0_STATE_BLOCK__SHIFT 19
327 static inline uint32_t CP_LOAD_STATE_0_STATE_BLOCK(enum adreno_state_block val)
328 {
329 return ((val) << CP_LOAD_STATE_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE_0_STATE_BLOCK__MASK;
330 }
331 #define CP_LOAD_STATE_0_NUM_UNIT__MASK 0xffc00000
332 #define CP_LOAD_STATE_0_NUM_UNIT__SHIFT 22
333 static inline uint32_t CP_LOAD_STATE_0_NUM_UNIT(uint32_t val)
334 {
335 return ((val) << CP_LOAD_STATE_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE_0_NUM_UNIT__MASK;
336 }
337
338 #define REG_CP_LOAD_STATE_1 0x00000001
339 #define CP_LOAD_STATE_1_STATE_TYPE__MASK 0x00000003
340 #define CP_LOAD_STATE_1_STATE_TYPE__SHIFT 0
341 static inline uint32_t CP_LOAD_STATE_1_STATE_TYPE(enum adreno_state_type val)
342 {
343 return ((val) << CP_LOAD_STATE_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE_1_STATE_TYPE__MASK;
344 }
345 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK 0xfffffffc
346 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT 2
347 static inline uint32_t CP_LOAD_STATE_1_EXT_SRC_ADDR(uint32_t val)
348 {
349 assert(!(val & 0x3));
350 return ((val >> 2) << CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK;
351 }
352
353 #define REG_CP_LOAD_STATE4_0 0x00000000
354 #define CP_LOAD_STATE4_0_DST_OFF__MASK 0x0000ffff
355 #define CP_LOAD_STATE4_0_DST_OFF__SHIFT 0
356 static inline uint32_t CP_LOAD_STATE4_0_DST_OFF(uint32_t val)
357 {
358 return ((val) << CP_LOAD_STATE4_0_DST_OFF__SHIFT) & CP_LOAD_STATE4_0_DST_OFF__MASK;
359 }
360 #define CP_LOAD_STATE4_0_STATE_SRC__MASK 0x00030000
361 #define CP_LOAD_STATE4_0_STATE_SRC__SHIFT 16
362 static inline uint32_t CP_LOAD_STATE4_0_STATE_SRC(enum a4xx_state_src val)
363 {
364 return ((val) << CP_LOAD_STATE4_0_STATE_SRC__SHIFT) & CP_LOAD_STATE4_0_STATE_SRC__MASK;
365 }
366 #define CP_LOAD_STATE4_0_STATE_BLOCK__MASK 0x003c0000
367 #define CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT 18
368 static inline uint32_t CP_LOAD_STATE4_0_STATE_BLOCK(enum a4xx_state_block val)
369 {
370 return ((val) << CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE4_0_STATE_BLOCK__MASK;
371 }
372 #define CP_LOAD_STATE4_0_NUM_UNIT__MASK 0xffc00000
373 #define CP_LOAD_STATE4_0_NUM_UNIT__SHIFT 22
374 static inline uint32_t CP_LOAD_STATE4_0_NUM_UNIT(uint32_t val)
375 {
376 return ((val) << CP_LOAD_STATE4_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE4_0_NUM_UNIT__MASK;
377 }
378
379 #define REG_CP_LOAD_STATE4_1 0x00000001
380 #define CP_LOAD_STATE4_1_STATE_TYPE__MASK 0x00000003
381 #define CP_LOAD_STATE4_1_STATE_TYPE__SHIFT 0
382 static inline uint32_t CP_LOAD_STATE4_1_STATE_TYPE(enum a4xx_state_type val)
383 {
384 return ((val) << CP_LOAD_STATE4_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE4_1_STATE_TYPE__MASK;
385 }
386 #define CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK 0xfffffffc
387 #define CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT 2
388 static inline uint32_t CP_LOAD_STATE4_1_EXT_SRC_ADDR(uint32_t val)
389 {
390 assert(!(val & 0x3));
391 return ((val >> 2) << CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK;
392 }
393
394 #define REG_CP_LOAD_STATE4_2 0x00000002
395 #define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK 0xffffffff
396 #define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT 0
397 static inline uint32_t CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(uint32_t val)
398 {
399 return ((val) << CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK;
400 }
401
402 #define REG_CP_DRAW_INDX_0 0x00000000
403 #define CP_DRAW_INDX_0_VIZ_QUERY__MASK 0xffffffff
404 #define CP_DRAW_INDX_0_VIZ_QUERY__SHIFT 0
405 static inline uint32_t CP_DRAW_INDX_0_VIZ_QUERY(uint32_t val)
406 {
407 return ((val) << CP_DRAW_INDX_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_0_VIZ_QUERY__MASK;
408 }
409
410 #define REG_CP_DRAW_INDX_1 0x00000001
411 #define CP_DRAW_INDX_1_PRIM_TYPE__MASK 0x0000003f
412 #define CP_DRAW_INDX_1_PRIM_TYPE__SHIFT 0
413 static inline uint32_t CP_DRAW_INDX_1_PRIM_TYPE(enum pc_di_primtype val)
414 {
415 return ((val) << CP_DRAW_INDX_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_1_PRIM_TYPE__MASK;
416 }
417 #define CP_DRAW_INDX_1_SOURCE_SELECT__MASK 0x000000c0
418 #define CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT 6
419 static inline uint32_t CP_DRAW_INDX_1_SOURCE_SELECT(enum pc_di_src_sel val)
420 {
421 return ((val) << CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_1_SOURCE_SELECT__MASK;
422 }
423 #define CP_DRAW_INDX_1_VIS_CULL__MASK 0x00000600
424 #define CP_DRAW_INDX_1_VIS_CULL__SHIFT 9
425 static inline uint32_t CP_DRAW_INDX_1_VIS_CULL(enum pc_di_vis_cull_mode val)
426 {
427 return ((val) << CP_DRAW_INDX_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_1_VIS_CULL__MASK;
428 }
429 #define CP_DRAW_INDX_1_INDEX_SIZE__MASK 0x00000800
430 #define CP_DRAW_INDX_1_INDEX_SIZE__SHIFT 11
431 static inline uint32_t CP_DRAW_INDX_1_INDEX_SIZE(enum pc_di_index_size val)
432 {
433 return ((val) << CP_DRAW_INDX_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_1_INDEX_SIZE__MASK;
434 }
435 #define CP_DRAW_INDX_1_NOT_EOP 0x00001000
436 #define CP_DRAW_INDX_1_SMALL_INDEX 0x00002000
437 #define CP_DRAW_INDX_1_PRE_DRAW_INITIATOR_ENABLE 0x00004000
438 #define CP_DRAW_INDX_1_NUM_INSTANCES__MASK 0xff000000
439 #define CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT 24
440 static inline uint32_t CP_DRAW_INDX_1_NUM_INSTANCES(uint32_t val)
441 {
442 return ((val) << CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_1_NUM_INSTANCES__MASK;
443 }
444
445 #define REG_CP_DRAW_INDX_2 0x00000002
446 #define CP_DRAW_INDX_2_NUM_INDICES__MASK 0xffffffff
447 #define CP_DRAW_INDX_2_NUM_INDICES__SHIFT 0
448 static inline uint32_t CP_DRAW_INDX_2_NUM_INDICES(uint32_t val)
449 {
450 return ((val) << CP_DRAW_INDX_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_NUM_INDICES__MASK;
451 }
452
453 #define REG_CP_DRAW_INDX_3 0x00000003
454 #define CP_DRAW_INDX_3_INDX_BASE__MASK 0xffffffff
455 #define CP_DRAW_INDX_3_INDX_BASE__SHIFT 0
456 static inline uint32_t CP_DRAW_INDX_3_INDX_BASE(uint32_t val)
457 {
458 return ((val) << CP_DRAW_INDX_3_INDX_BASE__SHIFT) & CP_DRAW_INDX_3_INDX_BASE__MASK;
459 }
460
461 #define REG_CP_DRAW_INDX_4 0x00000004
462 #define CP_DRAW_INDX_4_INDX_SIZE__MASK 0xffffffff
463 #define CP_DRAW_INDX_4_INDX_SIZE__SHIFT 0
464 static inline uint32_t CP_DRAW_INDX_4_INDX_SIZE(uint32_t val)
465 {
466 return ((val) << CP_DRAW_INDX_4_INDX_SIZE__SHIFT) & CP_DRAW_INDX_4_INDX_SIZE__MASK;
467 }
468
469 #define REG_CP_DRAW_INDX_2_0 0x00000000
470 #define CP_DRAW_INDX_2_0_VIZ_QUERY__MASK 0xffffffff
471 #define CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT 0
472 static inline uint32_t CP_DRAW_INDX_2_0_VIZ_QUERY(uint32_t val)
473 {
474 return ((val) << CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_2_0_VIZ_QUERY__MASK;
475 }
476
477 #define REG_CP_DRAW_INDX_2_1 0x00000001
478 #define CP_DRAW_INDX_2_1_PRIM_TYPE__MASK 0x0000003f
479 #define CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT 0
480 static inline uint32_t CP_DRAW_INDX_2_1_PRIM_TYPE(enum pc_di_primtype val)
481 {
482 return ((val) << CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_2_1_PRIM_TYPE__MASK;
483 }
484 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK 0x000000c0
485 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT 6
486 static inline uint32_t CP_DRAW_INDX_2_1_SOURCE_SELECT(enum pc_di_src_sel val)
487 {
488 return ((val) << CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK;
489 }
490 #define CP_DRAW_INDX_2_1_VIS_CULL__MASK 0x00000600
491 #define CP_DRAW_INDX_2_1_VIS_CULL__SHIFT 9
492 static inline uint32_t CP_DRAW_INDX_2_1_VIS_CULL(enum pc_di_vis_cull_mode val)
493 {
494 return ((val) << CP_DRAW_INDX_2_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_2_1_VIS_CULL__MASK;
495 }
496 #define CP_DRAW_INDX_2_1_INDEX_SIZE__MASK 0x00000800
497 #define CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT 11
498 static inline uint32_t CP_DRAW_INDX_2_1_INDEX_SIZE(enum pc_di_index_size val)
499 {
500 return ((val) << CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_2_1_INDEX_SIZE__MASK;
501 }
502 #define CP_DRAW_INDX_2_1_NOT_EOP 0x00001000
503 #define CP_DRAW_INDX_2_1_SMALL_INDEX 0x00002000
504 #define CP_DRAW_INDX_2_1_PRE_DRAW_INITIATOR_ENABLE 0x00004000
505 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK 0xff000000
506 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT 24
507 static inline uint32_t CP_DRAW_INDX_2_1_NUM_INSTANCES(uint32_t val)
508 {
509 return ((val) << CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK;
510 }
511
512 #define REG_CP_DRAW_INDX_2_2 0x00000002
513 #define CP_DRAW_INDX_2_2_NUM_INDICES__MASK 0xffffffff
514 #define CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT 0
515 static inline uint32_t CP_DRAW_INDX_2_2_NUM_INDICES(uint32_t val)
516 {
517 return ((val) << CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_2_NUM_INDICES__MASK;
518 }
519
520 #define REG_CP_DRAW_INDX_OFFSET_0 0x00000000
521 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK 0x0000003f
522 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT 0
523 static inline uint32_t CP_DRAW_INDX_OFFSET_0_PRIM_TYPE(enum pc_di_primtype val)
524 {
525 return ((val) << CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK;
526 }
527 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK 0x000000c0
528 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT 6
529 static inline uint32_t CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT(enum pc_di_src_sel val)
530 {
531 return ((val) << CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK;
532 }
533 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK 0x00000300
534 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT 8
535 static inline uint32_t CP_DRAW_INDX_OFFSET_0_VIS_CULL(enum pc_di_vis_cull_mode val)
536 {
537 return ((val) << CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT) & CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK;
538 }
539 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK 0x00000c00
540 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT 10
541 static inline uint32_t CP_DRAW_INDX_OFFSET_0_INDEX_SIZE(enum a4xx_index_size val)
542 {
543 return ((val) << CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK;
544 }
545 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK 0x01f00000
546 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT 20
547 static inline uint32_t CP_DRAW_INDX_OFFSET_0_TESS_MODE(uint32_t val)
548 {
549 return ((val) << CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK;
550 }
551
552 #define REG_CP_DRAW_INDX_OFFSET_1 0x00000001
553 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK 0xffffffff
554 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT 0
555 static inline uint32_t CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES(uint32_t val)
556 {
557 return ((val) << CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK;
558 }
559
560 #define REG_CP_DRAW_INDX_OFFSET_2 0x00000002
561 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK 0xffffffff
562 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT 0
563 static inline uint32_t CP_DRAW_INDX_OFFSET_2_NUM_INDICES(uint32_t val)
564 {
565 return ((val) << CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK;
566 }
567
568 #define REG_CP_DRAW_INDX_OFFSET_3 0x00000003
569
570 #define REG_CP_DRAW_INDX_OFFSET_4 0x00000004
571 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK 0xffffffff
572 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT 0
573 static inline uint32_t CP_DRAW_INDX_OFFSET_4_INDX_BASE(uint32_t val)
574 {
575 return ((val) << CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT) & CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK;
576 }
577
578 #define REG_CP_DRAW_INDX_OFFSET_5 0x00000005
579 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK 0xffffffff
580 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT 0
581 static inline uint32_t CP_DRAW_INDX_OFFSET_5_INDX_SIZE(uint32_t val)
582 {
583 return ((val) << CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK;
584 }
585
586 #define REG_CP_DRAW_INDIRECT_0 0x00000000
587 #define CP_DRAW_INDIRECT_0_PRIM_TYPE__MASK 0x0000003f
588 #define CP_DRAW_INDIRECT_0_PRIM_TYPE__SHIFT 0
589 static inline uint32_t CP_DRAW_INDIRECT_0_PRIM_TYPE(enum pc_di_primtype val)
590 {
591 return ((val) << CP_DRAW_INDIRECT_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDIRECT_0_PRIM_TYPE__MASK;
592 }
593 #define CP_DRAW_INDIRECT_0_SOURCE_SELECT__MASK 0x000000c0
594 #define CP_DRAW_INDIRECT_0_SOURCE_SELECT__SHIFT 6
595 static inline uint32_t CP_DRAW_INDIRECT_0_SOURCE_SELECT(enum pc_di_src_sel val)
596 {
597 return ((val) << CP_DRAW_INDIRECT_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDIRECT_0_SOURCE_SELECT__MASK;
598 }
599 #define CP_DRAW_INDIRECT_0_VIS_CULL__MASK 0x00000300
600 #define CP_DRAW_INDIRECT_0_VIS_CULL__SHIFT 8
601 static inline uint32_t CP_DRAW_INDIRECT_0_VIS_CULL(enum pc_di_vis_cull_mode val)
602 {
603 return ((val) << CP_DRAW_INDIRECT_0_VIS_CULL__SHIFT) & CP_DRAW_INDIRECT_0_VIS_CULL__MASK;
604 }
605 #define CP_DRAW_INDIRECT_0_INDEX_SIZE__MASK 0x00000c00
606 #define CP_DRAW_INDIRECT_0_INDEX_SIZE__SHIFT 10
607 static inline uint32_t CP_DRAW_INDIRECT_0_INDEX_SIZE(enum a4xx_index_size val)
608 {
609 return ((val) << CP_DRAW_INDIRECT_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDIRECT_0_INDEX_SIZE__MASK;
610 }
611 #define CP_DRAW_INDIRECT_0_TESS_MODE__MASK 0x01f00000
612 #define CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT 20
613 static inline uint32_t CP_DRAW_INDIRECT_0_TESS_MODE(uint32_t val)
614 {
615 return ((val) << CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT) & CP_DRAW_INDIRECT_0_TESS_MODE__MASK;
616 }
617
618 #define REG_CP_DRAW_INDIRECT_1 0x00000001
619 #define CP_DRAW_INDIRECT_1_INDIRECT_LO__MASK 0xffffffff
620 #define CP_DRAW_INDIRECT_1_INDIRECT_LO__SHIFT 0
621 static inline uint32_t CP_DRAW_INDIRECT_1_INDIRECT_LO(uint32_t val)
622 {
623 return ((val) << CP_DRAW_INDIRECT_1_INDIRECT_LO__SHIFT) & CP_DRAW_INDIRECT_1_INDIRECT_LO__MASK;
624 }
625
626 #define REG_CP_DRAW_INDIRECT_2 0x00000002
627 #define CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK 0xffffffff
628 #define CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT 0
629 static inline uint32_t CP_DRAW_INDIRECT_2_INDIRECT_HI(uint32_t val)
630 {
631 return ((val) << CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT) & CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK;
632 }
633
634 #define REG_CP_DRAW_INDX_INDIRECT_0 0x00000000
635 #define CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__MASK 0x0000003f
636 #define CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__SHIFT 0
637 static inline uint32_t CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE(enum pc_di_primtype val)
638 {
639 return ((val) << CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__MASK;
640 }
641 #define CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__MASK 0x000000c0
642 #define CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__SHIFT 6
643 static inline uint32_t CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT(enum pc_di_src_sel val)
644 {
645 return ((val) << CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__MASK;
646 }
647 #define CP_DRAW_INDX_INDIRECT_0_VIS_CULL__MASK 0x00000300
648 #define CP_DRAW_INDX_INDIRECT_0_VIS_CULL__SHIFT 8
649 static inline uint32_t CP_DRAW_INDX_INDIRECT_0_VIS_CULL(enum pc_di_vis_cull_mode val)
650 {
651 return ((val) << CP_DRAW_INDX_INDIRECT_0_VIS_CULL__SHIFT) & CP_DRAW_INDX_INDIRECT_0_VIS_CULL__MASK;
652 }
653 #define CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__MASK 0x00000c00
654 #define CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__SHIFT 10
655 static inline uint32_t CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE(enum a4xx_index_size val)
656 {
657 return ((val) << CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__MASK;
658 }
659 #define CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK 0x01f00000
660 #define CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT 20
661 static inline uint32_t CP_DRAW_INDX_INDIRECT_0_TESS_MODE(uint32_t val)
662 {
663 return ((val) << CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK;
664 }
665
666 #define REG_CP_DRAW_INDX_INDIRECT_1 0x00000001
667 #define CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__MASK 0xffffffff
668 #define CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__SHIFT 0
669 static inline uint32_t CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO(uint32_t val)
670 {
671 return ((val) << CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__SHIFT) & CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__MASK;
672 }
673
674 #define REG_CP_DRAW_INDX_INDIRECT_2 0x00000002
675 #define CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__MASK 0xffffffff
676 #define CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__SHIFT 0
677 static inline uint32_t CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI(uint32_t val)
678 {
679 return ((val) << CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__SHIFT) & CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__MASK;
680 }
681
682 #define REG_CP_DRAW_INDX_INDIRECT_3 0x00000003
683 #define CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__MASK 0xffffffff
684 #define CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__SHIFT 0
685 static inline uint32_t CP_DRAW_INDX_INDIRECT_3_MAX_INDICES(uint32_t val)
686 {
687 return ((val) << CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__SHIFT) & CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__MASK;
688 }
689
690 #define REG_CP_DRAW_INDX_INDIRECT_4 0x00000004
691 #define CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__MASK 0xffffffff
692 #define CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__SHIFT 0
693 static inline uint32_t CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO(uint32_t val)
694 {
695 return ((val) << CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__SHIFT) & CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__MASK;
696 }
697
698 #define REG_CP_DRAW_INDX_INDIRECT_5 0x00000005
699 #define CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__MASK 0xffffffff
700 #define CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__SHIFT 0
701 static inline uint32_t CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI(uint32_t val)
702 {
703 return ((val) << CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__SHIFT) & CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__MASK;
704 }
705
706 static inline uint32_t REG_CP_SET_DRAW_STATE_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
707
708 static inline uint32_t REG_CP_SET_DRAW_STATE__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
709 #define CP_SET_DRAW_STATE__0_COUNT__MASK 0x0000ffff
710 #define CP_SET_DRAW_STATE__0_COUNT__SHIFT 0
711 static inline uint32_t CP_SET_DRAW_STATE__0_COUNT(uint32_t val)
712 {
713 return ((val) << CP_SET_DRAW_STATE__0_COUNT__SHIFT) & CP_SET_DRAW_STATE__0_COUNT__MASK;
714 }
715 #define CP_SET_DRAW_STATE__0_DIRTY 0x00010000
716 #define CP_SET_DRAW_STATE__0_DISABLE 0x00020000
717 #define CP_SET_DRAW_STATE__0_DISABLE_ALL_GROUPS 0x00040000
718 #define CP_SET_DRAW_STATE__0_LOAD_IMMED 0x00080000
719 #define CP_SET_DRAW_STATE__0_GROUP_ID__MASK 0x1f000000
720 #define CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT 24
721 static inline uint32_t CP_SET_DRAW_STATE__0_GROUP_ID(uint32_t val)
722 {
723 return ((val) << CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT) & CP_SET_DRAW_STATE__0_GROUP_ID__MASK;
724 }
725
726 static inline uint32_t REG_CP_SET_DRAW_STATE__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
727 #define CP_SET_DRAW_STATE__1_ADDR_LO__MASK 0xffffffff
728 #define CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT 0
729 static inline uint32_t CP_SET_DRAW_STATE__1_ADDR_LO(uint32_t val)
730 {
731 return ((val) << CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT) & CP_SET_DRAW_STATE__1_ADDR_LO__MASK;
732 }
733
734 static inline uint32_t REG_CP_SET_DRAW_STATE__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
735 #define CP_SET_DRAW_STATE__2_ADDR_HI__MASK 0xffffffff
736 #define CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT 0
737 static inline uint32_t CP_SET_DRAW_STATE__2_ADDR_HI(uint32_t val)
738 {
739 return ((val) << CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT) & CP_SET_DRAW_STATE__2_ADDR_HI__MASK;
740 }
741
742 #define REG_CP_SET_BIN_0 0x00000000
743
744 #define REG_CP_SET_BIN_1 0x00000001
745 #define CP_SET_BIN_1_X1__MASK 0x0000ffff
746 #define CP_SET_BIN_1_X1__SHIFT 0
747 static inline uint32_t CP_SET_BIN_1_X1(uint32_t val)
748 {
749 return ((val) << CP_SET_BIN_1_X1__SHIFT) & CP_SET_BIN_1_X1__MASK;
750 }
751 #define CP_SET_BIN_1_Y1__MASK 0xffff0000
752 #define CP_SET_BIN_1_Y1__SHIFT 16
753 static inline uint32_t CP_SET_BIN_1_Y1(uint32_t val)
754 {
755 return ((val) << CP_SET_BIN_1_Y1__SHIFT) & CP_SET_BIN_1_Y1__MASK;
756 }
757
758 #define REG_CP_SET_BIN_2 0x00000002
759 #define CP_SET_BIN_2_X2__MASK 0x0000ffff
760 #define CP_SET_BIN_2_X2__SHIFT 0
761 static inline uint32_t CP_SET_BIN_2_X2(uint32_t val)
762 {
763 return ((val) << CP_SET_BIN_2_X2__SHIFT) & CP_SET_BIN_2_X2__MASK;
764 }
765 #define CP_SET_BIN_2_Y2__MASK 0xffff0000
766 #define CP_SET_BIN_2_Y2__SHIFT 16
767 static inline uint32_t CP_SET_BIN_2_Y2(uint32_t val)
768 {
769 return ((val) << CP_SET_BIN_2_Y2__SHIFT) & CP_SET_BIN_2_Y2__MASK;
770 }
771
772 #define REG_CP_SET_BIN_DATA_0 0x00000000
773 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK 0xffffffff
774 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT 0
775 static inline uint32_t CP_SET_BIN_DATA_0_BIN_DATA_ADDR(uint32_t val)
776 {
777 return ((val) << CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT) & CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK;
778 }
779
780 #define REG_CP_SET_BIN_DATA_1 0x00000001
781 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK 0xffffffff
782 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT 0
783 static inline uint32_t CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS(uint32_t val)
784 {
785 return ((val) << CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT) & CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK;
786 }
787
788 #define REG_CP_SET_BIN_DATA5_0 0x00000000
789 #define CP_SET_BIN_DATA5_0_VSC_SIZE__MASK 0x003f0000
790 #define CP_SET_BIN_DATA5_0_VSC_SIZE__SHIFT 16
791 static inline uint32_t CP_SET_BIN_DATA5_0_VSC_SIZE(uint32_t val)
792 {
793 return ((val) << CP_SET_BIN_DATA5_0_VSC_SIZE__SHIFT) & CP_SET_BIN_DATA5_0_VSC_SIZE__MASK;
794 }
795 #define CP_SET_BIN_DATA5_0_VSC_N__MASK 0x07c00000
796 #define CP_SET_BIN_DATA5_0_VSC_N__SHIFT 22
797 static inline uint32_t CP_SET_BIN_DATA5_0_VSC_N(uint32_t val)
798 {
799 return ((val) << CP_SET_BIN_DATA5_0_VSC_N__SHIFT) & CP_SET_BIN_DATA5_0_VSC_N__MASK;
800 }
801
802 #define REG_CP_SET_BIN_DATA5_1 0x00000001
803 #define CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__MASK 0xffffffff
804 #define CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__SHIFT 0
805 static inline uint32_t CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO(uint32_t val)
806 {
807 return ((val) << CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__SHIFT) & CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__MASK;
808 }
809
810 #define REG_CP_SET_BIN_DATA5_2 0x00000002
811 #define CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__MASK 0xffffffff
812 #define CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__SHIFT 0
813 static inline uint32_t CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI(uint32_t val)
814 {
815 return ((val) << CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__SHIFT) & CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__MASK;
816 }
817
818 #define REG_CP_SET_BIN_DATA5_3 0x00000003
819 #define CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__MASK 0xffffffff
820 #define CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__SHIFT 0
821 static inline uint32_t CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO(uint32_t val)
822 {
823 return ((val) << CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__SHIFT) & CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__MASK;
824 }
825
826 #define REG_CP_SET_BIN_DATA5_4 0x00000004
827 #define CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__MASK 0xffffffff
828 #define CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__SHIFT 0
829 static inline uint32_t CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI(uint32_t val)
830 {
831 return ((val) << CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__SHIFT) & CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__MASK;
832 }
833
834 #define REG_CP_REG_TO_MEM_0 0x00000000
835 #define CP_REG_TO_MEM_0_REG__MASK 0x0000ffff
836 #define CP_REG_TO_MEM_0_REG__SHIFT 0
837 static inline uint32_t CP_REG_TO_MEM_0_REG(uint32_t val)
838 {
839 return ((val) << CP_REG_TO_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_0_REG__MASK;
840 }
841 #define CP_REG_TO_MEM_0_CNT__MASK 0x3ff80000
842 #define CP_REG_TO_MEM_0_CNT__SHIFT 19
843 static inline uint32_t CP_REG_TO_MEM_0_CNT(uint32_t val)
844 {
845 return ((val) << CP_REG_TO_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_0_CNT__MASK;
846 }
847 #define CP_REG_TO_MEM_0_64B 0x40000000
848 #define CP_REG_TO_MEM_0_ACCUMULATE 0x80000000
849
850 #define REG_CP_REG_TO_MEM_1 0x00000001
851 #define CP_REG_TO_MEM_1_DEST__MASK 0xffffffff
852 #define CP_REG_TO_MEM_1_DEST__SHIFT 0
853 static inline uint32_t CP_REG_TO_MEM_1_DEST(uint32_t val)
854 {
855 return ((val) << CP_REG_TO_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_1_DEST__MASK;
856 }
857
858 #define REG_CP_MEM_TO_MEM_0 0x00000000
859 #define CP_MEM_TO_MEM_0_NEG_A 0x00000001
860 #define CP_MEM_TO_MEM_0_NEG_B 0x00000002
861 #define CP_MEM_TO_MEM_0_NEG_C 0x00000004
862 #define CP_MEM_TO_MEM_0_DOUBLE 0x20000000
863
864 #define REG_CP_COND_WRITE_0 0x00000000
865 #define CP_COND_WRITE_0_FUNCTION__MASK 0x00000007
866 #define CP_COND_WRITE_0_FUNCTION__SHIFT 0
867 static inline uint32_t CP_COND_WRITE_0_FUNCTION(enum cp_cond_function val)
868 {
869 return ((val) << CP_COND_WRITE_0_FUNCTION__SHIFT) & CP_COND_WRITE_0_FUNCTION__MASK;
870 }
871 #define CP_COND_WRITE_0_POLL_MEMORY 0x00000010
872 #define CP_COND_WRITE_0_WRITE_MEMORY 0x00000100
873
874 #define REG_CP_COND_WRITE_1 0x00000001
875 #define CP_COND_WRITE_1_POLL_ADDR__MASK 0xffffffff
876 #define CP_COND_WRITE_1_POLL_ADDR__SHIFT 0
877 static inline uint32_t CP_COND_WRITE_1_POLL_ADDR(uint32_t val)
878 {
879 return ((val) << CP_COND_WRITE_1_POLL_ADDR__SHIFT) & CP_COND_WRITE_1_POLL_ADDR__MASK;
880 }
881
882 #define REG_CP_COND_WRITE_2 0x00000002
883 #define CP_COND_WRITE_2_REF__MASK 0xffffffff
884 #define CP_COND_WRITE_2_REF__SHIFT 0
885 static inline uint32_t CP_COND_WRITE_2_REF(uint32_t val)
886 {
887 return ((val) << CP_COND_WRITE_2_REF__SHIFT) & CP_COND_WRITE_2_REF__MASK;
888 }
889
890 #define REG_CP_COND_WRITE_3 0x00000003
891 #define CP_COND_WRITE_3_MASK__MASK 0xffffffff
892 #define CP_COND_WRITE_3_MASK__SHIFT 0
893 static inline uint32_t CP_COND_WRITE_3_MASK(uint32_t val)
894 {
895 return ((val) << CP_COND_WRITE_3_MASK__SHIFT) & CP_COND_WRITE_3_MASK__MASK;
896 }
897
898 #define REG_CP_COND_WRITE_4 0x00000004
899 #define CP_COND_WRITE_4_WRITE_ADDR__MASK 0xffffffff
900 #define CP_COND_WRITE_4_WRITE_ADDR__SHIFT 0
901 static inline uint32_t CP_COND_WRITE_4_WRITE_ADDR(uint32_t val)
902 {
903 return ((val) << CP_COND_WRITE_4_WRITE_ADDR__SHIFT) & CP_COND_WRITE_4_WRITE_ADDR__MASK;
904 }
905
906 #define REG_CP_COND_WRITE_5 0x00000005
907 #define CP_COND_WRITE_5_WRITE_DATA__MASK 0xffffffff
908 #define CP_COND_WRITE_5_WRITE_DATA__SHIFT 0
909 static inline uint32_t CP_COND_WRITE_5_WRITE_DATA(uint32_t val)
910 {
911 return ((val) << CP_COND_WRITE_5_WRITE_DATA__SHIFT) & CP_COND_WRITE_5_WRITE_DATA__MASK;
912 }
913
914 #define REG_CP_COND_WRITE5_0 0x00000000
915 #define CP_COND_WRITE5_0_FUNCTION__MASK 0x00000007
916 #define CP_COND_WRITE5_0_FUNCTION__SHIFT 0
917 static inline uint32_t CP_COND_WRITE5_0_FUNCTION(enum cp_cond_function val)
918 {
919 return ((val) << CP_COND_WRITE5_0_FUNCTION__SHIFT) & CP_COND_WRITE5_0_FUNCTION__MASK;
920 }
921 #define CP_COND_WRITE5_0_POLL_MEMORY 0x00000010
922 #define CP_COND_WRITE5_0_WRITE_MEMORY 0x00000100
923
924 #define REG_CP_COND_WRITE5_1 0x00000001
925 #define CP_COND_WRITE5_1_POLL_ADDR_LO__MASK 0xffffffff
926 #define CP_COND_WRITE5_1_POLL_ADDR_LO__SHIFT 0
927 static inline uint32_t CP_COND_WRITE5_1_POLL_ADDR_LO(uint32_t val)
928 {
929 return ((val) << CP_COND_WRITE5_1_POLL_ADDR_LO__SHIFT) & CP_COND_WRITE5_1_POLL_ADDR_LO__MASK;
930 }
931
932 #define REG_CP_COND_WRITE5_2 0x00000002
933 #define CP_COND_WRITE5_2_POLL_ADDR_HI__MASK 0xffffffff
934 #define CP_COND_WRITE5_2_POLL_ADDR_HI__SHIFT 0
935 static inline uint32_t CP_COND_WRITE5_2_POLL_ADDR_HI(uint32_t val)
936 {
937 return ((val) << CP_COND_WRITE5_2_POLL_ADDR_HI__SHIFT) & CP_COND_WRITE5_2_POLL_ADDR_HI__MASK;
938 }
939
940 #define REG_CP_COND_WRITE5_3 0x00000003
941 #define CP_COND_WRITE5_3_REF__MASK 0xffffffff
942 #define CP_COND_WRITE5_3_REF__SHIFT 0
943 static inline uint32_t CP_COND_WRITE5_3_REF(uint32_t val)
944 {
945 return ((val) << CP_COND_WRITE5_3_REF__SHIFT) & CP_COND_WRITE5_3_REF__MASK;
946 }
947
948 #define REG_CP_COND_WRITE5_4 0x00000004
949 #define CP_COND_WRITE5_4_MASK__MASK 0xffffffff
950 #define CP_COND_WRITE5_4_MASK__SHIFT 0
951 static inline uint32_t CP_COND_WRITE5_4_MASK(uint32_t val)
952 {
953 return ((val) << CP_COND_WRITE5_4_MASK__SHIFT) & CP_COND_WRITE5_4_MASK__MASK;
954 }
955
956 #define REG_CP_COND_WRITE5_5 0x00000005
957 #define CP_COND_WRITE5_5_WRITE_ADDR_LO__MASK 0xffffffff
958 #define CP_COND_WRITE5_5_WRITE_ADDR_LO__SHIFT 0
959 static inline uint32_t CP_COND_WRITE5_5_WRITE_ADDR_LO(uint32_t val)
960 {
961 return ((val) << CP_COND_WRITE5_5_WRITE_ADDR_LO__SHIFT) & CP_COND_WRITE5_5_WRITE_ADDR_LO__MASK;
962 }
963
964 #define REG_CP_COND_WRITE5_6 0x00000006
965 #define CP_COND_WRITE5_6_WRITE_ADDR_HI__MASK 0xffffffff
966 #define CP_COND_WRITE5_6_WRITE_ADDR_HI__SHIFT 0
967 static inline uint32_t CP_COND_WRITE5_6_WRITE_ADDR_HI(uint32_t val)
968 {
969 return ((val) << CP_COND_WRITE5_6_WRITE_ADDR_HI__SHIFT) & CP_COND_WRITE5_6_WRITE_ADDR_HI__MASK;
970 }
971
972 #define REG_CP_COND_WRITE5_7 0x00000007
973 #define CP_COND_WRITE5_7_WRITE_DATA__MASK 0xffffffff
974 #define CP_COND_WRITE5_7_WRITE_DATA__SHIFT 0
975 static inline uint32_t CP_COND_WRITE5_7_WRITE_DATA(uint32_t val)
976 {
977 return ((val) << CP_COND_WRITE5_7_WRITE_DATA__SHIFT) & CP_COND_WRITE5_7_WRITE_DATA__MASK;
978 }
979
980 #define REG_CP_DISPATCH_COMPUTE_0 0x00000000
981
982 #define REG_CP_DISPATCH_COMPUTE_1 0x00000001
983 #define CP_DISPATCH_COMPUTE_1_X__MASK 0xffffffff
984 #define CP_DISPATCH_COMPUTE_1_X__SHIFT 0
985 static inline uint32_t CP_DISPATCH_COMPUTE_1_X(uint32_t val)
986 {
987 return ((val) << CP_DISPATCH_COMPUTE_1_X__SHIFT) & CP_DISPATCH_COMPUTE_1_X__MASK;
988 }
989
990 #define REG_CP_DISPATCH_COMPUTE_2 0x00000002
991 #define CP_DISPATCH_COMPUTE_2_Y__MASK 0xffffffff
992 #define CP_DISPATCH_COMPUTE_2_Y__SHIFT 0
993 static inline uint32_t CP_DISPATCH_COMPUTE_2_Y(uint32_t val)
994 {
995 return ((val) << CP_DISPATCH_COMPUTE_2_Y__SHIFT) & CP_DISPATCH_COMPUTE_2_Y__MASK;
996 }
997
998 #define REG_CP_DISPATCH_COMPUTE_3 0x00000003
999 #define CP_DISPATCH_COMPUTE_3_Z__MASK 0xffffffff
1000 #define CP_DISPATCH_COMPUTE_3_Z__SHIFT 0
1001 static inline uint32_t CP_DISPATCH_COMPUTE_3_Z(uint32_t val)
1002 {
1003 return ((val) << CP_DISPATCH_COMPUTE_3_Z__SHIFT) & CP_DISPATCH_COMPUTE_3_Z__MASK;
1004 }
1005
1006 #define REG_CP_SET_RENDER_MODE_0 0x00000000
1007 #define CP_SET_RENDER_MODE_0_MODE__MASK 0x000001ff
1008 #define CP_SET_RENDER_MODE_0_MODE__SHIFT 0
1009 static inline uint32_t CP_SET_RENDER_MODE_0_MODE(enum render_mode_cmd val)
1010 {
1011 return ((val) << CP_SET_RENDER_MODE_0_MODE__SHIFT) & CP_SET_RENDER_MODE_0_MODE__MASK;
1012 }
1013
1014 #define REG_CP_SET_RENDER_MODE_1 0x00000001
1015 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK 0xffffffff
1016 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT 0
1017 static inline uint32_t CP_SET_RENDER_MODE_1_ADDR_0_LO(uint32_t val)
1018 {
1019 return ((val) << CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT) & CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK;
1020 }
1021
1022 #define REG_CP_SET_RENDER_MODE_2 0x00000002
1023 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK 0xffffffff
1024 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT 0
1025 static inline uint32_t CP_SET_RENDER_MODE_2_ADDR_0_HI(uint32_t val)
1026 {
1027 return ((val) << CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT) & CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK;
1028 }
1029
1030 #define REG_CP_SET_RENDER_MODE_3 0x00000003
1031 #define CP_SET_RENDER_MODE_3_VSC_ENABLE 0x00000008
1032 #define CP_SET_RENDER_MODE_3_GMEM_ENABLE 0x00000010
1033
1034 #define REG_CP_SET_RENDER_MODE_4 0x00000004
1035
1036 #define REG_CP_SET_RENDER_MODE_5 0x00000005
1037 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK 0xffffffff
1038 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT 0
1039 static inline uint32_t CP_SET_RENDER_MODE_5_ADDR_1_LEN(uint32_t val)
1040 {
1041 return ((val) << CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT) & CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK;
1042 }
1043
1044 #define REG_CP_SET_RENDER_MODE_6 0x00000006
1045 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK 0xffffffff
1046 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT 0
1047 static inline uint32_t CP_SET_RENDER_MODE_6_ADDR_1_LO(uint32_t val)
1048 {
1049 return ((val) << CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT) & CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK;
1050 }
1051
1052 #define REG_CP_SET_RENDER_MODE_7 0x00000007
1053 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK 0xffffffff
1054 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT 0
1055 static inline uint32_t CP_SET_RENDER_MODE_7_ADDR_1_HI(uint32_t val)
1056 {
1057 return ((val) << CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT) & CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK;
1058 }
1059
1060 #define REG_CP_COMPUTE_CHECKPOINT_0 0x00000000
1061 #define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK 0xffffffff
1062 #define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT 0
1063 static inline uint32_t CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO(uint32_t val)
1064 {
1065 return ((val) << CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK;
1066 }
1067
1068 #define REG_CP_COMPUTE_CHECKPOINT_1 0x00000001
1069 #define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK 0xffffffff
1070 #define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT 0
1071 static inline uint32_t CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI(uint32_t val)
1072 {
1073 return ((val) << CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK;
1074 }
1075
1076 #define REG_CP_COMPUTE_CHECKPOINT_2 0x00000002
1077
1078 #define REG_CP_COMPUTE_CHECKPOINT_3 0x00000003
1079
1080 #define REG_CP_COMPUTE_CHECKPOINT_4 0x00000004
1081 #define CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__MASK 0xffffffff
1082 #define CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__SHIFT 0
1083 static inline uint32_t CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN(uint32_t val)
1084 {
1085 return ((val) << CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__SHIFT) & CP_COMPUTE_CHECKPOINT_4_ADDR_1_LEN__MASK;
1086 }
1087
1088 #define REG_CP_COMPUTE_CHECKPOINT_5 0x00000005
1089 #define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK 0xffffffff
1090 #define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT 0
1091 static inline uint32_t CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO(uint32_t val)
1092 {
1093 return ((val) << CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK;
1094 }
1095
1096 #define REG_CP_COMPUTE_CHECKPOINT_6 0x00000006
1097 #define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK 0xffffffff
1098 #define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT 0
1099 static inline uint32_t CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI(uint32_t val)
1100 {
1101 return ((val) << CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK;
1102 }
1103
1104 #define REG_CP_PERFCOUNTER_ACTION_0 0x00000000
1105
1106 #define REG_CP_PERFCOUNTER_ACTION_1 0x00000001
1107 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK 0xffffffff
1108 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT 0
1109 static inline uint32_t CP_PERFCOUNTER_ACTION_1_ADDR_0_LO(uint32_t val)
1110 {
1111 return ((val) << CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT) & CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK;
1112 }
1113
1114 #define REG_CP_PERFCOUNTER_ACTION_2 0x00000002
1115 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK 0xffffffff
1116 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT 0
1117 static inline uint32_t CP_PERFCOUNTER_ACTION_2_ADDR_0_HI(uint32_t val)
1118 {
1119 return ((val) << CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT) & CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK;
1120 }
1121
1122 #define REG_CP_EVENT_WRITE_0 0x00000000
1123 #define CP_EVENT_WRITE_0_EVENT__MASK 0x000000ff
1124 #define CP_EVENT_WRITE_0_EVENT__SHIFT 0
1125 static inline uint32_t CP_EVENT_WRITE_0_EVENT(enum vgt_event_type val)
1126 {
1127 return ((val) << CP_EVENT_WRITE_0_EVENT__SHIFT) & CP_EVENT_WRITE_0_EVENT__MASK;
1128 }
1129 #define CP_EVENT_WRITE_0_TIMESTAMP 0x40000000
1130
1131 #define REG_CP_EVENT_WRITE_1 0x00000001
1132 #define CP_EVENT_WRITE_1_ADDR_0_LO__MASK 0xffffffff
1133 #define CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT 0
1134 static inline uint32_t CP_EVENT_WRITE_1_ADDR_0_LO(uint32_t val)
1135 {
1136 return ((val) << CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT) & CP_EVENT_WRITE_1_ADDR_0_LO__MASK;
1137 }
1138
1139 #define REG_CP_EVENT_WRITE_2 0x00000002
1140 #define CP_EVENT_WRITE_2_ADDR_0_HI__MASK 0xffffffff
1141 #define CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT 0
1142 static inline uint32_t CP_EVENT_WRITE_2_ADDR_0_HI(uint32_t val)
1143 {
1144 return ((val) << CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT) & CP_EVENT_WRITE_2_ADDR_0_HI__MASK;
1145 }
1146
1147 #define REG_CP_EVENT_WRITE_3 0x00000003
1148
1149 #define REG_CP_BLIT_0 0x00000000
1150 #define CP_BLIT_0_OP__MASK 0x0000000f
1151 #define CP_BLIT_0_OP__SHIFT 0
1152 static inline uint32_t CP_BLIT_0_OP(enum cp_blit_cmd val)
1153 {
1154 return ((val) << CP_BLIT_0_OP__SHIFT) & CP_BLIT_0_OP__MASK;
1155 }
1156
1157 #define REG_CP_BLIT_1 0x00000001
1158 #define CP_BLIT_1_SRC_X1__MASK 0x0000ffff
1159 #define CP_BLIT_1_SRC_X1__SHIFT 0
1160 static inline uint32_t CP_BLIT_1_SRC_X1(uint32_t val)
1161 {
1162 return ((val) << CP_BLIT_1_SRC_X1__SHIFT) & CP_BLIT_1_SRC_X1__MASK;
1163 }
1164 #define CP_BLIT_1_SRC_Y1__MASK 0xffff0000
1165 #define CP_BLIT_1_SRC_Y1__SHIFT 16
1166 static inline uint32_t CP_BLIT_1_SRC_Y1(uint32_t val)
1167 {
1168 return ((val) << CP_BLIT_1_SRC_Y1__SHIFT) & CP_BLIT_1_SRC_Y1__MASK;
1169 }
1170
1171 #define REG_CP_BLIT_2 0x00000002
1172 #define CP_BLIT_2_SRC_X2__MASK 0x0000ffff
1173 #define CP_BLIT_2_SRC_X2__SHIFT 0
1174 static inline uint32_t CP_BLIT_2_SRC_X2(uint32_t val)
1175 {
1176 return ((val) << CP_BLIT_2_SRC_X2__SHIFT) & CP_BLIT_2_SRC_X2__MASK;
1177 }
1178 #define CP_BLIT_2_SRC_Y2__MASK 0xffff0000
1179 #define CP_BLIT_2_SRC_Y2__SHIFT 16
1180 static inline uint32_t CP_BLIT_2_SRC_Y2(uint32_t val)
1181 {
1182 return ((val) << CP_BLIT_2_SRC_Y2__SHIFT) & CP_BLIT_2_SRC_Y2__MASK;
1183 }
1184
1185 #define REG_CP_BLIT_3 0x00000003
1186 #define CP_BLIT_3_DST_X1__MASK 0x0000ffff
1187 #define CP_BLIT_3_DST_X1__SHIFT 0
1188 static inline uint32_t CP_BLIT_3_DST_X1(uint32_t val)
1189 {
1190 return ((val) << CP_BLIT_3_DST_X1__SHIFT) & CP_BLIT_3_DST_X1__MASK;
1191 }
1192 #define CP_BLIT_3_DST_Y1__MASK 0xffff0000
1193 #define CP_BLIT_3_DST_Y1__SHIFT 16
1194 static inline uint32_t CP_BLIT_3_DST_Y1(uint32_t val)
1195 {
1196 return ((val) << CP_BLIT_3_DST_Y1__SHIFT) & CP_BLIT_3_DST_Y1__MASK;
1197 }
1198
1199 #define REG_CP_BLIT_4 0x00000004
1200 #define CP_BLIT_4_DST_X2__MASK 0x0000ffff
1201 #define CP_BLIT_4_DST_X2__SHIFT 0
1202 static inline uint32_t CP_BLIT_4_DST_X2(uint32_t val)
1203 {
1204 return ((val) << CP_BLIT_4_DST_X2__SHIFT) & CP_BLIT_4_DST_X2__MASK;
1205 }
1206 #define CP_BLIT_4_DST_Y2__MASK 0xffff0000
1207 #define CP_BLIT_4_DST_Y2__SHIFT 16
1208 static inline uint32_t CP_BLIT_4_DST_Y2(uint32_t val)
1209 {
1210 return ((val) << CP_BLIT_4_DST_Y2__SHIFT) & CP_BLIT_4_DST_Y2__MASK;
1211 }
1212
1213 #define REG_CP_EXEC_CS_0 0x00000000
1214
1215 #define REG_CP_EXEC_CS_1 0x00000001
1216 #define CP_EXEC_CS_1_NGROUPS_X__MASK 0xffffffff
1217 #define CP_EXEC_CS_1_NGROUPS_X__SHIFT 0
1218 static inline uint32_t CP_EXEC_CS_1_NGROUPS_X(uint32_t val)
1219 {
1220 return ((val) << CP_EXEC_CS_1_NGROUPS_X__SHIFT) & CP_EXEC_CS_1_NGROUPS_X__MASK;
1221 }
1222
1223 #define REG_CP_EXEC_CS_2 0x00000002
1224 #define CP_EXEC_CS_2_NGROUPS_Y__MASK 0xffffffff
1225 #define CP_EXEC_CS_2_NGROUPS_Y__SHIFT 0
1226 static inline uint32_t CP_EXEC_CS_2_NGROUPS_Y(uint32_t val)
1227 {
1228 return ((val) << CP_EXEC_CS_2_NGROUPS_Y__SHIFT) & CP_EXEC_CS_2_NGROUPS_Y__MASK;
1229 }
1230
1231 #define REG_CP_EXEC_CS_3 0x00000003
1232 #define CP_EXEC_CS_3_NGROUPS_Z__MASK 0xffffffff
1233 #define CP_EXEC_CS_3_NGROUPS_Z__SHIFT 0
1234 static inline uint32_t CP_EXEC_CS_3_NGROUPS_Z(uint32_t val)
1235 {
1236 return ((val) << CP_EXEC_CS_3_NGROUPS_Z__SHIFT) & CP_EXEC_CS_3_NGROUPS_Z__MASK;
1237 }
1238
1239 #define REG_CP_EXEC_CS_INDIRECT_0 0x00000000
1240
1241 #define REG_CP_EXEC_CS_INDIRECT_1 0x00000001
1242 #define CP_EXEC_CS_INDIRECT_1_ADDR_LO__MASK 0xffffffff
1243 #define CP_EXEC_CS_INDIRECT_1_ADDR_LO__SHIFT 0
1244 static inline uint32_t CP_EXEC_CS_INDIRECT_1_ADDR_LO(uint32_t val)
1245 {
1246 return ((val) << CP_EXEC_CS_INDIRECT_1_ADDR_LO__SHIFT) & CP_EXEC_CS_INDIRECT_1_ADDR_LO__MASK;
1247 }
1248
1249 #define REG_CP_EXEC_CS_INDIRECT_2 0x00000002
1250 #define CP_EXEC_CS_INDIRECT_2_ADDR_HI__MASK 0xffffffff
1251 #define CP_EXEC_CS_INDIRECT_2_ADDR_HI__SHIFT 0
1252 static inline uint32_t CP_EXEC_CS_INDIRECT_2_ADDR_HI(uint32_t val)
1253 {
1254 return ((val) << CP_EXEC_CS_INDIRECT_2_ADDR_HI__SHIFT) & CP_EXEC_CS_INDIRECT_2_ADDR_HI__MASK;
1255 }
1256
1257 #define REG_CP_EXEC_CS_INDIRECT_3 0x00000003
1258 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__MASK 0x00000ffc
1259 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__SHIFT 2
1260 static inline uint32_t CP_EXEC_CS_INDIRECT_3_LOCALSIZEX(uint32_t val)
1261 {
1262 return ((val) << CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__SHIFT) & CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__MASK;
1263 }
1264 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__MASK 0x003ff000
1265 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__SHIFT 12
1266 static inline uint32_t CP_EXEC_CS_INDIRECT_3_LOCALSIZEY(uint32_t val)
1267 {
1268 return ((val) << CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__SHIFT) & CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__MASK;
1269 }
1270 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__MASK 0xffc00000
1271 #define CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__SHIFT 22
1272 static inline uint32_t CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ(uint32_t val)
1273 {
1274 return ((val) << CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__SHIFT) & CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__MASK;
1275 }
1276
1277
1278 #endif /* ADRENO_PM4_XML */