1b8e80941Smrg#ifndef ADRENO_PM4_XML
2b8e80941Smrg#define ADRENO_PM4_XML
3b8e80941Smrg
4b8e80941Smrg/* Autogenerated file, DO NOT EDIT manually!
5b8e80941Smrg
6b8e80941SmrgThis file was generated by the rules-ng-ng headergen tool in this git repository:
7b8e80941Smrghttp://github.com/freedreno/envytools/
8b8e80941Smrggit clone https://github.com/freedreno/envytools.git
9b8e80941Smrg
10b8e80941SmrgThe rules-ng-ng source files this header was generated from are:
11b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno.xml               (    501 bytes, from 2018-07-03 19:37:13)
12b8e80941Smrg- /home/robclark/src/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2018-07-03 19:37:13)
13b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a2xx.xml          (  79608 bytes, from 2019-01-21 14:36:17)
14b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml (  14239 bytes, from 2018-12-05 15:25:53)
15b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml    (  43155 bytes, from 2019-05-03 18:24:29)
16b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2018-07-03 19:37:13)
17b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a4xx.xml          ( 112086 bytes, from 2018-07-03 19:37:13)
18b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a5xx.xml          ( 147240 bytes, from 2019-05-03 18:24:29)
19b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a6xx.xml          ( 148461 bytes, from 2019-05-03 18:24:37)
20b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml      (  10431 bytes, from 2018-09-14 13:03:07)
21b8e80941Smrg- /home/robclark/src/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2018-07-03 19:37:13)
22b8e80941Smrg
23b8e80941SmrgCopyright (C) 2013-2019 by the following authors:
24b8e80941Smrg- Rob Clark <robdclark@gmail.com> (robclark)
25b8e80941Smrg- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
26b8e80941Smrg
27b8e80941SmrgPermission is hereby granted, free of charge, to any person obtaining
28b8e80941Smrga copy of this software and associated documentation files (the
29b8e80941Smrg"Software"), to deal in the Software without restriction, including
30b8e80941Smrgwithout limitation the rights to use, copy, modify, merge, publish,
31b8e80941Smrgdistribute, sublicense, and/or sell copies of the Software, and to
32b8e80941Smrgpermit persons to whom the Software is furnished to do so, subject to
33b8e80941Smrgthe following conditions:
34b8e80941Smrg
35b8e80941SmrgThe above copyright notice and this permission notice (including the
36b8e80941Smrgnext paragraph) shall be included in all copies or substantial
37b8e80941Smrgportions of the Software.
38b8e80941Smrg
39b8e80941SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40b8e80941SmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
41b8e80941SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
42b8e80941SmrgIN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
43b8e80941SmrgLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
44b8e80941SmrgOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
45b8e80941SmrgWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
46b8e80941Smrg*/
47b8e80941Smrg
48b8e80941Smrg
49b8e80941Smrgenum vgt_event_type {
50b8e80941Smrg	VS_DEALLOC = 0,
51b8e80941Smrg	PS_DEALLOC = 1,
52b8e80941Smrg	VS_DONE_TS = 2,
53b8e80941Smrg	PS_DONE_TS = 3,
54b8e80941Smrg	CACHE_FLUSH_TS = 4,
55b8e80941Smrg	CONTEXT_DONE = 5,
56b8e80941Smrg	CACHE_FLUSH = 6,
57b8e80941Smrg	HLSQ_FLUSH = 7,
58b8e80941Smrg	VIZQUERY_START = 7,
59b8e80941Smrg	VIZQUERY_END = 8,
60b8e80941Smrg	SC_WAIT_WC = 9,
61b8e80941Smrg	RST_PIX_CNT = 13,
62b8e80941Smrg	RST_VTX_CNT = 14,
63b8e80941Smrg	TILE_FLUSH = 15,
64b8e80941Smrg	STAT_EVENT = 16,
65b8e80941Smrg	CACHE_FLUSH_AND_INV_TS_EVENT = 20,
66b8e80941Smrg	ZPASS_DONE = 21,
67b8e80941Smrg	CACHE_FLUSH_AND_INV_EVENT = 22,
68b8e80941Smrg	PERFCOUNTER_START = 23,
69b8e80941Smrg	PERFCOUNTER_STOP = 24,
70b8e80941Smrg	VS_FETCH_DONE = 27,
71b8e80941Smrg	FACENESS_FLUSH = 28,
72b8e80941Smrg	FLUSH_SO_0 = 17,
73b8e80941Smrg	FLUSH_SO_1 = 18,
74b8e80941Smrg	FLUSH_SO_2 = 19,
75b8e80941Smrg	FLUSH_SO_3 = 20,
76b8e80941Smrg	PC_CCU_INVALIDATE_DEPTH = 24,
77b8e80941Smrg	PC_CCU_INVALIDATE_COLOR = 25,
78b8e80941Smrg	UNK_1C = 28,
79b8e80941Smrg	UNK_1D = 29,
80b8e80941Smrg	BLIT = 30,
81b8e80941Smrg	UNK_25 = 37,
82b8e80941Smrg	LRZ_FLUSH = 38,
83b8e80941Smrg	UNK_2C = 44,
84b8e80941Smrg	UNK_2D = 45,
85b8e80941Smrg};
86b8e80941Smrg
87b8e80941Smrgenum pc_di_primtype {
88b8e80941Smrg	DI_PT_NONE = 0,
89b8e80941Smrg	DI_PT_POINTLIST_PSIZE = 1,
90b8e80941Smrg	DI_PT_LINELIST = 2,
91b8e80941Smrg	DI_PT_LINESTRIP = 3,
92b8e80941Smrg	DI_PT_TRILIST = 4,
93b8e80941Smrg	DI_PT_TRIFAN = 5,
94b8e80941Smrg	DI_PT_TRISTRIP = 6,
95b8e80941Smrg	DI_PT_LINELOOP = 7,
96b8e80941Smrg	DI_PT_RECTLIST = 8,
97b8e80941Smrg	DI_PT_POINTLIST = 9,
98b8e80941Smrg	DI_PT_LINE_ADJ = 10,
99b8e80941Smrg	DI_PT_LINESTRIP_ADJ = 11,
100b8e80941Smrg	DI_PT_TRI_ADJ = 12,
101b8e80941Smrg	DI_PT_TRISTRIP_ADJ = 13,
102b8e80941Smrg};
103b8e80941Smrg
104b8e80941Smrgenum pc_di_src_sel {
105b8e80941Smrg	DI_SRC_SEL_DMA = 0,
106b8e80941Smrg	DI_SRC_SEL_IMMEDIATE = 1,
107b8e80941Smrg	DI_SRC_SEL_AUTO_INDEX = 2,
108b8e80941Smrg	DI_SRC_SEL_RESERVED = 3,
109b8e80941Smrg};
110b8e80941Smrg
111b8e80941Smrgenum pc_di_face_cull_sel {
112b8e80941Smrg	DI_FACE_CULL_NONE = 0,
113b8e80941Smrg	DI_FACE_CULL_FETCH = 1,
114b8e80941Smrg	DI_FACE_BACKFACE_CULL = 2,
115b8e80941Smrg	DI_FACE_FRONTFACE_CULL = 3,
116b8e80941Smrg};
117b8e80941Smrg
118b8e80941Smrgenum pc_di_index_size {
119b8e80941Smrg	INDEX_SIZE_IGN = 0,
120b8e80941Smrg	INDEX_SIZE_16_BIT = 0,
121b8e80941Smrg	INDEX_SIZE_32_BIT = 1,
122b8e80941Smrg	INDEX_SIZE_8_BIT = 2,
123b8e80941Smrg	INDEX_SIZE_INVALID = 0,
124b8e80941Smrg};
125b8e80941Smrg
126b8e80941Smrgenum pc_di_vis_cull_mode {
127b8e80941Smrg	IGNORE_VISIBILITY = 0,
128b8e80941Smrg	USE_VISIBILITY = 1,
129b8e80941Smrg};
130b8e80941Smrg
131b8e80941Smrgenum adreno_pm4_packet_type {
132b8e80941Smrg	CP_TYPE0_PKT = 0,
133b8e80941Smrg	CP_TYPE1_PKT = 0x40000000,
134b8e80941Smrg	CP_TYPE2_PKT = 0x80000000,
135b8e80941Smrg	CP_TYPE3_PKT = 0xc0000000,
136b8e80941Smrg	CP_TYPE4_PKT = 0x40000000,
137b8e80941Smrg	CP_TYPE7_PKT = 0x70000000,
138b8e80941Smrg};
139b8e80941Smrg
140b8e80941Smrgenum adreno_pm4_type3_packets {
141b8e80941Smrg	CP_ME_INIT = 72,
142b8e80941Smrg	CP_NOP = 16,
143b8e80941Smrg	CP_PREEMPT_ENABLE = 28,
144b8e80941Smrg	CP_PREEMPT_TOKEN = 30,
145b8e80941Smrg	CP_INDIRECT_BUFFER = 63,
146b8e80941Smrg	CP_INDIRECT_BUFFER_PFD = 55,
147b8e80941Smrg	CP_WAIT_FOR_IDLE = 38,
148b8e80941Smrg	CP_WAIT_REG_MEM = 60,
149b8e80941Smrg	CP_WAIT_REG_EQ = 82,
150b8e80941Smrg	CP_WAIT_REG_GTE = 83,
151b8e80941Smrg	CP_WAIT_UNTIL_READ = 92,
152b8e80941Smrg	CP_WAIT_IB_PFD_COMPLETE = 93,
153b8e80941Smrg	CP_REG_RMW = 33,
154b8e80941Smrg	CP_SET_BIN_DATA = 47,
155b8e80941Smrg	CP_SET_BIN_DATA5 = 47,
156b8e80941Smrg	CP_REG_TO_MEM = 62,
157b8e80941Smrg	CP_MEM_WRITE = 61,
158b8e80941Smrg	CP_MEM_WRITE_CNTR = 79,
159b8e80941Smrg	CP_COND_EXEC = 68,
160b8e80941Smrg	CP_COND_WRITE = 69,
161b8e80941Smrg	CP_COND_WRITE5 = 69,
162b8e80941Smrg	CP_EVENT_WRITE = 70,
163b8e80941Smrg	CP_EVENT_WRITE_SHD = 88,
164b8e80941Smrg	CP_EVENT_WRITE_CFL = 89,
165b8e80941Smrg	CP_EVENT_WRITE_ZPD = 91,
166b8e80941Smrg	CP_RUN_OPENCL = 49,
167b8e80941Smrg	CP_DRAW_INDX = 34,
168b8e80941Smrg	CP_DRAW_INDX_2 = 54,
169b8e80941Smrg	CP_DRAW_INDX_BIN = 52,
170b8e80941Smrg	CP_DRAW_INDX_2_BIN = 53,
171b8e80941Smrg	CP_VIZ_QUERY = 35,
172b8e80941Smrg	CP_SET_STATE = 37,
173b8e80941Smrg	CP_SET_CONSTANT = 45,
174b8e80941Smrg	CP_IM_LOAD = 39,
175b8e80941Smrg	CP_IM_LOAD_IMMEDIATE = 43,
176b8e80941Smrg	CP_LOAD_CONSTANT_CONTEXT = 46,
177b8e80941Smrg	CP_INVALIDATE_STATE = 59,
178b8e80941Smrg	CP_SET_SHADER_BASES = 74,
179b8e80941Smrg	CP_SET_BIN_MASK = 80,
180b8e80941Smrg	CP_SET_BIN_SELECT = 81,
181b8e80941Smrg	CP_CONTEXT_UPDATE = 94,
182b8e80941Smrg	CP_INTERRUPT = 64,
183b8e80941Smrg	CP_IM_STORE = 44,
184b8e80941Smrg	CP_SET_DRAW_INIT_FLAGS = 75,
185b8e80941Smrg	CP_SET_PROTECTED_MODE = 95,
186b8e80941Smrg	CP_BOOTSTRAP_UCODE = 111,
187b8e80941Smrg	CP_LOAD_STATE = 48,
188b8e80941Smrg	CP_LOAD_STATE4 = 48,
189b8e80941Smrg	CP_COND_INDIRECT_BUFFER_PFE = 58,
190b8e80941Smrg	CP_COND_INDIRECT_BUFFER_PFD = 50,
191b8e80941Smrg	CP_INDIRECT_BUFFER_PFE = 63,
192b8e80941Smrg	CP_SET_BIN = 76,
193b8e80941Smrg	CP_TEST_TWO_MEMS = 113,
194b8e80941Smrg	CP_REG_WR_NO_CTXT = 120,
195b8e80941Smrg	CP_RECORD_PFP_TIMESTAMP = 17,
196b8e80941Smrg	CP_SET_SECURE_MODE = 102,
197b8e80941Smrg	CP_WAIT_FOR_ME = 19,
198b8e80941Smrg	CP_SET_DRAW_STATE = 67,
199b8e80941Smrg	CP_DRAW_INDX_OFFSET = 56,
200b8e80941Smrg	CP_DRAW_INDIRECT = 40,
201b8e80941Smrg	CP_DRAW_INDX_INDIRECT = 41,
202b8e80941Smrg	CP_DRAW_AUTO = 36,
203b8e80941Smrg	CP_UNKNOWN_19 = 25,
204b8e80941Smrg	CP_UNKNOWN_1A = 26,
205b8e80941Smrg	CP_UNKNOWN_4E = 78,
206b8e80941Smrg	CP_WIDE_REG_WRITE = 116,
207b8e80941Smrg	CP_SCRATCH_TO_REG = 77,
208b8e80941Smrg	CP_REG_TO_SCRATCH = 74,
209b8e80941Smrg	CP_WAIT_MEM_WRITES = 18,
210b8e80941Smrg	CP_COND_REG_EXEC = 71,
211b8e80941Smrg	CP_MEM_TO_REG = 66,
212b8e80941Smrg	CP_EXEC_CS_INDIRECT = 65,
213b8e80941Smrg	CP_EXEC_CS = 51,
214b8e80941Smrg	CP_PERFCOUNTER_ACTION = 80,
215b8e80941Smrg	CP_SMMU_TABLE_UPDATE = 83,
216b8e80941Smrg	CP_SET_MARKER = 101,
217b8e80941Smrg	CP_SET_PSEUDO_REG = 86,
218b8e80941Smrg	CP_CONTEXT_REG_BUNCH = 92,
219b8e80941Smrg	CP_YIELD_ENABLE = 28,
220b8e80941Smrg	CP_SKIP_IB2_ENABLE_GLOBAL = 29,
221b8e80941Smrg	CP_SKIP_IB2_ENABLE_LOCAL = 35,
222b8e80941Smrg	CP_SET_SUBDRAW_SIZE = 53,
223b8e80941Smrg	CP_SET_VISIBILITY_OVERRIDE = 100,
224b8e80941Smrg	CP_PREEMPT_ENABLE_GLOBAL = 105,
225b8e80941Smrg	CP_PREEMPT_ENABLE_LOCAL = 106,
226b8e80941Smrg	CP_CONTEXT_SWITCH_YIELD = 107,
227b8e80941Smrg	CP_SET_RENDER_MODE = 108,
228b8e80941Smrg	CP_COMPUTE_CHECKPOINT = 110,
229b8e80941Smrg	CP_MEM_TO_MEM = 115,
230b8e80941Smrg	CP_BLIT = 44,
231b8e80941Smrg	CP_REG_TEST = 57,
232b8e80941Smrg	CP_SET_MODE = 99,
233b8e80941Smrg	CP_LOAD_STATE6_GEOM = 50,
234b8e80941Smrg	CP_LOAD_STATE6_FRAG = 52,
235b8e80941Smrg	CP_LOAD_STATE6 = 54,
236b8e80941Smrg	IN_IB_PREFETCH_END = 23,
237b8e80941Smrg	IN_SUBBLK_PREFETCH = 31,
238b8e80941Smrg	IN_INSTR_PREFETCH = 32,
239b8e80941Smrg	IN_INSTR_MATCH = 71,
240b8e80941Smrg	IN_CONST_PREFETCH = 73,
241b8e80941Smrg	IN_INCR_UPDT_STATE = 85,
242b8e80941Smrg	IN_INCR_UPDT_CONST = 86,
243b8e80941Smrg	IN_INCR_UPDT_INSTR = 87,
244b8e80941Smrg	PKT4 = 4,
245b8e80941Smrg	CP_UNK_A6XX_14 = 20,
246b8e80941Smrg	CP_UNK_A6XX_55 = 85,
247b8e80941Smrg	CP_REG_WRITE = 109,
248b8e80941Smrg};
249b8e80941Smrg
250b8e80941Smrgenum adreno_state_block {
251b8e80941Smrg	SB_VERT_TEX = 0,
252b8e80941Smrg	SB_VERT_MIPADDR = 1,
253b8e80941Smrg	SB_FRAG_TEX = 2,
254b8e80941Smrg	SB_FRAG_MIPADDR = 3,
255b8e80941Smrg	SB_VERT_SHADER = 4,
256b8e80941Smrg	SB_GEOM_SHADER = 5,
257b8e80941Smrg	SB_FRAG_SHADER = 6,
258b8e80941Smrg	SB_COMPUTE_SHADER = 7,
259b8e80941Smrg};
260b8e80941Smrg
261b8e80941Smrgenum adreno_state_type {
262b8e80941Smrg	ST_SHADER = 0,
263b8e80941Smrg	ST_CONSTANTS = 1,
264b8e80941Smrg};
265b8e80941Smrg
266b8e80941Smrgenum adreno_state_src {
267b8e80941Smrg	SS_DIRECT = 0,
268b8e80941Smrg	SS_INVALID_ALL_IC = 2,
269b8e80941Smrg	SS_INVALID_PART_IC = 3,
270b8e80941Smrg	SS_INDIRECT = 4,
271b8e80941Smrg	SS_INDIRECT_TCM = 5,
272b8e80941Smrg	SS_INDIRECT_STM = 6,
273b8e80941Smrg};
274b8e80941Smrg
275b8e80941Smrgenum a4xx_state_block {
276b8e80941Smrg	SB4_VS_TEX = 0,
277b8e80941Smrg	SB4_HS_TEX = 1,
278b8e80941Smrg	SB4_DS_TEX = 2,
279b8e80941Smrg	SB4_GS_TEX = 3,
280b8e80941Smrg	SB4_FS_TEX = 4,
281b8e80941Smrg	SB4_CS_TEX = 5,
282b8e80941Smrg	SB4_VS_SHADER = 8,
283b8e80941Smrg	SB4_HS_SHADER = 9,
284b8e80941Smrg	SB4_DS_SHADER = 10,
285b8e80941Smrg	SB4_GS_SHADER = 11,
286b8e80941Smrg	SB4_FS_SHADER = 12,
287b8e80941Smrg	SB4_CS_SHADER = 13,
288b8e80941Smrg	SB4_SSBO = 14,
289b8e80941Smrg	SB4_CS_SSBO = 15,
290b8e80941Smrg};
291b8e80941Smrg
292b8e80941Smrgenum a4xx_state_type {
293b8e80941Smrg	ST4_SHADER = 0,
294b8e80941Smrg	ST4_CONSTANTS = 1,
295b8e80941Smrg};
296b8e80941Smrg
297b8e80941Smrgenum a4xx_state_src {
298b8e80941Smrg	SS4_DIRECT = 0,
299b8e80941Smrg	SS4_INDIRECT = 2,
300b8e80941Smrg};
301b8e80941Smrg
302b8e80941Smrgenum a6xx_state_block {
303b8e80941Smrg	SB6_VS_TEX = 0,
304b8e80941Smrg	SB6_HS_TEX = 1,
305b8e80941Smrg	SB6_DS_TEX = 2,
306b8e80941Smrg	SB6_GS_TEX = 3,
307b8e80941Smrg	SB6_FS_TEX = 4,
308b8e80941Smrg	SB6_CS_TEX = 5,
309b8e80941Smrg	SB6_VS_SHADER = 8,
310b8e80941Smrg	SB6_HS_SHADER = 9,
311b8e80941Smrg	SB6_DS_SHADER = 10,
312b8e80941Smrg	SB6_GS_SHADER = 11,
313b8e80941Smrg	SB6_FS_SHADER = 12,
314b8e80941Smrg	SB6_CS_SHADER = 13,
315b8e80941Smrg	SB6_IBO = 14,
316b8e80941Smrg	SB6_CS_IBO = 15,
317b8e80941Smrg};
318b8e80941Smrg
319b8e80941Smrgenum a6xx_state_type {
320b8e80941Smrg	ST6_SHADER = 0,
321b8e80941Smrg	ST6_CONSTANTS = 1,
322b8e80941Smrg	ST6_IBO = 3,
323b8e80941Smrg};
324b8e80941Smrg
325b8e80941Smrgenum a6xx_state_src {
326b8e80941Smrg	SS6_DIRECT = 0,
327b8e80941Smrg	SS6_INDIRECT = 2,
328b8e80941Smrg};
329b8e80941Smrg
330b8e80941Smrgenum a4xx_index_size {
331b8e80941Smrg	INDEX4_SIZE_8_BIT = 0,
332b8e80941Smrg	INDEX4_SIZE_16_BIT = 1,
333b8e80941Smrg	INDEX4_SIZE_32_BIT = 2,
334b8e80941Smrg};
335b8e80941Smrg
336b8e80941Smrgenum cp_cond_function {
337b8e80941Smrg	WRITE_ALWAYS = 0,
338b8e80941Smrg	WRITE_LT = 1,
339b8e80941Smrg	WRITE_LE = 2,
340b8e80941Smrg	WRITE_EQ = 3,
341b8e80941Smrg	WRITE_NE = 4,
342b8e80941Smrg	WRITE_GE = 5,
343b8e80941Smrg	WRITE_GT = 6,
344b8e80941Smrg};
345b8e80941Smrg
346b8e80941Smrgenum render_mode_cmd {
347b8e80941Smrg	BYPASS = 1,
348b8e80941Smrg	BINNING = 2,
349b8e80941Smrg	GMEM = 3,
350b8e80941Smrg	BLIT2D = 5,
351b8e80941Smrg	BLIT2DSCALE = 7,
352b8e80941Smrg	END2D = 8,
353b8e80941Smrg};
354b8e80941Smrg
355b8e80941Smrgenum cp_blit_cmd {
356b8e80941Smrg	BLIT_OP_FILL = 0,
357b8e80941Smrg	BLIT_OP_COPY = 1,
358b8e80941Smrg	BLIT_OP_SCALE = 3,
359b8e80941Smrg};
360b8e80941Smrg
361b8e80941Smrgenum a6xx_render_mode {
362b8e80941Smrg	RM6_BYPASS = 1,
363b8e80941Smrg	RM6_BINNING = 2,
364b8e80941Smrg	RM6_GMEM = 4,
365b8e80941Smrg	RM6_BLIT2D = 5,
366b8e80941Smrg	RM6_RESOLVE = 6,
367b8e80941Smrg	RM6_BLIT2DSCALE = 12,
368b8e80941Smrg};
369b8e80941Smrg
370b8e80941Smrgenum pseudo_reg {
371b8e80941Smrg	SMMU_INFO = 0,
372b8e80941Smrg	NON_SECURE_SAVE_ADDR = 1,
373b8e80941Smrg	SECURE_SAVE_ADDR = 2,
374b8e80941Smrg	NON_PRIV_SAVE_ADDR = 3,
375b8e80941Smrg	COUNTER = 4,
376b8e80941Smrg};
377b8e80941Smrg
378b8e80941Smrg#define REG_CP_LOAD_STATE_0					0x00000000
379b8e80941Smrg#define CP_LOAD_STATE_0_DST_OFF__MASK				0x0000ffff
380b8e80941Smrg#define CP_LOAD_STATE_0_DST_OFF__SHIFT				0
381b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_0_DST_OFF(uint32_t val)
382b8e80941Smrg{
383b8e80941Smrg	return ((val) << CP_LOAD_STATE_0_DST_OFF__SHIFT) & CP_LOAD_STATE_0_DST_OFF__MASK;
384b8e80941Smrg}
385b8e80941Smrg#define CP_LOAD_STATE_0_STATE_SRC__MASK				0x00070000
386b8e80941Smrg#define CP_LOAD_STATE_0_STATE_SRC__SHIFT			16
387b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_0_STATE_SRC(enum adreno_state_src val)
388b8e80941Smrg{
389b8e80941Smrg	return ((val) << CP_LOAD_STATE_0_STATE_SRC__SHIFT) & CP_LOAD_STATE_0_STATE_SRC__MASK;
390b8e80941Smrg}
391b8e80941Smrg#define CP_LOAD_STATE_0_STATE_BLOCK__MASK			0x00380000
392b8e80941Smrg#define CP_LOAD_STATE_0_STATE_BLOCK__SHIFT			19
393b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_0_STATE_BLOCK(enum adreno_state_block val)
394b8e80941Smrg{
395b8e80941Smrg	return ((val) << CP_LOAD_STATE_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE_0_STATE_BLOCK__MASK;
396b8e80941Smrg}
397b8e80941Smrg#define CP_LOAD_STATE_0_NUM_UNIT__MASK				0xffc00000
398b8e80941Smrg#define CP_LOAD_STATE_0_NUM_UNIT__SHIFT				22
399b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_0_NUM_UNIT(uint32_t val)
400b8e80941Smrg{
401b8e80941Smrg	return ((val) << CP_LOAD_STATE_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE_0_NUM_UNIT__MASK;
402b8e80941Smrg}
403b8e80941Smrg
404b8e80941Smrg#define REG_CP_LOAD_STATE_1					0x00000001
405b8e80941Smrg#define CP_LOAD_STATE_1_STATE_TYPE__MASK			0x00000003
406b8e80941Smrg#define CP_LOAD_STATE_1_STATE_TYPE__SHIFT			0
407b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_1_STATE_TYPE(enum adreno_state_type val)
408b8e80941Smrg{
409b8e80941Smrg	return ((val) << CP_LOAD_STATE_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE_1_STATE_TYPE__MASK;
410b8e80941Smrg}
411b8e80941Smrg#define CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK			0xfffffffc
412b8e80941Smrg#define CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT			2
413b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE_1_EXT_SRC_ADDR(uint32_t val)
414b8e80941Smrg{
415b8e80941Smrg	assert(!(val & 0x3));
416b8e80941Smrg	return ((val >> 2) << CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK;
417b8e80941Smrg}
418b8e80941Smrg
419b8e80941Smrg#define REG_CP_LOAD_STATE4_0					0x00000000
420b8e80941Smrg#define CP_LOAD_STATE4_0_DST_OFF__MASK				0x00003fff
421b8e80941Smrg#define CP_LOAD_STATE4_0_DST_OFF__SHIFT				0
422b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_0_DST_OFF(uint32_t val)
423b8e80941Smrg{
424b8e80941Smrg	return ((val) << CP_LOAD_STATE4_0_DST_OFF__SHIFT) & CP_LOAD_STATE4_0_DST_OFF__MASK;
425b8e80941Smrg}
426b8e80941Smrg#define CP_LOAD_STATE4_0_STATE_SRC__MASK			0x00030000
427b8e80941Smrg#define CP_LOAD_STATE4_0_STATE_SRC__SHIFT			16
428b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_0_STATE_SRC(enum a4xx_state_src val)
429b8e80941Smrg{
430b8e80941Smrg	return ((val) << CP_LOAD_STATE4_0_STATE_SRC__SHIFT) & CP_LOAD_STATE4_0_STATE_SRC__MASK;
431b8e80941Smrg}
432b8e80941Smrg#define CP_LOAD_STATE4_0_STATE_BLOCK__MASK			0x003c0000
433b8e80941Smrg#define CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT			18
434b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_0_STATE_BLOCK(enum a4xx_state_block val)
435b8e80941Smrg{
436b8e80941Smrg	return ((val) << CP_LOAD_STATE4_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE4_0_STATE_BLOCK__MASK;
437b8e80941Smrg}
438b8e80941Smrg#define CP_LOAD_STATE4_0_NUM_UNIT__MASK				0xffc00000
439b8e80941Smrg#define CP_LOAD_STATE4_0_NUM_UNIT__SHIFT			22
440b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_0_NUM_UNIT(uint32_t val)
441b8e80941Smrg{
442b8e80941Smrg	return ((val) << CP_LOAD_STATE4_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE4_0_NUM_UNIT__MASK;
443b8e80941Smrg}
444b8e80941Smrg
445b8e80941Smrg#define REG_CP_LOAD_STATE4_1					0x00000001
446b8e80941Smrg#define CP_LOAD_STATE4_1_STATE_TYPE__MASK			0x00000003
447b8e80941Smrg#define CP_LOAD_STATE4_1_STATE_TYPE__SHIFT			0
448b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_1_STATE_TYPE(enum a4xx_state_type val)
449b8e80941Smrg{
450b8e80941Smrg	return ((val) << CP_LOAD_STATE4_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE4_1_STATE_TYPE__MASK;
451b8e80941Smrg}
452b8e80941Smrg#define CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK			0xfffffffc
453b8e80941Smrg#define CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT			2
454b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_1_EXT_SRC_ADDR(uint32_t val)
455b8e80941Smrg{
456b8e80941Smrg	assert(!(val & 0x3));
457b8e80941Smrg	return ((val >> 2) << CP_LOAD_STATE4_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE4_1_EXT_SRC_ADDR__MASK;
458b8e80941Smrg}
459b8e80941Smrg
460b8e80941Smrg#define REG_CP_LOAD_STATE4_2					0x00000002
461b8e80941Smrg#define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK			0xffffffff
462b8e80941Smrg#define CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT			0
463b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI(uint32_t val)
464b8e80941Smrg{
465b8e80941Smrg	return ((val) << CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE4_2_EXT_SRC_ADDR_HI__MASK;
466b8e80941Smrg}
467b8e80941Smrg
468b8e80941Smrg#define REG_CP_LOAD_STATE6_0					0x00000000
469b8e80941Smrg#define CP_LOAD_STATE6_0_DST_OFF__MASK				0x00003fff
470b8e80941Smrg#define CP_LOAD_STATE6_0_DST_OFF__SHIFT				0
471b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_0_DST_OFF(uint32_t val)
472b8e80941Smrg{
473b8e80941Smrg	return ((val) << CP_LOAD_STATE6_0_DST_OFF__SHIFT) & CP_LOAD_STATE6_0_DST_OFF__MASK;
474b8e80941Smrg}
475b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_TYPE__MASK			0x0000c000
476b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_TYPE__SHIFT			14
477b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_0_STATE_TYPE(enum a6xx_state_type val)
478b8e80941Smrg{
479b8e80941Smrg	return ((val) << CP_LOAD_STATE6_0_STATE_TYPE__SHIFT) & CP_LOAD_STATE6_0_STATE_TYPE__MASK;
480b8e80941Smrg}
481b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_SRC__MASK			0x00030000
482b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_SRC__SHIFT			16
483b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_0_STATE_SRC(enum a6xx_state_src val)
484b8e80941Smrg{
485b8e80941Smrg	return ((val) << CP_LOAD_STATE6_0_STATE_SRC__SHIFT) & CP_LOAD_STATE6_0_STATE_SRC__MASK;
486b8e80941Smrg}
487b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_BLOCK__MASK			0x003c0000
488b8e80941Smrg#define CP_LOAD_STATE6_0_STATE_BLOCK__SHIFT			18
489b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_0_STATE_BLOCK(enum a6xx_state_block val)
490b8e80941Smrg{
491b8e80941Smrg	return ((val) << CP_LOAD_STATE6_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE6_0_STATE_BLOCK__MASK;
492b8e80941Smrg}
493b8e80941Smrg#define CP_LOAD_STATE6_0_NUM_UNIT__MASK				0xffc00000
494b8e80941Smrg#define CP_LOAD_STATE6_0_NUM_UNIT__SHIFT			22
495b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_0_NUM_UNIT(uint32_t val)
496b8e80941Smrg{
497b8e80941Smrg	return ((val) << CP_LOAD_STATE6_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE6_0_NUM_UNIT__MASK;
498b8e80941Smrg}
499b8e80941Smrg
500b8e80941Smrg#define REG_CP_LOAD_STATE6_1					0x00000001
501b8e80941Smrg#define CP_LOAD_STATE6_1_EXT_SRC_ADDR__MASK			0xfffffffc
502b8e80941Smrg#define CP_LOAD_STATE6_1_EXT_SRC_ADDR__SHIFT			2
503b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_1_EXT_SRC_ADDR(uint32_t val)
504b8e80941Smrg{
505b8e80941Smrg	assert(!(val & 0x3));
506b8e80941Smrg	return ((val >> 2) << CP_LOAD_STATE6_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE6_1_EXT_SRC_ADDR__MASK;
507b8e80941Smrg}
508b8e80941Smrg
509b8e80941Smrg#define REG_CP_LOAD_STATE6_2					0x00000002
510b8e80941Smrg#define CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__MASK			0xffffffff
511b8e80941Smrg#define CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__SHIFT			0
512b8e80941Smrgstatic inline uint32_t CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI(uint32_t val)
513b8e80941Smrg{
514b8e80941Smrg	return ((val) << CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE6_2_EXT_SRC_ADDR_HI__MASK;
515b8e80941Smrg}
516b8e80941Smrg
517b8e80941Smrg#define REG_CP_DRAW_INDX_0					0x00000000
518b8e80941Smrg#define CP_DRAW_INDX_0_VIZ_QUERY__MASK				0xffffffff
519b8e80941Smrg#define CP_DRAW_INDX_0_VIZ_QUERY__SHIFT				0
520b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_0_VIZ_QUERY(uint32_t val)
521b8e80941Smrg{
522b8e80941Smrg	return ((val) << CP_DRAW_INDX_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_0_VIZ_QUERY__MASK;
523b8e80941Smrg}
524b8e80941Smrg
525b8e80941Smrg#define REG_CP_DRAW_INDX_1					0x00000001
526b8e80941Smrg#define CP_DRAW_INDX_1_PRIM_TYPE__MASK				0x0000003f
527b8e80941Smrg#define CP_DRAW_INDX_1_PRIM_TYPE__SHIFT				0
528b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_1_PRIM_TYPE(enum pc_di_primtype val)
529b8e80941Smrg{
530b8e80941Smrg	return ((val) << CP_DRAW_INDX_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_1_PRIM_TYPE__MASK;
531b8e80941Smrg}
532b8e80941Smrg#define CP_DRAW_INDX_1_SOURCE_SELECT__MASK			0x000000c0
533b8e80941Smrg#define CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT			6
534b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_1_SOURCE_SELECT(enum pc_di_src_sel val)
535b8e80941Smrg{
536b8e80941Smrg	return ((val) << CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_1_SOURCE_SELECT__MASK;
537b8e80941Smrg}
538b8e80941Smrg#define CP_DRAW_INDX_1_VIS_CULL__MASK				0x00000600
539b8e80941Smrg#define CP_DRAW_INDX_1_VIS_CULL__SHIFT				9
540b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_1_VIS_CULL(enum pc_di_vis_cull_mode val)
541b8e80941Smrg{
542b8e80941Smrg	return ((val) << CP_DRAW_INDX_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_1_VIS_CULL__MASK;
543b8e80941Smrg}
544b8e80941Smrg#define CP_DRAW_INDX_1_INDEX_SIZE__MASK				0x00000800
545b8e80941Smrg#define CP_DRAW_INDX_1_INDEX_SIZE__SHIFT			11
546b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_1_INDEX_SIZE(enum pc_di_index_size val)
547b8e80941Smrg{
548b8e80941Smrg	return ((val) << CP_DRAW_INDX_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_1_INDEX_SIZE__MASK;
549b8e80941Smrg}
550b8e80941Smrg#define CP_DRAW_INDX_1_NOT_EOP					0x00001000
551b8e80941Smrg#define CP_DRAW_INDX_1_SMALL_INDEX				0x00002000
552b8e80941Smrg#define CP_DRAW_INDX_1_PRE_DRAW_INITIATOR_ENABLE		0x00004000
553b8e80941Smrg#define CP_DRAW_INDX_1_NUM_INSTANCES__MASK			0xff000000
554b8e80941Smrg#define CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT			24
555b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_1_NUM_INSTANCES(uint32_t val)
556b8e80941Smrg{
557b8e80941Smrg	return ((val) << CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_1_NUM_INSTANCES__MASK;
558b8e80941Smrg}
559b8e80941Smrg
560b8e80941Smrg#define REG_CP_DRAW_INDX_2					0x00000002
561b8e80941Smrg#define CP_DRAW_INDX_2_NUM_INDICES__MASK			0xffffffff
562b8e80941Smrg#define CP_DRAW_INDX_2_NUM_INDICES__SHIFT			0
563b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_NUM_INDICES(uint32_t val)
564b8e80941Smrg{
565b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_NUM_INDICES__MASK;
566b8e80941Smrg}
567b8e80941Smrg
568b8e80941Smrg#define REG_CP_DRAW_INDX_3					0x00000003
569b8e80941Smrg#define CP_DRAW_INDX_3_INDX_BASE__MASK				0xffffffff
570b8e80941Smrg#define CP_DRAW_INDX_3_INDX_BASE__SHIFT				0
571b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_3_INDX_BASE(uint32_t val)
572b8e80941Smrg{
573b8e80941Smrg	return ((val) << CP_DRAW_INDX_3_INDX_BASE__SHIFT) & CP_DRAW_INDX_3_INDX_BASE__MASK;
574b8e80941Smrg}
575b8e80941Smrg
576b8e80941Smrg#define REG_CP_DRAW_INDX_4					0x00000004
577b8e80941Smrg#define CP_DRAW_INDX_4_INDX_SIZE__MASK				0xffffffff
578b8e80941Smrg#define CP_DRAW_INDX_4_INDX_SIZE__SHIFT				0
579b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_4_INDX_SIZE(uint32_t val)
580b8e80941Smrg{
581b8e80941Smrg	return ((val) << CP_DRAW_INDX_4_INDX_SIZE__SHIFT) & CP_DRAW_INDX_4_INDX_SIZE__MASK;
582b8e80941Smrg}
583b8e80941Smrg
584b8e80941Smrg#define REG_CP_DRAW_INDX_2_0					0x00000000
585b8e80941Smrg#define CP_DRAW_INDX_2_0_VIZ_QUERY__MASK			0xffffffff
586b8e80941Smrg#define CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT			0
587b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_0_VIZ_QUERY(uint32_t val)
588b8e80941Smrg{
589b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_2_0_VIZ_QUERY__MASK;
590b8e80941Smrg}
591b8e80941Smrg
592b8e80941Smrg#define REG_CP_DRAW_INDX_2_1					0x00000001
593b8e80941Smrg#define CP_DRAW_INDX_2_1_PRIM_TYPE__MASK			0x0000003f
594b8e80941Smrg#define CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT			0
595b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_1_PRIM_TYPE(enum pc_di_primtype val)
596b8e80941Smrg{
597b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_2_1_PRIM_TYPE__MASK;
598b8e80941Smrg}
599b8e80941Smrg#define CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK			0x000000c0
600b8e80941Smrg#define CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT			6
601b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_1_SOURCE_SELECT(enum pc_di_src_sel val)
602b8e80941Smrg{
603b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK;
604b8e80941Smrg}
605b8e80941Smrg#define CP_DRAW_INDX_2_1_VIS_CULL__MASK				0x00000600
606b8e80941Smrg#define CP_DRAW_INDX_2_1_VIS_CULL__SHIFT			9
607b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_1_VIS_CULL(enum pc_di_vis_cull_mode val)
608b8e80941Smrg{
609b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_2_1_VIS_CULL__MASK;
610b8e80941Smrg}
611b8e80941Smrg#define CP_DRAW_INDX_2_1_INDEX_SIZE__MASK			0x00000800
612b8e80941Smrg#define CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT			11
613b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_1_INDEX_SIZE(enum pc_di_index_size val)
614b8e80941Smrg{
615b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_2_1_INDEX_SIZE__MASK;
616b8e80941Smrg}
617b8e80941Smrg#define CP_DRAW_INDX_2_1_NOT_EOP				0x00001000
618b8e80941Smrg#define CP_DRAW_INDX_2_1_SMALL_INDEX				0x00002000
619b8e80941Smrg#define CP_DRAW_INDX_2_1_PRE_DRAW_INITIATOR_ENABLE		0x00004000
620b8e80941Smrg#define CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK			0xff000000
621b8e80941Smrg#define CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT			24
622b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_1_NUM_INSTANCES(uint32_t val)
623b8e80941Smrg{
624b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK;
625b8e80941Smrg}
626b8e80941Smrg
627b8e80941Smrg#define REG_CP_DRAW_INDX_2_2					0x00000002
628b8e80941Smrg#define CP_DRAW_INDX_2_2_NUM_INDICES__MASK			0xffffffff
629b8e80941Smrg#define CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT			0
630b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_2_2_NUM_INDICES(uint32_t val)
631b8e80941Smrg{
632b8e80941Smrg	return ((val) << CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_2_NUM_INDICES__MASK;
633b8e80941Smrg}
634b8e80941Smrg
635b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_0				0x00000000
636b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK			0x0000003f
637b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT			0
638b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_0_PRIM_TYPE(enum pc_di_primtype val)
639b8e80941Smrg{
640b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK;
641b8e80941Smrg}
642b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK		0x000000c0
643b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT		6
644b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT(enum pc_di_src_sel val)
645b8e80941Smrg{
646b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK;
647b8e80941Smrg}
648b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK			0x00000300
649b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT			8
650b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_0_VIS_CULL(enum pc_di_vis_cull_mode val)
651b8e80941Smrg{
652b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT) & CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK;
653b8e80941Smrg}
654b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK			0x00000c00
655b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT			10
656b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_0_INDEX_SIZE(enum a4xx_index_size val)
657b8e80941Smrg{
658b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK;
659b8e80941Smrg}
660b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK			0x01f00000
661b8e80941Smrg#define CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT			20
662b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_0_TESS_MODE(uint32_t val)
663b8e80941Smrg{
664b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK;
665b8e80941Smrg}
666b8e80941Smrg
667b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_1				0x00000001
668b8e80941Smrg#define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK		0xffffffff
669b8e80941Smrg#define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT		0
670b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES(uint32_t val)
671b8e80941Smrg{
672b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK;
673b8e80941Smrg}
674b8e80941Smrg
675b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_2				0x00000002
676b8e80941Smrg#define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK			0xffffffff
677b8e80941Smrg#define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT		0
678b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_2_NUM_INDICES(uint32_t val)
679b8e80941Smrg{
680b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK;
681b8e80941Smrg}
682b8e80941Smrg
683b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_3				0x00000003
684b8e80941Smrg
685b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_4				0x00000004
686b8e80941Smrg#define CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK			0xffffffff
687b8e80941Smrg#define CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT			0
688b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_4_INDX_BASE(uint32_t val)
689b8e80941Smrg{
690b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT) & CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK;
691b8e80941Smrg}
692b8e80941Smrg
693b8e80941Smrg#define REG_CP_DRAW_INDX_OFFSET_5				0x00000005
694b8e80941Smrg#define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK			0xffffffff
695b8e80941Smrg#define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT			0
696b8e80941Smrgstatic inline uint32_t CP_DRAW_INDX_OFFSET_5_INDX_SIZE(uint32_t val)
697b8e80941Smrg{
698b8e80941Smrg	return ((val) << CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK;
699b8e80941Smrg}
700b8e80941Smrg
701b8e80941Smrg#define REG_A4XX_CP_DRAW_INDIRECT_0				0x00000000
702b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_PRIM_TYPE__MASK			0x0000003f
703b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_PRIM_TYPE__SHIFT		0
704b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_0_PRIM_TYPE(enum pc_di_primtype val)
705b8e80941Smrg{
706b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_0_PRIM_TYPE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_PRIM_TYPE__MASK;
707b8e80941Smrg}
708b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_SOURCE_SELECT__MASK		0x000000c0
709b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_SOURCE_SELECT__SHIFT		6
710b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_0_SOURCE_SELECT(enum pc_di_src_sel val)
711b8e80941Smrg{
712b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_0_SOURCE_SELECT__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_SOURCE_SELECT__MASK;
713b8e80941Smrg}
714b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_VIS_CULL__MASK			0x00000300
715b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_VIS_CULL__SHIFT			8
716b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_0_VIS_CULL(enum pc_di_vis_cull_mode val)
717b8e80941Smrg{
718b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_0_VIS_CULL__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_VIS_CULL__MASK;
719b8e80941Smrg}
720b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__MASK		0x00000c00
721b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__SHIFT		10
722b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE(enum a4xx_index_size val)
723b8e80941Smrg{
724b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_INDEX_SIZE__MASK;
725b8e80941Smrg}
726b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__MASK			0x01f00000
727b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT		20
728b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_0_TESS_MODE(uint32_t val)
729b8e80941Smrg{
730b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__SHIFT) & A4XX_CP_DRAW_INDIRECT_0_TESS_MODE__MASK;
731b8e80941Smrg}
732b8e80941Smrg
733b8e80941Smrg#define REG_A4XX_CP_DRAW_INDIRECT_1				0x00000001
734b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_1_INDIRECT__MASK			0xffffffff
735b8e80941Smrg#define A4XX_CP_DRAW_INDIRECT_1_INDIRECT__SHIFT			0
736b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDIRECT_1_INDIRECT(uint32_t val)
737b8e80941Smrg{
738b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDIRECT_1_INDIRECT__SHIFT) & A4XX_CP_DRAW_INDIRECT_1_INDIRECT__MASK;
739b8e80941Smrg}
740b8e80941Smrg
741b8e80941Smrg
742b8e80941Smrg#define REG_A5XX_CP_DRAW_INDIRECT_2				0x00000002
743b8e80941Smrg#define A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK		0xffffffff
744b8e80941Smrg#define A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT		0
745b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI(uint32_t val)
746b8e80941Smrg{
747b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__SHIFT) & A5XX_CP_DRAW_INDIRECT_2_INDIRECT_HI__MASK;
748b8e80941Smrg}
749b8e80941Smrg
750b8e80941Smrg#define REG_A4XX_CP_DRAW_INDX_INDIRECT_0			0x00000000
751b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__MASK		0x0000003f
752b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__SHIFT		0
753b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE(enum pc_di_primtype val)
754b8e80941Smrg{
755b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_PRIM_TYPE__MASK;
756b8e80941Smrg}
757b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__MASK	0x000000c0
758b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__SHIFT	6
759b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT(enum pc_di_src_sel val)
760b8e80941Smrg{
761b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_SOURCE_SELECT__MASK;
762b8e80941Smrg}
763b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_VIS_CULL__MASK		0x00000300
764b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_VIS_CULL__SHIFT		8
765b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_VIS_CULL(enum pc_di_vis_cull_mode val)
766b8e80941Smrg{
767b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_VIS_CULL__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_VIS_CULL__MASK;
768b8e80941Smrg}
769b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__MASK		0x00000c00
770b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__SHIFT		10
771b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE(enum a4xx_index_size val)
772b8e80941Smrg{
773b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_INDEX_SIZE__MASK;
774b8e80941Smrg}
775b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK		0x01f00000
776b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT		20
777b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE(uint32_t val)
778b8e80941Smrg{
779b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_0_TESS_MODE__MASK;
780b8e80941Smrg}
781b8e80941Smrg
782b8e80941Smrg
783b8e80941Smrg#define REG_A4XX_CP_DRAW_INDX_INDIRECT_1			0x00000001
784b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE__MASK		0xffffffff
785b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE__SHIFT		0
786b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE(uint32_t val)
787b8e80941Smrg{
788b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE__MASK;
789b8e80941Smrg}
790b8e80941Smrg
791b8e80941Smrg#define REG_A4XX_CP_DRAW_INDX_INDIRECT_2			0x00000002
792b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_2_INDX_SIZE__MASK		0xffffffff
793b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_2_INDX_SIZE__SHIFT		0
794b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_2_INDX_SIZE(uint32_t val)
795b8e80941Smrg{
796b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_2_INDX_SIZE__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_2_INDX_SIZE__MASK;
797b8e80941Smrg}
798b8e80941Smrg
799b8e80941Smrg#define REG_A4XX_CP_DRAW_INDX_INDIRECT_3			0x00000003
800b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_3_INDIRECT__MASK		0xffffffff
801b8e80941Smrg#define A4XX_CP_DRAW_INDX_INDIRECT_3_INDIRECT__SHIFT		0
802b8e80941Smrgstatic inline uint32_t A4XX_CP_DRAW_INDX_INDIRECT_3_INDIRECT(uint32_t val)
803b8e80941Smrg{
804b8e80941Smrg	return ((val) << A4XX_CP_DRAW_INDX_INDIRECT_3_INDIRECT__SHIFT) & A4XX_CP_DRAW_INDX_INDIRECT_3_INDIRECT__MASK;
805b8e80941Smrg}
806b8e80941Smrg
807b8e80941Smrg
808b8e80941Smrg#define REG_A5XX_CP_DRAW_INDX_INDIRECT_1			0x00000001
809b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__MASK		0xffffffff
810b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__SHIFT	0
811b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO(uint32_t val)
812b8e80941Smrg{
813b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_1_INDX_BASE_LO__MASK;
814b8e80941Smrg}
815b8e80941Smrg
816b8e80941Smrg#define REG_A5XX_CP_DRAW_INDX_INDIRECT_2			0x00000002
817b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__MASK		0xffffffff
818b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__SHIFT	0
819b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI(uint32_t val)
820b8e80941Smrg{
821b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_2_INDX_BASE_HI__MASK;
822b8e80941Smrg}
823b8e80941Smrg
824b8e80941Smrg#define REG_A5XX_CP_DRAW_INDX_INDIRECT_3			0x00000003
825b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__MASK		0xffffffff
826b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__SHIFT		0
827b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES(uint32_t val)
828b8e80941Smrg{
829b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_3_MAX_INDICES__MASK;
830b8e80941Smrg}
831b8e80941Smrg
832b8e80941Smrg#define REG_A5XX_CP_DRAW_INDX_INDIRECT_4			0x00000004
833b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__MASK		0xffffffff
834b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__SHIFT		0
835b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO(uint32_t val)
836b8e80941Smrg{
837b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_4_INDIRECT_LO__MASK;
838b8e80941Smrg}
839b8e80941Smrg
840b8e80941Smrg#define REG_A5XX_CP_DRAW_INDX_INDIRECT_5			0x00000005
841b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__MASK		0xffffffff
842b8e80941Smrg#define A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__SHIFT		0
843b8e80941Smrgstatic inline uint32_t A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI(uint32_t val)
844b8e80941Smrg{
845b8e80941Smrg	return ((val) << A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__SHIFT) & A5XX_CP_DRAW_INDX_INDIRECT_5_INDIRECT_HI__MASK;
846b8e80941Smrg}
847b8e80941Smrg
848b8e80941Smrgstatic inline uint32_t REG_CP_SET_DRAW_STATE_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
849b8e80941Smrg
850b8e80941Smrgstatic inline uint32_t REG_CP_SET_DRAW_STATE__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
851b8e80941Smrg#define CP_SET_DRAW_STATE__0_COUNT__MASK			0x0000ffff
852b8e80941Smrg#define CP_SET_DRAW_STATE__0_COUNT__SHIFT			0
853b8e80941Smrgstatic inline uint32_t CP_SET_DRAW_STATE__0_COUNT(uint32_t val)
854b8e80941Smrg{
855b8e80941Smrg	return ((val) << CP_SET_DRAW_STATE__0_COUNT__SHIFT) & CP_SET_DRAW_STATE__0_COUNT__MASK;
856b8e80941Smrg}
857b8e80941Smrg#define CP_SET_DRAW_STATE__0_DIRTY				0x00010000
858b8e80941Smrg#define CP_SET_DRAW_STATE__0_DISABLE				0x00020000
859b8e80941Smrg#define CP_SET_DRAW_STATE__0_DISABLE_ALL_GROUPS			0x00040000
860b8e80941Smrg#define CP_SET_DRAW_STATE__0_LOAD_IMMED				0x00080000
861b8e80941Smrg#define CP_SET_DRAW_STATE__0_ENABLE_MASK__MASK			0x00f00000
862b8e80941Smrg#define CP_SET_DRAW_STATE__0_ENABLE_MASK__SHIFT			20
863b8e80941Smrgstatic inline uint32_t CP_SET_DRAW_STATE__0_ENABLE_MASK(uint32_t val)
864b8e80941Smrg{
865b8e80941Smrg	return ((val) << CP_SET_DRAW_STATE__0_ENABLE_MASK__SHIFT) & CP_SET_DRAW_STATE__0_ENABLE_MASK__MASK;
866b8e80941Smrg}
867b8e80941Smrg#define CP_SET_DRAW_STATE__0_GROUP_ID__MASK			0x1f000000
868b8e80941Smrg#define CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT			24
869b8e80941Smrgstatic inline uint32_t CP_SET_DRAW_STATE__0_GROUP_ID(uint32_t val)
870b8e80941Smrg{
871b8e80941Smrg	return ((val) << CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT) & CP_SET_DRAW_STATE__0_GROUP_ID__MASK;
872b8e80941Smrg}
873b8e80941Smrg
874b8e80941Smrgstatic inline uint32_t REG_CP_SET_DRAW_STATE__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
875b8e80941Smrg#define CP_SET_DRAW_STATE__1_ADDR_LO__MASK			0xffffffff
876b8e80941Smrg#define CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT			0
877b8e80941Smrgstatic inline uint32_t CP_SET_DRAW_STATE__1_ADDR_LO(uint32_t val)
878b8e80941Smrg{
879b8e80941Smrg	return ((val) << CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT) & CP_SET_DRAW_STATE__1_ADDR_LO__MASK;
880b8e80941Smrg}
881b8e80941Smrg
882b8e80941Smrgstatic inline uint32_t REG_CP_SET_DRAW_STATE__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
883b8e80941Smrg#define CP_SET_DRAW_STATE__2_ADDR_HI__MASK			0xffffffff
884b8e80941Smrg#define CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT			0
885b8e80941Smrgstatic inline uint32_t CP_SET_DRAW_STATE__2_ADDR_HI(uint32_t val)
886b8e80941Smrg{
887b8e80941Smrg	return ((val) << CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT) & CP_SET_DRAW_STATE__2_ADDR_HI__MASK;
888b8e80941Smrg}
889b8e80941Smrg
890b8e80941Smrg#define REG_CP_SET_BIN_0					0x00000000
891b8e80941Smrg
892b8e80941Smrg#define REG_CP_SET_BIN_1					0x00000001
893b8e80941Smrg#define CP_SET_BIN_1_X1__MASK					0x0000ffff
894b8e80941Smrg#define CP_SET_BIN_1_X1__SHIFT					0
895b8e80941Smrgstatic inline uint32_t CP_SET_BIN_1_X1(uint32_t val)
896b8e80941Smrg{
897b8e80941Smrg	return ((val) << CP_SET_BIN_1_X1__SHIFT) & CP_SET_BIN_1_X1__MASK;
898b8e80941Smrg}
899b8e80941Smrg#define CP_SET_BIN_1_Y1__MASK					0xffff0000
900b8e80941Smrg#define CP_SET_BIN_1_Y1__SHIFT					16
901b8e80941Smrgstatic inline uint32_t CP_SET_BIN_1_Y1(uint32_t val)
902b8e80941Smrg{
903b8e80941Smrg	return ((val) << CP_SET_BIN_1_Y1__SHIFT) & CP_SET_BIN_1_Y1__MASK;
904b8e80941Smrg}
905b8e80941Smrg
906b8e80941Smrg#define REG_CP_SET_BIN_2					0x00000002
907b8e80941Smrg#define CP_SET_BIN_2_X2__MASK					0x0000ffff
908b8e80941Smrg#define CP_SET_BIN_2_X2__SHIFT					0
909b8e80941Smrgstatic inline uint32_t CP_SET_BIN_2_X2(uint32_t val)
910b8e80941Smrg{
911b8e80941Smrg	return ((val) << CP_SET_BIN_2_X2__SHIFT) & CP_SET_BIN_2_X2__MASK;
912b8e80941Smrg}
913b8e80941Smrg#define CP_SET_BIN_2_Y2__MASK					0xffff0000
914b8e80941Smrg#define CP_SET_BIN_2_Y2__SHIFT					16
915b8e80941Smrgstatic inline uint32_t CP_SET_BIN_2_Y2(uint32_t val)
916b8e80941Smrg{
917b8e80941Smrg	return ((val) << CP_SET_BIN_2_Y2__SHIFT) & CP_SET_BIN_2_Y2__MASK;
918b8e80941Smrg}
919b8e80941Smrg
920b8e80941Smrg#define REG_CP_SET_BIN_DATA_0					0x00000000
921b8e80941Smrg#define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK			0xffffffff
922b8e80941Smrg#define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT			0
923b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA_0_BIN_DATA_ADDR(uint32_t val)
924b8e80941Smrg{
925b8e80941Smrg	return ((val) << CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT) & CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK;
926b8e80941Smrg}
927b8e80941Smrg
928b8e80941Smrg#define REG_CP_SET_BIN_DATA_1					0x00000001
929b8e80941Smrg#define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK		0xffffffff
930b8e80941Smrg#define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT		0
931b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS(uint32_t val)
932b8e80941Smrg{
933b8e80941Smrg	return ((val) << CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT) & CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK;
934b8e80941Smrg}
935b8e80941Smrg
936b8e80941Smrg#define REG_CP_SET_BIN_DATA5_0					0x00000000
937b8e80941Smrg#define CP_SET_BIN_DATA5_0_VSC_SIZE__MASK			0x003f0000
938b8e80941Smrg#define CP_SET_BIN_DATA5_0_VSC_SIZE__SHIFT			16
939b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_0_VSC_SIZE(uint32_t val)
940b8e80941Smrg{
941b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_0_VSC_SIZE__SHIFT) & CP_SET_BIN_DATA5_0_VSC_SIZE__MASK;
942b8e80941Smrg}
943b8e80941Smrg#define CP_SET_BIN_DATA5_0_VSC_N__MASK				0x07c00000
944b8e80941Smrg#define CP_SET_BIN_DATA5_0_VSC_N__SHIFT				22
945b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_0_VSC_N(uint32_t val)
946b8e80941Smrg{
947b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_0_VSC_N__SHIFT) & CP_SET_BIN_DATA5_0_VSC_N__MASK;
948b8e80941Smrg}
949b8e80941Smrg
950b8e80941Smrg#define REG_CP_SET_BIN_DATA5_1					0x00000001
951b8e80941Smrg#define CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__MASK		0xffffffff
952b8e80941Smrg#define CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__SHIFT		0
953b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO(uint32_t val)
954b8e80941Smrg{
955b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__SHIFT) & CP_SET_BIN_DATA5_1_BIN_DATA_ADDR_LO__MASK;
956b8e80941Smrg}
957b8e80941Smrg
958b8e80941Smrg#define REG_CP_SET_BIN_DATA5_2					0x00000002
959b8e80941Smrg#define CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__MASK		0xffffffff
960b8e80941Smrg#define CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__SHIFT		0
961b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI(uint32_t val)
962b8e80941Smrg{
963b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__SHIFT) & CP_SET_BIN_DATA5_2_BIN_DATA_ADDR_HI__MASK;
964b8e80941Smrg}
965b8e80941Smrg
966b8e80941Smrg#define REG_CP_SET_BIN_DATA5_3					0x00000003
967b8e80941Smrg#define CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__MASK		0xffffffff
968b8e80941Smrg#define CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__SHIFT		0
969b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO(uint32_t val)
970b8e80941Smrg{
971b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__SHIFT) & CP_SET_BIN_DATA5_3_BIN_SIZE_ADDRESS_LO__MASK;
972b8e80941Smrg}
973b8e80941Smrg
974b8e80941Smrg#define REG_CP_SET_BIN_DATA5_4					0x00000004
975b8e80941Smrg#define CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__MASK		0xffffffff
976b8e80941Smrg#define CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__SHIFT		0
977b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI(uint32_t val)
978b8e80941Smrg{
979b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__SHIFT) & CP_SET_BIN_DATA5_4_BIN_SIZE_ADDRESS_HI__MASK;
980b8e80941Smrg}
981b8e80941Smrg
982b8e80941Smrg#define REG_CP_SET_BIN_DATA5_5					0x00000005
983b8e80941Smrg#define CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__MASK		0xffffffff
984b8e80941Smrg#define CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__SHIFT		0
985b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO(uint32_t val)
986b8e80941Smrg{
987b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__SHIFT) & CP_SET_BIN_DATA5_5_BIN_DATA_ADDR2_LO__MASK;
988b8e80941Smrg}
989b8e80941Smrg
990b8e80941Smrg#define REG_CP_SET_BIN_DATA5_6					0x00000006
991b8e80941Smrg#define CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__MASK		0xffffffff
992b8e80941Smrg#define CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__SHIFT		0
993b8e80941Smrgstatic inline uint32_t CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO(uint32_t val)
994b8e80941Smrg{
995b8e80941Smrg	return ((val) << CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__SHIFT) & CP_SET_BIN_DATA5_6_BIN_DATA_ADDR2_LO__MASK;
996b8e80941Smrg}
997b8e80941Smrg
998b8e80941Smrg#define REG_CP_REG_TO_MEM_0					0x00000000
999b8e80941Smrg#define CP_REG_TO_MEM_0_REG__MASK				0x0000ffff
1000b8e80941Smrg#define CP_REG_TO_MEM_0_REG__SHIFT				0
1001b8e80941Smrgstatic inline uint32_t CP_REG_TO_MEM_0_REG(uint32_t val)
1002b8e80941Smrg{
1003b8e80941Smrg	return ((val) << CP_REG_TO_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_0_REG__MASK;
1004b8e80941Smrg}
1005b8e80941Smrg#define CP_REG_TO_MEM_0_CNT__MASK				0x3ff80000
1006b8e80941Smrg#define CP_REG_TO_MEM_0_CNT__SHIFT				19
1007b8e80941Smrgstatic inline uint32_t CP_REG_TO_MEM_0_CNT(uint32_t val)
1008b8e80941Smrg{
1009b8e80941Smrg	return ((val) << CP_REG_TO_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_0_CNT__MASK;
1010b8e80941Smrg}
1011b8e80941Smrg#define CP_REG_TO_MEM_0_64B					0x40000000
1012b8e80941Smrg#define CP_REG_TO_MEM_0_ACCUMULATE				0x80000000
1013b8e80941Smrg
1014b8e80941Smrg#define REG_CP_REG_TO_MEM_1					0x00000001
1015b8e80941Smrg#define CP_REG_TO_MEM_1_DEST__MASK				0xffffffff
1016b8e80941Smrg#define CP_REG_TO_MEM_1_DEST__SHIFT				0
1017b8e80941Smrgstatic inline uint32_t CP_REG_TO_MEM_1_DEST(uint32_t val)
1018b8e80941Smrg{
1019b8e80941Smrg	return ((val) << CP_REG_TO_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_1_DEST__MASK;
1020b8e80941Smrg}
1021b8e80941Smrg
1022b8e80941Smrg#define REG_CP_REG_TO_MEM_2					0x00000002
1023b8e80941Smrg#define CP_REG_TO_MEM_2_DEST_HI__MASK				0xffffffff
1024b8e80941Smrg#define CP_REG_TO_MEM_2_DEST_HI__SHIFT				0
1025b8e80941Smrgstatic inline uint32_t CP_REG_TO_MEM_2_DEST_HI(uint32_t val)
1026b8e80941Smrg{
1027b8e80941Smrg	return ((val) << CP_REG_TO_MEM_2_DEST_HI__SHIFT) & CP_REG_TO_MEM_2_DEST_HI__MASK;
1028b8e80941Smrg}
1029b8e80941Smrg
1030b8e80941Smrg#define REG_CP_MEM_TO_REG_0					0x00000000
1031b8e80941Smrg#define CP_MEM_TO_REG_0_REG__MASK				0x0000ffff
1032b8e80941Smrg#define CP_MEM_TO_REG_0_REG__SHIFT				0
1033b8e80941Smrgstatic inline uint32_t CP_MEM_TO_REG_0_REG(uint32_t val)
1034b8e80941Smrg{
1035b8e80941Smrg	return ((val) << CP_MEM_TO_REG_0_REG__SHIFT) & CP_MEM_TO_REG_0_REG__MASK;
1036b8e80941Smrg}
1037b8e80941Smrg#define CP_MEM_TO_REG_0_CNT__MASK				0x3ff80000
1038b8e80941Smrg#define CP_MEM_TO_REG_0_CNT__SHIFT				19
1039b8e80941Smrgstatic inline uint32_t CP_MEM_TO_REG_0_CNT(uint32_t val)
1040b8e80941Smrg{
1041b8e80941Smrg	return ((val) << CP_MEM_TO_REG_0_CNT__SHIFT) & CP_MEM_TO_REG_0_CNT__MASK;
1042b8e80941Smrg}
1043b8e80941Smrg#define CP_MEM_TO_REG_0_64B					0x40000000
1044b8e80941Smrg#define CP_MEM_TO_REG_0_ACCUMULATE				0x80000000
1045b8e80941Smrg
1046b8e80941Smrg#define REG_CP_MEM_TO_REG_1					0x00000001
1047b8e80941Smrg#define CP_MEM_TO_REG_1_SRC__MASK				0xffffffff
1048b8e80941Smrg#define CP_MEM_TO_REG_1_SRC__SHIFT				0
1049b8e80941Smrgstatic inline uint32_t CP_MEM_TO_REG_1_SRC(uint32_t val)
1050b8e80941Smrg{
1051b8e80941Smrg	return ((val) << CP_MEM_TO_REG_1_SRC__SHIFT) & CP_MEM_TO_REG_1_SRC__MASK;
1052b8e80941Smrg}
1053b8e80941Smrg
1054b8e80941Smrg#define REG_CP_MEM_TO_REG_2					0x00000002
1055b8e80941Smrg#define CP_MEM_TO_REG_2_SRC_HI__MASK				0xffffffff
1056b8e80941Smrg#define CP_MEM_TO_REG_2_SRC_HI__SHIFT				0
1057b8e80941Smrgstatic inline uint32_t CP_MEM_TO_REG_2_SRC_HI(uint32_t val)
1058b8e80941Smrg{
1059b8e80941Smrg	return ((val) << CP_MEM_TO_REG_2_SRC_HI__SHIFT) & CP_MEM_TO_REG_2_SRC_HI__MASK;
1060b8e80941Smrg}
1061b8e80941Smrg
1062b8e80941Smrg#define REG_CP_MEM_TO_MEM_0					0x00000000
1063b8e80941Smrg#define CP_MEM_TO_MEM_0_NEG_A					0x00000001
1064b8e80941Smrg#define CP_MEM_TO_MEM_0_NEG_B					0x00000002
1065b8e80941Smrg#define CP_MEM_TO_MEM_0_NEG_C					0x00000004
1066b8e80941Smrg#define CP_MEM_TO_MEM_0_DOUBLE					0x20000000
1067b8e80941Smrg
1068b8e80941Smrg#define REG_CP_COND_WRITE_0					0x00000000
1069b8e80941Smrg#define CP_COND_WRITE_0_FUNCTION__MASK				0x00000007
1070b8e80941Smrg#define CP_COND_WRITE_0_FUNCTION__SHIFT				0
1071b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_0_FUNCTION(enum cp_cond_function val)
1072b8e80941Smrg{
1073b8e80941Smrg	return ((val) << CP_COND_WRITE_0_FUNCTION__SHIFT) & CP_COND_WRITE_0_FUNCTION__MASK;
1074b8e80941Smrg}
1075b8e80941Smrg#define CP_COND_WRITE_0_POLL_MEMORY				0x00000010
1076b8e80941Smrg#define CP_COND_WRITE_0_WRITE_MEMORY				0x00000100
1077b8e80941Smrg
1078b8e80941Smrg#define REG_CP_COND_WRITE_1					0x00000001
1079b8e80941Smrg#define CP_COND_WRITE_1_POLL_ADDR__MASK				0xffffffff
1080b8e80941Smrg#define CP_COND_WRITE_1_POLL_ADDR__SHIFT			0
1081b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_1_POLL_ADDR(uint32_t val)
1082b8e80941Smrg{
1083b8e80941Smrg	return ((val) << CP_COND_WRITE_1_POLL_ADDR__SHIFT) & CP_COND_WRITE_1_POLL_ADDR__MASK;
1084b8e80941Smrg}
1085b8e80941Smrg
1086b8e80941Smrg#define REG_CP_COND_WRITE_2					0x00000002
1087b8e80941Smrg#define CP_COND_WRITE_2_REF__MASK				0xffffffff
1088b8e80941Smrg#define CP_COND_WRITE_2_REF__SHIFT				0
1089b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_2_REF(uint32_t val)
1090b8e80941Smrg{
1091b8e80941Smrg	return ((val) << CP_COND_WRITE_2_REF__SHIFT) & CP_COND_WRITE_2_REF__MASK;
1092b8e80941Smrg}
1093b8e80941Smrg
1094b8e80941Smrg#define REG_CP_COND_WRITE_3					0x00000003
1095b8e80941Smrg#define CP_COND_WRITE_3_MASK__MASK				0xffffffff
1096b8e80941Smrg#define CP_COND_WRITE_3_MASK__SHIFT				0
1097b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_3_MASK(uint32_t val)
1098b8e80941Smrg{
1099b8e80941Smrg	return ((val) << CP_COND_WRITE_3_MASK__SHIFT) & CP_COND_WRITE_3_MASK__MASK;
1100b8e80941Smrg}
1101b8e80941Smrg
1102b8e80941Smrg#define REG_CP_COND_WRITE_4					0x00000004
1103b8e80941Smrg#define CP_COND_WRITE_4_WRITE_ADDR__MASK			0xffffffff
1104b8e80941Smrg#define CP_COND_WRITE_4_WRITE_ADDR__SHIFT			0
1105b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_4_WRITE_ADDR(uint32_t val)
1106b8e80941Smrg{
1107b8e80941Smrg	return ((val) << CP_COND_WRITE_4_WRITE_ADDR__SHIFT) & CP_COND_WRITE_4_WRITE_ADDR__MASK;
1108b8e80941Smrg}
1109b8e80941Smrg
1110b8e80941Smrg#define REG_CP_COND_WRITE_5					0x00000005
1111b8e80941Smrg#define CP_COND_WRITE_5_WRITE_DATA__MASK			0xffffffff
1112b8e80941Smrg#define CP_COND_WRITE_5_WRITE_DATA__SHIFT			0
1113b8e80941Smrgstatic inline uint32_t CP_COND_WRITE_5_WRITE_DATA(uint32_t val)
1114b8e80941Smrg{
1115b8e80941Smrg	return ((val) << CP_COND_WRITE_5_WRITE_DATA__SHIFT) & CP_COND_WRITE_5_WRITE_DATA__MASK;
1116b8e80941Smrg}
1117b8e80941Smrg
1118b8e80941Smrg#define REG_CP_COND_WRITE5_0					0x00000000
1119b8e80941Smrg#define CP_COND_WRITE5_0_FUNCTION__MASK				0x00000007
1120b8e80941Smrg#define CP_COND_WRITE5_0_FUNCTION__SHIFT			0
1121b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_0_FUNCTION(enum cp_cond_function val)
1122b8e80941Smrg{
1123b8e80941Smrg	return ((val) << CP_COND_WRITE5_0_FUNCTION__SHIFT) & CP_COND_WRITE5_0_FUNCTION__MASK;
1124b8e80941Smrg}
1125b8e80941Smrg#define CP_COND_WRITE5_0_POLL_MEMORY				0x00000010
1126b8e80941Smrg#define CP_COND_WRITE5_0_WRITE_MEMORY				0x00000100
1127b8e80941Smrg
1128b8e80941Smrg#define REG_CP_COND_WRITE5_1					0x00000001
1129b8e80941Smrg#define CP_COND_WRITE5_1_POLL_ADDR_LO__MASK			0xffffffff
1130b8e80941Smrg#define CP_COND_WRITE5_1_POLL_ADDR_LO__SHIFT			0
1131b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_1_POLL_ADDR_LO(uint32_t val)
1132b8e80941Smrg{
1133b8e80941Smrg	return ((val) << CP_COND_WRITE5_1_POLL_ADDR_LO__SHIFT) & CP_COND_WRITE5_1_POLL_ADDR_LO__MASK;
1134b8e80941Smrg}
1135b8e80941Smrg
1136b8e80941Smrg#define REG_CP_COND_WRITE5_2					0x00000002
1137b8e80941Smrg#define CP_COND_WRITE5_2_POLL_ADDR_HI__MASK			0xffffffff
1138b8e80941Smrg#define CP_COND_WRITE5_2_POLL_ADDR_HI__SHIFT			0
1139b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_2_POLL_ADDR_HI(uint32_t val)
1140b8e80941Smrg{
1141b8e80941Smrg	return ((val) << CP_COND_WRITE5_2_POLL_ADDR_HI__SHIFT) & CP_COND_WRITE5_2_POLL_ADDR_HI__MASK;
1142b8e80941Smrg}
1143b8e80941Smrg
1144b8e80941Smrg#define REG_CP_COND_WRITE5_3					0x00000003
1145b8e80941Smrg#define CP_COND_WRITE5_3_REF__MASK				0xffffffff
1146b8e80941Smrg#define CP_COND_WRITE5_3_REF__SHIFT				0
1147b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_3_REF(uint32_t val)
1148b8e80941Smrg{
1149b8e80941Smrg	return ((val) << CP_COND_WRITE5_3_REF__SHIFT) & CP_COND_WRITE5_3_REF__MASK;
1150b8e80941Smrg}
1151b8e80941Smrg
1152b8e80941Smrg#define REG_CP_COND_WRITE5_4					0x00000004
1153b8e80941Smrg#define CP_COND_WRITE5_4_MASK__MASK				0xffffffff
1154b8e80941Smrg#define CP_COND_WRITE5_4_MASK__SHIFT				0
1155b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_4_MASK(uint32_t val)
1156b8e80941Smrg{
1157b8e80941Smrg	return ((val) << CP_COND_WRITE5_4_MASK__SHIFT) & CP_COND_WRITE5_4_MASK__MASK;
1158b8e80941Smrg}
1159b8e80941Smrg
1160b8e80941Smrg#define REG_CP_COND_WRITE5_5					0x00000005
1161b8e80941Smrg#define CP_COND_WRITE5_5_WRITE_ADDR_LO__MASK			0xffffffff
1162b8e80941Smrg#define CP_COND_WRITE5_5_WRITE_ADDR_LO__SHIFT			0
1163b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_5_WRITE_ADDR_LO(uint32_t val)
1164b8e80941Smrg{
1165b8e80941Smrg	return ((val) << CP_COND_WRITE5_5_WRITE_ADDR_LO__SHIFT) & CP_COND_WRITE5_5_WRITE_ADDR_LO__MASK;
1166b8e80941Smrg}
1167b8e80941Smrg
1168b8e80941Smrg#define REG_CP_COND_WRITE5_6					0x00000006
1169b8e80941Smrg#define CP_COND_WRITE5_6_WRITE_ADDR_HI__MASK			0xffffffff
1170b8e80941Smrg#define CP_COND_WRITE5_6_WRITE_ADDR_HI__SHIFT			0
1171b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_6_WRITE_ADDR_HI(uint32_t val)
1172b8e80941Smrg{
1173b8e80941Smrg	return ((val) << CP_COND_WRITE5_6_WRITE_ADDR_HI__SHIFT) & CP_COND_WRITE5_6_WRITE_ADDR_HI__MASK;
1174b8e80941Smrg}
1175b8e80941Smrg
1176b8e80941Smrg#define REG_CP_COND_WRITE5_7					0x00000007
1177b8e80941Smrg#define CP_COND_WRITE5_7_WRITE_DATA__MASK			0xffffffff
1178b8e80941Smrg#define CP_COND_WRITE5_7_WRITE_DATA__SHIFT			0
1179b8e80941Smrgstatic inline uint32_t CP_COND_WRITE5_7_WRITE_DATA(uint32_t val)
1180b8e80941Smrg{
1181b8e80941Smrg	return ((val) << CP_COND_WRITE5_7_WRITE_DATA__SHIFT) & CP_COND_WRITE5_7_WRITE_DATA__MASK;
1182b8e80941Smrg}
1183b8e80941Smrg
1184b8e80941Smrg#define REG_CP_DISPATCH_COMPUTE_0				0x00000000
1185b8e80941Smrg
1186b8e80941Smrg#define REG_CP_DISPATCH_COMPUTE_1				0x00000001
1187b8e80941Smrg#define CP_DISPATCH_COMPUTE_1_X__MASK				0xffffffff
1188b8e80941Smrg#define CP_DISPATCH_COMPUTE_1_X__SHIFT				0
1189b8e80941Smrgstatic inline uint32_t CP_DISPATCH_COMPUTE_1_X(uint32_t val)
1190b8e80941Smrg{
1191b8e80941Smrg	return ((val) << CP_DISPATCH_COMPUTE_1_X__SHIFT) & CP_DISPATCH_COMPUTE_1_X__MASK;
1192b8e80941Smrg}
1193b8e80941Smrg
1194b8e80941Smrg#define REG_CP_DISPATCH_COMPUTE_2				0x00000002
1195b8e80941Smrg#define CP_DISPATCH_COMPUTE_2_Y__MASK				0xffffffff
1196b8e80941Smrg#define CP_DISPATCH_COMPUTE_2_Y__SHIFT				0
1197b8e80941Smrgstatic inline uint32_t CP_DISPATCH_COMPUTE_2_Y(uint32_t val)
1198b8e80941Smrg{
1199b8e80941Smrg	return ((val) << CP_DISPATCH_COMPUTE_2_Y__SHIFT) & CP_DISPATCH_COMPUTE_2_Y__MASK;
1200b8e80941Smrg}
1201b8e80941Smrg
1202b8e80941Smrg#define REG_CP_DISPATCH_COMPUTE_3				0x00000003
1203b8e80941Smrg#define CP_DISPATCH_COMPUTE_3_Z__MASK				0xffffffff
1204b8e80941Smrg#define CP_DISPATCH_COMPUTE_3_Z__SHIFT				0
1205b8e80941Smrgstatic inline uint32_t CP_DISPATCH_COMPUTE_3_Z(uint32_t val)
1206b8e80941Smrg{
1207b8e80941Smrg	return ((val) << CP_DISPATCH_COMPUTE_3_Z__SHIFT) & CP_DISPATCH_COMPUTE_3_Z__MASK;
1208b8e80941Smrg}
1209b8e80941Smrg
1210b8e80941Smrg#define REG_CP_SET_RENDER_MODE_0				0x00000000
1211b8e80941Smrg#define CP_SET_RENDER_MODE_0_MODE__MASK				0x000001ff
1212b8e80941Smrg#define CP_SET_RENDER_MODE_0_MODE__SHIFT			0
1213b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_0_MODE(enum render_mode_cmd val)
1214b8e80941Smrg{
1215b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_0_MODE__SHIFT) & CP_SET_RENDER_MODE_0_MODE__MASK;
1216b8e80941Smrg}
1217b8e80941Smrg
1218b8e80941Smrg#define REG_CP_SET_RENDER_MODE_1				0x00000001
1219b8e80941Smrg#define CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK			0xffffffff
1220b8e80941Smrg#define CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT			0
1221b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_1_ADDR_0_LO(uint32_t val)
1222b8e80941Smrg{
1223b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT) & CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK;
1224b8e80941Smrg}
1225b8e80941Smrg
1226b8e80941Smrg#define REG_CP_SET_RENDER_MODE_2				0x00000002
1227b8e80941Smrg#define CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK			0xffffffff
1228b8e80941Smrg#define CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT			0
1229b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_2_ADDR_0_HI(uint32_t val)
1230b8e80941Smrg{
1231b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT) & CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK;
1232b8e80941Smrg}
1233b8e80941Smrg
1234b8e80941Smrg#define REG_CP_SET_RENDER_MODE_3				0x00000003
1235b8e80941Smrg#define CP_SET_RENDER_MODE_3_VSC_ENABLE				0x00000008
1236b8e80941Smrg#define CP_SET_RENDER_MODE_3_GMEM_ENABLE			0x00000010
1237b8e80941Smrg
1238b8e80941Smrg#define REG_CP_SET_RENDER_MODE_4				0x00000004
1239b8e80941Smrg
1240b8e80941Smrg#define REG_CP_SET_RENDER_MODE_5				0x00000005
1241b8e80941Smrg#define CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK			0xffffffff
1242b8e80941Smrg#define CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT			0
1243b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_5_ADDR_1_LEN(uint32_t val)
1244b8e80941Smrg{
1245b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT) & CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK;
1246b8e80941Smrg}
1247b8e80941Smrg
1248b8e80941Smrg#define REG_CP_SET_RENDER_MODE_6				0x00000006
1249b8e80941Smrg#define CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK			0xffffffff
1250b8e80941Smrg#define CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT			0
1251b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_6_ADDR_1_LO(uint32_t val)
1252b8e80941Smrg{
1253b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT) & CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK;
1254b8e80941Smrg}
1255b8e80941Smrg
1256b8e80941Smrg#define REG_CP_SET_RENDER_MODE_7				0x00000007
1257b8e80941Smrg#define CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK			0xffffffff
1258b8e80941Smrg#define CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT			0
1259b8e80941Smrgstatic inline uint32_t CP_SET_RENDER_MODE_7_ADDR_1_HI(uint32_t val)
1260b8e80941Smrg{
1261b8e80941Smrg	return ((val) << CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT) & CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK;
1262b8e80941Smrg}
1263b8e80941Smrg
1264b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_0				0x00000000
1265b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK			0xffffffff
1266b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT		0
1267b8e80941Smrgstatic inline uint32_t CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO(uint32_t val)
1268b8e80941Smrg{
1269b8e80941Smrg	return ((val) << CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_0_ADDR_0_LO__MASK;
1270b8e80941Smrg}
1271b8e80941Smrg
1272b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_1				0x00000001
1273b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK			0xffffffff
1274b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT		0
1275b8e80941Smrgstatic inline uint32_t CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI(uint32_t val)
1276b8e80941Smrg{
1277b8e80941Smrg	return ((val) << CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_1_ADDR_0_HI__MASK;
1278b8e80941Smrg}
1279b8e80941Smrg
1280b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_2				0x00000002
1281b8e80941Smrg
1282b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_3				0x00000003
1283b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_3_ADDR_1_LEN__MASK		0xffffffff
1284b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_3_ADDR_1_LEN__SHIFT		0
1285b8e80941Smrgstatic inline uint32_t CP_COMPUTE_CHECKPOINT_3_ADDR_1_LEN(uint32_t val)
1286b8e80941Smrg{
1287b8e80941Smrg	return ((val) << CP_COMPUTE_CHECKPOINT_3_ADDR_1_LEN__SHIFT) & CP_COMPUTE_CHECKPOINT_3_ADDR_1_LEN__MASK;
1288b8e80941Smrg}
1289b8e80941Smrg
1290b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_4				0x00000004
1291b8e80941Smrg
1292b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_5				0x00000005
1293b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK			0xffffffff
1294b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT		0
1295b8e80941Smrgstatic inline uint32_t CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO(uint32_t val)
1296b8e80941Smrg{
1297b8e80941Smrg	return ((val) << CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__SHIFT) & CP_COMPUTE_CHECKPOINT_5_ADDR_1_LO__MASK;
1298b8e80941Smrg}
1299b8e80941Smrg
1300b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_6				0x00000006
1301b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK			0xffffffff
1302b8e80941Smrg#define CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT		0
1303b8e80941Smrgstatic inline uint32_t CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI(uint32_t val)
1304b8e80941Smrg{
1305b8e80941Smrg	return ((val) << CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__SHIFT) & CP_COMPUTE_CHECKPOINT_6_ADDR_1_HI__MASK;
1306b8e80941Smrg}
1307b8e80941Smrg
1308b8e80941Smrg#define REG_CP_COMPUTE_CHECKPOINT_7				0x00000007
1309b8e80941Smrg
1310b8e80941Smrg#define REG_CP_PERFCOUNTER_ACTION_0				0x00000000
1311b8e80941Smrg
1312b8e80941Smrg#define REG_CP_PERFCOUNTER_ACTION_1				0x00000001
1313b8e80941Smrg#define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK			0xffffffff
1314b8e80941Smrg#define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT		0
1315b8e80941Smrgstatic inline uint32_t CP_PERFCOUNTER_ACTION_1_ADDR_0_LO(uint32_t val)
1316b8e80941Smrg{
1317b8e80941Smrg	return ((val) << CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT) & CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK;
1318b8e80941Smrg}
1319b8e80941Smrg
1320b8e80941Smrg#define REG_CP_PERFCOUNTER_ACTION_2				0x00000002
1321b8e80941Smrg#define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK			0xffffffff
1322b8e80941Smrg#define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT		0
1323b8e80941Smrgstatic inline uint32_t CP_PERFCOUNTER_ACTION_2_ADDR_0_HI(uint32_t val)
1324b8e80941Smrg{
1325b8e80941Smrg	return ((val) << CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT) & CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK;
1326b8e80941Smrg}
1327b8e80941Smrg
1328b8e80941Smrg#define REG_CP_EVENT_WRITE_0					0x00000000
1329b8e80941Smrg#define CP_EVENT_WRITE_0_EVENT__MASK				0x000000ff
1330b8e80941Smrg#define CP_EVENT_WRITE_0_EVENT__SHIFT				0
1331b8e80941Smrgstatic inline uint32_t CP_EVENT_WRITE_0_EVENT(enum vgt_event_type val)
1332b8e80941Smrg{
1333b8e80941Smrg	return ((val) << CP_EVENT_WRITE_0_EVENT__SHIFT) & CP_EVENT_WRITE_0_EVENT__MASK;
1334b8e80941Smrg}
1335b8e80941Smrg#define CP_EVENT_WRITE_0_TIMESTAMP				0x40000000
1336b8e80941Smrg
1337b8e80941Smrg#define REG_CP_EVENT_WRITE_1					0x00000001
1338b8e80941Smrg#define CP_EVENT_WRITE_1_ADDR_0_LO__MASK			0xffffffff
1339b8e80941Smrg#define CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT			0
1340b8e80941Smrgstatic inline uint32_t CP_EVENT_WRITE_1_ADDR_0_LO(uint32_t val)
1341b8e80941Smrg{
1342b8e80941Smrg	return ((val) << CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT) & CP_EVENT_WRITE_1_ADDR_0_LO__MASK;
1343b8e80941Smrg}
1344b8e80941Smrg
1345b8e80941Smrg#define REG_CP_EVENT_WRITE_2					0x00000002
1346b8e80941Smrg#define CP_EVENT_WRITE_2_ADDR_0_HI__MASK			0xffffffff
1347b8e80941Smrg#define CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT			0
1348b8e80941Smrgstatic inline uint32_t CP_EVENT_WRITE_2_ADDR_0_HI(uint32_t val)
1349b8e80941Smrg{
1350b8e80941Smrg	return ((val) << CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT) & CP_EVENT_WRITE_2_ADDR_0_HI__MASK;
1351b8e80941Smrg}
1352b8e80941Smrg
1353b8e80941Smrg#define REG_CP_EVENT_WRITE_3					0x00000003
1354b8e80941Smrg
1355b8e80941Smrg#define REG_CP_BLIT_0						0x00000000
1356b8e80941Smrg#define CP_BLIT_0_OP__MASK					0x0000000f
1357b8e80941Smrg#define CP_BLIT_0_OP__SHIFT					0
1358b8e80941Smrgstatic inline uint32_t CP_BLIT_0_OP(enum cp_blit_cmd val)
1359b8e80941Smrg{
1360b8e80941Smrg	return ((val) << CP_BLIT_0_OP__SHIFT) & CP_BLIT_0_OP__MASK;
1361b8e80941Smrg}
1362b8e80941Smrg
1363b8e80941Smrg#define REG_CP_BLIT_1						0x00000001
1364b8e80941Smrg#define CP_BLIT_1_SRC_X1__MASK					0x00003fff
1365b8e80941Smrg#define CP_BLIT_1_SRC_X1__SHIFT					0
1366b8e80941Smrgstatic inline uint32_t CP_BLIT_1_SRC_X1(uint32_t val)
1367b8e80941Smrg{
1368b8e80941Smrg	return ((val) << CP_BLIT_1_SRC_X1__SHIFT) & CP_BLIT_1_SRC_X1__MASK;
1369b8e80941Smrg}
1370b8e80941Smrg#define CP_BLIT_1_SRC_Y1__MASK					0x3fff0000
1371b8e80941Smrg#define CP_BLIT_1_SRC_Y1__SHIFT					16
1372b8e80941Smrgstatic inline uint32_t CP_BLIT_1_SRC_Y1(uint32_t val)
1373b8e80941Smrg{
1374b8e80941Smrg	return ((val) << CP_BLIT_1_SRC_Y1__SHIFT) & CP_BLIT_1_SRC_Y1__MASK;
1375b8e80941Smrg}
1376b8e80941Smrg
1377b8e80941Smrg#define REG_CP_BLIT_2						0x00000002
1378b8e80941Smrg#define CP_BLIT_2_SRC_X2__MASK					0x00003fff
1379b8e80941Smrg#define CP_BLIT_2_SRC_X2__SHIFT					0
1380b8e80941Smrgstatic inline uint32_t CP_BLIT_2_SRC_X2(uint32_t val)
1381b8e80941Smrg{
1382b8e80941Smrg	return ((val) << CP_BLIT_2_SRC_X2__SHIFT) & CP_BLIT_2_SRC_X2__MASK;
1383b8e80941Smrg}
1384b8e80941Smrg#define CP_BLIT_2_SRC_Y2__MASK					0x3fff0000
1385b8e80941Smrg#define CP_BLIT_2_SRC_Y2__SHIFT					16
1386b8e80941Smrgstatic inline uint32_t CP_BLIT_2_SRC_Y2(uint32_t val)
1387b8e80941Smrg{
1388b8e80941Smrg	return ((val) << CP_BLIT_2_SRC_Y2__SHIFT) & CP_BLIT_2_SRC_Y2__MASK;
1389b8e80941Smrg}
1390b8e80941Smrg
1391b8e80941Smrg#define REG_CP_BLIT_3						0x00000003
1392b8e80941Smrg#define CP_BLIT_3_DST_X1__MASK					0x00003fff
1393b8e80941Smrg#define CP_BLIT_3_DST_X1__SHIFT					0
1394b8e80941Smrgstatic inline uint32_t CP_BLIT_3_DST_X1(uint32_t val)
1395b8e80941Smrg{
1396b8e80941Smrg	return ((val) << CP_BLIT_3_DST_X1__SHIFT) & CP_BLIT_3_DST_X1__MASK;
1397b8e80941Smrg}
1398b8e80941Smrg#define CP_BLIT_3_DST_Y1__MASK					0x3fff0000
1399b8e80941Smrg#define CP_BLIT_3_DST_Y1__SHIFT					16
1400b8e80941Smrgstatic inline uint32_t CP_BLIT_3_DST_Y1(uint32_t val)
1401b8e80941Smrg{
1402b8e80941Smrg	return ((val) << CP_BLIT_3_DST_Y1__SHIFT) & CP_BLIT_3_DST_Y1__MASK;
1403b8e80941Smrg}
1404b8e80941Smrg
1405b8e80941Smrg#define REG_CP_BLIT_4						0x00000004
1406b8e80941Smrg#define CP_BLIT_4_DST_X2__MASK					0x00003fff
1407b8e80941Smrg#define CP_BLIT_4_DST_X2__SHIFT					0
1408b8e80941Smrgstatic inline uint32_t CP_BLIT_4_DST_X2(uint32_t val)
1409b8e80941Smrg{
1410b8e80941Smrg	return ((val) << CP_BLIT_4_DST_X2__SHIFT) & CP_BLIT_4_DST_X2__MASK;
1411b8e80941Smrg}
1412b8e80941Smrg#define CP_BLIT_4_DST_Y2__MASK					0x3fff0000
1413b8e80941Smrg#define CP_BLIT_4_DST_Y2__SHIFT					16
1414b8e80941Smrgstatic inline uint32_t CP_BLIT_4_DST_Y2(uint32_t val)
1415b8e80941Smrg{
1416b8e80941Smrg	return ((val) << CP_BLIT_4_DST_Y2__SHIFT) & CP_BLIT_4_DST_Y2__MASK;
1417b8e80941Smrg}
1418b8e80941Smrg
1419b8e80941Smrg#define REG_CP_EXEC_CS_0					0x00000000
1420b8e80941Smrg
1421b8e80941Smrg#define REG_CP_EXEC_CS_1					0x00000001
1422b8e80941Smrg#define CP_EXEC_CS_1_NGROUPS_X__MASK				0xffffffff
1423b8e80941Smrg#define CP_EXEC_CS_1_NGROUPS_X__SHIFT				0
1424b8e80941Smrgstatic inline uint32_t CP_EXEC_CS_1_NGROUPS_X(uint32_t val)
1425b8e80941Smrg{
1426b8e80941Smrg	return ((val) << CP_EXEC_CS_1_NGROUPS_X__SHIFT) & CP_EXEC_CS_1_NGROUPS_X__MASK;
1427b8e80941Smrg}
1428b8e80941Smrg
1429b8e80941Smrg#define REG_CP_EXEC_CS_2					0x00000002
1430b8e80941Smrg#define CP_EXEC_CS_2_NGROUPS_Y__MASK				0xffffffff
1431b8e80941Smrg#define CP_EXEC_CS_2_NGROUPS_Y__SHIFT				0
1432b8e80941Smrgstatic inline uint32_t CP_EXEC_CS_2_NGROUPS_Y(uint32_t val)
1433b8e80941Smrg{
1434b8e80941Smrg	return ((val) << CP_EXEC_CS_2_NGROUPS_Y__SHIFT) & CP_EXEC_CS_2_NGROUPS_Y__MASK;
1435b8e80941Smrg}
1436b8e80941Smrg
1437b8e80941Smrg#define REG_CP_EXEC_CS_3					0x00000003
1438b8e80941Smrg#define CP_EXEC_CS_3_NGROUPS_Z__MASK				0xffffffff
1439b8e80941Smrg#define CP_EXEC_CS_3_NGROUPS_Z__SHIFT				0
1440b8e80941Smrgstatic inline uint32_t CP_EXEC_CS_3_NGROUPS_Z(uint32_t val)
1441b8e80941Smrg{
1442b8e80941Smrg	return ((val) << CP_EXEC_CS_3_NGROUPS_Z__SHIFT) & CP_EXEC_CS_3_NGROUPS_Z__MASK;
1443b8e80941Smrg}
1444b8e80941Smrg
1445b8e80941Smrg#define REG_A4XX_CP_EXEC_CS_INDIRECT_0				0x00000000
1446b8e80941Smrg
1447b8e80941Smrg
1448b8e80941Smrg#define REG_A4XX_CP_EXEC_CS_INDIRECT_1				0x00000001
1449b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_1_ADDR__MASK			0xffffffff
1450b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_1_ADDR__SHIFT			0
1451b8e80941Smrgstatic inline uint32_t A4XX_CP_EXEC_CS_INDIRECT_1_ADDR(uint32_t val)
1452b8e80941Smrg{
1453b8e80941Smrg	return ((val) << A4XX_CP_EXEC_CS_INDIRECT_1_ADDR__SHIFT) & A4XX_CP_EXEC_CS_INDIRECT_1_ADDR__MASK;
1454b8e80941Smrg}
1455b8e80941Smrg
1456b8e80941Smrg#define REG_A4XX_CP_EXEC_CS_INDIRECT_2				0x00000002
1457b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEX__MASK		0x00000ffc
1458b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEX__SHIFT		2
1459b8e80941Smrgstatic inline uint32_t A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEX(uint32_t val)
1460b8e80941Smrg{
1461b8e80941Smrg	return ((val) << A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEX__SHIFT) & A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEX__MASK;
1462b8e80941Smrg}
1463b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEY__MASK		0x003ff000
1464b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEY__SHIFT		12
1465b8e80941Smrgstatic inline uint32_t A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEY(uint32_t val)
1466b8e80941Smrg{
1467b8e80941Smrg	return ((val) << A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEY__SHIFT) & A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEY__MASK;
1468b8e80941Smrg}
1469b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEZ__MASK		0xffc00000
1470b8e80941Smrg#define A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEZ__SHIFT		22
1471b8e80941Smrgstatic inline uint32_t A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEZ(uint32_t val)
1472b8e80941Smrg{
1473b8e80941Smrg	return ((val) << A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEZ__SHIFT) & A4XX_CP_EXEC_CS_INDIRECT_2_LOCALSIZEZ__MASK;
1474b8e80941Smrg}
1475b8e80941Smrg
1476b8e80941Smrg
1477b8e80941Smrg#define REG_A5XX_CP_EXEC_CS_INDIRECT_1				0x00000001
1478b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_1_ADDR_LO__MASK		0xffffffff
1479b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_1_ADDR_LO__SHIFT		0
1480b8e80941Smrgstatic inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_1_ADDR_LO(uint32_t val)
1481b8e80941Smrg{
1482b8e80941Smrg	return ((val) << A5XX_CP_EXEC_CS_INDIRECT_1_ADDR_LO__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_1_ADDR_LO__MASK;
1483b8e80941Smrg}
1484b8e80941Smrg
1485b8e80941Smrg#define REG_A5XX_CP_EXEC_CS_INDIRECT_2				0x00000002
1486b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_2_ADDR_HI__MASK		0xffffffff
1487b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_2_ADDR_HI__SHIFT		0
1488b8e80941Smrgstatic inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_2_ADDR_HI(uint32_t val)
1489b8e80941Smrg{
1490b8e80941Smrg	return ((val) << A5XX_CP_EXEC_CS_INDIRECT_2_ADDR_HI__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_2_ADDR_HI__MASK;
1491b8e80941Smrg}
1492b8e80941Smrg
1493b8e80941Smrg#define REG_A5XX_CP_EXEC_CS_INDIRECT_3				0x00000003
1494b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__MASK		0x00000ffc
1495b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__SHIFT		2
1496b8e80941Smrgstatic inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEX(uint32_t val)
1497b8e80941Smrg{
1498b8e80941Smrg	return ((val) << A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEX__MASK;
1499b8e80941Smrg}
1500b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__MASK		0x003ff000
1501b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__SHIFT		12
1502b8e80941Smrgstatic inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEY(uint32_t val)
1503b8e80941Smrg{
1504b8e80941Smrg	return ((val) << A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEY__MASK;
1505b8e80941Smrg}
1506b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__MASK		0xffc00000
1507b8e80941Smrg#define A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__SHIFT		22
1508b8e80941Smrgstatic inline uint32_t A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ(uint32_t val)
1509b8e80941Smrg{
1510b8e80941Smrg	return ((val) << A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__SHIFT) & A5XX_CP_EXEC_CS_INDIRECT_3_LOCALSIZEZ__MASK;
1511b8e80941Smrg}
1512b8e80941Smrg
1513b8e80941Smrg#define REG_A2XX_CP_SET_MARKER_0				0x00000000
1514b8e80941Smrg#define A2XX_CP_SET_MARKER_0_MARKER__MASK			0x0000000f
1515b8e80941Smrg#define A2XX_CP_SET_MARKER_0_MARKER__SHIFT			0
1516b8e80941Smrgstatic inline uint32_t A2XX_CP_SET_MARKER_0_MARKER(uint32_t val)
1517b8e80941Smrg{
1518b8e80941Smrg	return ((val) << A2XX_CP_SET_MARKER_0_MARKER__SHIFT) & A2XX_CP_SET_MARKER_0_MARKER__MASK;
1519b8e80941Smrg}
1520b8e80941Smrg#define A2XX_CP_SET_MARKER_0_MODE__MASK				0x0000000f
1521b8e80941Smrg#define A2XX_CP_SET_MARKER_0_MODE__SHIFT			0
1522b8e80941Smrgstatic inline uint32_t A2XX_CP_SET_MARKER_0_MODE(enum a6xx_render_mode val)
1523b8e80941Smrg{
1524b8e80941Smrg	return ((val) << A2XX_CP_SET_MARKER_0_MODE__SHIFT) & A2XX_CP_SET_MARKER_0_MODE__MASK;
1525b8e80941Smrg}
1526b8e80941Smrg#define A2XX_CP_SET_MARKER_0_IFPC				0x00000100
1527b8e80941Smrg
1528b8e80941Smrgstatic inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
1529b8e80941Smrg
1530b8e80941Smrgstatic inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
1531b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK		0x00000007
1532b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT		0
1533b8e80941Smrgstatic inline uint32_t A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG(enum pseudo_reg val)
1534b8e80941Smrg{
1535b8e80941Smrg	return ((val) << A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__SHIFT) & A2XX_CP_SET_PSEUDO_REG__0_PSEUDO_REG__MASK;
1536b8e80941Smrg}
1537b8e80941Smrg
1538b8e80941Smrgstatic inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
1539b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__1_LO__MASK			0xffffffff
1540b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__1_LO__SHIFT			0
1541b8e80941Smrgstatic inline uint32_t A2XX_CP_SET_PSEUDO_REG__1_LO(uint32_t val)
1542b8e80941Smrg{
1543b8e80941Smrg	return ((val) << A2XX_CP_SET_PSEUDO_REG__1_LO__SHIFT) & A2XX_CP_SET_PSEUDO_REG__1_LO__MASK;
1544b8e80941Smrg}
1545b8e80941Smrg
1546b8e80941Smrgstatic inline uint32_t REG_A2XX_CP_SET_PSEUDO_REG__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
1547b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__2_HI__MASK			0xffffffff
1548b8e80941Smrg#define A2XX_CP_SET_PSEUDO_REG__2_HI__SHIFT			0
1549b8e80941Smrgstatic inline uint32_t A2XX_CP_SET_PSEUDO_REG__2_HI(uint32_t val)
1550b8e80941Smrg{
1551b8e80941Smrg	return ((val) << A2XX_CP_SET_PSEUDO_REG__2_HI__SHIFT) & A2XX_CP_SET_PSEUDO_REG__2_HI__MASK;
1552b8e80941Smrg}
1553b8e80941Smrg
1554b8e80941Smrg#define REG_A2XX_CP_REG_TEST_0					0x00000000
1555b8e80941Smrg#define A2XX_CP_REG_TEST_0_REG__MASK				0x00000fff
1556b8e80941Smrg#define A2XX_CP_REG_TEST_0_REG__SHIFT				0
1557b8e80941Smrgstatic inline uint32_t A2XX_CP_REG_TEST_0_REG(uint32_t val)
1558b8e80941Smrg{
1559b8e80941Smrg	return ((val) << A2XX_CP_REG_TEST_0_REG__SHIFT) & A2XX_CP_REG_TEST_0_REG__MASK;
1560b8e80941Smrg}
1561b8e80941Smrg#define A2XX_CP_REG_TEST_0_BIT__MASK				0x01f00000
1562b8e80941Smrg#define A2XX_CP_REG_TEST_0_BIT__SHIFT				20
1563b8e80941Smrgstatic inline uint32_t A2XX_CP_REG_TEST_0_BIT(uint32_t val)
1564b8e80941Smrg{
1565b8e80941Smrg	return ((val) << A2XX_CP_REG_TEST_0_BIT__SHIFT) & A2XX_CP_REG_TEST_0_BIT__MASK;
1566b8e80941Smrg}
1567b8e80941Smrg#define A2XX_CP_REG_TEST_0_UNK25				0x02000000
1568b8e80941Smrg
1569b8e80941Smrg
1570b8e80941Smrg#endif /* ADRENO_PM4_XML */
1571