xref: /openbmc/linux/drivers/gpu/drm/msm/adreno/a5xx.xml.h (revision 52260ae4c461538a4f104d463a55dfc13c3d8543)
1a26ae754SRob Clark #ifndef A5XX_XML
2a26ae754SRob Clark #define A5XX_XML
3a26ae754SRob Clark 
4a26ae754SRob Clark /* Autogenerated file, DO NOT EDIT manually!
5a26ae754SRob Clark 
6a26ae754SRob Clark This file was generated by the rules-ng-ng headergen tool in this git repository:
7a26ae754SRob Clark http://github.com/freedreno/envytools/
8a26ae754SRob Clark git clone https://github.com/freedreno/envytools.git
9a26ae754SRob Clark 
10a26ae754SRob Clark The rules-ng-ng source files this header was generated from are:
11*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    431 bytes, from 2017-05-17 13:21:27)
12*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2017-05-17 13:21:27)
13*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  37162 bytes, from 2017-05-17 13:21:27)
14*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  13324 bytes, from 2017-05-17 13:21:27)
15*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  31866 bytes, from 2017-06-06 18:26:14)
16*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2017-05-17 13:21:27)
17*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 111898 bytes, from 2017-06-06 18:23:59)
18*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 139480 bytes, from 2017-06-16 12:44:39)
19*52260ae4SRob Clark - /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2017-05-17 13:21:27)
20a26ae754SRob Clark 
21*52260ae4SRob Clark Copyright (C) 2013-2017 by the following authors:
22a26ae754SRob Clark - Rob Clark <robdclark@gmail.com> (robclark)
23a26ae754SRob Clark - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
24a26ae754SRob Clark 
25a26ae754SRob Clark Permission is hereby granted, free of charge, to any person obtaining
26a26ae754SRob Clark a copy of this software and associated documentation files (the
27a26ae754SRob Clark "Software"), to deal in the Software without restriction, including
28a26ae754SRob Clark without limitation the rights to use, copy, modify, merge, publish,
29a26ae754SRob Clark distribute, sublicense, and/or sell copies of the Software, and to
30a26ae754SRob Clark permit persons to whom the Software is furnished to do so, subject to
31a26ae754SRob Clark the following conditions:
32a26ae754SRob Clark 
33a26ae754SRob Clark The above copyright notice and this permission notice (including the
34a26ae754SRob Clark next paragraph) shall be included in all copies or substantial
35a26ae754SRob Clark portions of the Software.
36a26ae754SRob Clark 
37a26ae754SRob Clark THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38a26ae754SRob Clark EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39a26ae754SRob Clark MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40a26ae754SRob Clark IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
41a26ae754SRob Clark LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
42a26ae754SRob Clark OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
43a26ae754SRob Clark WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44a26ae754SRob Clark */
45a26ae754SRob Clark 
46a26ae754SRob Clark 
47a26ae754SRob Clark enum a5xx_color_fmt {
48*52260ae4SRob Clark 	RB5_A8_UNORM = 2,
49a26ae754SRob Clark 	RB5_R8_UNORM = 3,
50*52260ae4SRob Clark 	RB5_R8_SNORM = 4,
51*52260ae4SRob Clark 	RB5_R8_UINT = 5,
52*52260ae4SRob Clark 	RB5_R8_SINT = 6,
53a26ae754SRob Clark 	RB5_R4G4B4A4_UNORM = 8,
54a26ae754SRob Clark 	RB5_R5G5B5A1_UNORM = 10,
55a26ae754SRob Clark 	RB5_R5G6B5_UNORM = 14,
56*52260ae4SRob Clark 	RB5_R8G8_UNORM = 15,
57*52260ae4SRob Clark 	RB5_R8G8_SNORM = 16,
58*52260ae4SRob Clark 	RB5_R8G8_UINT = 17,
59*52260ae4SRob Clark 	RB5_R8G8_SINT = 18,
60*52260ae4SRob Clark 	RB5_R16_UNORM = 21,
61*52260ae4SRob Clark 	RB5_R16_SNORM = 22,
62a26ae754SRob Clark 	RB5_R16_FLOAT = 23,
63*52260ae4SRob Clark 	RB5_R16_UINT = 24,
64*52260ae4SRob Clark 	RB5_R16_SINT = 25,
65a26ae754SRob Clark 	RB5_R8G8B8A8_UNORM = 48,
66a26ae754SRob Clark 	RB5_R8G8B8_UNORM = 49,
67*52260ae4SRob Clark 	RB5_R8G8B8A8_SNORM = 50,
68a26ae754SRob Clark 	RB5_R8G8B8A8_UINT = 51,
69*52260ae4SRob Clark 	RB5_R8G8B8A8_SINT = 52,
70*52260ae4SRob Clark 	RB5_R10G10B10A2_UNORM = 55,
71a26ae754SRob Clark 	RB5_R10G10B10A2_UINT = 58,
72*52260ae4SRob Clark 	RB5_R11G11B10_FLOAT = 66,
73*52260ae4SRob Clark 	RB5_R16G16_UNORM = 67,
74*52260ae4SRob Clark 	RB5_R16G16_SNORM = 68,
75a26ae754SRob Clark 	RB5_R16G16_FLOAT = 69,
76*52260ae4SRob Clark 	RB5_R16G16_UINT = 70,
77*52260ae4SRob Clark 	RB5_R16G16_SINT = 71,
78a26ae754SRob Clark 	RB5_R32_FLOAT = 74,
79*52260ae4SRob Clark 	RB5_R32_UINT = 75,
80*52260ae4SRob Clark 	RB5_R32_SINT = 76,
81*52260ae4SRob Clark 	RB5_R16G16B16A16_UNORM = 96,
82*52260ae4SRob Clark 	RB5_R16G16B16A16_SNORM = 97,
83a26ae754SRob Clark 	RB5_R16G16B16A16_FLOAT = 98,
84*52260ae4SRob Clark 	RB5_R16G16B16A16_UINT = 99,
85*52260ae4SRob Clark 	RB5_R16G16B16A16_SINT = 100,
86a26ae754SRob Clark 	RB5_R32G32_FLOAT = 103,
87*52260ae4SRob Clark 	RB5_R32G32_UINT = 104,
88*52260ae4SRob Clark 	RB5_R32G32_SINT = 105,
89a26ae754SRob Clark 	RB5_R32G32B32A32_FLOAT = 130,
90*52260ae4SRob Clark 	RB5_R32G32B32A32_UINT = 131,
91*52260ae4SRob Clark 	RB5_R32G32B32A32_SINT = 132,
92a26ae754SRob Clark };
93a26ae754SRob Clark 
94a26ae754SRob Clark enum a5xx_tile_mode {
95a26ae754SRob Clark 	TILE5_LINEAR = 0,
96a26ae754SRob Clark 	TILE5_2 = 2,
97a26ae754SRob Clark 	TILE5_3 = 3,
98a26ae754SRob Clark };
99a26ae754SRob Clark 
100a26ae754SRob Clark enum a5xx_vtx_fmt {
101a26ae754SRob Clark 	VFMT5_8_UNORM = 3,
102a26ae754SRob Clark 	VFMT5_8_SNORM = 4,
103a26ae754SRob Clark 	VFMT5_8_UINT = 5,
104a26ae754SRob Clark 	VFMT5_8_SINT = 6,
105a26ae754SRob Clark 	VFMT5_8_8_UNORM = 15,
106a26ae754SRob Clark 	VFMT5_8_8_SNORM = 16,
107a26ae754SRob Clark 	VFMT5_8_8_UINT = 17,
108a26ae754SRob Clark 	VFMT5_8_8_SINT = 18,
109a26ae754SRob Clark 	VFMT5_16_UNORM = 21,
110a26ae754SRob Clark 	VFMT5_16_SNORM = 22,
111a26ae754SRob Clark 	VFMT5_16_FLOAT = 23,
112a26ae754SRob Clark 	VFMT5_16_UINT = 24,
113a26ae754SRob Clark 	VFMT5_16_SINT = 25,
114a26ae754SRob Clark 	VFMT5_8_8_8_UNORM = 33,
115a26ae754SRob Clark 	VFMT5_8_8_8_SNORM = 34,
116a26ae754SRob Clark 	VFMT5_8_8_8_UINT = 35,
117a26ae754SRob Clark 	VFMT5_8_8_8_SINT = 36,
118a26ae754SRob Clark 	VFMT5_8_8_8_8_UNORM = 48,
119a26ae754SRob Clark 	VFMT5_8_8_8_8_SNORM = 50,
120a26ae754SRob Clark 	VFMT5_8_8_8_8_UINT = 51,
121a26ae754SRob Clark 	VFMT5_8_8_8_8_SINT = 52,
122a26ae754SRob Clark 	VFMT5_16_16_UNORM = 67,
123a26ae754SRob Clark 	VFMT5_16_16_SNORM = 68,
124a26ae754SRob Clark 	VFMT5_16_16_FLOAT = 69,
125a26ae754SRob Clark 	VFMT5_16_16_UINT = 70,
126a26ae754SRob Clark 	VFMT5_16_16_SINT = 71,
127a26ae754SRob Clark 	VFMT5_32_UNORM = 72,
128a26ae754SRob Clark 	VFMT5_32_SNORM = 73,
129a26ae754SRob Clark 	VFMT5_32_FLOAT = 74,
130a26ae754SRob Clark 	VFMT5_32_UINT = 75,
131a26ae754SRob Clark 	VFMT5_32_SINT = 76,
132a26ae754SRob Clark 	VFMT5_32_FIXED = 77,
133a26ae754SRob Clark 	VFMT5_16_16_16_UNORM = 88,
134a26ae754SRob Clark 	VFMT5_16_16_16_SNORM = 89,
135a26ae754SRob Clark 	VFMT5_16_16_16_FLOAT = 90,
136a26ae754SRob Clark 	VFMT5_16_16_16_UINT = 91,
137a26ae754SRob Clark 	VFMT5_16_16_16_SINT = 92,
138a26ae754SRob Clark 	VFMT5_16_16_16_16_UNORM = 96,
139a26ae754SRob Clark 	VFMT5_16_16_16_16_SNORM = 97,
140a26ae754SRob Clark 	VFMT5_16_16_16_16_FLOAT = 98,
141a26ae754SRob Clark 	VFMT5_16_16_16_16_UINT = 99,
142a26ae754SRob Clark 	VFMT5_16_16_16_16_SINT = 100,
143a26ae754SRob Clark 	VFMT5_32_32_UNORM = 101,
144a26ae754SRob Clark 	VFMT5_32_32_SNORM = 102,
145a26ae754SRob Clark 	VFMT5_32_32_FLOAT = 103,
146a26ae754SRob Clark 	VFMT5_32_32_UINT = 104,
147a26ae754SRob Clark 	VFMT5_32_32_SINT = 105,
148a26ae754SRob Clark 	VFMT5_32_32_FIXED = 106,
149a26ae754SRob Clark 	VFMT5_32_32_32_UNORM = 112,
150a26ae754SRob Clark 	VFMT5_32_32_32_SNORM = 113,
151a26ae754SRob Clark 	VFMT5_32_32_32_UINT = 114,
152a26ae754SRob Clark 	VFMT5_32_32_32_SINT = 115,
153a26ae754SRob Clark 	VFMT5_32_32_32_FLOAT = 116,
154a26ae754SRob Clark 	VFMT5_32_32_32_FIXED = 117,
155a26ae754SRob Clark 	VFMT5_32_32_32_32_UNORM = 128,
156a26ae754SRob Clark 	VFMT5_32_32_32_32_SNORM = 129,
157a26ae754SRob Clark 	VFMT5_32_32_32_32_FLOAT = 130,
158a26ae754SRob Clark 	VFMT5_32_32_32_32_UINT = 131,
159a26ae754SRob Clark 	VFMT5_32_32_32_32_SINT = 132,
160a26ae754SRob Clark 	VFMT5_32_32_32_32_FIXED = 133,
161a26ae754SRob Clark };
162a26ae754SRob Clark 
163a26ae754SRob Clark enum a5xx_tex_fmt {
164a26ae754SRob Clark 	TFMT5_A8_UNORM = 2,
165a26ae754SRob Clark 	TFMT5_8_UNORM = 3,
166*52260ae4SRob Clark 	TFMT5_8_SNORM = 4,
167*52260ae4SRob Clark 	TFMT5_8_UINT = 5,
168*52260ae4SRob Clark 	TFMT5_8_SINT = 6,
169a26ae754SRob Clark 	TFMT5_4_4_4_4_UNORM = 8,
170a26ae754SRob Clark 	TFMT5_5_5_5_1_UNORM = 10,
171a26ae754SRob Clark 	TFMT5_5_6_5_UNORM = 14,
172a26ae754SRob Clark 	TFMT5_8_8_UNORM = 15,
173a26ae754SRob Clark 	TFMT5_8_8_SNORM = 16,
174*52260ae4SRob Clark 	TFMT5_8_8_UINT = 17,
175*52260ae4SRob Clark 	TFMT5_8_8_SINT = 18,
176a26ae754SRob Clark 	TFMT5_L8_A8_UNORM = 19,
177*52260ae4SRob Clark 	TFMT5_16_UNORM = 21,
178*52260ae4SRob Clark 	TFMT5_16_SNORM = 22,
179a26ae754SRob Clark 	TFMT5_16_FLOAT = 23,
180*52260ae4SRob Clark 	TFMT5_16_UINT = 24,
181*52260ae4SRob Clark 	TFMT5_16_SINT = 25,
182a26ae754SRob Clark 	TFMT5_8_8_8_8_UNORM = 48,
183a26ae754SRob Clark 	TFMT5_8_8_8_UNORM = 49,
184*52260ae4SRob Clark 	TFMT5_8_8_8_8_SNORM = 50,
185*52260ae4SRob Clark 	TFMT5_8_8_8_8_UINT = 51,
186*52260ae4SRob Clark 	TFMT5_8_8_8_8_SINT = 52,
187a26ae754SRob Clark 	TFMT5_9_9_9_E5_FLOAT = 53,
188a26ae754SRob Clark 	TFMT5_10_10_10_2_UNORM = 54,
189*52260ae4SRob Clark 	TFMT5_10_10_10_2_UINT = 58,
190a26ae754SRob Clark 	TFMT5_11_11_10_FLOAT = 66,
191*52260ae4SRob Clark 	TFMT5_16_16_UNORM = 67,
192*52260ae4SRob Clark 	TFMT5_16_16_SNORM = 68,
193a26ae754SRob Clark 	TFMT5_16_16_FLOAT = 69,
194*52260ae4SRob Clark 	TFMT5_16_16_UINT = 70,
195*52260ae4SRob Clark 	TFMT5_16_16_SINT = 71,
196a26ae754SRob Clark 	TFMT5_32_FLOAT = 74,
197*52260ae4SRob Clark 	TFMT5_32_UINT = 75,
198*52260ae4SRob Clark 	TFMT5_32_SINT = 76,
199*52260ae4SRob Clark 	TFMT5_16_16_16_16_UNORM = 96,
200*52260ae4SRob Clark 	TFMT5_16_16_16_16_SNORM = 97,
201a26ae754SRob Clark 	TFMT5_16_16_16_16_FLOAT = 98,
202*52260ae4SRob Clark 	TFMT5_16_16_16_16_UINT = 99,
203*52260ae4SRob Clark 	TFMT5_16_16_16_16_SINT = 100,
204a26ae754SRob Clark 	TFMT5_32_32_FLOAT = 103,
205*52260ae4SRob Clark 	TFMT5_32_32_UINT = 104,
206*52260ae4SRob Clark 	TFMT5_32_32_SINT = 105,
207a26ae754SRob Clark 	TFMT5_32_32_32_32_FLOAT = 130,
208*52260ae4SRob Clark 	TFMT5_32_32_32_32_UINT = 131,
209*52260ae4SRob Clark 	TFMT5_32_32_32_32_SINT = 132,
210a26ae754SRob Clark 	TFMT5_X8Z24_UNORM = 160,
211*52260ae4SRob Clark 	TFMT5_RGTC1_UNORM = 183,
212*52260ae4SRob Clark 	TFMT5_RGTC1_SNORM = 184,
213*52260ae4SRob Clark 	TFMT5_RGTC2_UNORM = 187,
214*52260ae4SRob Clark 	TFMT5_RGTC2_SNORM = 188,
215a26ae754SRob Clark };
216a26ae754SRob Clark 
217a26ae754SRob Clark enum a5xx_tex_fetchsize {
218a26ae754SRob Clark 	TFETCH5_1_BYTE = 0,
219a26ae754SRob Clark 	TFETCH5_2_BYTE = 1,
220a26ae754SRob Clark 	TFETCH5_4_BYTE = 2,
221a26ae754SRob Clark 	TFETCH5_8_BYTE = 3,
222a26ae754SRob Clark 	TFETCH5_16_BYTE = 4,
223a26ae754SRob Clark };
224a26ae754SRob Clark 
225a26ae754SRob Clark enum a5xx_depth_format {
226a26ae754SRob Clark 	DEPTH5_NONE = 0,
227a26ae754SRob Clark 	DEPTH5_16 = 1,
228a26ae754SRob Clark 	DEPTH5_24_8 = 2,
229a26ae754SRob Clark 	DEPTH5_32 = 4,
230a26ae754SRob Clark };
231a26ae754SRob Clark 
232a26ae754SRob Clark enum a5xx_blit_buf {
233a26ae754SRob Clark 	BLIT_MRT0 = 0,
234a26ae754SRob Clark 	BLIT_MRT1 = 1,
235a26ae754SRob Clark 	BLIT_MRT2 = 2,
236a26ae754SRob Clark 	BLIT_MRT3 = 3,
237a26ae754SRob Clark 	BLIT_MRT4 = 4,
238a26ae754SRob Clark 	BLIT_MRT5 = 5,
239a26ae754SRob Clark 	BLIT_MRT6 = 6,
240a26ae754SRob Clark 	BLIT_MRT7 = 7,
241a26ae754SRob Clark 	BLIT_ZS = 8,
242a26ae754SRob Clark 	BLIT_Z32 = 9,
243a26ae754SRob Clark };
244a26ae754SRob Clark 
245*52260ae4SRob Clark enum a5xx_cp_perfcounter_select {
246*52260ae4SRob Clark 	PERF_CP_ALWAYS_COUNT = 0,
247*52260ae4SRob Clark 	PERF_CP_BUSY_GFX_CORE_IDLE = 1,
248*52260ae4SRob Clark 	PERF_CP_BUSY_CYCLES = 2,
249*52260ae4SRob Clark 	PERF_CP_PFP_IDLE = 3,
250*52260ae4SRob Clark 	PERF_CP_PFP_BUSY_WORKING = 4,
251*52260ae4SRob Clark 	PERF_CP_PFP_STALL_CYCLES_ANY = 5,
252*52260ae4SRob Clark 	PERF_CP_PFP_STARVE_CYCLES_ANY = 6,
253*52260ae4SRob Clark 	PERF_CP_PFP_ICACHE_MISS = 7,
254*52260ae4SRob Clark 	PERF_CP_PFP_ICACHE_HIT = 8,
255*52260ae4SRob Clark 	PERF_CP_PFP_MATCH_PM4_PKT_PROFILE = 9,
256*52260ae4SRob Clark 	PERF_CP_ME_BUSY_WORKING = 10,
257*52260ae4SRob Clark 	PERF_CP_ME_IDLE = 11,
258*52260ae4SRob Clark 	PERF_CP_ME_STARVE_CYCLES_ANY = 12,
259*52260ae4SRob Clark 	PERF_CP_ME_FIFO_EMPTY_PFP_IDLE = 13,
260*52260ae4SRob Clark 	PERF_CP_ME_FIFO_EMPTY_PFP_BUSY = 14,
261*52260ae4SRob Clark 	PERF_CP_ME_FIFO_FULL_ME_BUSY = 15,
262*52260ae4SRob Clark 	PERF_CP_ME_FIFO_FULL_ME_NON_WORKING = 16,
263*52260ae4SRob Clark 	PERF_CP_ME_STALL_CYCLES_ANY = 17,
264*52260ae4SRob Clark 	PERF_CP_ME_ICACHE_MISS = 18,
265*52260ae4SRob Clark 	PERF_CP_ME_ICACHE_HIT = 19,
266*52260ae4SRob Clark 	PERF_CP_NUM_PREEMPTIONS = 20,
267*52260ae4SRob Clark 	PERF_CP_PREEMPTION_REACTION_DELAY = 21,
268*52260ae4SRob Clark 	PERF_CP_PREEMPTION_SWITCH_OUT_TIME = 22,
269*52260ae4SRob Clark 	PERF_CP_PREEMPTION_SWITCH_IN_TIME = 23,
270*52260ae4SRob Clark 	PERF_CP_DEAD_DRAWS_IN_BIN_RENDER = 24,
271*52260ae4SRob Clark 	PERF_CP_PREDICATED_DRAWS_KILLED = 25,
272*52260ae4SRob Clark 	PERF_CP_MODE_SWITCH = 26,
273*52260ae4SRob Clark 	PERF_CP_ZPASS_DONE = 27,
274*52260ae4SRob Clark 	PERF_CP_CONTEXT_DONE = 28,
275*52260ae4SRob Clark 	PERF_CP_CACHE_FLUSH = 29,
276*52260ae4SRob Clark 	PERF_CP_LONG_PREEMPTIONS = 30,
277*52260ae4SRob Clark };
278*52260ae4SRob Clark 
279*52260ae4SRob Clark enum a5xx_rbbm_perfcounter_select {
280*52260ae4SRob Clark 	PERF_RBBM_ALWAYS_COUNT = 0,
281*52260ae4SRob Clark 	PERF_RBBM_ALWAYS_ON = 1,
282*52260ae4SRob Clark 	PERF_RBBM_TSE_BUSY = 2,
283*52260ae4SRob Clark 	PERF_RBBM_RAS_BUSY = 3,
284*52260ae4SRob Clark 	PERF_RBBM_PC_DCALL_BUSY = 4,
285*52260ae4SRob Clark 	PERF_RBBM_PC_VSD_BUSY = 5,
286*52260ae4SRob Clark 	PERF_RBBM_STATUS_MASKED = 6,
287*52260ae4SRob Clark 	PERF_RBBM_COM_BUSY = 7,
288*52260ae4SRob Clark 	PERF_RBBM_DCOM_BUSY = 8,
289*52260ae4SRob Clark 	PERF_RBBM_VBIF_BUSY = 9,
290*52260ae4SRob Clark 	PERF_RBBM_VSC_BUSY = 10,
291*52260ae4SRob Clark 	PERF_RBBM_TESS_BUSY = 11,
292*52260ae4SRob Clark 	PERF_RBBM_UCHE_BUSY = 12,
293*52260ae4SRob Clark 	PERF_RBBM_HLSQ_BUSY = 13,
294*52260ae4SRob Clark };
295*52260ae4SRob Clark 
296*52260ae4SRob Clark enum a5xx_pc_perfcounter_select {
297*52260ae4SRob Clark 	PERF_PC_BUSY_CYCLES = 0,
298*52260ae4SRob Clark 	PERF_PC_WORKING_CYCLES = 1,
299*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_VFD = 2,
300*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_TSE = 3,
301*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_VPC = 4,
302*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_UCHE = 5,
303*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_TESS = 6,
304*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_TSE_ONLY = 7,
305*52260ae4SRob Clark 	PERF_PC_STALL_CYCLES_VPC_ONLY = 8,
306*52260ae4SRob Clark 	PERF_PC_PASS1_TF_STALL_CYCLES = 9,
307*52260ae4SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_INDEX = 10,
308*52260ae4SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_TESS_FACTOR = 11,
309*52260ae4SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_VIZ_STREAM = 12,
310*52260ae4SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_POSITION = 13,
311*52260ae4SRob Clark 	PERF_PC_STARVE_CYCLES_DI = 14,
312*52260ae4SRob Clark 	PERF_PC_VIS_STREAMS_LOADED = 15,
313*52260ae4SRob Clark 	PERF_PC_INSTANCES = 16,
314*52260ae4SRob Clark 	PERF_PC_VPC_PRIMITIVES = 17,
315*52260ae4SRob Clark 	PERF_PC_DEAD_PRIM = 18,
316*52260ae4SRob Clark 	PERF_PC_LIVE_PRIM = 19,
317*52260ae4SRob Clark 	PERF_PC_VERTEX_HITS = 20,
318*52260ae4SRob Clark 	PERF_PC_IA_VERTICES = 21,
319*52260ae4SRob Clark 	PERF_PC_IA_PRIMITIVES = 22,
320*52260ae4SRob Clark 	PERF_PC_GS_PRIMITIVES = 23,
321*52260ae4SRob Clark 	PERF_PC_HS_INVOCATIONS = 24,
322*52260ae4SRob Clark 	PERF_PC_DS_INVOCATIONS = 25,
323*52260ae4SRob Clark 	PERF_PC_VS_INVOCATIONS = 26,
324*52260ae4SRob Clark 	PERF_PC_GS_INVOCATIONS = 27,
325*52260ae4SRob Clark 	PERF_PC_DS_PRIMITIVES = 28,
326*52260ae4SRob Clark 	PERF_PC_VPC_POS_DATA_TRANSACTION = 29,
327*52260ae4SRob Clark 	PERF_PC_3D_DRAWCALLS = 30,
328*52260ae4SRob Clark 	PERF_PC_2D_DRAWCALLS = 31,
329*52260ae4SRob Clark 	PERF_PC_NON_DRAWCALL_GLOBAL_EVENTS = 32,
330*52260ae4SRob Clark 	PERF_TESS_BUSY_CYCLES = 33,
331*52260ae4SRob Clark 	PERF_TESS_WORKING_CYCLES = 34,
332*52260ae4SRob Clark 	PERF_TESS_STALL_CYCLES_PC = 35,
333*52260ae4SRob Clark 	PERF_TESS_STARVE_CYCLES_PC = 36,
334*52260ae4SRob Clark };
335*52260ae4SRob Clark 
336*52260ae4SRob Clark enum a5xx_vfd_perfcounter_select {
337*52260ae4SRob Clark 	PERF_VFD_BUSY_CYCLES = 0,
338*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_UCHE = 1,
339*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_VPC_ALLOC = 2,
340*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_MISS_VB = 3,
341*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_MISS_Q = 4,
342*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_SP_INFO = 5,
343*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_SP_ATTR = 6,
344*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_VFDP_VB = 7,
345*52260ae4SRob Clark 	PERF_VFD_STALL_CYCLES_VFDP_Q = 8,
346*52260ae4SRob Clark 	PERF_VFD_DECODER_PACKER_STALL = 9,
347*52260ae4SRob Clark 	PERF_VFD_STARVE_CYCLES_UCHE = 10,
348*52260ae4SRob Clark 	PERF_VFD_RBUFFER_FULL = 11,
349*52260ae4SRob Clark 	PERF_VFD_ATTR_INFO_FIFO_FULL = 12,
350*52260ae4SRob Clark 	PERF_VFD_DECODED_ATTRIBUTE_BYTES = 13,
351*52260ae4SRob Clark 	PERF_VFD_NUM_ATTRIBUTES = 14,
352*52260ae4SRob Clark 	PERF_VFD_INSTRUCTIONS = 15,
353*52260ae4SRob Clark 	PERF_VFD_UPPER_SHADER_FIBERS = 16,
354*52260ae4SRob Clark 	PERF_VFD_LOWER_SHADER_FIBERS = 17,
355*52260ae4SRob Clark 	PERF_VFD_MODE_0_FIBERS = 18,
356*52260ae4SRob Clark 	PERF_VFD_MODE_1_FIBERS = 19,
357*52260ae4SRob Clark 	PERF_VFD_MODE_2_FIBERS = 20,
358*52260ae4SRob Clark 	PERF_VFD_MODE_3_FIBERS = 21,
359*52260ae4SRob Clark 	PERF_VFD_MODE_4_FIBERS = 22,
360*52260ae4SRob Clark 	PERF_VFD_TOTAL_VERTICES = 23,
361*52260ae4SRob Clark 	PERF_VFD_NUM_ATTR_MISS = 24,
362*52260ae4SRob Clark 	PERF_VFD_1_BURST_REQ = 25,
363*52260ae4SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD = 26,
364*52260ae4SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD_INDEX = 27,
365*52260ae4SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD_PROG = 28,
366*52260ae4SRob Clark 	PERF_VFDP_STARVE_CYCLES_PC = 29,
367*52260ae4SRob Clark 	PERF_VFDP_VS_STAGE_32_WAVES = 30,
368*52260ae4SRob Clark };
369*52260ae4SRob Clark 
370*52260ae4SRob Clark enum a5xx_hlsq_perfcounter_select {
371*52260ae4SRob Clark 	PERF_HLSQ_BUSY_CYCLES = 0,
372*52260ae4SRob Clark 	PERF_HLSQ_STALL_CYCLES_UCHE = 1,
373*52260ae4SRob Clark 	PERF_HLSQ_STALL_CYCLES_SP_STATE = 2,
374*52260ae4SRob Clark 	PERF_HLSQ_STALL_CYCLES_SP_FS_STAGE = 3,
375*52260ae4SRob Clark 	PERF_HLSQ_UCHE_LATENCY_CYCLES = 4,
376*52260ae4SRob Clark 	PERF_HLSQ_UCHE_LATENCY_COUNT = 5,
377*52260ae4SRob Clark 	PERF_HLSQ_FS_STAGE_32_WAVES = 6,
378*52260ae4SRob Clark 	PERF_HLSQ_FS_STAGE_64_WAVES = 7,
379*52260ae4SRob Clark 	PERF_HLSQ_QUADS = 8,
380*52260ae4SRob Clark 	PERF_HLSQ_SP_STATE_COPY_TRANS_FS_STAGE = 9,
381*52260ae4SRob Clark 	PERF_HLSQ_SP_STATE_COPY_TRANS_VS_STAGE = 10,
382*52260ae4SRob Clark 	PERF_HLSQ_TP_STATE_COPY_TRANS_FS_STAGE = 11,
383*52260ae4SRob Clark 	PERF_HLSQ_TP_STATE_COPY_TRANS_VS_STAGE = 12,
384*52260ae4SRob Clark 	PERF_HLSQ_CS_INVOCATIONS = 13,
385*52260ae4SRob Clark 	PERF_HLSQ_COMPUTE_DRAWCALLS = 14,
386*52260ae4SRob Clark };
387*52260ae4SRob Clark 
388*52260ae4SRob Clark enum a5xx_vpc_perfcounter_select {
389*52260ae4SRob Clark 	PERF_VPC_BUSY_CYCLES = 0,
390*52260ae4SRob Clark 	PERF_VPC_WORKING_CYCLES = 1,
391*52260ae4SRob Clark 	PERF_VPC_STALL_CYCLES_UCHE = 2,
392*52260ae4SRob Clark 	PERF_VPC_STALL_CYCLES_VFD_WACK = 3,
393*52260ae4SRob Clark 	PERF_VPC_STALL_CYCLES_HLSQ_PRIM_ALLOC = 4,
394*52260ae4SRob Clark 	PERF_VPC_STALL_CYCLES_PC = 5,
395*52260ae4SRob Clark 	PERF_VPC_STALL_CYCLES_SP_LM = 6,
396*52260ae4SRob Clark 	PERF_VPC_POS_EXPORT_STALL_CYCLES = 7,
397*52260ae4SRob Clark 	PERF_VPC_STARVE_CYCLES_SP = 8,
398*52260ae4SRob Clark 	PERF_VPC_STARVE_CYCLES_LRZ = 9,
399*52260ae4SRob Clark 	PERF_VPC_PC_PRIMITIVES = 10,
400*52260ae4SRob Clark 	PERF_VPC_SP_COMPONENTS = 11,
401*52260ae4SRob Clark 	PERF_VPC_SP_LM_PRIMITIVES = 12,
402*52260ae4SRob Clark 	PERF_VPC_SP_LM_COMPONENTS = 13,
403*52260ae4SRob Clark 	PERF_VPC_SP_LM_DWORDS = 14,
404*52260ae4SRob Clark 	PERF_VPC_STREAMOUT_COMPONENTS = 15,
405*52260ae4SRob Clark 	PERF_VPC_GRANT_PHASES = 16,
406*52260ae4SRob Clark };
407*52260ae4SRob Clark 
408*52260ae4SRob Clark enum a5xx_tse_perfcounter_select {
409*52260ae4SRob Clark 	PERF_TSE_BUSY_CYCLES = 0,
410*52260ae4SRob Clark 	PERF_TSE_CLIPPING_CYCLES = 1,
411*52260ae4SRob Clark 	PERF_TSE_STALL_CYCLES_RAS = 2,
412*52260ae4SRob Clark 	PERF_TSE_STALL_CYCLES_LRZ_BARYPLANE = 3,
413*52260ae4SRob Clark 	PERF_TSE_STALL_CYCLES_LRZ_ZPLANE = 4,
414*52260ae4SRob Clark 	PERF_TSE_STARVE_CYCLES_PC = 5,
415*52260ae4SRob Clark 	PERF_TSE_INPUT_PRIM = 6,
416*52260ae4SRob Clark 	PERF_TSE_INPUT_NULL_PRIM = 7,
417*52260ae4SRob Clark 	PERF_TSE_TRIVAL_REJ_PRIM = 8,
418*52260ae4SRob Clark 	PERF_TSE_CLIPPED_PRIM = 9,
419*52260ae4SRob Clark 	PERF_TSE_ZERO_AREA_PRIM = 10,
420*52260ae4SRob Clark 	PERF_TSE_FACENESS_CULLED_PRIM = 11,
421*52260ae4SRob Clark 	PERF_TSE_ZERO_PIXEL_PRIM = 12,
422*52260ae4SRob Clark 	PERF_TSE_OUTPUT_NULL_PRIM = 13,
423*52260ae4SRob Clark 	PERF_TSE_OUTPUT_VISIBLE_PRIM = 14,
424*52260ae4SRob Clark 	PERF_TSE_CINVOCATION = 15,
425*52260ae4SRob Clark 	PERF_TSE_CPRIMITIVES = 16,
426*52260ae4SRob Clark 	PERF_TSE_2D_INPUT_PRIM = 17,
427*52260ae4SRob Clark 	PERF_TSE_2D_ALIVE_CLCLES = 18,
428*52260ae4SRob Clark };
429*52260ae4SRob Clark 
430*52260ae4SRob Clark enum a5xx_ras_perfcounter_select {
431*52260ae4SRob Clark 	PERF_RAS_BUSY_CYCLES = 0,
432*52260ae4SRob Clark 	PERF_RAS_SUPERTILE_ACTIVE_CYCLES = 1,
433*52260ae4SRob Clark 	PERF_RAS_STALL_CYCLES_LRZ = 2,
434*52260ae4SRob Clark 	PERF_RAS_STARVE_CYCLES_TSE = 3,
435*52260ae4SRob Clark 	PERF_RAS_SUPER_TILES = 4,
436*52260ae4SRob Clark 	PERF_RAS_8X4_TILES = 5,
437*52260ae4SRob Clark 	PERF_RAS_MASKGEN_ACTIVE = 6,
438*52260ae4SRob Clark 	PERF_RAS_FULLY_COVERED_SUPER_TILES = 7,
439*52260ae4SRob Clark 	PERF_RAS_FULLY_COVERED_8X4_TILES = 8,
440*52260ae4SRob Clark 	PERF_RAS_PRIM_KILLED_INVISILBE = 9,
441*52260ae4SRob Clark };
442*52260ae4SRob Clark 
443*52260ae4SRob Clark enum a5xx_lrz_perfcounter_select {
444*52260ae4SRob Clark 	PERF_LRZ_BUSY_CYCLES = 0,
445*52260ae4SRob Clark 	PERF_LRZ_STARVE_CYCLES_RAS = 1,
446*52260ae4SRob Clark 	PERF_LRZ_STALL_CYCLES_RB = 2,
447*52260ae4SRob Clark 	PERF_LRZ_STALL_CYCLES_VSC = 3,
448*52260ae4SRob Clark 	PERF_LRZ_STALL_CYCLES_VPC = 4,
449*52260ae4SRob Clark 	PERF_LRZ_STALL_CYCLES_FLAG_PREFETCH = 5,
450*52260ae4SRob Clark 	PERF_LRZ_STALL_CYCLES_UCHE = 6,
451*52260ae4SRob Clark 	PERF_LRZ_LRZ_READ = 7,
452*52260ae4SRob Clark 	PERF_LRZ_LRZ_WRITE = 8,
453*52260ae4SRob Clark 	PERF_LRZ_READ_LATENCY = 9,
454*52260ae4SRob Clark 	PERF_LRZ_MERGE_CACHE_UPDATING = 10,
455*52260ae4SRob Clark 	PERF_LRZ_PRIM_KILLED_BY_MASKGEN = 11,
456*52260ae4SRob Clark 	PERF_LRZ_PRIM_KILLED_BY_LRZ = 12,
457*52260ae4SRob Clark 	PERF_LRZ_VISIBLE_PRIM_AFTER_LRZ = 13,
458*52260ae4SRob Clark 	PERF_LRZ_FULL_8X8_TILES = 14,
459*52260ae4SRob Clark 	PERF_LRZ_PARTIAL_8X8_TILES = 15,
460*52260ae4SRob Clark 	PERF_LRZ_TILE_KILLED = 16,
461*52260ae4SRob Clark 	PERF_LRZ_TOTAL_PIXEL = 17,
462*52260ae4SRob Clark 	PERF_LRZ_VISIBLE_PIXEL_AFTER_LRZ = 18,
463*52260ae4SRob Clark };
464*52260ae4SRob Clark 
465*52260ae4SRob Clark enum a5xx_uche_perfcounter_select {
466*52260ae4SRob Clark 	PERF_UCHE_BUSY_CYCLES = 0,
467*52260ae4SRob Clark 	PERF_UCHE_STALL_CYCLES_VBIF = 1,
468*52260ae4SRob Clark 	PERF_UCHE_VBIF_LATENCY_CYCLES = 2,
469*52260ae4SRob Clark 	PERF_UCHE_VBIF_LATENCY_SAMPLES = 3,
470*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_TP = 4,
471*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_VFD = 5,
472*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_HLSQ = 6,
473*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_LRZ = 7,
474*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_SP = 8,
475*52260ae4SRob Clark 	PERF_UCHE_READ_REQUESTS_TP = 9,
476*52260ae4SRob Clark 	PERF_UCHE_READ_REQUESTS_VFD = 10,
477*52260ae4SRob Clark 	PERF_UCHE_READ_REQUESTS_HLSQ = 11,
478*52260ae4SRob Clark 	PERF_UCHE_READ_REQUESTS_LRZ = 12,
479*52260ae4SRob Clark 	PERF_UCHE_READ_REQUESTS_SP = 13,
480*52260ae4SRob Clark 	PERF_UCHE_WRITE_REQUESTS_LRZ = 14,
481*52260ae4SRob Clark 	PERF_UCHE_WRITE_REQUESTS_SP = 15,
482*52260ae4SRob Clark 	PERF_UCHE_WRITE_REQUESTS_VPC = 16,
483*52260ae4SRob Clark 	PERF_UCHE_WRITE_REQUESTS_VSC = 17,
484*52260ae4SRob Clark 	PERF_UCHE_EVICTS = 18,
485*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ0 = 19,
486*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ1 = 20,
487*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ2 = 21,
488*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ3 = 22,
489*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ4 = 23,
490*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ5 = 24,
491*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ6 = 25,
492*52260ae4SRob Clark 	PERF_UCHE_BANK_REQ7 = 26,
493*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_CH0 = 27,
494*52260ae4SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_CH1 = 28,
495*52260ae4SRob Clark 	PERF_UCHE_GMEM_READ_BEATS = 29,
496*52260ae4SRob Clark 	PERF_UCHE_FLAG_COUNT = 30,
497*52260ae4SRob Clark };
498*52260ae4SRob Clark 
499*52260ae4SRob Clark enum a5xx_tp_perfcounter_select {
500*52260ae4SRob Clark 	PERF_TP_BUSY_CYCLES = 0,
501*52260ae4SRob Clark 	PERF_TP_STALL_CYCLES_UCHE = 1,
502*52260ae4SRob Clark 	PERF_TP_LATENCY_CYCLES = 2,
503*52260ae4SRob Clark 	PERF_TP_LATENCY_TRANS = 3,
504*52260ae4SRob Clark 	PERF_TP_FLAG_CACHE_REQUEST_SAMPLES = 4,
505*52260ae4SRob Clark 	PERF_TP_FLAG_CACHE_REQUEST_LATENCY = 5,
506*52260ae4SRob Clark 	PERF_TP_L1_CACHELINE_REQUESTS = 6,
507*52260ae4SRob Clark 	PERF_TP_L1_CACHELINE_MISSES = 7,
508*52260ae4SRob Clark 	PERF_TP_SP_TP_TRANS = 8,
509*52260ae4SRob Clark 	PERF_TP_TP_SP_TRANS = 9,
510*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS = 10,
511*52260ae4SRob Clark 	PERF_TP_FILTER_WORKLOAD_16BIT = 11,
512*52260ae4SRob Clark 	PERF_TP_FILTER_WORKLOAD_32BIT = 12,
513*52260ae4SRob Clark 	PERF_TP_QUADS_RECEIVED = 13,
514*52260ae4SRob Clark 	PERF_TP_QUADS_OFFSET = 14,
515*52260ae4SRob Clark 	PERF_TP_QUADS_SHADOW = 15,
516*52260ae4SRob Clark 	PERF_TP_QUADS_ARRAY = 16,
517*52260ae4SRob Clark 	PERF_TP_QUADS_GRADIENT = 17,
518*52260ae4SRob Clark 	PERF_TP_QUADS_1D = 18,
519*52260ae4SRob Clark 	PERF_TP_QUADS_2D = 19,
520*52260ae4SRob Clark 	PERF_TP_QUADS_BUFFER = 20,
521*52260ae4SRob Clark 	PERF_TP_QUADS_3D = 21,
522*52260ae4SRob Clark 	PERF_TP_QUADS_CUBE = 22,
523*52260ae4SRob Clark 	PERF_TP_STATE_CACHE_REQUESTS = 23,
524*52260ae4SRob Clark 	PERF_TP_STATE_CACHE_MISSES = 24,
525*52260ae4SRob Clark 	PERF_TP_DIVERGENT_QUADS_RECEIVED = 25,
526*52260ae4SRob Clark 	PERF_TP_BINDLESS_STATE_CACHE_REQUESTS = 26,
527*52260ae4SRob Clark 	PERF_TP_BINDLESS_STATE_CACHE_MISSES = 27,
528*52260ae4SRob Clark 	PERF_TP_PRT_NON_RESIDENT_EVENTS = 28,
529*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS_POINT = 29,
530*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS_BILINEAR = 30,
531*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS_MIP = 31,
532*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS_ANISO = 32,
533*52260ae4SRob Clark 	PERF_TP_OUTPUT_PIXELS_ZERO_LOD = 33,
534*52260ae4SRob Clark 	PERF_TP_FLAG_CACHE_REQUESTS = 34,
535*52260ae4SRob Clark 	PERF_TP_FLAG_CACHE_MISSES = 35,
536*52260ae4SRob Clark 	PERF_TP_L1_5_L2_REQUESTS = 36,
537*52260ae4SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS = 37,
538*52260ae4SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS_POINT = 38,
539*52260ae4SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS_BILINEAR = 39,
540*52260ae4SRob Clark 	PERF_TP_2D_FILTER_WORKLOAD_16BIT = 40,
541*52260ae4SRob Clark 	PERF_TP_2D_FILTER_WORKLOAD_32BIT = 41,
542*52260ae4SRob Clark };
543*52260ae4SRob Clark 
544*52260ae4SRob Clark enum a5xx_sp_perfcounter_select {
545*52260ae4SRob Clark 	PERF_SP_BUSY_CYCLES = 0,
546*52260ae4SRob Clark 	PERF_SP_ALU_WORKING_CYCLES = 1,
547*52260ae4SRob Clark 	PERF_SP_EFU_WORKING_CYCLES = 2,
548*52260ae4SRob Clark 	PERF_SP_STALL_CYCLES_VPC = 3,
549*52260ae4SRob Clark 	PERF_SP_STALL_CYCLES_TP = 4,
550*52260ae4SRob Clark 	PERF_SP_STALL_CYCLES_UCHE = 5,
551*52260ae4SRob Clark 	PERF_SP_STALL_CYCLES_RB = 6,
552*52260ae4SRob Clark 	PERF_SP_SCHEDULER_NON_WORKING = 7,
553*52260ae4SRob Clark 	PERF_SP_WAVE_CONTEXTS = 8,
554*52260ae4SRob Clark 	PERF_SP_WAVE_CONTEXT_CYCLES = 9,
555*52260ae4SRob Clark 	PERF_SP_FS_STAGE_WAVE_CYCLES = 10,
556*52260ae4SRob Clark 	PERF_SP_FS_STAGE_WAVE_SAMPLES = 11,
557*52260ae4SRob Clark 	PERF_SP_VS_STAGE_WAVE_CYCLES = 12,
558*52260ae4SRob Clark 	PERF_SP_VS_STAGE_WAVE_SAMPLES = 13,
559*52260ae4SRob Clark 	PERF_SP_FS_STAGE_DURATION_CYCLES = 14,
560*52260ae4SRob Clark 	PERF_SP_VS_STAGE_DURATION_CYCLES = 15,
561*52260ae4SRob Clark 	PERF_SP_WAVE_CTRL_CYCLES = 16,
562*52260ae4SRob Clark 	PERF_SP_WAVE_LOAD_CYCLES = 17,
563*52260ae4SRob Clark 	PERF_SP_WAVE_EMIT_CYCLES = 18,
564*52260ae4SRob Clark 	PERF_SP_WAVE_NOP_CYCLES = 19,
565*52260ae4SRob Clark 	PERF_SP_WAVE_WAIT_CYCLES = 20,
566*52260ae4SRob Clark 	PERF_SP_WAVE_FETCH_CYCLES = 21,
567*52260ae4SRob Clark 	PERF_SP_WAVE_IDLE_CYCLES = 22,
568*52260ae4SRob Clark 	PERF_SP_WAVE_END_CYCLES = 23,
569*52260ae4SRob Clark 	PERF_SP_WAVE_LONG_SYNC_CYCLES = 24,
570*52260ae4SRob Clark 	PERF_SP_WAVE_SHORT_SYNC_CYCLES = 25,
571*52260ae4SRob Clark 	PERF_SP_WAVE_JOIN_CYCLES = 26,
572*52260ae4SRob Clark 	PERF_SP_LM_LOAD_INSTRUCTIONS = 27,
573*52260ae4SRob Clark 	PERF_SP_LM_STORE_INSTRUCTIONS = 28,
574*52260ae4SRob Clark 	PERF_SP_LM_ATOMICS = 29,
575*52260ae4SRob Clark 	PERF_SP_GM_LOAD_INSTRUCTIONS = 30,
576*52260ae4SRob Clark 	PERF_SP_GM_STORE_INSTRUCTIONS = 31,
577*52260ae4SRob Clark 	PERF_SP_GM_ATOMICS = 32,
578*52260ae4SRob Clark 	PERF_SP_VS_STAGE_TEX_INSTRUCTIONS = 33,
579*52260ae4SRob Clark 	PERF_SP_VS_STAGE_CFLOW_INSTRUCTIONS = 34,
580*52260ae4SRob Clark 	PERF_SP_VS_STAGE_EFU_INSTRUCTIONS = 35,
581*52260ae4SRob Clark 	PERF_SP_VS_STAGE_FULL_ALU_INSTRUCTIONS = 36,
582*52260ae4SRob Clark 	PERF_SP_VS_STAGE_HALF_ALU_INSTRUCTIONS = 37,
583*52260ae4SRob Clark 	PERF_SP_FS_STAGE_TEX_INSTRUCTIONS = 38,
584*52260ae4SRob Clark 	PERF_SP_FS_STAGE_CFLOW_INSTRUCTIONS = 39,
585*52260ae4SRob Clark 	PERF_SP_FS_STAGE_EFU_INSTRUCTIONS = 40,
586*52260ae4SRob Clark 	PERF_SP_FS_STAGE_FULL_ALU_INSTRUCTIONS = 41,
587*52260ae4SRob Clark 	PERF_SP_FS_STAGE_HALF_ALU_INSTRUCTIONS = 42,
588*52260ae4SRob Clark 	PERF_SP_FS_STAGE_BARY_INSTRUCTIONS = 43,
589*52260ae4SRob Clark 	PERF_SP_VS_INSTRUCTIONS = 44,
590*52260ae4SRob Clark 	PERF_SP_FS_INSTRUCTIONS = 45,
591*52260ae4SRob Clark 	PERF_SP_ADDR_LOCK_COUNT = 46,
592*52260ae4SRob Clark 	PERF_SP_UCHE_READ_TRANS = 47,
593*52260ae4SRob Clark 	PERF_SP_UCHE_WRITE_TRANS = 48,
594*52260ae4SRob Clark 	PERF_SP_EXPORT_VPC_TRANS = 49,
595*52260ae4SRob Clark 	PERF_SP_EXPORT_RB_TRANS = 50,
596*52260ae4SRob Clark 	PERF_SP_PIXELS_KILLED = 51,
597*52260ae4SRob Clark 	PERF_SP_ICL1_REQUESTS = 52,
598*52260ae4SRob Clark 	PERF_SP_ICL1_MISSES = 53,
599*52260ae4SRob Clark 	PERF_SP_ICL0_REQUESTS = 54,
600*52260ae4SRob Clark 	PERF_SP_ICL0_MISSES = 55,
601*52260ae4SRob Clark 	PERF_SP_HS_INSTRUCTIONS = 56,
602*52260ae4SRob Clark 	PERF_SP_DS_INSTRUCTIONS = 57,
603*52260ae4SRob Clark 	PERF_SP_GS_INSTRUCTIONS = 58,
604*52260ae4SRob Clark 	PERF_SP_CS_INSTRUCTIONS = 59,
605*52260ae4SRob Clark 	PERF_SP_GPR_READ = 60,
606*52260ae4SRob Clark 	PERF_SP_GPR_WRITE = 61,
607*52260ae4SRob Clark 	PERF_SP_LM_CH0_REQUESTS = 62,
608*52260ae4SRob Clark 	PERF_SP_LM_CH1_REQUESTS = 63,
609*52260ae4SRob Clark 	PERF_SP_LM_BANK_CONFLICTS = 64,
610*52260ae4SRob Clark };
611*52260ae4SRob Clark 
612*52260ae4SRob Clark enum a5xx_rb_perfcounter_select {
613*52260ae4SRob Clark 	PERF_RB_BUSY_CYCLES = 0,
614*52260ae4SRob Clark 	PERF_RB_STALL_CYCLES_CCU = 1,
615*52260ae4SRob Clark 	PERF_RB_STALL_CYCLES_HLSQ = 2,
616*52260ae4SRob Clark 	PERF_RB_STALL_CYCLES_FIFO0_FULL = 3,
617*52260ae4SRob Clark 	PERF_RB_STALL_CYCLES_FIFO1_FULL = 4,
618*52260ae4SRob Clark 	PERF_RB_STALL_CYCLES_FIFO2_FULL = 5,
619*52260ae4SRob Clark 	PERF_RB_STARVE_CYCLES_SP = 6,
620*52260ae4SRob Clark 	PERF_RB_STARVE_CYCLES_LRZ_TILE = 7,
621*52260ae4SRob Clark 	PERF_RB_STARVE_CYCLES_CCU = 8,
622*52260ae4SRob Clark 	PERF_RB_STARVE_CYCLES_Z_PLANE = 9,
623*52260ae4SRob Clark 	PERF_RB_STARVE_CYCLES_BARY_PLANE = 10,
624*52260ae4SRob Clark 	PERF_RB_Z_WORKLOAD = 11,
625*52260ae4SRob Clark 	PERF_RB_HLSQ_ACTIVE = 12,
626*52260ae4SRob Clark 	PERF_RB_Z_READ = 13,
627*52260ae4SRob Clark 	PERF_RB_Z_WRITE = 14,
628*52260ae4SRob Clark 	PERF_RB_C_READ = 15,
629*52260ae4SRob Clark 	PERF_RB_C_WRITE = 16,
630*52260ae4SRob Clark 	PERF_RB_TOTAL_PASS = 17,
631*52260ae4SRob Clark 	PERF_RB_Z_PASS = 18,
632*52260ae4SRob Clark 	PERF_RB_Z_FAIL = 19,
633*52260ae4SRob Clark 	PERF_RB_S_FAIL = 20,
634*52260ae4SRob Clark 	PERF_RB_BLENDED_FXP_COMPONENTS = 21,
635*52260ae4SRob Clark 	PERF_RB_BLENDED_FP16_COMPONENTS = 22,
636*52260ae4SRob Clark 	RB_RESERVED = 23,
637*52260ae4SRob Clark 	PERF_RB_2D_ALIVE_CYCLES = 24,
638*52260ae4SRob Clark 	PERF_RB_2D_STALL_CYCLES_A2D = 25,
639*52260ae4SRob Clark 	PERF_RB_2D_STARVE_CYCLES_SRC = 26,
640*52260ae4SRob Clark 	PERF_RB_2D_STARVE_CYCLES_SP = 27,
641*52260ae4SRob Clark 	PERF_RB_2D_STARVE_CYCLES_DST = 28,
642*52260ae4SRob Clark 	PERF_RB_2D_VALID_PIXELS = 29,
643*52260ae4SRob Clark };
644*52260ae4SRob Clark 
645*52260ae4SRob Clark enum a5xx_rb_samples_perfcounter_select {
646*52260ae4SRob Clark 	TOTAL_SAMPLES = 0,
647*52260ae4SRob Clark 	ZPASS_SAMPLES = 1,
648*52260ae4SRob Clark 	ZFAIL_SAMPLES = 2,
649*52260ae4SRob Clark 	SFAIL_SAMPLES = 3,
650*52260ae4SRob Clark };
651*52260ae4SRob Clark 
652*52260ae4SRob Clark enum a5xx_vsc_perfcounter_select {
653*52260ae4SRob Clark 	PERF_VSC_BUSY_CYCLES = 0,
654*52260ae4SRob Clark 	PERF_VSC_WORKING_CYCLES = 1,
655*52260ae4SRob Clark 	PERF_VSC_STALL_CYCLES_UCHE = 2,
656*52260ae4SRob Clark 	PERF_VSC_EOT_NUM = 3,
657*52260ae4SRob Clark };
658*52260ae4SRob Clark 
659*52260ae4SRob Clark enum a5xx_ccu_perfcounter_select {
660*52260ae4SRob Clark 	PERF_CCU_BUSY_CYCLES = 0,
661*52260ae4SRob Clark 	PERF_CCU_STALL_CYCLES_RB_DEPTH_RETURN = 1,
662*52260ae4SRob Clark 	PERF_CCU_STALL_CYCLES_RB_COLOR_RETURN = 2,
663*52260ae4SRob Clark 	PERF_CCU_STARVE_CYCLES_FLAG_RETURN = 3,
664*52260ae4SRob Clark 	PERF_CCU_DEPTH_BLOCKS = 4,
665*52260ae4SRob Clark 	PERF_CCU_COLOR_BLOCKS = 5,
666*52260ae4SRob Clark 	PERF_CCU_DEPTH_BLOCK_HIT = 6,
667*52260ae4SRob Clark 	PERF_CCU_COLOR_BLOCK_HIT = 7,
668*52260ae4SRob Clark 	PERF_CCU_PARTIAL_BLOCK_READ = 8,
669*52260ae4SRob Clark 	PERF_CCU_GMEM_READ = 9,
670*52260ae4SRob Clark 	PERF_CCU_GMEM_WRITE = 10,
671*52260ae4SRob Clark 	PERF_CCU_DEPTH_READ_FLAG0_COUNT = 11,
672*52260ae4SRob Clark 	PERF_CCU_DEPTH_READ_FLAG1_COUNT = 12,
673*52260ae4SRob Clark 	PERF_CCU_DEPTH_READ_FLAG2_COUNT = 13,
674*52260ae4SRob Clark 	PERF_CCU_DEPTH_READ_FLAG3_COUNT = 14,
675*52260ae4SRob Clark 	PERF_CCU_DEPTH_READ_FLAG4_COUNT = 15,
676*52260ae4SRob Clark 	PERF_CCU_COLOR_READ_FLAG0_COUNT = 16,
677*52260ae4SRob Clark 	PERF_CCU_COLOR_READ_FLAG1_COUNT = 17,
678*52260ae4SRob Clark 	PERF_CCU_COLOR_READ_FLAG2_COUNT = 18,
679*52260ae4SRob Clark 	PERF_CCU_COLOR_READ_FLAG3_COUNT = 19,
680*52260ae4SRob Clark 	PERF_CCU_COLOR_READ_FLAG4_COUNT = 20,
681*52260ae4SRob Clark 	PERF_CCU_2D_BUSY_CYCLES = 21,
682*52260ae4SRob Clark 	PERF_CCU_2D_RD_REQ = 22,
683*52260ae4SRob Clark 	PERF_CCU_2D_WR_REQ = 23,
684*52260ae4SRob Clark 	PERF_CCU_2D_REORDER_STARVE_CYCLES = 24,
685*52260ae4SRob Clark 	PERF_CCU_2D_PIXELS = 25,
686*52260ae4SRob Clark };
687*52260ae4SRob Clark 
688*52260ae4SRob Clark enum a5xx_cmp_perfcounter_select {
689*52260ae4SRob Clark 	PERF_CMPDECMP_STALL_CYCLES_VBIF = 0,
690*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_LATENCY_CYCLES = 1,
691*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_LATENCY_SAMPLES = 2,
692*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA_CCU = 3,
693*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_DATA_CCU = 4,
694*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_READ_REQUEST = 5,
695*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_REQUEST = 6,
696*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA = 7,
697*52260ae4SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_DATA = 8,
698*52260ae4SRob Clark 	PERF_CMPDECMP_FLAG_FETCH_CYCLES = 9,
699*52260ae4SRob Clark 	PERF_CMPDECMP_FLAG_FETCH_SAMPLES = 10,
700*52260ae4SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG1_COUNT = 11,
701*52260ae4SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG2_COUNT = 12,
702*52260ae4SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG3_COUNT = 13,
703*52260ae4SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG4_COUNT = 14,
704*52260ae4SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG1_COUNT = 15,
705*52260ae4SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG2_COUNT = 16,
706*52260ae4SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG3_COUNT = 17,
707*52260ae4SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG4_COUNT = 18,
708*52260ae4SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_REQ = 19,
709*52260ae4SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_WR = 20,
710*52260ae4SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_RETURN = 21,
711*52260ae4SRob Clark 	PERF_CMPDECMP_2D_RD_DATA = 22,
712*52260ae4SRob Clark 	PERF_CMPDECMP_2D_WR_DATA = 23,
713*52260ae4SRob Clark };
714*52260ae4SRob Clark 
715*52260ae4SRob Clark enum a5xx_vbif_perfcounter_select {
716*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_0 = 0,
717*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_1 = 1,
718*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_2 = 2,
719*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_3 = 3,
720*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_4 = 4,
721*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_5 = 5,
722*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_6 = 6,
723*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_7 = 7,
724*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_8 = 8,
725*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_9 = 9,
726*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_10 = 10,
727*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_11 = 11,
728*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_12 = 12,
729*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_13 = 13,
730*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_14 = 14,
731*52260ae4SRob Clark 	AXI_READ_REQUESTS_ID_15 = 15,
732*52260ae4SRob Clark 	AXI0_READ_REQUESTS_TOTAL = 16,
733*52260ae4SRob Clark 	AXI1_READ_REQUESTS_TOTAL = 17,
734*52260ae4SRob Clark 	AXI2_READ_REQUESTS_TOTAL = 18,
735*52260ae4SRob Clark 	AXI3_READ_REQUESTS_TOTAL = 19,
736*52260ae4SRob Clark 	AXI_READ_REQUESTS_TOTAL = 20,
737*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_0 = 21,
738*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_1 = 22,
739*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_2 = 23,
740*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_3 = 24,
741*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_4 = 25,
742*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_5 = 26,
743*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_6 = 27,
744*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_7 = 28,
745*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_8 = 29,
746*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_9 = 30,
747*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_10 = 31,
748*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_11 = 32,
749*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_12 = 33,
750*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_13 = 34,
751*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_14 = 35,
752*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_ID_15 = 36,
753*52260ae4SRob Clark 	AXI0_WRITE_REQUESTS_TOTAL = 37,
754*52260ae4SRob Clark 	AXI1_WRITE_REQUESTS_TOTAL = 38,
755*52260ae4SRob Clark 	AXI2_WRITE_REQUESTS_TOTAL = 39,
756*52260ae4SRob Clark 	AXI3_WRITE_REQUESTS_TOTAL = 40,
757*52260ae4SRob Clark 	AXI_WRITE_REQUESTS_TOTAL = 41,
758*52260ae4SRob Clark 	AXI_TOTAL_REQUESTS = 42,
759*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_0 = 43,
760*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_1 = 44,
761*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_2 = 45,
762*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_3 = 46,
763*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_4 = 47,
764*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_5 = 48,
765*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_6 = 49,
766*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_7 = 50,
767*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_8 = 51,
768*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_9 = 52,
769*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_10 = 53,
770*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_11 = 54,
771*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_12 = 55,
772*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_13 = 56,
773*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_14 = 57,
774*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_ID_15 = 58,
775*52260ae4SRob Clark 	AXI0_READ_DATA_BEATS_TOTAL = 59,
776*52260ae4SRob Clark 	AXI1_READ_DATA_BEATS_TOTAL = 60,
777*52260ae4SRob Clark 	AXI2_READ_DATA_BEATS_TOTAL = 61,
778*52260ae4SRob Clark 	AXI3_READ_DATA_BEATS_TOTAL = 62,
779*52260ae4SRob Clark 	AXI_READ_DATA_BEATS_TOTAL = 63,
780*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_0 = 64,
781*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_1 = 65,
782*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_2 = 66,
783*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_3 = 67,
784*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_4 = 68,
785*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_5 = 69,
786*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_6 = 70,
787*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_7 = 71,
788*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_8 = 72,
789*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_9 = 73,
790*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_10 = 74,
791*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_11 = 75,
792*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_12 = 76,
793*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_13 = 77,
794*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_14 = 78,
795*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_ID_15 = 79,
796*52260ae4SRob Clark 	AXI0_WRITE_DATA_BEATS_TOTAL = 80,
797*52260ae4SRob Clark 	AXI1_WRITE_DATA_BEATS_TOTAL = 81,
798*52260ae4SRob Clark 	AXI2_WRITE_DATA_BEATS_TOTAL = 82,
799*52260ae4SRob Clark 	AXI3_WRITE_DATA_BEATS_TOTAL = 83,
800*52260ae4SRob Clark 	AXI_WRITE_DATA_BEATS_TOTAL = 84,
801*52260ae4SRob Clark 	AXI_DATA_BEATS_TOTAL = 85,
802*52260ae4SRob Clark };
803*52260ae4SRob Clark 
804a26ae754SRob Clark enum a5xx_tex_filter {
805a26ae754SRob Clark 	A5XX_TEX_NEAREST = 0,
806a26ae754SRob Clark 	A5XX_TEX_LINEAR = 1,
807a26ae754SRob Clark 	A5XX_TEX_ANISO = 2,
808a26ae754SRob Clark };
809a26ae754SRob Clark 
810a26ae754SRob Clark enum a5xx_tex_clamp {
811a26ae754SRob Clark 	A5XX_TEX_REPEAT = 0,
812a26ae754SRob Clark 	A5XX_TEX_CLAMP_TO_EDGE = 1,
813a26ae754SRob Clark 	A5XX_TEX_MIRROR_REPEAT = 2,
814a26ae754SRob Clark 	A5XX_TEX_CLAMP_TO_BORDER = 3,
815a26ae754SRob Clark 	A5XX_TEX_MIRROR_CLAMP = 4,
816a26ae754SRob Clark };
817a26ae754SRob Clark 
818a26ae754SRob Clark enum a5xx_tex_aniso {
819a26ae754SRob Clark 	A5XX_TEX_ANISO_1 = 0,
820a26ae754SRob Clark 	A5XX_TEX_ANISO_2 = 1,
821a26ae754SRob Clark 	A5XX_TEX_ANISO_4 = 2,
822a26ae754SRob Clark 	A5XX_TEX_ANISO_8 = 3,
823a26ae754SRob Clark 	A5XX_TEX_ANISO_16 = 4,
824a26ae754SRob Clark };
825a26ae754SRob Clark 
826a26ae754SRob Clark enum a5xx_tex_swiz {
827a26ae754SRob Clark 	A5XX_TEX_X = 0,
828a26ae754SRob Clark 	A5XX_TEX_Y = 1,
829a26ae754SRob Clark 	A5XX_TEX_Z = 2,
830a26ae754SRob Clark 	A5XX_TEX_W = 3,
831a26ae754SRob Clark 	A5XX_TEX_ZERO = 4,
832a26ae754SRob Clark 	A5XX_TEX_ONE = 5,
833a26ae754SRob Clark };
834a26ae754SRob Clark 
835a26ae754SRob Clark enum a5xx_tex_type {
836a26ae754SRob Clark 	A5XX_TEX_1D = 0,
837a26ae754SRob Clark 	A5XX_TEX_2D = 1,
838a26ae754SRob Clark 	A5XX_TEX_CUBE = 2,
839a26ae754SRob Clark 	A5XX_TEX_3D = 3,
840a26ae754SRob Clark };
841a26ae754SRob Clark 
842a26ae754SRob Clark #define A5XX_INT0_RBBM_GPU_IDLE					0x00000001
843a26ae754SRob Clark #define A5XX_INT0_RBBM_AHB_ERROR				0x00000002
844a26ae754SRob Clark #define A5XX_INT0_RBBM_TRANSFER_TIMEOUT				0x00000004
845a26ae754SRob Clark #define A5XX_INT0_RBBM_ME_MS_TIMEOUT				0x00000008
846a26ae754SRob Clark #define A5XX_INT0_RBBM_PFP_MS_TIMEOUT				0x00000010
847a26ae754SRob Clark #define A5XX_INT0_RBBM_ETS_MS_TIMEOUT				0x00000020
848a26ae754SRob Clark #define A5XX_INT0_RBBM_ATB_ASYNC_OVERFLOW			0x00000040
849a26ae754SRob Clark #define A5XX_INT0_RBBM_GPC_ERROR				0x00000080
850a26ae754SRob Clark #define A5XX_INT0_CP_SW						0x00000100
851a26ae754SRob Clark #define A5XX_INT0_CP_HW_ERROR					0x00000200
852a26ae754SRob Clark #define A5XX_INT0_CP_CCU_FLUSH_DEPTH_TS				0x00000400
853a26ae754SRob Clark #define A5XX_INT0_CP_CCU_FLUSH_COLOR_TS				0x00000800
854a26ae754SRob Clark #define A5XX_INT0_CP_CCU_RESOLVE_TS				0x00001000
855a26ae754SRob Clark #define A5XX_INT0_CP_IB2					0x00002000
856a26ae754SRob Clark #define A5XX_INT0_CP_IB1					0x00004000
857a26ae754SRob Clark #define A5XX_INT0_CP_RB						0x00008000
858a26ae754SRob Clark #define A5XX_INT0_CP_UNUSED_1					0x00010000
859a26ae754SRob Clark #define A5XX_INT0_CP_RB_DONE_TS					0x00020000
860a26ae754SRob Clark #define A5XX_INT0_CP_WT_DONE_TS					0x00040000
861a26ae754SRob Clark #define A5XX_INT0_UNKNOWN_1					0x00080000
862a26ae754SRob Clark #define A5XX_INT0_CP_CACHE_FLUSH_TS				0x00100000
863a26ae754SRob Clark #define A5XX_INT0_UNUSED_2					0x00200000
864a26ae754SRob Clark #define A5XX_INT0_RBBM_ATB_BUS_OVERFLOW				0x00400000
865a26ae754SRob Clark #define A5XX_INT0_MISC_HANG_DETECT				0x00800000
866a26ae754SRob Clark #define A5XX_INT0_UCHE_OOB_ACCESS				0x01000000
867a26ae754SRob Clark #define A5XX_INT0_UCHE_TRAP_INTR				0x02000000
868a26ae754SRob Clark #define A5XX_INT0_DEBBUS_INTR_0					0x04000000
869a26ae754SRob Clark #define A5XX_INT0_DEBBUS_INTR_1					0x08000000
870a26ae754SRob Clark #define A5XX_INT0_GPMU_VOLTAGE_DROOP				0x10000000
871a26ae754SRob Clark #define A5XX_INT0_GPMU_FIRMWARE					0x20000000
872a26ae754SRob Clark #define A5XX_INT0_ISDB_CPU_IRQ					0x40000000
873a26ae754SRob Clark #define A5XX_INT0_ISDB_UNDER_DEBUG				0x80000000
874a26ae754SRob Clark #define A5XX_CP_INT_CP_OPCODE_ERROR				0x00000001
875a26ae754SRob Clark #define A5XX_CP_INT_CP_RESERVED_BIT_ERROR			0x00000002
876a26ae754SRob Clark #define A5XX_CP_INT_CP_HW_FAULT_ERROR				0x00000004
877a26ae754SRob Clark #define A5XX_CP_INT_CP_DMA_ERROR				0x00000008
878a26ae754SRob Clark #define A5XX_CP_INT_CP_REGISTER_PROTECTION_ERROR		0x00000010
879a26ae754SRob Clark #define A5XX_CP_INT_CP_AHB_ERROR				0x00000020
880a26ae754SRob Clark #define REG_A5XX_CP_RB_BASE					0x00000800
881a26ae754SRob Clark 
882a26ae754SRob Clark #define REG_A5XX_CP_RB_BASE_HI					0x00000801
883a26ae754SRob Clark 
884a26ae754SRob Clark #define REG_A5XX_CP_RB_CNTL					0x00000802
885a26ae754SRob Clark 
886a26ae754SRob Clark #define REG_A5XX_CP_RB_RPTR_ADDR				0x00000804
887a26ae754SRob Clark 
888a26ae754SRob Clark #define REG_A5XX_CP_RB_RPTR_ADDR_HI				0x00000805
889a26ae754SRob Clark 
890a26ae754SRob Clark #define REG_A5XX_CP_RB_RPTR					0x00000806
891a26ae754SRob Clark 
892a26ae754SRob Clark #define REG_A5XX_CP_RB_WPTR					0x00000807
893a26ae754SRob Clark 
894a26ae754SRob Clark #define REG_A5XX_CP_PFP_STAT_ADDR				0x00000808
895a26ae754SRob Clark 
896a26ae754SRob Clark #define REG_A5XX_CP_PFP_STAT_DATA				0x00000809
897a26ae754SRob Clark 
898a26ae754SRob Clark #define REG_A5XX_CP_DRAW_STATE_ADDR				0x0000080b
899a26ae754SRob Clark 
900a26ae754SRob Clark #define REG_A5XX_CP_DRAW_STATE_DATA				0x0000080c
901a26ae754SRob Clark 
902a26ae754SRob Clark #define REG_A5XX_CP_CRASH_SCRIPT_BASE_LO			0x00000817
903a26ae754SRob Clark 
904a26ae754SRob Clark #define REG_A5XX_CP_CRASH_SCRIPT_BASE_HI			0x00000818
905a26ae754SRob Clark 
906a26ae754SRob Clark #define REG_A5XX_CP_CRASH_DUMP_CNTL				0x00000819
907a26ae754SRob Clark 
908a26ae754SRob Clark #define REG_A5XX_CP_ME_STAT_ADDR				0x0000081a
909a26ae754SRob Clark 
910a26ae754SRob Clark #define REG_A5XX_CP_ROQ_THRESHOLDS_1				0x0000081f
911a26ae754SRob Clark 
912a26ae754SRob Clark #define REG_A5XX_CP_ROQ_THRESHOLDS_2				0x00000820
913a26ae754SRob Clark 
914a26ae754SRob Clark #define REG_A5XX_CP_ROQ_DBG_ADDR				0x00000821
915a26ae754SRob Clark 
916a26ae754SRob Clark #define REG_A5XX_CP_ROQ_DBG_DATA				0x00000822
917a26ae754SRob Clark 
918a26ae754SRob Clark #define REG_A5XX_CP_MEQ_DBG_ADDR				0x00000823
919a26ae754SRob Clark 
920a26ae754SRob Clark #define REG_A5XX_CP_MEQ_DBG_DATA				0x00000824
921a26ae754SRob Clark 
922a26ae754SRob Clark #define REG_A5XX_CP_MEQ_THRESHOLDS				0x00000825
923a26ae754SRob Clark 
924a26ae754SRob Clark #define REG_A5XX_CP_MERCIU_SIZE					0x00000826
925a26ae754SRob Clark 
926a26ae754SRob Clark #define REG_A5XX_CP_MERCIU_DBG_ADDR				0x00000827
927a26ae754SRob Clark 
928a26ae754SRob Clark #define REG_A5XX_CP_MERCIU_DBG_DATA_1				0x00000828
929a26ae754SRob Clark 
930a26ae754SRob Clark #define REG_A5XX_CP_MERCIU_DBG_DATA_2				0x00000829
931a26ae754SRob Clark 
932a26ae754SRob Clark #define REG_A5XX_CP_PFP_UCODE_DBG_ADDR				0x0000082a
933a26ae754SRob Clark 
934a26ae754SRob Clark #define REG_A5XX_CP_PFP_UCODE_DBG_DATA				0x0000082b
935a26ae754SRob Clark 
936a26ae754SRob Clark #define REG_A5XX_CP_ME_UCODE_DBG_ADDR				0x0000082f
937a26ae754SRob Clark 
938a26ae754SRob Clark #define REG_A5XX_CP_ME_UCODE_DBG_DATA				0x00000830
939a26ae754SRob Clark 
940a26ae754SRob Clark #define REG_A5XX_CP_CNTL					0x00000831
941a26ae754SRob Clark 
942a26ae754SRob Clark #define REG_A5XX_CP_PFP_ME_CNTL					0x00000832
943a26ae754SRob Clark 
944a26ae754SRob Clark #define REG_A5XX_CP_CHICKEN_DBG					0x00000833
945a26ae754SRob Clark 
946a26ae754SRob Clark #define REG_A5XX_CP_PFP_INSTR_BASE_LO				0x00000835
947a26ae754SRob Clark 
948a26ae754SRob Clark #define REG_A5XX_CP_PFP_INSTR_BASE_HI				0x00000836
949a26ae754SRob Clark 
950a26ae754SRob Clark #define REG_A5XX_CP_ME_INSTR_BASE_LO				0x00000838
951a26ae754SRob Clark 
952a26ae754SRob Clark #define REG_A5XX_CP_ME_INSTR_BASE_HI				0x00000839
953a26ae754SRob Clark 
954a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_CNTL				0x0000083b
955a26ae754SRob Clark 
956a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_RESTORE_ADDR_LO		0x0000083c
957a26ae754SRob Clark 
958a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_RESTORE_ADDR_HI		0x0000083d
959a26ae754SRob Clark 
960a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_SAVE_ADDR_LO			0x0000083e
961a26ae754SRob Clark 
962a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_SAVE_ADDR_HI			0x0000083f
963a26ae754SRob Clark 
964a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_SMMU_INFO_LO			0x00000840
965a26ae754SRob Clark 
966a26ae754SRob Clark #define REG_A5XX_CP_CONTEXT_SWITCH_SMMU_INFO_HI			0x00000841
967a26ae754SRob Clark 
968a26ae754SRob Clark #define REG_A5XX_CP_ADDR_MODE_CNTL				0x00000860
969a26ae754SRob Clark 
970a26ae754SRob Clark #define REG_A5XX_CP_ME_STAT_DATA				0x00000b14
971a26ae754SRob Clark 
972a26ae754SRob Clark #define REG_A5XX_CP_WFI_PEND_CTR				0x00000b15
973a26ae754SRob Clark 
974a26ae754SRob Clark #define REG_A5XX_CP_INTERRUPT_STATUS				0x00000b18
975a26ae754SRob Clark 
976a26ae754SRob Clark #define REG_A5XX_CP_HW_FAULT					0x00000b1a
977a26ae754SRob Clark 
978a26ae754SRob Clark #define REG_A5XX_CP_PROTECT_STATUS				0x00000b1c
979a26ae754SRob Clark 
980a26ae754SRob Clark #define REG_A5XX_CP_IB1_BASE					0x00000b1f
981a26ae754SRob Clark 
982a26ae754SRob Clark #define REG_A5XX_CP_IB1_BASE_HI					0x00000b20
983a26ae754SRob Clark 
984a26ae754SRob Clark #define REG_A5XX_CP_IB1_BUFSZ					0x00000b21
985a26ae754SRob Clark 
986a26ae754SRob Clark #define REG_A5XX_CP_IB2_BASE					0x00000b22
987a26ae754SRob Clark 
988a26ae754SRob Clark #define REG_A5XX_CP_IB2_BASE_HI					0x00000b23
989a26ae754SRob Clark 
990a26ae754SRob Clark #define REG_A5XX_CP_IB2_BUFSZ					0x00000b24
991a26ae754SRob Clark 
992a26ae754SRob Clark static inline uint32_t REG_A5XX_CP_SCRATCH(uint32_t i0) { return 0x00000b78 + 0x1*i0; }
993a26ae754SRob Clark 
994a26ae754SRob Clark static inline uint32_t REG_A5XX_CP_SCRATCH_REG(uint32_t i0) { return 0x00000b78 + 0x1*i0; }
995a26ae754SRob Clark 
996a26ae754SRob Clark static inline uint32_t REG_A5XX_CP_PROTECT(uint32_t i0) { return 0x00000880 + 0x1*i0; }
997a26ae754SRob Clark 
998a26ae754SRob Clark static inline uint32_t REG_A5XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000880 + 0x1*i0; }
999a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_BASE_ADDR__MASK			0x0001ffff
1000a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_BASE_ADDR__SHIFT			0
1001a26ae754SRob Clark static inline uint32_t A5XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)
1002a26ae754SRob Clark {
1003a26ae754SRob Clark 	return ((val) << A5XX_CP_PROTECT_REG_BASE_ADDR__SHIFT) & A5XX_CP_PROTECT_REG_BASE_ADDR__MASK;
1004a26ae754SRob Clark }
1005a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_MASK_LEN__MASK			0x1f000000
1006a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_MASK_LEN__SHIFT			24
1007a26ae754SRob Clark static inline uint32_t A5XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)
1008a26ae754SRob Clark {
1009a26ae754SRob Clark 	return ((val) << A5XX_CP_PROTECT_REG_MASK_LEN__SHIFT) & A5XX_CP_PROTECT_REG_MASK_LEN__MASK;
1010a26ae754SRob Clark }
1011a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_TRAP_WRITE				0x20000000
1012a26ae754SRob Clark #define A5XX_CP_PROTECT_REG_TRAP_READ				0x40000000
1013a26ae754SRob Clark 
1014a26ae754SRob Clark #define REG_A5XX_CP_PROTECT_CNTL				0x000008a0
1015a26ae754SRob Clark 
1016a26ae754SRob Clark #define REG_A5XX_CP_AHB_FAULT					0x00000b1b
1017a26ae754SRob Clark 
1018a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_0				0x00000bb0
1019a26ae754SRob Clark 
1020a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_1				0x00000bb1
1021a26ae754SRob Clark 
1022a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_2				0x00000bb2
1023a26ae754SRob Clark 
1024a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_3				0x00000bb3
1025a26ae754SRob Clark 
1026a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_4				0x00000bb4
1027a26ae754SRob Clark 
1028a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_5				0x00000bb5
1029a26ae754SRob Clark 
1030a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_6				0x00000bb6
1031a26ae754SRob Clark 
1032a26ae754SRob Clark #define REG_A5XX_CP_PERFCTR_CP_SEL_7				0x00000bb7
1033a26ae754SRob Clark 
1034a26ae754SRob Clark #define REG_A5XX_VSC_ADDR_MODE_CNTL				0x00000bc1
1035a26ae754SRob Clark 
1036a26ae754SRob Clark #define REG_A5XX_CP_POWERCTR_CP_SEL_0				0x00000bba
1037a26ae754SRob Clark 
1038a26ae754SRob Clark #define REG_A5XX_CP_POWERCTR_CP_SEL_1				0x00000bbb
1039a26ae754SRob Clark 
1040a26ae754SRob Clark #define REG_A5XX_CP_POWERCTR_CP_SEL_2				0x00000bbc
1041a26ae754SRob Clark 
1042a26ae754SRob Clark #define REG_A5XX_CP_POWERCTR_CP_SEL_3				0x00000bbd
1043a26ae754SRob Clark 
1044a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_SEL_A				0x00000004
1045a26ae754SRob Clark 
1046a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_SEL_B				0x00000005
1047a26ae754SRob Clark 
1048a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_SEL_C				0x00000006
1049a26ae754SRob Clark 
1050a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_SEL_D				0x00000007
1051a26ae754SRob Clark 
1052a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_CNTLT				0x00000008
1053a26ae754SRob Clark 
1054a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_CNTLM				0x00000009
1055a26ae754SRob Clark 
1056a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DEBBUS_CTLTM_ENABLE_SHIFT		0x00000018
1057a26ae754SRob Clark 
1058a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_OPL				0x0000000a
1059a26ae754SRob Clark 
1060a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_OPE				0x0000000b
1061a26ae754SRob Clark 
1062a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTL_0				0x0000000c
1063a26ae754SRob Clark 
1064a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTL_1				0x0000000d
1065a26ae754SRob Clark 
1066a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTL_2				0x0000000e
1067a26ae754SRob Clark 
1068a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTL_3				0x0000000f
1069a26ae754SRob Clark 
1070a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKL_0			0x00000010
1071a26ae754SRob Clark 
1072a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKL_1			0x00000011
1073a26ae754SRob Clark 
1074a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKL_2			0x00000012
1075a26ae754SRob Clark 
1076a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKL_3			0x00000013
1077a26ae754SRob Clark 
1078a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_BYTEL_0			0x00000014
1079a26ae754SRob Clark 
1080a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_BYTEL_1			0x00000015
1081a26ae754SRob Clark 
1082a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTE_0				0x00000016
1083a26ae754SRob Clark 
1084a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTE_1				0x00000017
1085a26ae754SRob Clark 
1086a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTE_2				0x00000018
1087a26ae754SRob Clark 
1088a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IVTE_3				0x00000019
1089a26ae754SRob Clark 
1090a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKE_0			0x0000001a
1091a26ae754SRob Clark 
1092a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKE_1			0x0000001b
1093a26ae754SRob Clark 
1094a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKE_2			0x0000001c
1095a26ae754SRob Clark 
1096a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MASKE_3			0x0000001d
1097a26ae754SRob Clark 
1098a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_NIBBLEE			0x0000001e
1099a26ae754SRob Clark 
1100a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_PTRC0				0x0000001f
1101a26ae754SRob Clark 
1102a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_PTRC1				0x00000020
1103a26ae754SRob Clark 
1104a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_LOADREG			0x00000021
1105a26ae754SRob Clark 
1106a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_IDX				0x00000022
1107a26ae754SRob Clark 
1108a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_CLRC				0x00000023
1109a26ae754SRob Clark 
1110a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_LOADIVT			0x00000024
1111a26ae754SRob Clark 
1112a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_INT_CNTL			0x0000002f
1113a26ae754SRob Clark 
1114a26ae754SRob Clark #define REG_A5XX_RBBM_INT_CLEAR_CMD				0x00000037
1115a26ae754SRob Clark 
1116a26ae754SRob Clark #define REG_A5XX_RBBM_INT_0_MASK				0x00000038
1117a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_GPU_IDLE			0x00000001
1118a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_AHB_ERROR			0x00000002
1119a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_TRANSFER_TIMEOUT		0x00000004
1120a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_ME_MS_TIMEOUT			0x00000008
1121a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_PFP_MS_TIMEOUT		0x00000010
1122a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_ETS_MS_TIMEOUT		0x00000020
1123a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_ATB_ASYNC_OVERFLOW		0x00000040
1124a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_GPC_ERROR			0x00000080
1125a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_SW				0x00000100
1126a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_HW_ERROR			0x00000200
1127a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_DEPTH_TS		0x00000400
1128a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_COLOR_TS		0x00000800
1129a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_CCU_RESOLVE_TS			0x00001000
1130a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_IB2				0x00002000
1131a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_IB1				0x00004000
1132a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_RB				0x00008000
1133a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_RB_DONE_TS			0x00020000
1134a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_WT_DONE_TS			0x00040000
1135a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS			0x00100000
1136a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_RBBM_ATB_BUS_OVERFLOW		0x00400000
1137a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_MISC_HANG_DETECT			0x00800000
1138a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_UCHE_OOB_ACCESS			0x01000000
1139a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_UCHE_TRAP_INTR			0x02000000
1140a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_DEBBUS_INTR_0			0x04000000
1141a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_DEBBUS_INTR_1			0x08000000
1142a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_GPMU_VOLTAGE_DROOP			0x10000000
1143a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_GPMU_FIRMWARE			0x20000000
1144a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_ISDB_CPU_IRQ			0x40000000
1145a26ae754SRob Clark #define A5XX_RBBM_INT_0_MASK_ISDB_UNDER_DEBUG			0x80000000
1146a26ae754SRob Clark 
1147a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_DBG_CNTL				0x0000003f
1148a26ae754SRob Clark 
1149a26ae754SRob Clark #define REG_A5XX_RBBM_EXT_VBIF_DBG_CNTL				0x00000041
1150a26ae754SRob Clark 
1151a26ae754SRob Clark #define REG_A5XX_RBBM_SW_RESET_CMD				0x00000043
1152a26ae754SRob Clark 
1153a26ae754SRob Clark #define REG_A5XX_RBBM_BLOCK_SW_RESET_CMD			0x00000045
1154a26ae754SRob Clark 
1155a26ae754SRob Clark #define REG_A5XX_RBBM_BLOCK_SW_RESET_CMD2			0x00000046
1156a26ae754SRob Clark 
1157a26ae754SRob Clark #define REG_A5XX_RBBM_DBG_LO_HI_GPIO				0x00000048
1158a26ae754SRob Clark 
1159a26ae754SRob Clark #define REG_A5XX_RBBM_EXT_TRACE_BUS_CNTL			0x00000049
1160a26ae754SRob Clark 
1161a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_TP0				0x0000004a
1162a26ae754SRob Clark 
1163a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_TP1				0x0000004b
1164a26ae754SRob Clark 
1165a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_TP2				0x0000004c
1166a26ae754SRob Clark 
1167a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_TP3				0x0000004d
1168a26ae754SRob Clark 
1169a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_TP0				0x0000004e
1170a26ae754SRob Clark 
1171a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_TP1				0x0000004f
1172a26ae754SRob Clark 
1173a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_TP2				0x00000050
1174a26ae754SRob Clark 
1175a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_TP3				0x00000051
1176a26ae754SRob Clark 
1177a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL3_TP0				0x00000052
1178a26ae754SRob Clark 
1179a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL3_TP1				0x00000053
1180a26ae754SRob Clark 
1181a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL3_TP2				0x00000054
1182a26ae754SRob Clark 
1183a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL3_TP3				0x00000055
1184a26ae754SRob Clark 
1185a26ae754SRob Clark #define REG_A5XX_RBBM_READ_AHB_THROUGH_DBG			0x00000059
1186a26ae754SRob Clark 
1187a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_UCHE				0x0000005a
1188a26ae754SRob Clark 
1189a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_UCHE				0x0000005b
1190a26ae754SRob Clark 
1191a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL3_UCHE				0x0000005c
1192a26ae754SRob Clark 
1193a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL4_UCHE				0x0000005d
1194a26ae754SRob Clark 
1195a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_UCHE				0x0000005e
1196a26ae754SRob Clark 
1197a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_UCHE				0x0000005f
1198a26ae754SRob Clark 
1199a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_MODE_GPC				0x00000060
1200a26ae754SRob Clark 
1201a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_GPC				0x00000061
1202a26ae754SRob Clark 
1203a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_GPC				0x00000062
1204a26ae754SRob Clark 
1205a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM			0x00000063
1206a26ae754SRob Clark 
1207a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x00000064
1208a26ae754SRob Clark 
1209a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x00000065
1210a26ae754SRob Clark 
1211a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_HLSQ				0x00000066
1212a26ae754SRob Clark 
1213a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL				0x00000067
1214a26ae754SRob Clark 
1215a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_SP0				0x00000068
1216a26ae754SRob Clark 
1217a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_SP1				0x00000069
1218a26ae754SRob Clark 
1219a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_SP2				0x0000006a
1220a26ae754SRob Clark 
1221a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_SP3				0x0000006b
1222a26ae754SRob Clark 
1223a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_SP0				0x0000006c
1224a26ae754SRob Clark 
1225a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_SP1				0x0000006d
1226a26ae754SRob Clark 
1227a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_SP2				0x0000006e
1228a26ae754SRob Clark 
1229a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_SP3				0x0000006f
1230a26ae754SRob Clark 
1231a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_SP0				0x00000070
1232a26ae754SRob Clark 
1233a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_SP1				0x00000071
1234a26ae754SRob Clark 
1235a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_SP2				0x00000072
1236a26ae754SRob Clark 
1237a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_SP3				0x00000073
1238a26ae754SRob Clark 
1239a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_SP0				0x00000074
1240a26ae754SRob Clark 
1241a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_SP1				0x00000075
1242a26ae754SRob Clark 
1243a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_SP2				0x00000076
1244a26ae754SRob Clark 
1245a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_SP3				0x00000077
1246a26ae754SRob Clark 
1247a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_RB0				0x00000078
1248a26ae754SRob Clark 
1249a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_RB1				0x00000079
1250a26ae754SRob Clark 
1251a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_RB2				0x0000007a
1252a26ae754SRob Clark 
1253a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_RB3				0x0000007b
1254a26ae754SRob Clark 
1255a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_RB0				0x0000007c
1256a26ae754SRob Clark 
1257a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_RB1				0x0000007d
1258a26ae754SRob Clark 
1259a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_RB2				0x0000007e
1260a26ae754SRob Clark 
1261a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_RB3				0x0000007f
1262a26ae754SRob Clark 
1263a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_RAC				0x00000080
1264a26ae754SRob Clark 
1265a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_RAC				0x00000081
1266a26ae754SRob Clark 
1267a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_CCU0				0x00000082
1268a26ae754SRob Clark 
1269a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_CCU1				0x00000083
1270a26ae754SRob Clark 
1271a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_CCU2				0x00000084
1272a26ae754SRob Clark 
1273a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_CCU3				0x00000085
1274a26ae754SRob Clark 
1275a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_RB_CCU0			0x00000086
1276a26ae754SRob Clark 
1277a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_RB_CCU1			0x00000087
1278a26ae754SRob Clark 
1279a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_RB_CCU2			0x00000088
1280a26ae754SRob Clark 
1281a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_RB_CCU3			0x00000089
1282a26ae754SRob Clark 
1283a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_RAC				0x0000008a
1284a26ae754SRob Clark 
1285a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL2_RAC				0x0000008b
1286a26ae754SRob Clark 
1287a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_RB_CCU_L1_0			0x0000008c
1288a26ae754SRob Clark 
1289a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_RB_CCU_L1_1			0x0000008d
1290a26ae754SRob Clark 
1291a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_RB_CCU_L1_2			0x0000008e
1292a26ae754SRob Clark 
1293a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_RB_CCU_L1_3			0x0000008f
1294a26ae754SRob Clark 
1295a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_VFD				0x00000090
1296a26ae754SRob Clark 
1297a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_MODE_VFD				0x00000091
1298a26ae754SRob Clark 
1299a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_VFD				0x00000092
1300a26ae754SRob Clark 
1301a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_CNTL0					0x00000093
1302a26ae754SRob Clark 
1303a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_CNTL1					0x00000094
1304a26ae754SRob Clark 
1305a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_CNTL2					0x00000095
1306a26ae754SRob Clark 
1307a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_CMD					0x00000096
1308a26ae754SRob Clark 
1309a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL11		0x0000009c
1310a26ae754SRob Clark 
1311a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL12		0x0000009d
1312a26ae754SRob Clark 
1313a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL13		0x0000009e
1314a26ae754SRob Clark 
1315a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL14		0x0000009f
1316a26ae754SRob Clark 
1317a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL15		0x000000a0
1318a26ae754SRob Clark 
1319a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL16		0x000000a1
1320a26ae754SRob Clark 
1321a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL17		0x000000a2
1322a26ae754SRob Clark 
1323a26ae754SRob Clark #define REG_A5XX_RBBM_INTERFACE_HANG_MASK_CNTL18		0x000000a3
1324a26ae754SRob Clark 
1325a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_TP0				0x000000a4
1326a26ae754SRob Clark 
1327a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_TP1				0x000000a5
1328a26ae754SRob Clark 
1329a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_TP2				0x000000a6
1330a26ae754SRob Clark 
1331a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_TP3				0x000000a7
1332a26ae754SRob Clark 
1333a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY2_TP0				0x000000a8
1334a26ae754SRob Clark 
1335a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY2_TP1				0x000000a9
1336a26ae754SRob Clark 
1337a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY2_TP2				0x000000aa
1338a26ae754SRob Clark 
1339a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY2_TP3				0x000000ab
1340a26ae754SRob Clark 
1341a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY3_TP0				0x000000ac
1342a26ae754SRob Clark 
1343a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY3_TP1				0x000000ad
1344a26ae754SRob Clark 
1345a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY3_TP2				0x000000ae
1346a26ae754SRob Clark 
1347a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY3_TP3				0x000000af
1348a26ae754SRob Clark 
1349a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_TP0				0x000000b0
1350a26ae754SRob Clark 
1351a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_TP1				0x000000b1
1352a26ae754SRob Clark 
1353a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_TP2				0x000000b2
1354a26ae754SRob Clark 
1355a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_TP3				0x000000b3
1356a26ae754SRob Clark 
1357a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST2_TP0				0x000000b4
1358a26ae754SRob Clark 
1359a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST2_TP1				0x000000b5
1360a26ae754SRob Clark 
1361a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST2_TP2				0x000000b6
1362a26ae754SRob Clark 
1363a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST2_TP3				0x000000b7
1364a26ae754SRob Clark 
1365a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST3_TP0				0x000000b8
1366a26ae754SRob Clark 
1367a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST3_TP1				0x000000b9
1368a26ae754SRob Clark 
1369a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST3_TP2				0x000000ba
1370a26ae754SRob Clark 
1371a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST3_TP3				0x000000bb
1372a26ae754SRob Clark 
1373a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_CNTL_GPMU				0x000000c8
1374a26ae754SRob Clark 
1375a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_DELAY_GPMU				0x000000c9
1376a26ae754SRob Clark 
1377a26ae754SRob Clark #define REG_A5XX_RBBM_CLOCK_HYST_GPMU				0x000000ca
1378a26ae754SRob Clark 
1379a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_0_LO				0x000003a0
1380a26ae754SRob Clark 
1381a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_0_HI				0x000003a1
1382a26ae754SRob Clark 
1383a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_1_LO				0x000003a2
1384a26ae754SRob Clark 
1385a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_1_HI				0x000003a3
1386a26ae754SRob Clark 
1387a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_2_LO				0x000003a4
1388a26ae754SRob Clark 
1389a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_2_HI				0x000003a5
1390a26ae754SRob Clark 
1391a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_3_LO				0x000003a6
1392a26ae754SRob Clark 
1393a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_3_HI				0x000003a7
1394a26ae754SRob Clark 
1395a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_4_LO				0x000003a8
1396a26ae754SRob Clark 
1397a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_4_HI				0x000003a9
1398a26ae754SRob Clark 
1399a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_5_LO				0x000003aa
1400a26ae754SRob Clark 
1401a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_5_HI				0x000003ab
1402a26ae754SRob Clark 
1403a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_6_LO				0x000003ac
1404a26ae754SRob Clark 
1405a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_6_HI				0x000003ad
1406a26ae754SRob Clark 
1407a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_7_LO				0x000003ae
1408a26ae754SRob Clark 
1409a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CP_7_HI				0x000003af
1410a26ae754SRob Clark 
1411a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_0_LO				0x000003b0
1412a26ae754SRob Clark 
1413a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_0_HI				0x000003b1
1414a26ae754SRob Clark 
1415a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_1_LO				0x000003b2
1416a26ae754SRob Clark 
1417a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_1_HI				0x000003b3
1418a26ae754SRob Clark 
1419a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_2_LO				0x000003b4
1420a26ae754SRob Clark 
1421a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_2_HI				0x000003b5
1422a26ae754SRob Clark 
1423a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_3_LO				0x000003b6
1424a26ae754SRob Clark 
1425a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_3_HI				0x000003b7
1426a26ae754SRob Clark 
1427a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_0_LO				0x000003b8
1428a26ae754SRob Clark 
1429a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_0_HI				0x000003b9
1430a26ae754SRob Clark 
1431a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_1_LO				0x000003ba
1432a26ae754SRob Clark 
1433a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_1_HI				0x000003bb
1434a26ae754SRob Clark 
1435a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_2_LO				0x000003bc
1436a26ae754SRob Clark 
1437a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_2_HI				0x000003bd
1438a26ae754SRob Clark 
1439a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_3_LO				0x000003be
1440a26ae754SRob Clark 
1441a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_3_HI				0x000003bf
1442a26ae754SRob Clark 
1443a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_4_LO				0x000003c0
1444a26ae754SRob Clark 
1445a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_4_HI				0x000003c1
1446a26ae754SRob Clark 
1447a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_5_LO				0x000003c2
1448a26ae754SRob Clark 
1449a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_5_HI				0x000003c3
1450a26ae754SRob Clark 
1451a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_6_LO				0x000003c4
1452a26ae754SRob Clark 
1453a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_6_HI				0x000003c5
1454a26ae754SRob Clark 
1455a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_7_LO				0x000003c6
1456a26ae754SRob Clark 
1457a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_PC_7_HI				0x000003c7
1458a26ae754SRob Clark 
1459a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_0_LO				0x000003c8
1460a26ae754SRob Clark 
1461a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_0_HI				0x000003c9
1462a26ae754SRob Clark 
1463a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_1_LO				0x000003ca
1464a26ae754SRob Clark 
1465a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_1_HI				0x000003cb
1466a26ae754SRob Clark 
1467a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_2_LO				0x000003cc
1468a26ae754SRob Clark 
1469a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_2_HI				0x000003cd
1470a26ae754SRob Clark 
1471a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_3_LO				0x000003ce
1472a26ae754SRob Clark 
1473a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_3_HI				0x000003cf
1474a26ae754SRob Clark 
1475a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_4_LO				0x000003d0
1476a26ae754SRob Clark 
1477a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_4_HI				0x000003d1
1478a26ae754SRob Clark 
1479a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_5_LO				0x000003d2
1480a26ae754SRob Clark 
1481a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_5_HI				0x000003d3
1482a26ae754SRob Clark 
1483a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_6_LO				0x000003d4
1484a26ae754SRob Clark 
1485a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_6_HI				0x000003d5
1486a26ae754SRob Clark 
1487a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_7_LO				0x000003d6
1488a26ae754SRob Clark 
1489a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VFD_7_HI				0x000003d7
1490a26ae754SRob Clark 
1491a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_0_LO				0x000003d8
1492a26ae754SRob Clark 
1493a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_0_HI				0x000003d9
1494a26ae754SRob Clark 
1495a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_1_LO				0x000003da
1496a26ae754SRob Clark 
1497a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_1_HI				0x000003db
1498a26ae754SRob Clark 
1499a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_2_LO				0x000003dc
1500a26ae754SRob Clark 
1501a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_2_HI				0x000003dd
1502a26ae754SRob Clark 
1503a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_3_LO				0x000003de
1504a26ae754SRob Clark 
1505a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_3_HI				0x000003df
1506a26ae754SRob Clark 
1507a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_4_LO				0x000003e0
1508a26ae754SRob Clark 
1509a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_4_HI				0x000003e1
1510a26ae754SRob Clark 
1511a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_5_LO				0x000003e2
1512a26ae754SRob Clark 
1513a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_5_HI				0x000003e3
1514a26ae754SRob Clark 
1515a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_6_LO				0x000003e4
1516a26ae754SRob Clark 
1517a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_6_HI				0x000003e5
1518a26ae754SRob Clark 
1519a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_7_LO				0x000003e6
1520a26ae754SRob Clark 
1521a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_HLSQ_7_HI				0x000003e7
1522a26ae754SRob Clark 
1523a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_0_LO				0x000003e8
1524a26ae754SRob Clark 
1525a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_0_HI				0x000003e9
1526a26ae754SRob Clark 
1527a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_1_LO				0x000003ea
1528a26ae754SRob Clark 
1529a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_1_HI				0x000003eb
1530a26ae754SRob Clark 
1531a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_2_LO				0x000003ec
1532a26ae754SRob Clark 
1533a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_2_HI				0x000003ed
1534a26ae754SRob Clark 
1535a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_3_LO				0x000003ee
1536a26ae754SRob Clark 
1537a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VPC_3_HI				0x000003ef
1538a26ae754SRob Clark 
1539a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_0_LO				0x000003f0
1540a26ae754SRob Clark 
1541a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_0_HI				0x000003f1
1542a26ae754SRob Clark 
1543a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_1_LO				0x000003f2
1544a26ae754SRob Clark 
1545a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_1_HI				0x000003f3
1546a26ae754SRob Clark 
1547a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_2_LO				0x000003f4
1548a26ae754SRob Clark 
1549a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_2_HI				0x000003f5
1550a26ae754SRob Clark 
1551a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_3_LO				0x000003f6
1552a26ae754SRob Clark 
1553a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CCU_3_HI				0x000003f7
1554a26ae754SRob Clark 
1555a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_0_LO				0x000003f8
1556a26ae754SRob Clark 
1557a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_0_HI				0x000003f9
1558a26ae754SRob Clark 
1559a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_1_LO				0x000003fa
1560a26ae754SRob Clark 
1561a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_1_HI				0x000003fb
1562a26ae754SRob Clark 
1563a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_2_LO				0x000003fc
1564a26ae754SRob Clark 
1565a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_2_HI				0x000003fd
1566a26ae754SRob Clark 
1567a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_3_LO				0x000003fe
1568a26ae754SRob Clark 
1569a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TSE_3_HI				0x000003ff
1570a26ae754SRob Clark 
1571a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_0_LO				0x00000400
1572a26ae754SRob Clark 
1573a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_0_HI				0x00000401
1574a26ae754SRob Clark 
1575a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_1_LO				0x00000402
1576a26ae754SRob Clark 
1577a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_1_HI				0x00000403
1578a26ae754SRob Clark 
1579a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_2_LO				0x00000404
1580a26ae754SRob Clark 
1581a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_2_HI				0x00000405
1582a26ae754SRob Clark 
1583a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_3_LO				0x00000406
1584a26ae754SRob Clark 
1585a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RAS_3_HI				0x00000407
1586a26ae754SRob Clark 
1587a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_0_LO				0x00000408
1588a26ae754SRob Clark 
1589a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_0_HI				0x00000409
1590a26ae754SRob Clark 
1591a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_1_LO				0x0000040a
1592a26ae754SRob Clark 
1593a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_1_HI				0x0000040b
1594a26ae754SRob Clark 
1595a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_2_LO				0x0000040c
1596a26ae754SRob Clark 
1597a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_2_HI				0x0000040d
1598a26ae754SRob Clark 
1599a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_3_LO				0x0000040e
1600a26ae754SRob Clark 
1601a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_3_HI				0x0000040f
1602a26ae754SRob Clark 
1603a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_4_LO				0x00000410
1604a26ae754SRob Clark 
1605a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_4_HI				0x00000411
1606a26ae754SRob Clark 
1607a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_5_LO				0x00000412
1608a26ae754SRob Clark 
1609a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_5_HI				0x00000413
1610a26ae754SRob Clark 
1611a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_6_LO				0x00000414
1612a26ae754SRob Clark 
1613a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_6_HI				0x00000415
1614a26ae754SRob Clark 
1615a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_7_LO				0x00000416
1616a26ae754SRob Clark 
1617a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_UCHE_7_HI				0x00000417
1618a26ae754SRob Clark 
1619a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_0_LO				0x00000418
1620a26ae754SRob Clark 
1621a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_0_HI				0x00000419
1622a26ae754SRob Clark 
1623a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_1_LO				0x0000041a
1624a26ae754SRob Clark 
1625a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_1_HI				0x0000041b
1626a26ae754SRob Clark 
1627a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_2_LO				0x0000041c
1628a26ae754SRob Clark 
1629a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_2_HI				0x0000041d
1630a26ae754SRob Clark 
1631a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_3_LO				0x0000041e
1632a26ae754SRob Clark 
1633a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_3_HI				0x0000041f
1634a26ae754SRob Clark 
1635a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_4_LO				0x00000420
1636a26ae754SRob Clark 
1637a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_4_HI				0x00000421
1638a26ae754SRob Clark 
1639a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_5_LO				0x00000422
1640a26ae754SRob Clark 
1641a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_5_HI				0x00000423
1642a26ae754SRob Clark 
1643a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_6_LO				0x00000424
1644a26ae754SRob Clark 
1645a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_6_HI				0x00000425
1646a26ae754SRob Clark 
1647a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_7_LO				0x00000426
1648a26ae754SRob Clark 
1649a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_TP_7_HI				0x00000427
1650a26ae754SRob Clark 
1651a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_0_LO				0x00000428
1652a26ae754SRob Clark 
1653a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_0_HI				0x00000429
1654a26ae754SRob Clark 
1655a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_1_LO				0x0000042a
1656a26ae754SRob Clark 
1657a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_1_HI				0x0000042b
1658a26ae754SRob Clark 
1659a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_2_LO				0x0000042c
1660a26ae754SRob Clark 
1661a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_2_HI				0x0000042d
1662a26ae754SRob Clark 
1663a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_3_LO				0x0000042e
1664a26ae754SRob Clark 
1665a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_3_HI				0x0000042f
1666a26ae754SRob Clark 
1667a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_4_LO				0x00000430
1668a26ae754SRob Clark 
1669a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_4_HI				0x00000431
1670a26ae754SRob Clark 
1671a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_5_LO				0x00000432
1672a26ae754SRob Clark 
1673a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_5_HI				0x00000433
1674a26ae754SRob Clark 
1675a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_6_LO				0x00000434
1676a26ae754SRob Clark 
1677a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_6_HI				0x00000435
1678a26ae754SRob Clark 
1679a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_7_LO				0x00000436
1680a26ae754SRob Clark 
1681a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_7_HI				0x00000437
1682a26ae754SRob Clark 
1683a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_8_LO				0x00000438
1684a26ae754SRob Clark 
1685a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_8_HI				0x00000439
1686a26ae754SRob Clark 
1687a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_9_LO				0x0000043a
1688a26ae754SRob Clark 
1689a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_9_HI				0x0000043b
1690a26ae754SRob Clark 
1691a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_10_LO				0x0000043c
1692a26ae754SRob Clark 
1693a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_10_HI				0x0000043d
1694a26ae754SRob Clark 
1695a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_11_LO				0x0000043e
1696a26ae754SRob Clark 
1697a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_SP_11_HI				0x0000043f
1698a26ae754SRob Clark 
1699a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_0_LO				0x00000440
1700a26ae754SRob Clark 
1701a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_0_HI				0x00000441
1702a26ae754SRob Clark 
1703a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_1_LO				0x00000442
1704a26ae754SRob Clark 
1705a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_1_HI				0x00000443
1706a26ae754SRob Clark 
1707a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_2_LO				0x00000444
1708a26ae754SRob Clark 
1709a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_2_HI				0x00000445
1710a26ae754SRob Clark 
1711a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_3_LO				0x00000446
1712a26ae754SRob Clark 
1713a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_3_HI				0x00000447
1714a26ae754SRob Clark 
1715a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_4_LO				0x00000448
1716a26ae754SRob Clark 
1717a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_4_HI				0x00000449
1718a26ae754SRob Clark 
1719a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_5_LO				0x0000044a
1720a26ae754SRob Clark 
1721a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_5_HI				0x0000044b
1722a26ae754SRob Clark 
1723a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_6_LO				0x0000044c
1724a26ae754SRob Clark 
1725a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_6_HI				0x0000044d
1726a26ae754SRob Clark 
1727a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_7_LO				0x0000044e
1728a26ae754SRob Clark 
1729a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RB_7_HI				0x0000044f
1730a26ae754SRob Clark 
1731a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VSC_0_LO				0x00000450
1732a26ae754SRob Clark 
1733a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VSC_0_HI				0x00000451
1734a26ae754SRob Clark 
1735a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VSC_1_LO				0x00000452
1736a26ae754SRob Clark 
1737a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_VSC_1_HI				0x00000453
1738a26ae754SRob Clark 
1739a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_0_LO				0x00000454
1740a26ae754SRob Clark 
1741a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_0_HI				0x00000455
1742a26ae754SRob Clark 
1743a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_1_LO				0x00000456
1744a26ae754SRob Clark 
1745a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_1_HI				0x00000457
1746a26ae754SRob Clark 
1747a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_2_LO				0x00000458
1748a26ae754SRob Clark 
1749a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_2_HI				0x00000459
1750a26ae754SRob Clark 
1751a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_3_LO				0x0000045a
1752a26ae754SRob Clark 
1753a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LRZ_3_HI				0x0000045b
1754a26ae754SRob Clark 
1755a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_0_LO				0x0000045c
1756a26ae754SRob Clark 
1757a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_0_HI				0x0000045d
1758a26ae754SRob Clark 
1759a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_1_LO				0x0000045e
1760a26ae754SRob Clark 
1761a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_1_HI				0x0000045f
1762a26ae754SRob Clark 
1763a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_2_LO				0x00000460
1764a26ae754SRob Clark 
1765a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_2_HI				0x00000461
1766a26ae754SRob Clark 
1767a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_3_LO				0x00000462
1768a26ae754SRob Clark 
1769a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CMP_3_HI				0x00000463
1770a26ae754SRob Clark 
1771a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_0			0x0000046b
1772a26ae754SRob Clark 
1773a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_1			0x0000046c
1774a26ae754SRob Clark 
1775a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_2			0x0000046d
1776a26ae754SRob Clark 
1777a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_3			0x0000046e
1778a26ae754SRob Clark 
1779a26ae754SRob Clark #define REG_A5XX_RBBM_ALWAYSON_COUNTER_LO			0x000004d2
1780a26ae754SRob Clark 
1781a26ae754SRob Clark #define REG_A5XX_RBBM_ALWAYSON_COUNTER_HI			0x000004d3
1782a26ae754SRob Clark 
1783a26ae754SRob Clark #define REG_A5XX_RBBM_STATUS					0x000004f5
1784a26ae754SRob Clark #define A5XX_RBBM_STATUS_GPU_BUSY_IGN_AHB			0x80000000
1785a26ae754SRob Clark #define A5XX_RBBM_STATUS_GPU_BUSY_IGN_AHB_CP			0x40000000
1786a26ae754SRob Clark #define A5XX_RBBM_STATUS_HLSQ_BUSY				0x20000000
1787a26ae754SRob Clark #define A5XX_RBBM_STATUS_VSC_BUSY				0x10000000
1788a26ae754SRob Clark #define A5XX_RBBM_STATUS_TPL1_BUSY				0x08000000
1789a26ae754SRob Clark #define A5XX_RBBM_STATUS_SP_BUSY				0x04000000
1790a26ae754SRob Clark #define A5XX_RBBM_STATUS_UCHE_BUSY				0x02000000
1791a26ae754SRob Clark #define A5XX_RBBM_STATUS_VPC_BUSY				0x01000000
1792a26ae754SRob Clark #define A5XX_RBBM_STATUS_VFDP_BUSY				0x00800000
1793a26ae754SRob Clark #define A5XX_RBBM_STATUS_VFD_BUSY				0x00400000
1794a26ae754SRob Clark #define A5XX_RBBM_STATUS_TESS_BUSY				0x00200000
1795a26ae754SRob Clark #define A5XX_RBBM_STATUS_PC_VSD_BUSY				0x00100000
1796a26ae754SRob Clark #define A5XX_RBBM_STATUS_PC_DCALL_BUSY				0x00080000
1797a26ae754SRob Clark #define A5XX_RBBM_STATUS_GPMU_SLAVE_BUSY			0x00040000
1798a26ae754SRob Clark #define A5XX_RBBM_STATUS_DCOM_BUSY				0x00020000
1799a26ae754SRob Clark #define A5XX_RBBM_STATUS_COM_BUSY				0x00010000
1800a26ae754SRob Clark #define A5XX_RBBM_STATUS_LRZ_BUZY				0x00008000
1801a26ae754SRob Clark #define A5XX_RBBM_STATUS_A2D_DSP_BUSY				0x00004000
1802a26ae754SRob Clark #define A5XX_RBBM_STATUS_CCUFCHE_BUSY				0x00002000
1803a26ae754SRob Clark #define A5XX_RBBM_STATUS_RB_BUSY				0x00001000
1804a26ae754SRob Clark #define A5XX_RBBM_STATUS_RAS_BUSY				0x00000800
1805a26ae754SRob Clark #define A5XX_RBBM_STATUS_TSE_BUSY				0x00000400
1806a26ae754SRob Clark #define A5XX_RBBM_STATUS_VBIF_BUSY				0x00000200
1807a26ae754SRob Clark #define A5XX_RBBM_STATUS_GPU_BUSY_IGN_AHB_HYST			0x00000100
1808a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_BUSY_IGN_HYST			0x00000080
1809a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_BUSY				0x00000040
1810a26ae754SRob Clark #define A5XX_RBBM_STATUS_GPMU_MASTER_BUSY			0x00000020
1811a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_CRASH_BUSY				0x00000010
1812a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_ETS_BUSY				0x00000008
1813a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_PFP_BUSY				0x00000004
1814a26ae754SRob Clark #define A5XX_RBBM_STATUS_CP_ME_BUSY				0x00000002
1815a26ae754SRob Clark #define A5XX_RBBM_STATUS_HI_BUSY				0x00000001
1816a26ae754SRob Clark 
1817a26ae754SRob Clark #define REG_A5XX_RBBM_STATUS3					0x00000530
1818a26ae754SRob Clark 
1819a26ae754SRob Clark #define REG_A5XX_RBBM_INT_0_STATUS				0x000004e1
1820a26ae754SRob Clark 
1821a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_ME_SPLIT_STATUS			0x000004f0
1822a26ae754SRob Clark 
1823a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_PFP_SPLIT_STATUS			0x000004f1
1824a26ae754SRob Clark 
1825a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_ETS_SPLIT_STATUS			0x000004f3
1826a26ae754SRob Clark 
1827a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_ERROR_STATUS				0x000004f4
1828a26ae754SRob Clark 
1829a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_CNTL				0x00000464
1830a26ae754SRob Clark 
1831a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_CMD0				0x00000465
1832a26ae754SRob Clark 
1833a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_CMD1				0x00000466
1834a26ae754SRob Clark 
1835a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_CMD2				0x00000467
1836a26ae754SRob Clark 
1837a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_CMD3				0x00000468
1838a26ae754SRob Clark 
1839a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_VALUE_LO			0x00000469
1840a26ae754SRob Clark 
1841a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_LOAD_VALUE_HI			0x0000046a
1842a26ae754SRob Clark 
1843a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_0			0x0000046b
1844a26ae754SRob Clark 
1845a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_1			0x0000046c
1846a26ae754SRob Clark 
1847a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_2			0x0000046d
1848a26ae754SRob Clark 
1849a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_RBBM_SEL_3			0x0000046e
1850a26ae754SRob Clark 
1851a26ae754SRob Clark #define REG_A5XX_RBBM_PERFCTR_GPU_BUSY_MASKED			0x0000046f
1852a26ae754SRob Clark 
1853a26ae754SRob Clark #define REG_A5XX_RBBM_AHB_ERROR					0x000004ed
1854a26ae754SRob Clark 
1855a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_EVENT_LOGIC			0x00000504
1856a26ae754SRob Clark 
1857a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_OVER				0x00000505
1858a26ae754SRob Clark 
1859a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT0				0x00000506
1860a26ae754SRob Clark 
1861a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT1				0x00000507
1862a26ae754SRob Clark 
1863a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT2				0x00000508
1864a26ae754SRob Clark 
1865a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT3				0x00000509
1866a26ae754SRob Clark 
1867a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT4				0x0000050a
1868a26ae754SRob Clark 
1869a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_COUNT5				0x0000050b
1870a26ae754SRob Clark 
1871a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_ADDR			0x0000050c
1872a26ae754SRob Clark 
1873a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_BUF0			0x0000050d
1874a26ae754SRob Clark 
1875a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_BUF1			0x0000050e
1876a26ae754SRob Clark 
1877a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_BUF2			0x0000050f
1878a26ae754SRob Clark 
1879a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_BUF3			0x00000510
1880a26ae754SRob Clark 
1881a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_TRACE_BUF4			0x00000511
1882a26ae754SRob Clark 
1883a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MISR0				0x00000512
1884a26ae754SRob Clark 
1885a26ae754SRob Clark #define REG_A5XX_RBBM_CFG_DBGBUS_MISR1				0x00000513
1886a26ae754SRob Clark 
1887a26ae754SRob Clark #define REG_A5XX_RBBM_ISDB_CNT					0x00000533
1888a26ae754SRob Clark 
1889a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TRUST_CONFIG			0x0000f000
1890a26ae754SRob Clark 
1891a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TRUST_CNTL				0x0000f400
1892a26ae754SRob Clark 
1893a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO		0x0000f800
1894a26ae754SRob Clark 
1895a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_TRUSTED_BASE_HI		0x0000f801
1896a26ae754SRob Clark 
1897a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_TRUSTED_SIZE			0x0000f802
1898a26ae754SRob Clark 
1899a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_CNTL				0x0000f803
1900a26ae754SRob Clark 
1901a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_COMP_STATUS_LO			0x0000f804
1902a26ae754SRob Clark 
1903a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_COMP_STATUS_HI			0x0000f805
1904a26ae754SRob Clark 
1905a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_UCHE_STATUS_LO			0x0000f806
1906a26ae754SRob Clark 
1907a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_UCHE_STATUS_HI			0x0000f807
1908a26ae754SRob Clark 
1909a26ae754SRob Clark #define REG_A5XX_RBBM_SECVID_TSB_ADDR_MODE_CNTL			0x0000f810
1910a26ae754SRob Clark 
1911*52260ae4SRob Clark #define REG_A5XX_VSC_BIN_SIZE					0x00000bc2
1912*52260ae4SRob Clark #define A5XX_VSC_BIN_SIZE_WIDTH__MASK				0x000000ff
1913*52260ae4SRob Clark #define A5XX_VSC_BIN_SIZE_WIDTH__SHIFT				0
1914*52260ae4SRob Clark static inline uint32_t A5XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
1915*52260ae4SRob Clark {
1916*52260ae4SRob Clark 	return ((val >> 5) << A5XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A5XX_VSC_BIN_SIZE_WIDTH__MASK;
1917*52260ae4SRob Clark }
1918*52260ae4SRob Clark #define A5XX_VSC_BIN_SIZE_HEIGHT__MASK				0x0001fe00
1919*52260ae4SRob Clark #define A5XX_VSC_BIN_SIZE_HEIGHT__SHIFT				9
1920*52260ae4SRob Clark static inline uint32_t A5XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
1921*52260ae4SRob Clark {
1922*52260ae4SRob Clark 	return ((val >> 5) << A5XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A5XX_VSC_BIN_SIZE_HEIGHT__MASK;
1923*52260ae4SRob Clark }
1924*52260ae4SRob Clark 
1925*52260ae4SRob Clark #define REG_A5XX_VSC_SIZE_ADDRESS_LO				0x00000bc3
1926*52260ae4SRob Clark 
1927*52260ae4SRob Clark #define REG_A5XX_VSC_SIZE_ADDRESS_HI				0x00000bc4
1928*52260ae4SRob Clark 
1929*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_0BC5					0x00000bc5
1930*52260ae4SRob Clark 
1931*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_0BC6					0x00000bc6
1932*52260ae4SRob Clark 
1933*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000bd0 + 0x1*i0; }
1934*52260ae4SRob Clark 
1935*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_CONFIG_REG(uint32_t i0) { return 0x00000bd0 + 0x1*i0; }
1936*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_X__MASK			0x000003ff
1937*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_X__SHIFT			0
1938*52260ae4SRob Clark static inline uint32_t A5XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)
1939*52260ae4SRob Clark {
1940*52260ae4SRob Clark 	return ((val) << A5XX_VSC_PIPE_CONFIG_REG_X__SHIFT) & A5XX_VSC_PIPE_CONFIG_REG_X__MASK;
1941*52260ae4SRob Clark }
1942*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_Y__MASK			0x000ffc00
1943*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_Y__SHIFT			10
1944*52260ae4SRob Clark static inline uint32_t A5XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)
1945*52260ae4SRob Clark {
1946*52260ae4SRob Clark 	return ((val) << A5XX_VSC_PIPE_CONFIG_REG_Y__SHIFT) & A5XX_VSC_PIPE_CONFIG_REG_Y__MASK;
1947*52260ae4SRob Clark }
1948*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_W__MASK			0x00f00000
1949*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_W__SHIFT			20
1950*52260ae4SRob Clark static inline uint32_t A5XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)
1951*52260ae4SRob Clark {
1952*52260ae4SRob Clark 	return ((val) << A5XX_VSC_PIPE_CONFIG_REG_W__SHIFT) & A5XX_VSC_PIPE_CONFIG_REG_W__MASK;
1953*52260ae4SRob Clark }
1954*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_H__MASK			0x0f000000
1955*52260ae4SRob Clark #define A5XX_VSC_PIPE_CONFIG_REG_H__SHIFT			24
1956*52260ae4SRob Clark static inline uint32_t A5XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)
1957*52260ae4SRob Clark {
1958*52260ae4SRob Clark 	return ((val) << A5XX_VSC_PIPE_CONFIG_REG_H__SHIFT) & A5XX_VSC_PIPE_CONFIG_REG_H__MASK;
1959*52260ae4SRob Clark }
1960*52260ae4SRob Clark 
1961*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_DATA_ADDRESS(uint32_t i0) { return 0x00000be0 + 0x2*i0; }
1962*52260ae4SRob Clark 
1963*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_DATA_ADDRESS_LO(uint32_t i0) { return 0x00000be0 + 0x2*i0; }
1964*52260ae4SRob Clark 
1965*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_DATA_ADDRESS_HI(uint32_t i0) { return 0x00000be1 + 0x2*i0; }
1966*52260ae4SRob Clark 
1967*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_DATA_LENGTH(uint32_t i0) { return 0x00000c00 + 0x1*i0; }
1968*52260ae4SRob Clark 
1969*52260ae4SRob Clark static inline uint32_t REG_A5XX_VSC_PIPE_DATA_LENGTH_REG(uint32_t i0) { return 0x00000c00 + 0x1*i0; }
1970a26ae754SRob Clark 
1971a26ae754SRob Clark #define REG_A5XX_VSC_PERFCTR_VSC_SEL_0				0x00000c60
1972a26ae754SRob Clark 
1973a26ae754SRob Clark #define REG_A5XX_VSC_PERFCTR_VSC_SEL_1				0x00000c61
1974a26ae754SRob Clark 
1975*52260ae4SRob Clark #define REG_A5XX_VSC_RESOLVE_CNTL				0x00000cdd
1976*52260ae4SRob Clark #define A5XX_VSC_RESOLVE_CNTL_WINDOW_OFFSET_DISABLE		0x80000000
1977*52260ae4SRob Clark #define A5XX_VSC_RESOLVE_CNTL_X__MASK				0x00007fff
1978*52260ae4SRob Clark #define A5XX_VSC_RESOLVE_CNTL_X__SHIFT				0
1979*52260ae4SRob Clark static inline uint32_t A5XX_VSC_RESOLVE_CNTL_X(uint32_t val)
1980a26ae754SRob Clark {
1981*52260ae4SRob Clark 	return ((val) << A5XX_VSC_RESOLVE_CNTL_X__SHIFT) & A5XX_VSC_RESOLVE_CNTL_X__MASK;
1982a26ae754SRob Clark }
1983*52260ae4SRob Clark #define A5XX_VSC_RESOLVE_CNTL_Y__MASK				0x7fff0000
1984*52260ae4SRob Clark #define A5XX_VSC_RESOLVE_CNTL_Y__SHIFT				16
1985*52260ae4SRob Clark static inline uint32_t A5XX_VSC_RESOLVE_CNTL_Y(uint32_t val)
1986a26ae754SRob Clark {
1987*52260ae4SRob Clark 	return ((val) << A5XX_VSC_RESOLVE_CNTL_Y__SHIFT) & A5XX_VSC_RESOLVE_CNTL_Y__MASK;
1988a26ae754SRob Clark }
1989a26ae754SRob Clark 
1990a26ae754SRob Clark #define REG_A5XX_GRAS_ADDR_MODE_CNTL				0x00000c81
1991a26ae754SRob Clark 
1992a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_TSE_SEL_0				0x00000c90
1993a26ae754SRob Clark 
1994a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_TSE_SEL_1				0x00000c91
1995a26ae754SRob Clark 
1996a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_TSE_SEL_2				0x00000c92
1997a26ae754SRob Clark 
1998a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_TSE_SEL_3				0x00000c93
1999a26ae754SRob Clark 
2000a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_RAS_SEL_0				0x00000c94
2001a26ae754SRob Clark 
2002a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_RAS_SEL_1				0x00000c95
2003a26ae754SRob Clark 
2004a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_RAS_SEL_2				0x00000c96
2005a26ae754SRob Clark 
2006a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_RAS_SEL_3				0x00000c97
2007a26ae754SRob Clark 
2008a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_LRZ_SEL_0				0x00000c98
2009a26ae754SRob Clark 
2010a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_LRZ_SEL_1				0x00000c99
2011a26ae754SRob Clark 
2012a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_LRZ_SEL_2				0x00000c9a
2013a26ae754SRob Clark 
2014a26ae754SRob Clark #define REG_A5XX_GRAS_PERFCTR_LRZ_SEL_3				0x00000c9b
2015a26ae754SRob Clark 
2016a26ae754SRob Clark #define REG_A5XX_RB_DBG_ECO_CNTL				0x00000cc4
2017a26ae754SRob Clark 
2018a26ae754SRob Clark #define REG_A5XX_RB_ADDR_MODE_CNTL				0x00000cc5
2019a26ae754SRob Clark 
2020a26ae754SRob Clark #define REG_A5XX_RB_MODE_CNTL					0x00000cc6
2021a26ae754SRob Clark 
2022a26ae754SRob Clark #define REG_A5XX_RB_CCU_CNTL					0x00000cc7
2023a26ae754SRob Clark 
2024a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_0				0x00000cd0
2025a26ae754SRob Clark 
2026a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_1				0x00000cd1
2027a26ae754SRob Clark 
2028a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_2				0x00000cd2
2029a26ae754SRob Clark 
2030a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_3				0x00000cd3
2031a26ae754SRob Clark 
2032a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_4				0x00000cd4
2033a26ae754SRob Clark 
2034a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_5				0x00000cd5
2035a26ae754SRob Clark 
2036a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_6				0x00000cd6
2037a26ae754SRob Clark 
2038a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_RB_SEL_7				0x00000cd7
2039a26ae754SRob Clark 
2040a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CCU_SEL_0				0x00000cd8
2041a26ae754SRob Clark 
2042a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CCU_SEL_1				0x00000cd9
2043a26ae754SRob Clark 
2044a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CCU_SEL_2				0x00000cda
2045a26ae754SRob Clark 
2046a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CCU_SEL_3				0x00000cdb
2047a26ae754SRob Clark 
2048a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_RB_SEL_0				0x00000ce0
2049a26ae754SRob Clark 
2050a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_RB_SEL_1				0x00000ce1
2051a26ae754SRob Clark 
2052a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_RB_SEL_2				0x00000ce2
2053a26ae754SRob Clark 
2054a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_RB_SEL_3				0x00000ce3
2055a26ae754SRob Clark 
2056a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_CCU_SEL_0				0x00000ce4
2057a26ae754SRob Clark 
2058a26ae754SRob Clark #define REG_A5XX_RB_POWERCTR_CCU_SEL_1				0x00000ce5
2059a26ae754SRob Clark 
2060a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CMP_SEL_0				0x00000cec
2061a26ae754SRob Clark 
2062a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CMP_SEL_1				0x00000ced
2063a26ae754SRob Clark 
2064a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CMP_SEL_2				0x00000cee
2065a26ae754SRob Clark 
2066a26ae754SRob Clark #define REG_A5XX_RB_PERFCTR_CMP_SEL_3				0x00000cef
2067a26ae754SRob Clark 
2068a26ae754SRob Clark #define REG_A5XX_PC_DBG_ECO_CNTL				0x00000d00
2069a26ae754SRob Clark #define A5XX_PC_DBG_ECO_CNTL_TWOPASSUSEWFI			0x00000100
2070a26ae754SRob Clark 
2071a26ae754SRob Clark #define REG_A5XX_PC_ADDR_MODE_CNTL				0x00000d01
2072a26ae754SRob Clark 
2073a26ae754SRob Clark #define REG_A5XX_PC_MODE_CNTL					0x00000d02
2074a26ae754SRob Clark 
2075a26ae754SRob Clark #define REG_A5XX_UNKNOWN_0D08					0x00000d08
2076a26ae754SRob Clark 
2077a26ae754SRob Clark #define REG_A5XX_UNKNOWN_0D09					0x00000d09
2078a26ae754SRob Clark 
2079a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_0				0x00000d10
2080a26ae754SRob Clark 
2081a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_1				0x00000d11
2082a26ae754SRob Clark 
2083a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_2				0x00000d12
2084a26ae754SRob Clark 
2085a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_3				0x00000d13
2086a26ae754SRob Clark 
2087a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_4				0x00000d14
2088a26ae754SRob Clark 
2089a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_5				0x00000d15
2090a26ae754SRob Clark 
2091a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_6				0x00000d16
2092a26ae754SRob Clark 
2093a26ae754SRob Clark #define REG_A5XX_PC_PERFCTR_PC_SEL_7				0x00000d17
2094a26ae754SRob Clark 
2095a26ae754SRob Clark #define REG_A5XX_HLSQ_TIMEOUT_THRESHOLD_0			0x00000e00
2096a26ae754SRob Clark 
2097a26ae754SRob Clark #define REG_A5XX_HLSQ_TIMEOUT_THRESHOLD_1			0x00000e01
2098a26ae754SRob Clark 
2099a26ae754SRob Clark #define REG_A5XX_HLSQ_ADDR_MODE_CNTL				0x00000e05
2100a26ae754SRob Clark 
2101a26ae754SRob Clark #define REG_A5XX_HLSQ_MODE_CNTL					0x00000e06
2102a26ae754SRob Clark 
2103a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_0			0x00000e10
2104a26ae754SRob Clark 
2105a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_1			0x00000e11
2106a26ae754SRob Clark 
2107a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_2			0x00000e12
2108a26ae754SRob Clark 
2109a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_3			0x00000e13
2110a26ae754SRob Clark 
2111a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_4			0x00000e14
2112a26ae754SRob Clark 
2113a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_5			0x00000e15
2114a26ae754SRob Clark 
2115a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_6			0x00000e16
2116a26ae754SRob Clark 
2117a26ae754SRob Clark #define REG_A5XX_HLSQ_PERFCTR_HLSQ_SEL_7			0x00000e17
2118a26ae754SRob Clark 
2119a26ae754SRob Clark #define REG_A5XX_HLSQ_SPTP_RDSEL				0x00000f08
2120a26ae754SRob Clark 
2121a26ae754SRob Clark #define REG_A5XX_HLSQ_DBG_READ_SEL				0x0000bc00
2122a26ae754SRob Clark 
2123a26ae754SRob Clark #define REG_A5XX_HLSQ_DBG_AHB_READ_APERTURE			0x0000a000
2124a26ae754SRob Clark 
2125a26ae754SRob Clark #define REG_A5XX_VFD_ADDR_MODE_CNTL				0x00000e41
2126a26ae754SRob Clark 
2127a26ae754SRob Clark #define REG_A5XX_VFD_MODE_CNTL					0x00000e42
2128a26ae754SRob Clark 
2129a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_0				0x00000e50
2130a26ae754SRob Clark 
2131a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_1				0x00000e51
2132a26ae754SRob Clark 
2133a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_2				0x00000e52
2134a26ae754SRob Clark 
2135a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_3				0x00000e53
2136a26ae754SRob Clark 
2137a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_4				0x00000e54
2138a26ae754SRob Clark 
2139a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_5				0x00000e55
2140a26ae754SRob Clark 
2141a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_6				0x00000e56
2142a26ae754SRob Clark 
2143a26ae754SRob Clark #define REG_A5XX_VFD_PERFCTR_VFD_SEL_7				0x00000e57
2144a26ae754SRob Clark 
2145a26ae754SRob Clark #define REG_A5XX_VPC_DBG_ECO_CNTL				0x00000e60
2146a26ae754SRob Clark 
2147a26ae754SRob Clark #define REG_A5XX_VPC_ADDR_MODE_CNTL				0x00000e61
2148a26ae754SRob Clark 
2149a26ae754SRob Clark #define REG_A5XX_VPC_MODE_CNTL					0x00000e62
2150*52260ae4SRob Clark #define A5XX_VPC_MODE_CNTL_BINNING_PASS				0x00000001
2151a26ae754SRob Clark 
2152a26ae754SRob Clark #define REG_A5XX_VPC_PERFCTR_VPC_SEL_0				0x00000e64
2153a26ae754SRob Clark 
2154a26ae754SRob Clark #define REG_A5XX_VPC_PERFCTR_VPC_SEL_1				0x00000e65
2155a26ae754SRob Clark 
2156a26ae754SRob Clark #define REG_A5XX_VPC_PERFCTR_VPC_SEL_2				0x00000e66
2157a26ae754SRob Clark 
2158a26ae754SRob Clark #define REG_A5XX_VPC_PERFCTR_VPC_SEL_3				0x00000e67
2159a26ae754SRob Clark 
2160a26ae754SRob Clark #define REG_A5XX_UCHE_ADDR_MODE_CNTL				0x00000e80
2161a26ae754SRob Clark 
2162a26ae754SRob Clark #define REG_A5XX_UCHE_SVM_CNTL					0x00000e82
2163a26ae754SRob Clark 
2164a26ae754SRob Clark #define REG_A5XX_UCHE_WRITE_THRU_BASE_LO			0x00000e87
2165a26ae754SRob Clark 
2166a26ae754SRob Clark #define REG_A5XX_UCHE_WRITE_THRU_BASE_HI			0x00000e88
2167a26ae754SRob Clark 
2168a26ae754SRob Clark #define REG_A5XX_UCHE_TRAP_BASE_LO				0x00000e89
2169a26ae754SRob Clark 
2170a26ae754SRob Clark #define REG_A5XX_UCHE_TRAP_BASE_HI				0x00000e8a
2171a26ae754SRob Clark 
2172a26ae754SRob Clark #define REG_A5XX_UCHE_GMEM_RANGE_MIN_LO				0x00000e8b
2173a26ae754SRob Clark 
2174a26ae754SRob Clark #define REG_A5XX_UCHE_GMEM_RANGE_MIN_HI				0x00000e8c
2175a26ae754SRob Clark 
2176a26ae754SRob Clark #define REG_A5XX_UCHE_GMEM_RANGE_MAX_LO				0x00000e8d
2177a26ae754SRob Clark 
2178a26ae754SRob Clark #define REG_A5XX_UCHE_GMEM_RANGE_MAX_HI				0x00000e8e
2179a26ae754SRob Clark 
2180a26ae754SRob Clark #define REG_A5XX_UCHE_DBG_ECO_CNTL_2				0x00000e8f
2181a26ae754SRob Clark 
2182a26ae754SRob Clark #define REG_A5XX_UCHE_DBG_ECO_CNTL				0x00000e90
2183a26ae754SRob Clark 
2184a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_INVALIDATE_MIN_LO			0x00000e91
2185a26ae754SRob Clark 
2186a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_INVALIDATE_MIN_HI			0x00000e92
2187a26ae754SRob Clark 
2188a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_INVALIDATE_MAX_LO			0x00000e93
2189a26ae754SRob Clark 
2190a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_INVALIDATE_MAX_HI			0x00000e94
2191a26ae754SRob Clark 
2192a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_INVALIDATE				0x00000e95
2193a26ae754SRob Clark 
2194a26ae754SRob Clark #define REG_A5XX_UCHE_CACHE_WAYS				0x00000e96
2195a26ae754SRob Clark 
2196a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_0			0x00000ea0
2197a26ae754SRob Clark 
2198a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_1			0x00000ea1
2199a26ae754SRob Clark 
2200a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_2			0x00000ea2
2201a26ae754SRob Clark 
2202a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_3			0x00000ea3
2203a26ae754SRob Clark 
2204a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_4			0x00000ea4
2205a26ae754SRob Clark 
2206a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_5			0x00000ea5
2207a26ae754SRob Clark 
2208a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_6			0x00000ea6
2209a26ae754SRob Clark 
2210a26ae754SRob Clark #define REG_A5XX_UCHE_PERFCTR_UCHE_SEL_7			0x00000ea7
2211a26ae754SRob Clark 
2212a26ae754SRob Clark #define REG_A5XX_UCHE_POWERCTR_UCHE_SEL_0			0x00000ea8
2213a26ae754SRob Clark 
2214a26ae754SRob Clark #define REG_A5XX_UCHE_POWERCTR_UCHE_SEL_1			0x00000ea9
2215a26ae754SRob Clark 
2216a26ae754SRob Clark #define REG_A5XX_UCHE_POWERCTR_UCHE_SEL_2			0x00000eaa
2217a26ae754SRob Clark 
2218a26ae754SRob Clark #define REG_A5XX_UCHE_POWERCTR_UCHE_SEL_3			0x00000eab
2219a26ae754SRob Clark 
2220a26ae754SRob Clark #define REG_A5XX_UCHE_TRAP_LOG_LO				0x00000eb1
2221a26ae754SRob Clark 
2222a26ae754SRob Clark #define REG_A5XX_UCHE_TRAP_LOG_HI				0x00000eb2
2223a26ae754SRob Clark 
2224a26ae754SRob Clark #define REG_A5XX_SP_DBG_ECO_CNTL				0x00000ec0
2225a26ae754SRob Clark 
2226a26ae754SRob Clark #define REG_A5XX_SP_ADDR_MODE_CNTL				0x00000ec1
2227a26ae754SRob Clark 
2228a26ae754SRob Clark #define REG_A5XX_SP_MODE_CNTL					0x00000ec2
2229a26ae754SRob Clark 
2230a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_0				0x00000ed0
2231a26ae754SRob Clark 
2232a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_1				0x00000ed1
2233a26ae754SRob Clark 
2234a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_2				0x00000ed2
2235a26ae754SRob Clark 
2236a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_3				0x00000ed3
2237a26ae754SRob Clark 
2238a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_4				0x00000ed4
2239a26ae754SRob Clark 
2240a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_5				0x00000ed5
2241a26ae754SRob Clark 
2242a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_6				0x00000ed6
2243a26ae754SRob Clark 
2244a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_7				0x00000ed7
2245a26ae754SRob Clark 
2246a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_8				0x00000ed8
2247a26ae754SRob Clark 
2248a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_9				0x00000ed9
2249a26ae754SRob Clark 
2250a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_10				0x00000eda
2251a26ae754SRob Clark 
2252a26ae754SRob Clark #define REG_A5XX_SP_PERFCTR_SP_SEL_11				0x00000edb
2253a26ae754SRob Clark 
2254a26ae754SRob Clark #define REG_A5XX_SP_POWERCTR_SP_SEL_0				0x00000edc
2255a26ae754SRob Clark 
2256a26ae754SRob Clark #define REG_A5XX_SP_POWERCTR_SP_SEL_1				0x00000edd
2257a26ae754SRob Clark 
2258a26ae754SRob Clark #define REG_A5XX_SP_POWERCTR_SP_SEL_2				0x00000ede
2259a26ae754SRob Clark 
2260a26ae754SRob Clark #define REG_A5XX_SP_POWERCTR_SP_SEL_3				0x00000edf
2261a26ae754SRob Clark 
2262a26ae754SRob Clark #define REG_A5XX_TPL1_ADDR_MODE_CNTL				0x00000f01
2263a26ae754SRob Clark 
2264a26ae754SRob Clark #define REG_A5XX_TPL1_MODE_CNTL					0x00000f02
2265a26ae754SRob Clark 
2266a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_0				0x00000f10
2267a26ae754SRob Clark 
2268a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_1				0x00000f11
2269a26ae754SRob Clark 
2270a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_2				0x00000f12
2271a26ae754SRob Clark 
2272a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_3				0x00000f13
2273a26ae754SRob Clark 
2274a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_4				0x00000f14
2275a26ae754SRob Clark 
2276a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_5				0x00000f15
2277a26ae754SRob Clark 
2278a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_6				0x00000f16
2279a26ae754SRob Clark 
2280a26ae754SRob Clark #define REG_A5XX_TPL1_PERFCTR_TP_SEL_7				0x00000f17
2281a26ae754SRob Clark 
2282a26ae754SRob Clark #define REG_A5XX_TPL1_POWERCTR_TP_SEL_0				0x00000f18
2283a26ae754SRob Clark 
2284a26ae754SRob Clark #define REG_A5XX_TPL1_POWERCTR_TP_SEL_1				0x00000f19
2285a26ae754SRob Clark 
2286a26ae754SRob Clark #define REG_A5XX_TPL1_POWERCTR_TP_SEL_2				0x00000f1a
2287a26ae754SRob Clark 
2288a26ae754SRob Clark #define REG_A5XX_TPL1_POWERCTR_TP_SEL_3				0x00000f1b
2289a26ae754SRob Clark 
2290a26ae754SRob Clark #define REG_A5XX_VBIF_VERSION					0x00003000
2291a26ae754SRob Clark 
2292a26ae754SRob Clark #define REG_A5XX_VBIF_CLKON					0x00003001
2293a26ae754SRob Clark 
2294a26ae754SRob Clark #define REG_A5XX_VBIF_ABIT_SORT					0x00003028
2295a26ae754SRob Clark 
2296a26ae754SRob Clark #define REG_A5XX_VBIF_ABIT_SORT_CONF				0x00003029
2297a26ae754SRob Clark 
2298a26ae754SRob Clark #define REG_A5XX_VBIF_ROUND_ROBIN_QOS_ARB			0x00003049
2299a26ae754SRob Clark 
2300a26ae754SRob Clark #define REG_A5XX_VBIF_GATE_OFF_WRREQ_EN				0x0000302a
2301a26ae754SRob Clark 
2302a26ae754SRob Clark #define REG_A5XX_VBIF_IN_RD_LIM_CONF0				0x0000302c
2303a26ae754SRob Clark 
2304a26ae754SRob Clark #define REG_A5XX_VBIF_IN_RD_LIM_CONF1				0x0000302d
2305a26ae754SRob Clark 
2306a26ae754SRob Clark #define REG_A5XX_VBIF_XIN_HALT_CTRL0				0x00003080
2307a26ae754SRob Clark 
2308a26ae754SRob Clark #define REG_A5XX_VBIF_XIN_HALT_CTRL1				0x00003081
2309a26ae754SRob Clark 
2310a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS_OUT_CTRL				0x00003084
2311a26ae754SRob Clark 
2312a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS1_CTRL0				0x00003085
2313a26ae754SRob Clark 
2314a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS1_CTRL1				0x00003086
2315a26ae754SRob Clark 
2316a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS2_CTRL0				0x00003087
2317a26ae754SRob Clark 
2318a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS2_CTRL1				0x00003088
2319a26ae754SRob Clark 
2320a26ae754SRob Clark #define REG_A5XX_VBIF_TEST_BUS_OUT				0x0000308c
2321a26ae754SRob Clark 
2322*52260ae4SRob Clark #define REG_A5XX_VBIF_PERF_CNT_EN0				0x000030c0
2323*52260ae4SRob Clark 
2324*52260ae4SRob Clark #define REG_A5XX_VBIF_PERF_CNT_EN1				0x000030c1
2325*52260ae4SRob Clark 
2326*52260ae4SRob Clark #define REG_A5XX_VBIF_PERF_CNT_EN2				0x000030c2
2327*52260ae4SRob Clark 
2328*52260ae4SRob Clark #define REG_A5XX_VBIF_PERF_CNT_EN3				0x000030c3
2329*52260ae4SRob Clark 
2330a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_SEL0				0x000030d0
2331a26ae754SRob Clark 
2332a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_SEL1				0x000030d1
2333a26ae754SRob Clark 
2334a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_SEL2				0x000030d2
2335a26ae754SRob Clark 
2336a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_SEL3				0x000030d3
2337a26ae754SRob Clark 
2338a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_LOW0				0x000030d8
2339a26ae754SRob Clark 
2340a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_LOW1				0x000030d9
2341a26ae754SRob Clark 
2342a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_LOW2				0x000030da
2343a26ae754SRob Clark 
2344a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_LOW3				0x000030db
2345a26ae754SRob Clark 
2346a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_HIGH0				0x000030e0
2347a26ae754SRob Clark 
2348a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_HIGH1				0x000030e1
2349a26ae754SRob Clark 
2350a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_HIGH2				0x000030e2
2351a26ae754SRob Clark 
2352a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_CNT_HIGH3				0x000030e3
2353a26ae754SRob Clark 
2354a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
2355a26ae754SRob Clark 
2356a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
2357a26ae754SRob Clark 
2358a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
2359a26ae754SRob Clark 
2360a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_LOW0				0x00003110
2361a26ae754SRob Clark 
2362a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_LOW1				0x00003111
2363a26ae754SRob Clark 
2364a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_LOW2				0x00003112
2365a26ae754SRob Clark 
2366a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_HIGH0			0x00003118
2367a26ae754SRob Clark 
2368a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_HIGH1			0x00003119
2369a26ae754SRob Clark 
2370a26ae754SRob Clark #define REG_A5XX_VBIF_PERF_PWR_CNT_HIGH2			0x0000311a
2371a26ae754SRob Clark 
2372a26ae754SRob Clark #define REG_A5XX_GPMU_INST_RAM_BASE				0x00008800
2373a26ae754SRob Clark 
2374a26ae754SRob Clark #define REG_A5XX_GPMU_DATA_RAM_BASE				0x00009800
2375a26ae754SRob Clark 
2376a26ae754SRob Clark #define REG_A5XX_GPMU_SP_POWER_CNTL				0x0000a881
2377a26ae754SRob Clark 
2378a26ae754SRob Clark #define REG_A5XX_GPMU_RBCCU_CLOCK_CNTL				0x0000a886
2379a26ae754SRob Clark 
2380a26ae754SRob Clark #define REG_A5XX_GPMU_RBCCU_POWER_CNTL				0x0000a887
2381a26ae754SRob Clark 
2382a26ae754SRob Clark #define REG_A5XX_GPMU_SP_PWR_CLK_STATUS				0x0000a88b
2383a26ae754SRob Clark #define A5XX_GPMU_SP_PWR_CLK_STATUS_PWR_ON			0x00100000
2384a26ae754SRob Clark 
2385a26ae754SRob Clark #define REG_A5XX_GPMU_RBCCU_PWR_CLK_STATUS			0x0000a88d
2386a26ae754SRob Clark #define A5XX_GPMU_RBCCU_PWR_CLK_STATUS_PWR_ON			0x00100000
2387a26ae754SRob Clark 
2388a26ae754SRob Clark #define REG_A5XX_GPMU_PWR_COL_STAGGER_DELAY			0x0000a891
2389a26ae754SRob Clark 
2390a26ae754SRob Clark #define REG_A5XX_GPMU_PWR_COL_INTER_FRAME_CTRL			0x0000a892
2391a26ae754SRob Clark 
2392a26ae754SRob Clark #define REG_A5XX_GPMU_PWR_COL_INTER_FRAME_HYST			0x0000a893
2393a26ae754SRob Clark 
2394a26ae754SRob Clark #define REG_A5XX_GPMU_PWR_COL_BINNING_CTRL			0x0000a894
2395a26ae754SRob Clark 
2396a26ae754SRob Clark #define REG_A5XX_GPMU_CLOCK_THROTTLE_CTRL			0x0000a8a3
2397a26ae754SRob Clark 
2398a26ae754SRob Clark #define REG_A5XX_GPMU_WFI_CONFIG				0x0000a8c1
2399a26ae754SRob Clark 
2400a26ae754SRob Clark #define REG_A5XX_GPMU_RBBM_INTR_INFO				0x0000a8d6
2401a26ae754SRob Clark 
2402a26ae754SRob Clark #define REG_A5XX_GPMU_CM3_SYSRESET				0x0000a8d8
2403a26ae754SRob Clark 
2404a26ae754SRob Clark #define REG_A5XX_GPMU_GENERAL_0					0x0000a8e0
2405a26ae754SRob Clark 
2406a26ae754SRob Clark #define REG_A5XX_GPMU_GENERAL_1					0x0000a8e1
2407a26ae754SRob Clark 
2408a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_0_LO				0x0000a840
2409a26ae754SRob Clark 
2410a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_0_HI				0x0000a841
2411a26ae754SRob Clark 
2412a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_1_LO				0x0000a842
2413a26ae754SRob Clark 
2414a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_1_HI				0x0000a843
2415a26ae754SRob Clark 
2416a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_2_LO				0x0000a844
2417a26ae754SRob Clark 
2418a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_2_HI				0x0000a845
2419a26ae754SRob Clark 
2420a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_3_LO				0x0000a846
2421a26ae754SRob Clark 
2422a26ae754SRob Clark #define REG_A5XX_SP_POWER_COUNTER_3_HI				0x0000a847
2423a26ae754SRob Clark 
2424a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_0_LO				0x0000a848
2425a26ae754SRob Clark 
2426a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_0_HI				0x0000a849
2427a26ae754SRob Clark 
2428a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_1_LO				0x0000a84a
2429a26ae754SRob Clark 
2430a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_1_HI				0x0000a84b
2431a26ae754SRob Clark 
2432a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_2_LO				0x0000a84c
2433a26ae754SRob Clark 
2434a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_2_HI				0x0000a84d
2435a26ae754SRob Clark 
2436a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_3_LO				0x0000a84e
2437a26ae754SRob Clark 
2438a26ae754SRob Clark #define REG_A5XX_TP_POWER_COUNTER_3_HI				0x0000a84f
2439a26ae754SRob Clark 
2440a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_0_LO				0x0000a850
2441a26ae754SRob Clark 
2442a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_0_HI				0x0000a851
2443a26ae754SRob Clark 
2444a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_1_LO				0x0000a852
2445a26ae754SRob Clark 
2446a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_1_HI				0x0000a853
2447a26ae754SRob Clark 
2448a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_2_LO				0x0000a854
2449a26ae754SRob Clark 
2450a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_2_HI				0x0000a855
2451a26ae754SRob Clark 
2452a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_3_LO				0x0000a856
2453a26ae754SRob Clark 
2454a26ae754SRob Clark #define REG_A5XX_RB_POWER_COUNTER_3_HI				0x0000a857
2455a26ae754SRob Clark 
2456a26ae754SRob Clark #define REG_A5XX_CCU_POWER_COUNTER_0_LO				0x0000a858
2457a26ae754SRob Clark 
2458a26ae754SRob Clark #define REG_A5XX_CCU_POWER_COUNTER_0_HI				0x0000a859
2459a26ae754SRob Clark 
2460a26ae754SRob Clark #define REG_A5XX_CCU_POWER_COUNTER_1_LO				0x0000a85a
2461a26ae754SRob Clark 
2462a26ae754SRob Clark #define REG_A5XX_CCU_POWER_COUNTER_1_HI				0x0000a85b
2463a26ae754SRob Clark 
2464a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_0_LO			0x0000a85c
2465a26ae754SRob Clark 
2466a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_0_HI			0x0000a85d
2467a26ae754SRob Clark 
2468a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_1_LO			0x0000a85e
2469a26ae754SRob Clark 
2470a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_1_HI			0x0000a85f
2471a26ae754SRob Clark 
2472a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_2_LO			0x0000a860
2473a26ae754SRob Clark 
2474a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_2_HI			0x0000a861
2475a26ae754SRob Clark 
2476a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_3_LO			0x0000a862
2477a26ae754SRob Clark 
2478a26ae754SRob Clark #define REG_A5XX_UCHE_POWER_COUNTER_3_HI			0x0000a863
2479a26ae754SRob Clark 
2480a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_0_LO				0x0000a864
2481a26ae754SRob Clark 
2482a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_0_HI				0x0000a865
2483a26ae754SRob Clark 
2484a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_1_LO				0x0000a866
2485a26ae754SRob Clark 
2486a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_1_HI				0x0000a867
2487a26ae754SRob Clark 
2488a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_2_LO				0x0000a868
2489a26ae754SRob Clark 
2490a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_2_HI				0x0000a869
2491a26ae754SRob Clark 
2492a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_3_LO				0x0000a86a
2493a26ae754SRob Clark 
2494a26ae754SRob Clark #define REG_A5XX_CP_POWER_COUNTER_3_HI				0x0000a86b
2495a26ae754SRob Clark 
2496a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_0_LO			0x0000a86c
2497a26ae754SRob Clark 
2498a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_0_HI			0x0000a86d
2499a26ae754SRob Clark 
2500a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_1_LO			0x0000a86e
2501a26ae754SRob Clark 
2502a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_1_HI			0x0000a86f
2503a26ae754SRob Clark 
2504a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_2_LO			0x0000a870
2505a26ae754SRob Clark 
2506a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_2_HI			0x0000a871
2507a26ae754SRob Clark 
2508a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_3_LO			0x0000a872
2509a26ae754SRob Clark 
2510a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_3_HI			0x0000a873
2511a26ae754SRob Clark 
2512a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_4_LO			0x0000a874
2513a26ae754SRob Clark 
2514a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_4_HI			0x0000a875
2515a26ae754SRob Clark 
2516a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_5_LO			0x0000a876
2517a26ae754SRob Clark 
2518a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_5_HI			0x0000a877
2519a26ae754SRob Clark 
2520a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_ENABLE			0x0000a878
2521a26ae754SRob Clark 
2522a26ae754SRob Clark #define REG_A5XX_GPMU_ALWAYS_ON_COUNTER_LO			0x0000a879
2523a26ae754SRob Clark 
2524a26ae754SRob Clark #define REG_A5XX_GPMU_ALWAYS_ON_COUNTER_HI			0x0000a87a
2525a26ae754SRob Clark 
2526a26ae754SRob Clark #define REG_A5XX_GPMU_ALWAYS_ON_COUNTER_RESET			0x0000a87b
2527a26ae754SRob Clark 
2528a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_SELECT_0			0x0000a87c
2529a26ae754SRob Clark 
2530a26ae754SRob Clark #define REG_A5XX_GPMU_POWER_COUNTER_SELECT_1			0x0000a87d
2531a26ae754SRob Clark 
2532a26ae754SRob Clark #define REG_A5XX_GPMU_CLOCK_THROTTLE_CTRL			0x0000a8a3
2533a26ae754SRob Clark 
2534a26ae754SRob Clark #define REG_A5XX_GPMU_THROTTLE_UNMASK_FORCE_CTRL		0x0000a8a8
2535a26ae754SRob Clark 
2536a26ae754SRob Clark #define REG_A5XX_GPMU_TEMP_SENSOR_ID				0x0000ac00
2537a26ae754SRob Clark 
2538a26ae754SRob Clark #define REG_A5XX_GPMU_TEMP_SENSOR_CONFIG			0x0000ac01
2539a26ae754SRob Clark 
2540a26ae754SRob Clark #define REG_A5XX_GPMU_TEMP_VAL					0x0000ac02
2541a26ae754SRob Clark 
2542a26ae754SRob Clark #define REG_A5XX_GPMU_DELTA_TEMP_THRESHOLD			0x0000ac03
2543a26ae754SRob Clark 
2544a26ae754SRob Clark #define REG_A5XX_GPMU_TEMP_THRESHOLD_INTR_STATUS		0x0000ac05
2545a26ae754SRob Clark 
2546a26ae754SRob Clark #define REG_A5XX_GPMU_TEMP_THRESHOLD_INTR_EN_MASK		0x0000ac06
2547a26ae754SRob Clark 
2548a26ae754SRob Clark #define REG_A5XX_GPMU_LEAKAGE_TEMP_COEFF_0_1			0x0000ac40
2549a26ae754SRob Clark 
2550a26ae754SRob Clark #define REG_A5XX_GPMU_LEAKAGE_TEMP_COEFF_2_3			0x0000ac41
2551a26ae754SRob Clark 
2552a26ae754SRob Clark #define REG_A5XX_GPMU_LEAKAGE_VTG_COEFF_0_1			0x0000ac42
2553a26ae754SRob Clark 
2554a26ae754SRob Clark #define REG_A5XX_GPMU_LEAKAGE_VTG_COEFF_2_3			0x0000ac43
2555a26ae754SRob Clark 
2556a26ae754SRob Clark #define REG_A5XX_GPMU_BASE_LEAKAGE				0x0000ac46
2557a26ae754SRob Clark 
2558a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_VOLTAGE				0x0000ac60
2559a26ae754SRob Clark 
2560a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_VOLTAGE_INTR_STATUS			0x0000ac61
2561a26ae754SRob Clark 
2562a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_VOLTAGE_INTR_EN_MASK			0x0000ac62
2563a26ae754SRob Clark 
2564a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_PWR_THRESHOLD			0x0000ac80
2565a26ae754SRob Clark 
2566a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_LLM_GLM_SLEEP_CTRL			0x0000acc4
2567a26ae754SRob Clark 
2568a26ae754SRob Clark #define REG_A5XX_GPMU_GPMU_LLM_GLM_SLEEP_STATUS			0x0000acc5
2569a26ae754SRob Clark 
2570a26ae754SRob Clark #define REG_A5XX_GDPM_CONFIG1					0x0000b80c
2571a26ae754SRob Clark 
2572a26ae754SRob Clark #define REG_A5XX_GDPM_CONFIG2					0x0000b80d
2573a26ae754SRob Clark 
2574a26ae754SRob Clark #define REG_A5XX_GDPM_INT_EN					0x0000b80f
2575a26ae754SRob Clark 
2576a26ae754SRob Clark #define REG_A5XX_GDPM_INT_MASK					0x0000b811
2577a26ae754SRob Clark 
2578a26ae754SRob Clark #define REG_A5XX_GPMU_BEC_ENABLE				0x0000b9a0
2579a26ae754SRob Clark 
2580a26ae754SRob Clark #define REG_A5XX_GPU_CS_SENSOR_GENERAL_STATUS			0x0000c41a
2581a26ae754SRob Clark 
2582a26ae754SRob Clark #define REG_A5XX_GPU_CS_AMP_CALIBRATION_STATUS1_0		0x0000c41d
2583a26ae754SRob Clark 
2584a26ae754SRob Clark #define REG_A5XX_GPU_CS_AMP_CALIBRATION_STATUS1_2		0x0000c41f
2585a26ae754SRob Clark 
2586a26ae754SRob Clark #define REG_A5XX_GPU_CS_AMP_CALIBRATION_STATUS1_4		0x0000c421
2587a26ae754SRob Clark 
2588a26ae754SRob Clark #define REG_A5XX_GPU_CS_ENABLE_REG				0x0000c520
2589a26ae754SRob Clark 
2590a26ae754SRob Clark #define REG_A5XX_GPU_CS_AMP_CALIBRATION_CONTROL1		0x0000c557
2591a26ae754SRob Clark 
2592a26ae754SRob Clark #define REG_A5XX_GRAS_CL_CNTL					0x0000e000
2593a26ae754SRob Clark 
2594a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E001					0x0000e001
2595a26ae754SRob Clark 
2596a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E004					0x0000e004
2597a26ae754SRob Clark 
2598a26ae754SRob Clark #define REG_A5XX_GRAS_CNTL					0x0000e005
2599a26ae754SRob Clark #define A5XX_GRAS_CNTL_VARYING					0x00000001
2600*52260ae4SRob Clark #define A5XX_GRAS_CNTL_UNK3					0x00000008
2601*52260ae4SRob Clark #define A5XX_GRAS_CNTL_XCOORD					0x00000040
2602*52260ae4SRob Clark #define A5XX_GRAS_CNTL_YCOORD					0x00000080
2603*52260ae4SRob Clark #define A5XX_GRAS_CNTL_ZCOORD					0x00000100
2604*52260ae4SRob Clark #define A5XX_GRAS_CNTL_WCOORD					0x00000200
2605a26ae754SRob Clark 
2606a26ae754SRob Clark #define REG_A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ			0x0000e006
2607a26ae754SRob Clark #define A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK		0x000003ff
2608a26ae754SRob Clark #define A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT		0
2609a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)
2610a26ae754SRob Clark {
2611a26ae754SRob Clark 	return ((val) << A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT) & A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK;
2612a26ae754SRob Clark }
2613a26ae754SRob Clark #define A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK		0x000ffc00
2614a26ae754SRob Clark #define A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT		10
2615a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)
2616a26ae754SRob Clark {
2617a26ae754SRob Clark 	return ((val) << A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT) & A5XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK;
2618a26ae754SRob Clark }
2619a26ae754SRob Clark 
2620a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_XOFFSET_0			0x0000e010
2621a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_XOFFSET_0__MASK			0xffffffff
2622a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT			0
2623a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_XOFFSET_0(float val)
2624a26ae754SRob Clark {
2625a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT) & A5XX_GRAS_CL_VPORT_XOFFSET_0__MASK;
2626a26ae754SRob Clark }
2627a26ae754SRob Clark 
2628a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_XSCALE_0				0x0000e011
2629a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_XSCALE_0__MASK			0xffffffff
2630a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_XSCALE_0__SHIFT			0
2631a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_XSCALE_0(float val)
2632a26ae754SRob Clark {
2633a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_XSCALE_0__SHIFT) & A5XX_GRAS_CL_VPORT_XSCALE_0__MASK;
2634a26ae754SRob Clark }
2635a26ae754SRob Clark 
2636a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_YOFFSET_0			0x0000e012
2637a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_YOFFSET_0__MASK			0xffffffff
2638a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT			0
2639a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_YOFFSET_0(float val)
2640a26ae754SRob Clark {
2641a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT) & A5XX_GRAS_CL_VPORT_YOFFSET_0__MASK;
2642a26ae754SRob Clark }
2643a26ae754SRob Clark 
2644a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_YSCALE_0				0x0000e013
2645a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_YSCALE_0__MASK			0xffffffff
2646a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_YSCALE_0__SHIFT			0
2647a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_YSCALE_0(float val)
2648a26ae754SRob Clark {
2649a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_YSCALE_0__SHIFT) & A5XX_GRAS_CL_VPORT_YSCALE_0__MASK;
2650a26ae754SRob Clark }
2651a26ae754SRob Clark 
2652a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_ZOFFSET_0			0x0000e014
2653a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_ZOFFSET_0__MASK			0xffffffff
2654a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT			0
2655a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_ZOFFSET_0(float val)
2656a26ae754SRob Clark {
2657a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT) & A5XX_GRAS_CL_VPORT_ZOFFSET_0__MASK;
2658a26ae754SRob Clark }
2659a26ae754SRob Clark 
2660a26ae754SRob Clark #define REG_A5XX_GRAS_CL_VPORT_ZSCALE_0				0x0000e015
2661a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_ZSCALE_0__MASK			0xffffffff
2662a26ae754SRob Clark #define A5XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT			0
2663a26ae754SRob Clark static inline uint32_t A5XX_GRAS_CL_VPORT_ZSCALE_0(float val)
2664a26ae754SRob Clark {
2665a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT) & A5XX_GRAS_CL_VPORT_ZSCALE_0__MASK;
2666a26ae754SRob Clark }
2667a26ae754SRob Clark 
2668a26ae754SRob Clark #define REG_A5XX_GRAS_SU_CNTL					0x0000e090
2669*52260ae4SRob Clark #define A5XX_GRAS_SU_CNTL_CULL_FRONT				0x00000001
2670*52260ae4SRob Clark #define A5XX_GRAS_SU_CNTL_CULL_BACK				0x00000002
2671a26ae754SRob Clark #define A5XX_GRAS_SU_CNTL_FRONT_CW				0x00000004
2672a26ae754SRob Clark #define A5XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK			0x000007f8
2673a26ae754SRob Clark #define A5XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT			3
2674a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)
2675a26ae754SRob Clark {
2676a26ae754SRob Clark 	return ((((int32_t)(val * 4.0))) << A5XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT) & A5XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK;
2677a26ae754SRob Clark }
2678a26ae754SRob Clark #define A5XX_GRAS_SU_CNTL_POLY_OFFSET				0x00000800
2679a26ae754SRob Clark #define A5XX_GRAS_SU_CNTL_MSAA_ENABLE				0x00002000
2680a26ae754SRob Clark 
2681a26ae754SRob Clark #define REG_A5XX_GRAS_SU_POINT_MINMAX				0x0000e091
2682a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_MINMAX_MIN__MASK			0x0000ffff
2683a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT			0
2684a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POINT_MINMAX_MIN(float val)
2685a26ae754SRob Clark {
2686a26ae754SRob Clark 	return ((((uint32_t)(val * 16.0))) << A5XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A5XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
2687a26ae754SRob Clark }
2688a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_MINMAX_MAX__MASK			0xffff0000
2689a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT			16
2690a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POINT_MINMAX_MAX(float val)
2691a26ae754SRob Clark {
2692a26ae754SRob Clark 	return ((((uint32_t)(val * 16.0))) << A5XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A5XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
2693a26ae754SRob Clark }
2694a26ae754SRob Clark 
2695a26ae754SRob Clark #define REG_A5XX_GRAS_SU_POINT_SIZE				0x0000e092
2696a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_SIZE__MASK				0xffffffff
2697a26ae754SRob Clark #define A5XX_GRAS_SU_POINT_SIZE__SHIFT				0
2698a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POINT_SIZE(float val)
2699a26ae754SRob Clark {
2700a26ae754SRob Clark 	return ((((int32_t)(val * 16.0))) << A5XX_GRAS_SU_POINT_SIZE__SHIFT) & A5XX_GRAS_SU_POINT_SIZE__MASK;
2701a26ae754SRob Clark }
2702a26ae754SRob Clark 
2703a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E093					0x0000e093
2704a26ae754SRob Clark 
2705a26ae754SRob Clark #define REG_A5XX_GRAS_SU_DEPTH_PLANE_CNTL			0x0000e094
2706*52260ae4SRob Clark #define A5XX_GRAS_SU_DEPTH_PLANE_CNTL_FRAG_WRITES_Z		0x00000001
2707*52260ae4SRob Clark #define A5XX_GRAS_SU_DEPTH_PLANE_CNTL_UNK1			0x00000002
2708a26ae754SRob Clark 
2709a26ae754SRob Clark #define REG_A5XX_GRAS_SU_POLY_OFFSET_SCALE			0x0000e095
2710a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_SCALE__MASK			0xffffffff
2711a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT			0
2712a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POLY_OFFSET_SCALE(float val)
2713a26ae754SRob Clark {
2714a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT) & A5XX_GRAS_SU_POLY_OFFSET_SCALE__MASK;
2715a26ae754SRob Clark }
2716a26ae754SRob Clark 
2717a26ae754SRob Clark #define REG_A5XX_GRAS_SU_POLY_OFFSET_OFFSET			0x0000e096
2718a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK			0xffffffff
2719a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT			0
2720a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
2721a26ae754SRob Clark {
2722a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A5XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
2723a26ae754SRob Clark }
2724a26ae754SRob Clark 
2725a26ae754SRob Clark #define REG_A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP		0x0000e097
2726a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK		0xffffffff
2727a26ae754SRob Clark #define A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT		0
2728a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)
2729a26ae754SRob Clark {
2730a26ae754SRob Clark 	return ((fui(val)) << A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT) & A5XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK;
2731a26ae754SRob Clark }
2732a26ae754SRob Clark 
2733a26ae754SRob Clark #define REG_A5XX_GRAS_SU_DEPTH_BUFFER_INFO			0x0000e098
2734a26ae754SRob Clark #define A5XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK	0x00000007
2735a26ae754SRob Clark #define A5XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT	0
2736a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a5xx_depth_format val)
2737a26ae754SRob Clark {
2738a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A5XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
2739a26ae754SRob Clark }
2740a26ae754SRob Clark 
2741a26ae754SRob Clark #define REG_A5XX_GRAS_SU_CONSERVATIVE_RAS_CNTL			0x0000e099
2742a26ae754SRob Clark 
2743a26ae754SRob Clark #define REG_A5XX_GRAS_SC_CNTL					0x0000e0a0
2744*52260ae4SRob Clark #define A5XX_GRAS_SC_CNTL_BINNING_PASS				0x00000001
2745a26ae754SRob Clark #define A5XX_GRAS_SC_CNTL_SAMPLES_PASSED			0x00008000
2746a26ae754SRob Clark 
2747a26ae754SRob Clark #define REG_A5XX_GRAS_SC_BIN_CNTL				0x0000e0a1
2748a26ae754SRob Clark 
2749a26ae754SRob Clark #define REG_A5XX_GRAS_SC_RAS_MSAA_CNTL				0x0000e0a2
2750a26ae754SRob Clark #define A5XX_GRAS_SC_RAS_MSAA_CNTL_SAMPLES__MASK		0x00000003
2751a26ae754SRob Clark #define A5XX_GRAS_SC_RAS_MSAA_CNTL_SAMPLES__SHIFT		0
2752a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
2753a26ae754SRob Clark {
2754a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_GRAS_SC_RAS_MSAA_CNTL_SAMPLES__MASK;
2755a26ae754SRob Clark }
2756a26ae754SRob Clark 
2757a26ae754SRob Clark #define REG_A5XX_GRAS_SC_DEST_MSAA_CNTL				0x0000e0a3
2758a26ae754SRob Clark #define A5XX_GRAS_SC_DEST_MSAA_CNTL_SAMPLES__MASK		0x00000003
2759a26ae754SRob Clark #define A5XX_GRAS_SC_DEST_MSAA_CNTL_SAMPLES__SHIFT		0
2760a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
2761a26ae754SRob Clark {
2762a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_GRAS_SC_DEST_MSAA_CNTL_SAMPLES__MASK;
2763a26ae754SRob Clark }
2764a26ae754SRob Clark #define A5XX_GRAS_SC_DEST_MSAA_CNTL_MSAA_DISABLE		0x00000004
2765a26ae754SRob Clark 
2766a26ae754SRob Clark #define REG_A5XX_GRAS_SC_SCREEN_SCISSOR_CNTL			0x0000e0a4
2767a26ae754SRob Clark 
2768a26ae754SRob Clark #define REG_A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0			0x0000e0aa
2769a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_WINDOW_OFFSET_DISABLE	0x80000000
2770a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__MASK		0x00007fff
2771a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__SHIFT		0
2772a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X(uint32_t val)
2773a26ae754SRob Clark {
2774a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__SHIFT) & A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_X__MASK;
2775a26ae754SRob Clark }
2776a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__MASK		0x7fff0000
2777a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__SHIFT		16
2778a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y(uint32_t val)
2779a26ae754SRob Clark {
2780a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__SHIFT) & A5XX_GRAS_SC_SCREEN_SCISSOR_TL_0_Y__MASK;
2781a26ae754SRob Clark }
2782a26ae754SRob Clark 
2783a26ae754SRob Clark #define REG_A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0			0x0000e0ab
2784a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_WINDOW_OFFSET_DISABLE	0x80000000
2785a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__MASK		0x00007fff
2786a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__SHIFT		0
2787a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X(uint32_t val)
2788a26ae754SRob Clark {
2789a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__SHIFT) & A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_X__MASK;
2790a26ae754SRob Clark }
2791a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__MASK		0x7fff0000
2792a26ae754SRob Clark #define A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__SHIFT		16
2793a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y(uint32_t val)
2794a26ae754SRob Clark {
2795a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__SHIFT) & A5XX_GRAS_SC_SCREEN_SCISSOR_BR_0_Y__MASK;
2796a26ae754SRob Clark }
2797a26ae754SRob Clark 
2798a26ae754SRob Clark #define REG_A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0			0x0000e0ca
2799a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_WINDOW_OFFSET_DISABLE	0x80000000
2800a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__MASK		0x00007fff
2801a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__SHIFT		0
2802a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X(uint32_t val)
2803a26ae754SRob Clark {
2804a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__SHIFT) & A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_X__MASK;
2805a26ae754SRob Clark }
2806a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__MASK		0x7fff0000
2807a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__SHIFT		16
2808a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y(uint32_t val)
2809a26ae754SRob Clark {
2810a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__SHIFT) & A5XX_GRAS_SC_VIEWPORT_SCISSOR_TL_0_Y__MASK;
2811a26ae754SRob Clark }
2812a26ae754SRob Clark 
2813a26ae754SRob Clark #define REG_A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0			0x0000e0cb
2814a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_WINDOW_OFFSET_DISABLE	0x80000000
2815a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__MASK		0x00007fff
2816a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__SHIFT		0
2817a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X(uint32_t val)
2818a26ae754SRob Clark {
2819a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__SHIFT) & A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_X__MASK;
2820a26ae754SRob Clark }
2821a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__MASK		0x7fff0000
2822a26ae754SRob Clark #define A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__SHIFT		16
2823a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y(uint32_t val)
2824a26ae754SRob Clark {
2825a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__SHIFT) & A5XX_GRAS_SC_VIEWPORT_SCISSOR_BR_0_Y__MASK;
2826a26ae754SRob Clark }
2827a26ae754SRob Clark 
2828a26ae754SRob Clark #define REG_A5XX_GRAS_SC_WINDOW_SCISSOR_TL			0x0000e0ea
2829a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE	0x80000000
2830a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK			0x00007fff
2831a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT			0
2832a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
2833a26ae754SRob Clark {
2834a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A5XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
2835a26ae754SRob Clark }
2836a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK			0x7fff0000
2837a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT			16
2838a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
2839a26ae754SRob Clark {
2840a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A5XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
2841a26ae754SRob Clark }
2842a26ae754SRob Clark 
2843a26ae754SRob Clark #define REG_A5XX_GRAS_SC_WINDOW_SCISSOR_BR			0x0000e0eb
2844a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_BR_WINDOW_OFFSET_DISABLE	0x80000000
2845a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK			0x00007fff
2846a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT			0
2847a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
2848a26ae754SRob Clark {
2849a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A5XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
2850a26ae754SRob Clark }
2851a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK			0x7fff0000
2852a26ae754SRob Clark #define A5XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT			16
2853a26ae754SRob Clark static inline uint32_t A5XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
2854a26ae754SRob Clark {
2855a26ae754SRob Clark 	return ((val) << A5XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A5XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
2856a26ae754SRob Clark }
2857a26ae754SRob Clark 
2858a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_CNTL					0x0000e100
2859*52260ae4SRob Clark #define A5XX_GRAS_LRZ_CNTL_ENABLE				0x00000001
2860*52260ae4SRob Clark #define A5XX_GRAS_LRZ_CNTL_LRZ_WRITE				0x00000002
2861*52260ae4SRob Clark #define A5XX_GRAS_LRZ_CNTL_GREATER				0x00000004
2862a26ae754SRob Clark 
2863a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_BUFFER_BASE_LO			0x0000e101
2864a26ae754SRob Clark 
2865a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_BUFFER_BASE_HI			0x0000e102
2866a26ae754SRob Clark 
2867a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_BUFFER_PITCH				0x0000e103
2868*52260ae4SRob Clark #define A5XX_GRAS_LRZ_BUFFER_PITCH__MASK			0xffffffff
2869*52260ae4SRob Clark #define A5XX_GRAS_LRZ_BUFFER_PITCH__SHIFT			0
2870*52260ae4SRob Clark static inline uint32_t A5XX_GRAS_LRZ_BUFFER_PITCH(uint32_t val)
2871*52260ae4SRob Clark {
2872*52260ae4SRob Clark 	return ((val >> 5) << A5XX_GRAS_LRZ_BUFFER_PITCH__SHIFT) & A5XX_GRAS_LRZ_BUFFER_PITCH__MASK;
2873*52260ae4SRob Clark }
2874a26ae754SRob Clark 
2875a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_LO		0x0000e104
2876a26ae754SRob Clark 
2877a26ae754SRob Clark #define REG_A5XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_HI		0x0000e105
2878a26ae754SRob Clark 
2879a26ae754SRob Clark #define REG_A5XX_RB_CNTL					0x0000e140
2880a26ae754SRob Clark #define A5XX_RB_CNTL_WIDTH__MASK				0x000000ff
2881a26ae754SRob Clark #define A5XX_RB_CNTL_WIDTH__SHIFT				0
2882a26ae754SRob Clark static inline uint32_t A5XX_RB_CNTL_WIDTH(uint32_t val)
2883a26ae754SRob Clark {
2884a26ae754SRob Clark 	return ((val >> 5) << A5XX_RB_CNTL_WIDTH__SHIFT) & A5XX_RB_CNTL_WIDTH__MASK;
2885a26ae754SRob Clark }
2886a26ae754SRob Clark #define A5XX_RB_CNTL_HEIGHT__MASK				0x0001fe00
2887a26ae754SRob Clark #define A5XX_RB_CNTL_HEIGHT__SHIFT				9
2888a26ae754SRob Clark static inline uint32_t A5XX_RB_CNTL_HEIGHT(uint32_t val)
2889a26ae754SRob Clark {
2890a26ae754SRob Clark 	return ((val >> 5) << A5XX_RB_CNTL_HEIGHT__SHIFT) & A5XX_RB_CNTL_HEIGHT__MASK;
2891a26ae754SRob Clark }
2892a26ae754SRob Clark #define A5XX_RB_CNTL_BYPASS					0x00020000
2893a26ae754SRob Clark 
2894a26ae754SRob Clark #define REG_A5XX_RB_RENDER_CNTL					0x0000e141
2895*52260ae4SRob Clark #define A5XX_RB_RENDER_CNTL_BINNING_PASS			0x00000001
2896a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_SAMPLES_PASSED			0x00000040
2897*52260ae4SRob Clark #define A5XX_RB_RENDER_CNTL_DISABLE_COLOR_PIPE			0x00000080
2898a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_DEPTH				0x00004000
2899a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_DEPTH2				0x00008000
2900a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_MRTS__MASK			0x00ff0000
2901a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT			16
2902a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_CNTL_FLAG_MRTS(uint32_t val)
2903a26ae754SRob Clark {
2904a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT) & A5XX_RB_RENDER_CNTL_FLAG_MRTS__MASK;
2905a26ae754SRob Clark }
2906a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_MRTS2__MASK			0xff000000
2907a26ae754SRob Clark #define A5XX_RB_RENDER_CNTL_FLAG_MRTS2__SHIFT			24
2908a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_CNTL_FLAG_MRTS2(uint32_t val)
2909a26ae754SRob Clark {
2910a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_CNTL_FLAG_MRTS2__SHIFT) & A5XX_RB_RENDER_CNTL_FLAG_MRTS2__MASK;
2911a26ae754SRob Clark }
2912a26ae754SRob Clark 
2913a26ae754SRob Clark #define REG_A5XX_RB_RAS_MSAA_CNTL				0x0000e142
2914a26ae754SRob Clark #define A5XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
2915a26ae754SRob Clark #define A5XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
2916a26ae754SRob Clark static inline uint32_t A5XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
2917a26ae754SRob Clark {
2918a26ae754SRob Clark 	return ((val) << A5XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK;
2919a26ae754SRob Clark }
2920a26ae754SRob Clark 
2921a26ae754SRob Clark #define REG_A5XX_RB_DEST_MSAA_CNTL				0x0000e143
2922a26ae754SRob Clark #define A5XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
2923a26ae754SRob Clark #define A5XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT			0
2924a26ae754SRob Clark static inline uint32_t A5XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
2925a26ae754SRob Clark {
2926a26ae754SRob Clark 	return ((val) << A5XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK;
2927a26ae754SRob Clark }
2928a26ae754SRob Clark #define A5XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
2929a26ae754SRob Clark 
2930a26ae754SRob Clark #define REG_A5XX_RB_RENDER_CONTROL0				0x0000e144
2931a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL0_VARYING				0x00000001
2932*52260ae4SRob Clark #define A5XX_RB_RENDER_CONTROL0_UNK3				0x00000008
2933a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL0_XCOORD				0x00000040
2934a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL0_YCOORD				0x00000080
2935a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL0_ZCOORD				0x00000100
2936a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL0_WCOORD				0x00000200
2937a26ae754SRob Clark 
2938a26ae754SRob Clark #define REG_A5XX_RB_RENDER_CONTROL1				0x0000e145
2939a26ae754SRob Clark #define A5XX_RB_RENDER_CONTROL1_FACENESS			0x00000002
2940a26ae754SRob Clark 
2941a26ae754SRob Clark #define REG_A5XX_RB_FS_OUTPUT_CNTL				0x0000e146
2942a26ae754SRob Clark #define A5XX_RB_FS_OUTPUT_CNTL_MRT__MASK			0x0000000f
2943a26ae754SRob Clark #define A5XX_RB_FS_OUTPUT_CNTL_MRT__SHIFT			0
2944a26ae754SRob Clark static inline uint32_t A5XX_RB_FS_OUTPUT_CNTL_MRT(uint32_t val)
2945a26ae754SRob Clark {
2946a26ae754SRob Clark 	return ((val) << A5XX_RB_FS_OUTPUT_CNTL_MRT__SHIFT) & A5XX_RB_FS_OUTPUT_CNTL_MRT__MASK;
2947a26ae754SRob Clark }
2948a26ae754SRob Clark #define A5XX_RB_FS_OUTPUT_CNTL_FRAG_WRITES_Z			0x00000020
2949a26ae754SRob Clark 
2950a26ae754SRob Clark #define REG_A5XX_RB_RENDER_COMPONENTS				0x0000e147
2951a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT0__MASK			0x0000000f
2952a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT0__SHIFT			0
2953a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)
2954a26ae754SRob Clark {
2955a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT0__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT0__MASK;
2956a26ae754SRob Clark }
2957a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT1__MASK			0x000000f0
2958a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT1__SHIFT			4
2959a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)
2960a26ae754SRob Clark {
2961a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT1__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT1__MASK;
2962a26ae754SRob Clark }
2963a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT2__MASK			0x00000f00
2964a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT2__SHIFT			8
2965a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)
2966a26ae754SRob Clark {
2967a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT2__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT2__MASK;
2968a26ae754SRob Clark }
2969a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT3__MASK			0x0000f000
2970a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT3__SHIFT			12
2971a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)
2972a26ae754SRob Clark {
2973a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT3__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT3__MASK;
2974a26ae754SRob Clark }
2975a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT4__MASK			0x000f0000
2976a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT4__SHIFT			16
2977a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)
2978a26ae754SRob Clark {
2979a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT4__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT4__MASK;
2980a26ae754SRob Clark }
2981a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT5__MASK			0x00f00000
2982a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT5__SHIFT			20
2983a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)
2984a26ae754SRob Clark {
2985a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT5__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT5__MASK;
2986a26ae754SRob Clark }
2987a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT6__MASK			0x0f000000
2988a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT6__SHIFT			24
2989a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)
2990a26ae754SRob Clark {
2991a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT6__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT6__MASK;
2992a26ae754SRob Clark }
2993a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT7__MASK			0xf0000000
2994a26ae754SRob Clark #define A5XX_RB_RENDER_COMPONENTS_RT7__SHIFT			28
2995a26ae754SRob Clark static inline uint32_t A5XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)
2996a26ae754SRob Clark {
2997a26ae754SRob Clark 	return ((val) << A5XX_RB_RENDER_COMPONENTS_RT7__SHIFT) & A5XX_RB_RENDER_COMPONENTS_RT7__MASK;
2998a26ae754SRob Clark }
2999a26ae754SRob Clark 
3000a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT(uint32_t i0) { return 0x0000e150 + 0x7*i0; }
3001a26ae754SRob Clark 
3002a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_CONTROL(uint32_t i0) { return 0x0000e150 + 0x7*i0; }
3003a26ae754SRob Clark #define A5XX_RB_MRT_CONTROL_BLEND				0x00000001
3004a26ae754SRob Clark #define A5XX_RB_MRT_CONTROL_BLEND2				0x00000002
3005a26ae754SRob Clark #define A5XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK		0x00000780
3006a26ae754SRob Clark #define A5XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT		7
3007a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
3008a26ae754SRob Clark {
3009a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A5XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
3010a26ae754SRob Clark }
3011a26ae754SRob Clark 
3012a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x0000e151 + 0x7*i0; }
3013a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK		0x0000001f
3014a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT		0
3015a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
3016a26ae754SRob Clark {
3017a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
3018a26ae754SRob Clark }
3019a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK	0x000000e0
3020a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT	5
3021a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
3022a26ae754SRob Clark {
3023a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
3024a26ae754SRob Clark }
3025a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK		0x00001f00
3026a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT	8
3027a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
3028a26ae754SRob Clark {
3029a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
3030a26ae754SRob Clark }
3031a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK	0x001f0000
3032a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT	16
3033a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
3034a26ae754SRob Clark {
3035a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
3036a26ae754SRob Clark }
3037a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK	0x00e00000
3038a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT	21
3039a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
3040a26ae754SRob Clark {
3041a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
3042a26ae754SRob Clark }
3043a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK	0x1f000000
3044a26ae754SRob Clark #define A5XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT	24
3045a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
3046a26ae754SRob Clark {
3047a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A5XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
3048a26ae754SRob Clark }
3049a26ae754SRob Clark 
3050a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x0000e152 + 0x7*i0; }
3051a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK			0x000000ff
3052a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT		0
3053a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a5xx_color_fmt val)
3054a26ae754SRob Clark {
3055a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A5XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
3056a26ae754SRob Clark }
3057a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK		0x00000300
3058a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT		8
3059a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a5xx_tile_mode val)
3060a26ae754SRob Clark {
3061a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A5XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
3062a26ae754SRob Clark }
3063a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK			0x00006000
3064a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT			13
3065a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
3066a26ae754SRob Clark {
3067a26ae754SRob Clark 	return ((val) << A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A5XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
3068a26ae754SRob Clark }
3069a26ae754SRob Clark #define A5XX_RB_MRT_BUF_INFO_COLOR_SRGB				0x00008000
3070a26ae754SRob Clark 
3071a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_PITCH(uint32_t i0) { return 0x0000e153 + 0x7*i0; }
3072a26ae754SRob Clark #define A5XX_RB_MRT_PITCH__MASK					0xffffffff
3073a26ae754SRob Clark #define A5XX_RB_MRT_PITCH__SHIFT				0
3074a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_PITCH(uint32_t val)
3075a26ae754SRob Clark {
3076a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_MRT_PITCH__SHIFT) & A5XX_RB_MRT_PITCH__MASK;
3077a26ae754SRob Clark }
3078a26ae754SRob Clark 
3079a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_ARRAY_PITCH(uint32_t i0) { return 0x0000e154 + 0x7*i0; }
3080a26ae754SRob Clark #define A5XX_RB_MRT_ARRAY_PITCH__MASK				0xffffffff
3081a26ae754SRob Clark #define A5XX_RB_MRT_ARRAY_PITCH__SHIFT				0
3082a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_ARRAY_PITCH(uint32_t val)
3083a26ae754SRob Clark {
3084a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_MRT_ARRAY_PITCH__SHIFT) & A5XX_RB_MRT_ARRAY_PITCH__MASK;
3085a26ae754SRob Clark }
3086a26ae754SRob Clark 
3087a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_BASE_LO(uint32_t i0) { return 0x0000e155 + 0x7*i0; }
3088a26ae754SRob Clark 
3089a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_BASE_HI(uint32_t i0) { return 0x0000e156 + 0x7*i0; }
3090a26ae754SRob Clark 
3091a26ae754SRob Clark #define REG_A5XX_RB_BLEND_RED					0x0000e1a0
3092a26ae754SRob Clark #define A5XX_RB_BLEND_RED_UINT__MASK				0x000000ff
3093a26ae754SRob Clark #define A5XX_RB_BLEND_RED_UINT__SHIFT				0
3094a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_RED_UINT(uint32_t val)
3095a26ae754SRob Clark {
3096a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_RED_UINT__SHIFT) & A5XX_RB_BLEND_RED_UINT__MASK;
3097a26ae754SRob Clark }
3098a26ae754SRob Clark #define A5XX_RB_BLEND_RED_SINT__MASK				0x0000ff00
3099a26ae754SRob Clark #define A5XX_RB_BLEND_RED_SINT__SHIFT				8
3100a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_RED_SINT(uint32_t val)
3101a26ae754SRob Clark {
3102a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_RED_SINT__SHIFT) & A5XX_RB_BLEND_RED_SINT__MASK;
3103a26ae754SRob Clark }
3104a26ae754SRob Clark #define A5XX_RB_BLEND_RED_FLOAT__MASK				0xffff0000
3105a26ae754SRob Clark #define A5XX_RB_BLEND_RED_FLOAT__SHIFT				16
3106a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_RED_FLOAT(float val)
3107a26ae754SRob Clark {
3108a26ae754SRob Clark 	return ((util_float_to_half(val)) << A5XX_RB_BLEND_RED_FLOAT__SHIFT) & A5XX_RB_BLEND_RED_FLOAT__MASK;
3109a26ae754SRob Clark }
3110a26ae754SRob Clark 
3111a26ae754SRob Clark #define REG_A5XX_RB_BLEND_RED_F32				0x0000e1a1
3112a26ae754SRob Clark #define A5XX_RB_BLEND_RED_F32__MASK				0xffffffff
3113a26ae754SRob Clark #define A5XX_RB_BLEND_RED_F32__SHIFT				0
3114a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_RED_F32(float val)
3115a26ae754SRob Clark {
3116a26ae754SRob Clark 	return ((fui(val)) << A5XX_RB_BLEND_RED_F32__SHIFT) & A5XX_RB_BLEND_RED_F32__MASK;
3117a26ae754SRob Clark }
3118a26ae754SRob Clark 
3119a26ae754SRob Clark #define REG_A5XX_RB_BLEND_GREEN					0x0000e1a2
3120a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_UINT__MASK				0x000000ff
3121a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_UINT__SHIFT				0
3122a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_GREEN_UINT(uint32_t val)
3123a26ae754SRob Clark {
3124a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_GREEN_UINT__SHIFT) & A5XX_RB_BLEND_GREEN_UINT__MASK;
3125a26ae754SRob Clark }
3126a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_SINT__MASK				0x0000ff00
3127a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_SINT__SHIFT				8
3128a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_GREEN_SINT(uint32_t val)
3129a26ae754SRob Clark {
3130a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_GREEN_SINT__SHIFT) & A5XX_RB_BLEND_GREEN_SINT__MASK;
3131a26ae754SRob Clark }
3132a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_FLOAT__MASK				0xffff0000
3133a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_FLOAT__SHIFT			16
3134a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_GREEN_FLOAT(float val)
3135a26ae754SRob Clark {
3136a26ae754SRob Clark 	return ((util_float_to_half(val)) << A5XX_RB_BLEND_GREEN_FLOAT__SHIFT) & A5XX_RB_BLEND_GREEN_FLOAT__MASK;
3137a26ae754SRob Clark }
3138a26ae754SRob Clark 
3139a26ae754SRob Clark #define REG_A5XX_RB_BLEND_GREEN_F32				0x0000e1a3
3140a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_F32__MASK				0xffffffff
3141a26ae754SRob Clark #define A5XX_RB_BLEND_GREEN_F32__SHIFT				0
3142a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_GREEN_F32(float val)
3143a26ae754SRob Clark {
3144a26ae754SRob Clark 	return ((fui(val)) << A5XX_RB_BLEND_GREEN_F32__SHIFT) & A5XX_RB_BLEND_GREEN_F32__MASK;
3145a26ae754SRob Clark }
3146a26ae754SRob Clark 
3147a26ae754SRob Clark #define REG_A5XX_RB_BLEND_BLUE					0x0000e1a4
3148a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_UINT__MASK				0x000000ff
3149a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_UINT__SHIFT				0
3150a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_BLUE_UINT(uint32_t val)
3151a26ae754SRob Clark {
3152a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_BLUE_UINT__SHIFT) & A5XX_RB_BLEND_BLUE_UINT__MASK;
3153a26ae754SRob Clark }
3154a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_SINT__MASK				0x0000ff00
3155a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_SINT__SHIFT				8
3156a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_BLUE_SINT(uint32_t val)
3157a26ae754SRob Clark {
3158a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_BLUE_SINT__SHIFT) & A5XX_RB_BLEND_BLUE_SINT__MASK;
3159a26ae754SRob Clark }
3160a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_FLOAT__MASK				0xffff0000
3161a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_FLOAT__SHIFT				16
3162a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_BLUE_FLOAT(float val)
3163a26ae754SRob Clark {
3164a26ae754SRob Clark 	return ((util_float_to_half(val)) << A5XX_RB_BLEND_BLUE_FLOAT__SHIFT) & A5XX_RB_BLEND_BLUE_FLOAT__MASK;
3165a26ae754SRob Clark }
3166a26ae754SRob Clark 
3167a26ae754SRob Clark #define REG_A5XX_RB_BLEND_BLUE_F32				0x0000e1a5
3168a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_F32__MASK				0xffffffff
3169a26ae754SRob Clark #define A5XX_RB_BLEND_BLUE_F32__SHIFT				0
3170a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_BLUE_F32(float val)
3171a26ae754SRob Clark {
3172a26ae754SRob Clark 	return ((fui(val)) << A5XX_RB_BLEND_BLUE_F32__SHIFT) & A5XX_RB_BLEND_BLUE_F32__MASK;
3173a26ae754SRob Clark }
3174a26ae754SRob Clark 
3175a26ae754SRob Clark #define REG_A5XX_RB_BLEND_ALPHA					0x0000e1a6
3176a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_UINT__MASK				0x000000ff
3177a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_UINT__SHIFT				0
3178a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_ALPHA_UINT(uint32_t val)
3179a26ae754SRob Clark {
3180a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_ALPHA_UINT__SHIFT) & A5XX_RB_BLEND_ALPHA_UINT__MASK;
3181a26ae754SRob Clark }
3182a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_SINT__MASK				0x0000ff00
3183a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_SINT__SHIFT				8
3184a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_ALPHA_SINT(uint32_t val)
3185a26ae754SRob Clark {
3186a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_ALPHA_SINT__SHIFT) & A5XX_RB_BLEND_ALPHA_SINT__MASK;
3187a26ae754SRob Clark }
3188a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_FLOAT__MASK				0xffff0000
3189a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_FLOAT__SHIFT			16
3190a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_ALPHA_FLOAT(float val)
3191a26ae754SRob Clark {
3192a26ae754SRob Clark 	return ((util_float_to_half(val)) << A5XX_RB_BLEND_ALPHA_FLOAT__SHIFT) & A5XX_RB_BLEND_ALPHA_FLOAT__MASK;
3193a26ae754SRob Clark }
3194a26ae754SRob Clark 
3195a26ae754SRob Clark #define REG_A5XX_RB_BLEND_ALPHA_F32				0x0000e1a7
3196a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_F32__MASK				0xffffffff
3197a26ae754SRob Clark #define A5XX_RB_BLEND_ALPHA_F32__SHIFT				0
3198a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_ALPHA_F32(float val)
3199a26ae754SRob Clark {
3200a26ae754SRob Clark 	return ((fui(val)) << A5XX_RB_BLEND_ALPHA_F32__SHIFT) & A5XX_RB_BLEND_ALPHA_F32__MASK;
3201a26ae754SRob Clark }
3202a26ae754SRob Clark 
3203a26ae754SRob Clark #define REG_A5XX_RB_ALPHA_CONTROL				0x0000e1a8
3204a26ae754SRob Clark #define A5XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK			0x000000ff
3205a26ae754SRob Clark #define A5XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT			0
3206a26ae754SRob Clark static inline uint32_t A5XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)
3207a26ae754SRob Clark {
3208a26ae754SRob Clark 	return ((val) << A5XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT) & A5XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK;
3209a26ae754SRob Clark }
3210a26ae754SRob Clark #define A5XX_RB_ALPHA_CONTROL_ALPHA_TEST			0x00000100
3211a26ae754SRob Clark #define A5XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK		0x00000e00
3212a26ae754SRob Clark #define A5XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT		9
3213a26ae754SRob Clark static inline uint32_t A5XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
3214a26ae754SRob Clark {
3215a26ae754SRob Clark 	return ((val) << A5XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A5XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK;
3216a26ae754SRob Clark }
3217a26ae754SRob Clark 
3218a26ae754SRob Clark #define REG_A5XX_RB_BLEND_CNTL					0x0000e1a9
3219a26ae754SRob Clark #define A5XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK			0x000000ff
3220a26ae754SRob Clark #define A5XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT			0
3221a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)
3222a26ae754SRob Clark {
3223a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT) & A5XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK;
3224a26ae754SRob Clark }
3225a26ae754SRob Clark #define A5XX_RB_BLEND_CNTL_INDEPENDENT_BLEND			0x00000100
3226a26ae754SRob Clark #define A5XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK			0xffff0000
3227a26ae754SRob Clark #define A5XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT			16
3228a26ae754SRob Clark static inline uint32_t A5XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)
3229a26ae754SRob Clark {
3230a26ae754SRob Clark 	return ((val) << A5XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT) & A5XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK;
3231a26ae754SRob Clark }
3232a26ae754SRob Clark 
3233a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_PLANE_CNTL				0x0000e1b0
3234a26ae754SRob Clark #define A5XX_RB_DEPTH_PLANE_CNTL_FRAG_WRITES_Z			0x00000001
3235*52260ae4SRob Clark #define A5XX_RB_DEPTH_PLANE_CNTL_UNK1				0x00000002
3236a26ae754SRob Clark 
3237a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_CNTL					0x0000e1b1
3238a26ae754SRob Clark #define A5XX_RB_DEPTH_CNTL_Z_ENABLE				0x00000001
3239a26ae754SRob Clark #define A5XX_RB_DEPTH_CNTL_Z_WRITE_ENABLE			0x00000002
3240a26ae754SRob Clark #define A5XX_RB_DEPTH_CNTL_ZFUNC__MASK				0x0000001c
3241a26ae754SRob Clark #define A5XX_RB_DEPTH_CNTL_ZFUNC__SHIFT				2
3242a26ae754SRob Clark static inline uint32_t A5XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)
3243a26ae754SRob Clark {
3244a26ae754SRob Clark 	return ((val) << A5XX_RB_DEPTH_CNTL_ZFUNC__SHIFT) & A5XX_RB_DEPTH_CNTL_ZFUNC__MASK;
3245a26ae754SRob Clark }
3246a26ae754SRob Clark #define A5XX_RB_DEPTH_CNTL_Z_TEST_ENABLE			0x00000040
3247a26ae754SRob Clark 
3248a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_BUFFER_INFO				0x0000e1b2
3249a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK		0x00000007
3250a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT		0
3251a26ae754SRob Clark static inline uint32_t A5XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a5xx_depth_format val)
3252a26ae754SRob Clark {
3253a26ae754SRob Clark 	return ((val) << A5XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A5XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
3254a26ae754SRob Clark }
3255a26ae754SRob Clark 
3256a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_BUFFER_BASE_LO			0x0000e1b3
3257a26ae754SRob Clark 
3258a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_BUFFER_BASE_HI			0x0000e1b4
3259a26ae754SRob Clark 
3260a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_BUFFER_PITCH				0x0000e1b5
3261a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_PITCH__MASK			0xffffffff
3262a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_PITCH__SHIFT			0
3263a26ae754SRob Clark static inline uint32_t A5XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)
3264a26ae754SRob Clark {
3265*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_DEPTH_BUFFER_PITCH__SHIFT) & A5XX_RB_DEPTH_BUFFER_PITCH__MASK;
3266a26ae754SRob Clark }
3267a26ae754SRob Clark 
3268a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH			0x0000e1b6
3269a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK			0xffffffff
3270a26ae754SRob Clark #define A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT			0
3271a26ae754SRob Clark static inline uint32_t A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)
3272a26ae754SRob Clark {
3273*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT) & A5XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK;
3274a26ae754SRob Clark }
3275a26ae754SRob Clark 
3276a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_CONTROL				0x0000e1c0
3277a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_STENCIL_ENABLE			0x00000001
3278a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF		0x00000002
3279a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_STENCIL_READ			0x00000004
3280a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FUNC__MASK			0x00000700
3281a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FUNC__SHIFT			8
3282a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
3283a26ae754SRob Clark {
3284a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A5XX_RB_STENCIL_CONTROL_FUNC__MASK;
3285a26ae754SRob Clark }
3286a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FAIL__MASK			0x00003800
3287a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FAIL__SHIFT			11
3288a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
3289a26ae754SRob Clark {
3290a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A5XX_RB_STENCIL_CONTROL_FAIL__MASK;
3291a26ae754SRob Clark }
3292a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZPASS__MASK			0x0001c000
3293a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZPASS__SHIFT			14
3294a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
3295a26ae754SRob Clark {
3296a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A5XX_RB_STENCIL_CONTROL_ZPASS__MASK;
3297a26ae754SRob Clark }
3298a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZFAIL__MASK			0x000e0000
3299a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT			17
3300a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
3301a26ae754SRob Clark {
3302a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A5XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
3303a26ae754SRob Clark }
3304a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FUNC_BF__MASK			0x00700000
3305a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT			20
3306a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
3307a26ae754SRob Clark {
3308a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A5XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
3309a26ae754SRob Clark }
3310a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FAIL_BF__MASK			0x03800000
3311a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT			23
3312a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
3313a26ae754SRob Clark {
3314a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A5XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
3315a26ae754SRob Clark }
3316a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK			0x1c000000
3317a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT			26
3318a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
3319a26ae754SRob Clark {
3320a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A5XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
3321a26ae754SRob Clark }
3322a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK			0xe0000000
3323a26ae754SRob Clark #define A5XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT			29
3324a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
3325a26ae754SRob Clark {
3326a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A5XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
3327a26ae754SRob Clark }
3328a26ae754SRob Clark 
3329a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_INFO				0x0000e1c1
3330a26ae754SRob Clark #define A5XX_RB_STENCIL_INFO_SEPARATE_STENCIL			0x00000001
3331a26ae754SRob Clark 
3332a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_BASE_LO				0x0000e1c2
3333a26ae754SRob Clark 
3334a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_BASE_HI				0x0000e1c3
3335a26ae754SRob Clark 
3336a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_PITCH				0x0000e1c4
3337a26ae754SRob Clark #define A5XX_RB_STENCIL_PITCH__MASK				0xffffffff
3338a26ae754SRob Clark #define A5XX_RB_STENCIL_PITCH__SHIFT				0
3339a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_PITCH(uint32_t val)
3340a26ae754SRob Clark {
3341a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_STENCIL_PITCH__SHIFT) & A5XX_RB_STENCIL_PITCH__MASK;
3342a26ae754SRob Clark }
3343a26ae754SRob Clark 
3344a26ae754SRob Clark #define REG_A5XX_RB_STENCIL_ARRAY_PITCH				0x0000e1c5
3345a26ae754SRob Clark #define A5XX_RB_STENCIL_ARRAY_PITCH__MASK			0xffffffff
3346a26ae754SRob Clark #define A5XX_RB_STENCIL_ARRAY_PITCH__SHIFT			0
3347a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCIL_ARRAY_PITCH(uint32_t val)
3348a26ae754SRob Clark {
3349a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_STENCIL_ARRAY_PITCH__SHIFT) & A5XX_RB_STENCIL_ARRAY_PITCH__MASK;
3350a26ae754SRob Clark }
3351a26ae754SRob Clark 
3352a26ae754SRob Clark #define REG_A5XX_RB_STENCILREFMASK				0x0000e1c6
3353a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILREF__MASK			0x000000ff
3354a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILREF__SHIFT		0
3355a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCILREFMASK_STENCILREF(uint32_t val)
3356a26ae754SRob Clark {
3357a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCILREFMASK_STENCILREF__SHIFT) & A5XX_RB_STENCILREFMASK_STENCILREF__MASK;
3358a26ae754SRob Clark }
3359a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILMASK__MASK		0x0000ff00
3360a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILMASK__SHIFT		8
3361a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCILREFMASK_STENCILMASK(uint32_t val)
3362a26ae754SRob Clark {
3363a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCILREFMASK_STENCILMASK__SHIFT) & A5XX_RB_STENCILREFMASK_STENCILMASK__MASK;
3364a26ae754SRob Clark }
3365a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK		0x00ff0000
3366a26ae754SRob Clark #define A5XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT		16
3367a26ae754SRob Clark static inline uint32_t A5XX_RB_STENCILREFMASK_STENCILWRITEMASK(uint32_t val)
3368a26ae754SRob Clark {
3369a26ae754SRob Clark 	return ((val) << A5XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT) & A5XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK;
3370a26ae754SRob Clark }
3371a26ae754SRob Clark 
3372a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E1C7					0x0000e1c7
3373a26ae754SRob Clark 
3374a26ae754SRob Clark #define REG_A5XX_RB_WINDOW_OFFSET				0x0000e1d0
3375a26ae754SRob Clark #define A5XX_RB_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE		0x80000000
3376a26ae754SRob Clark #define A5XX_RB_WINDOW_OFFSET_X__MASK				0x00007fff
3377a26ae754SRob Clark #define A5XX_RB_WINDOW_OFFSET_X__SHIFT				0
3378a26ae754SRob Clark static inline uint32_t A5XX_RB_WINDOW_OFFSET_X(uint32_t val)
3379a26ae754SRob Clark {
3380a26ae754SRob Clark 	return ((val) << A5XX_RB_WINDOW_OFFSET_X__SHIFT) & A5XX_RB_WINDOW_OFFSET_X__MASK;
3381a26ae754SRob Clark }
3382a26ae754SRob Clark #define A5XX_RB_WINDOW_OFFSET_Y__MASK				0x7fff0000
3383a26ae754SRob Clark #define A5XX_RB_WINDOW_OFFSET_Y__SHIFT				16
3384a26ae754SRob Clark static inline uint32_t A5XX_RB_WINDOW_OFFSET_Y(uint32_t val)
3385a26ae754SRob Clark {
3386a26ae754SRob Clark 	return ((val) << A5XX_RB_WINDOW_OFFSET_Y__SHIFT) & A5XX_RB_WINDOW_OFFSET_Y__MASK;
3387a26ae754SRob Clark }
3388a26ae754SRob Clark 
3389*52260ae4SRob Clark #define REG_A5XX_RB_SAMPLE_COUNT_CONTROL			0x0000e1d1
3390*52260ae4SRob Clark #define A5XX_RB_SAMPLE_COUNT_CONTROL_COPY			0x00000002
3391*52260ae4SRob Clark 
3392a26ae754SRob Clark #define REG_A5XX_RB_BLIT_CNTL					0x0000e210
3393*52260ae4SRob Clark #define A5XX_RB_BLIT_CNTL_BUF__MASK				0x0000000f
3394a26ae754SRob Clark #define A5XX_RB_BLIT_CNTL_BUF__SHIFT				0
3395a26ae754SRob Clark static inline uint32_t A5XX_RB_BLIT_CNTL_BUF(enum a5xx_blit_buf val)
3396a26ae754SRob Clark {
3397a26ae754SRob Clark 	return ((val) << A5XX_RB_BLIT_CNTL_BUF__SHIFT) & A5XX_RB_BLIT_CNTL_BUF__MASK;
3398a26ae754SRob Clark }
3399a26ae754SRob Clark 
3400a26ae754SRob Clark #define REG_A5XX_RB_RESOLVE_CNTL_1				0x0000e211
3401a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_1_WINDOW_OFFSET_DISABLE		0x80000000
3402a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_1_X__MASK				0x00007fff
3403a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_1_X__SHIFT				0
3404a26ae754SRob Clark static inline uint32_t A5XX_RB_RESOLVE_CNTL_1_X(uint32_t val)
3405a26ae754SRob Clark {
3406a26ae754SRob Clark 	return ((val) << A5XX_RB_RESOLVE_CNTL_1_X__SHIFT) & A5XX_RB_RESOLVE_CNTL_1_X__MASK;
3407a26ae754SRob Clark }
3408a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_1_Y__MASK				0x7fff0000
3409a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_1_Y__SHIFT				16
3410a26ae754SRob Clark static inline uint32_t A5XX_RB_RESOLVE_CNTL_1_Y(uint32_t val)
3411a26ae754SRob Clark {
3412a26ae754SRob Clark 	return ((val) << A5XX_RB_RESOLVE_CNTL_1_Y__SHIFT) & A5XX_RB_RESOLVE_CNTL_1_Y__MASK;
3413a26ae754SRob Clark }
3414a26ae754SRob Clark 
3415a26ae754SRob Clark #define REG_A5XX_RB_RESOLVE_CNTL_2				0x0000e212
3416a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_2_WINDOW_OFFSET_DISABLE		0x80000000
3417a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_2_X__MASK				0x00007fff
3418a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_2_X__SHIFT				0
3419a26ae754SRob Clark static inline uint32_t A5XX_RB_RESOLVE_CNTL_2_X(uint32_t val)
3420a26ae754SRob Clark {
3421a26ae754SRob Clark 	return ((val) << A5XX_RB_RESOLVE_CNTL_2_X__SHIFT) & A5XX_RB_RESOLVE_CNTL_2_X__MASK;
3422a26ae754SRob Clark }
3423a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_2_Y__MASK				0x7fff0000
3424a26ae754SRob Clark #define A5XX_RB_RESOLVE_CNTL_2_Y__SHIFT				16
3425a26ae754SRob Clark static inline uint32_t A5XX_RB_RESOLVE_CNTL_2_Y(uint32_t val)
3426a26ae754SRob Clark {
3427a26ae754SRob Clark 	return ((val) << A5XX_RB_RESOLVE_CNTL_2_Y__SHIFT) & A5XX_RB_RESOLVE_CNTL_2_Y__MASK;
3428a26ae754SRob Clark }
3429a26ae754SRob Clark 
3430a26ae754SRob Clark #define REG_A5XX_RB_RESOLVE_CNTL_3				0x0000e213
3431a26ae754SRob Clark 
3432a26ae754SRob Clark #define REG_A5XX_RB_BLIT_DST_LO					0x0000e214
3433a26ae754SRob Clark 
3434a26ae754SRob Clark #define REG_A5XX_RB_BLIT_DST_HI					0x0000e215
3435a26ae754SRob Clark 
3436a26ae754SRob Clark #define REG_A5XX_RB_BLIT_DST_PITCH				0x0000e216
3437a26ae754SRob Clark #define A5XX_RB_BLIT_DST_PITCH__MASK				0xffffffff
3438a26ae754SRob Clark #define A5XX_RB_BLIT_DST_PITCH__SHIFT				0
3439a26ae754SRob Clark static inline uint32_t A5XX_RB_BLIT_DST_PITCH(uint32_t val)
3440a26ae754SRob Clark {
3441a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_BLIT_DST_PITCH__SHIFT) & A5XX_RB_BLIT_DST_PITCH__MASK;
3442a26ae754SRob Clark }
3443a26ae754SRob Clark 
3444a26ae754SRob Clark #define REG_A5XX_RB_BLIT_DST_ARRAY_PITCH			0x0000e217
3445a26ae754SRob Clark #define A5XX_RB_BLIT_DST_ARRAY_PITCH__MASK			0xffffffff
3446a26ae754SRob Clark #define A5XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT			0
3447a26ae754SRob Clark static inline uint32_t A5XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)
3448a26ae754SRob Clark {
3449a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT) & A5XX_RB_BLIT_DST_ARRAY_PITCH__MASK;
3450a26ae754SRob Clark }
3451a26ae754SRob Clark 
3452a26ae754SRob Clark #define REG_A5XX_RB_CLEAR_COLOR_DW0				0x0000e218
3453a26ae754SRob Clark 
3454a26ae754SRob Clark #define REG_A5XX_RB_CLEAR_COLOR_DW1				0x0000e219
3455a26ae754SRob Clark 
3456a26ae754SRob Clark #define REG_A5XX_RB_CLEAR_COLOR_DW2				0x0000e21a
3457a26ae754SRob Clark 
3458a26ae754SRob Clark #define REG_A5XX_RB_CLEAR_COLOR_DW3				0x0000e21b
3459a26ae754SRob Clark 
3460a26ae754SRob Clark #define REG_A5XX_RB_CLEAR_CNTL					0x0000e21c
3461a26ae754SRob Clark #define A5XX_RB_CLEAR_CNTL_FAST_CLEAR				0x00000002
3462a26ae754SRob Clark #define A5XX_RB_CLEAR_CNTL_MASK__MASK				0x000000f0
3463a26ae754SRob Clark #define A5XX_RB_CLEAR_CNTL_MASK__SHIFT				4
3464a26ae754SRob Clark static inline uint32_t A5XX_RB_CLEAR_CNTL_MASK(uint32_t val)
3465a26ae754SRob Clark {
3466a26ae754SRob Clark 	return ((val) << A5XX_RB_CLEAR_CNTL_MASK__SHIFT) & A5XX_RB_CLEAR_CNTL_MASK__MASK;
3467a26ae754SRob Clark }
3468a26ae754SRob Clark 
3469a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_FLAG_BUFFER_BASE_LO			0x0000e240
3470a26ae754SRob Clark 
3471a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_FLAG_BUFFER_BASE_HI			0x0000e241
3472a26ae754SRob Clark 
3473a26ae754SRob Clark #define REG_A5XX_RB_DEPTH_FLAG_BUFFER_PITCH			0x0000e242
3474a26ae754SRob Clark 
3475a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_FLAG_BUFFER(uint32_t i0) { return 0x0000e243 + 0x4*i0; }
3476a26ae754SRob Clark 
3477a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_FLAG_BUFFER_ADDR_LO(uint32_t i0) { return 0x0000e243 + 0x4*i0; }
3478a26ae754SRob Clark 
3479a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_FLAG_BUFFER_ADDR_HI(uint32_t i0) { return 0x0000e244 + 0x4*i0; }
3480a26ae754SRob Clark 
3481a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0) { return 0x0000e245 + 0x4*i0; }
3482a26ae754SRob Clark #define A5XX_RB_MRT_FLAG_BUFFER_PITCH__MASK			0xffffffff
3483a26ae754SRob Clark #define A5XX_RB_MRT_FLAG_BUFFER_PITCH__SHIFT			0
3484a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t val)
3485a26ae754SRob Clark {
3486a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_MRT_FLAG_BUFFER_PITCH__SHIFT) & A5XX_RB_MRT_FLAG_BUFFER_PITCH__MASK;
3487a26ae754SRob Clark }
3488a26ae754SRob Clark 
3489a26ae754SRob Clark static inline uint32_t REG_A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH(uint32_t i0) { return 0x0000e246 + 0x4*i0; }
3490a26ae754SRob Clark #define A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH__MASK		0xffffffff
3491a26ae754SRob Clark #define A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH__SHIFT		0
3492a26ae754SRob Clark static inline uint32_t A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)
3493a26ae754SRob Clark {
3494a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A5XX_RB_MRT_FLAG_BUFFER_ARRAY_PITCH__MASK;
3495a26ae754SRob Clark }
3496a26ae754SRob Clark 
3497a26ae754SRob Clark #define REG_A5XX_RB_BLIT_FLAG_DST_LO				0x0000e263
3498a26ae754SRob Clark 
3499a26ae754SRob Clark #define REG_A5XX_RB_BLIT_FLAG_DST_HI				0x0000e264
3500a26ae754SRob Clark 
3501a26ae754SRob Clark #define REG_A5XX_RB_BLIT_FLAG_DST_PITCH				0x0000e265
3502a26ae754SRob Clark #define A5XX_RB_BLIT_FLAG_DST_PITCH__MASK			0xffffffff
3503a26ae754SRob Clark #define A5XX_RB_BLIT_FLAG_DST_PITCH__SHIFT			0
3504a26ae754SRob Clark static inline uint32_t A5XX_RB_BLIT_FLAG_DST_PITCH(uint32_t val)
3505a26ae754SRob Clark {
3506a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_BLIT_FLAG_DST_PITCH__SHIFT) & A5XX_RB_BLIT_FLAG_DST_PITCH__MASK;
3507a26ae754SRob Clark }
3508a26ae754SRob Clark 
3509a26ae754SRob Clark #define REG_A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH			0x0000e266
3510a26ae754SRob Clark #define A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH__MASK			0xffffffff
3511a26ae754SRob Clark #define A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH__SHIFT		0
3512a26ae754SRob Clark static inline uint32_t A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH(uint32_t val)
3513a26ae754SRob Clark {
3514a26ae754SRob Clark 	return ((val >> 6) << A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH__SHIFT) & A5XX_RB_BLIT_FLAG_DST_ARRAY_PITCH__MASK;
3515a26ae754SRob Clark }
3516a26ae754SRob Clark 
3517*52260ae4SRob Clark #define REG_A5XX_RB_SAMPLE_COUNT_ADDR_LO			0x0000e267
3518*52260ae4SRob Clark 
3519*52260ae4SRob Clark #define REG_A5XX_RB_SAMPLE_COUNT_ADDR_HI			0x0000e268
3520*52260ae4SRob Clark 
3521a26ae754SRob Clark #define REG_A5XX_VPC_CNTL_0					0x0000e280
3522a26ae754SRob Clark #define A5XX_VPC_CNTL_0_STRIDE_IN_VPC__MASK			0x0000007f
3523a26ae754SRob Clark #define A5XX_VPC_CNTL_0_STRIDE_IN_VPC__SHIFT			0
3524a26ae754SRob Clark static inline uint32_t A5XX_VPC_CNTL_0_STRIDE_IN_VPC(uint32_t val)
3525a26ae754SRob Clark {
3526a26ae754SRob Clark 	return ((val) << A5XX_VPC_CNTL_0_STRIDE_IN_VPC__SHIFT) & A5XX_VPC_CNTL_0_STRIDE_IN_VPC__MASK;
3527a26ae754SRob Clark }
3528a26ae754SRob Clark #define A5XX_VPC_CNTL_0_VARYING					0x00000800
3529a26ae754SRob Clark 
3530a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x0000e282 + 0x1*i0; }
3531a26ae754SRob Clark 
3532a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x0000e282 + 0x1*i0; }
3533a26ae754SRob Clark 
3534a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x0000e28a + 0x1*i0; }
3535a26ae754SRob Clark 
3536a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x0000e28a + 0x1*i0; }
3537a26ae754SRob Clark 
3538a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E292					0x0000e292
3539a26ae754SRob Clark 
3540a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E293					0x0000e293
3541a26ae754SRob Clark 
3542a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VAR(uint32_t i0) { return 0x0000e294 + 0x1*i0; }
3543a26ae754SRob Clark 
3544a26ae754SRob Clark static inline uint32_t REG_A5XX_VPC_VAR_DISABLE(uint32_t i0) { return 0x0000e294 + 0x1*i0; }
3545a26ae754SRob Clark 
3546a26ae754SRob Clark #define REG_A5XX_VPC_GS_SIV_CNTL				0x0000e298
3547a26ae754SRob Clark 
3548a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E29A					0x0000e29a
3549a26ae754SRob Clark 
3550a26ae754SRob Clark #define REG_A5XX_VPC_PACK					0x0000e29d
3551a26ae754SRob Clark #define A5XX_VPC_PACK_NUMNONPOSVAR__MASK			0x000000ff
3552a26ae754SRob Clark #define A5XX_VPC_PACK_NUMNONPOSVAR__SHIFT			0
3553a26ae754SRob Clark static inline uint32_t A5XX_VPC_PACK_NUMNONPOSVAR(uint32_t val)
3554a26ae754SRob Clark {
3555a26ae754SRob Clark 	return ((val) << A5XX_VPC_PACK_NUMNONPOSVAR__SHIFT) & A5XX_VPC_PACK_NUMNONPOSVAR__MASK;
3556a26ae754SRob Clark }
3557*52260ae4SRob Clark #define A5XX_VPC_PACK_PSIZELOC__MASK				0x0000ff00
3558*52260ae4SRob Clark #define A5XX_VPC_PACK_PSIZELOC__SHIFT				8
3559*52260ae4SRob Clark static inline uint32_t A5XX_VPC_PACK_PSIZELOC(uint32_t val)
3560*52260ae4SRob Clark {
3561*52260ae4SRob Clark 	return ((val) << A5XX_VPC_PACK_PSIZELOC__SHIFT) & A5XX_VPC_PACK_PSIZELOC__MASK;
3562*52260ae4SRob Clark }
3563a26ae754SRob Clark 
3564a26ae754SRob Clark #define REG_A5XX_VPC_FS_PRIMITIVEID_CNTL			0x0000e2a0
3565a26ae754SRob Clark 
3566*52260ae4SRob Clark #define REG_A5XX_VPC_SO_BUF_CNTL				0x0000e2a1
3567*52260ae4SRob Clark #define A5XX_VPC_SO_BUF_CNTL_BUF0				0x00000001
3568*52260ae4SRob Clark #define A5XX_VPC_SO_BUF_CNTL_BUF1				0x00000008
3569*52260ae4SRob Clark #define A5XX_VPC_SO_BUF_CNTL_BUF2				0x00000040
3570*52260ae4SRob Clark #define A5XX_VPC_SO_BUF_CNTL_BUF3				0x00000200
3571*52260ae4SRob Clark #define A5XX_VPC_SO_BUF_CNTL_ENABLE				0x00008000
3572a26ae754SRob Clark 
3573a26ae754SRob Clark #define REG_A5XX_VPC_SO_OVERRIDE				0x0000e2a2
3574*52260ae4SRob Clark #define A5XX_VPC_SO_OVERRIDE_SO_DISABLE				0x00000001
3575a26ae754SRob Clark 
3576*52260ae4SRob Clark #define REG_A5XX_VPC_SO_CNTL					0x0000e2a3
3577*52260ae4SRob Clark #define A5XX_VPC_SO_CNTL_ENABLE					0x00010000
3578a26ae754SRob Clark 
3579*52260ae4SRob Clark #define REG_A5XX_VPC_SO_PROG					0x0000e2a4
3580*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_A_BUF__MASK				0x00000003
3581*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_A_BUF__SHIFT				0
3582*52260ae4SRob Clark static inline uint32_t A5XX_VPC_SO_PROG_A_BUF(uint32_t val)
3583*52260ae4SRob Clark {
3584*52260ae4SRob Clark 	return ((val) << A5XX_VPC_SO_PROG_A_BUF__SHIFT) & A5XX_VPC_SO_PROG_A_BUF__MASK;
3585*52260ae4SRob Clark }
3586*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_A_OFF__MASK				0x000007fc
3587*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_A_OFF__SHIFT				2
3588*52260ae4SRob Clark static inline uint32_t A5XX_VPC_SO_PROG_A_OFF(uint32_t val)
3589*52260ae4SRob Clark {
3590*52260ae4SRob Clark 	return ((val >> 2) << A5XX_VPC_SO_PROG_A_OFF__SHIFT) & A5XX_VPC_SO_PROG_A_OFF__MASK;
3591*52260ae4SRob Clark }
3592*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_A_EN					0x00000800
3593*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_B_BUF__MASK				0x00003000
3594*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_B_BUF__SHIFT				12
3595*52260ae4SRob Clark static inline uint32_t A5XX_VPC_SO_PROG_B_BUF(uint32_t val)
3596*52260ae4SRob Clark {
3597*52260ae4SRob Clark 	return ((val) << A5XX_VPC_SO_PROG_B_BUF__SHIFT) & A5XX_VPC_SO_PROG_B_BUF__MASK;
3598*52260ae4SRob Clark }
3599*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_B_OFF__MASK				0x007fc000
3600*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_B_OFF__SHIFT				14
3601*52260ae4SRob Clark static inline uint32_t A5XX_VPC_SO_PROG_B_OFF(uint32_t val)
3602*52260ae4SRob Clark {
3603*52260ae4SRob Clark 	return ((val >> 2) << A5XX_VPC_SO_PROG_B_OFF__SHIFT) & A5XX_VPC_SO_PROG_B_OFF__MASK;
3604*52260ae4SRob Clark }
3605*52260ae4SRob Clark #define A5XX_VPC_SO_PROG_B_EN					0x00800000
3606a26ae754SRob Clark 
3607*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO(uint32_t i0) { return 0x0000e2a7 + 0x7*i0; }
3608a26ae754SRob Clark 
3609*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_BUFFER_BASE_LO(uint32_t i0) { return 0x0000e2a7 + 0x7*i0; }
3610a26ae754SRob Clark 
3611*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_BUFFER_BASE_HI(uint32_t i0) { return 0x0000e2a8 + 0x7*i0; }
3612a26ae754SRob Clark 
3613*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_BUFFER_SIZE(uint32_t i0) { return 0x0000e2a9 + 0x7*i0; }
3614a26ae754SRob Clark 
3615*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_NCOMP(uint32_t i0) { return 0x0000e2aa + 0x7*i0; }
3616a26ae754SRob Clark 
3617*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_BUFFER_OFFSET(uint32_t i0) { return 0x0000e2ab + 0x7*i0; }
3618a26ae754SRob Clark 
3619*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_FLUSH_BASE_LO(uint32_t i0) { return 0x0000e2ac + 0x7*i0; }
3620a26ae754SRob Clark 
3621*52260ae4SRob Clark static inline uint32_t REG_A5XX_VPC_SO_FLUSH_BASE_HI(uint32_t i0) { return 0x0000e2ad + 0x7*i0; }
3622a26ae754SRob Clark 
3623a26ae754SRob Clark #define REG_A5XX_PC_PRIMITIVE_CNTL				0x0000e384
3624a26ae754SRob Clark #define A5XX_PC_PRIMITIVE_CNTL_STRIDE_IN_VPC__MASK		0x0000007f
3625a26ae754SRob Clark #define A5XX_PC_PRIMITIVE_CNTL_STRIDE_IN_VPC__SHIFT		0
3626a26ae754SRob Clark static inline uint32_t A5XX_PC_PRIMITIVE_CNTL_STRIDE_IN_VPC(uint32_t val)
3627a26ae754SRob Clark {
3628a26ae754SRob Clark 	return ((val) << A5XX_PC_PRIMITIVE_CNTL_STRIDE_IN_VPC__SHIFT) & A5XX_PC_PRIMITIVE_CNTL_STRIDE_IN_VPC__MASK;
3629a26ae754SRob Clark }
3630*52260ae4SRob Clark #define A5XX_PC_PRIMITIVE_CNTL_PROVOKING_VTX_LAST		0x00000400
3631a26ae754SRob Clark 
3632a26ae754SRob Clark #define REG_A5XX_PC_PRIM_VTX_CNTL				0x0000e385
3633a26ae754SRob Clark #define A5XX_PC_PRIM_VTX_CNTL_PSIZE				0x00000800
3634a26ae754SRob Clark 
3635a26ae754SRob Clark #define REG_A5XX_PC_RASTER_CNTL					0x0000e388
3636a26ae754SRob Clark 
3637a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E389					0x0000e389
3638a26ae754SRob Clark 
3639a26ae754SRob Clark #define REG_A5XX_PC_RESTART_INDEX				0x0000e38c
3640a26ae754SRob Clark 
3641a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E38D					0x0000e38d
3642a26ae754SRob Clark 
3643a26ae754SRob Clark #define REG_A5XX_PC_GS_PARAM					0x0000e38e
3644a26ae754SRob Clark 
3645a26ae754SRob Clark #define REG_A5XX_PC_HS_PARAM					0x0000e38f
3646a26ae754SRob Clark 
3647a26ae754SRob Clark #define REG_A5XX_PC_POWER_CNTL					0x0000e3b0
3648a26ae754SRob Clark 
3649a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_0					0x0000e400
3650a26ae754SRob Clark #define A5XX_VFD_CONTROL_0_VTXCNT__MASK				0x0000003f
3651a26ae754SRob Clark #define A5XX_VFD_CONTROL_0_VTXCNT__SHIFT			0
3652a26ae754SRob Clark static inline uint32_t A5XX_VFD_CONTROL_0_VTXCNT(uint32_t val)
3653a26ae754SRob Clark {
3654a26ae754SRob Clark 	return ((val) << A5XX_VFD_CONTROL_0_VTXCNT__SHIFT) & A5XX_VFD_CONTROL_0_VTXCNT__MASK;
3655a26ae754SRob Clark }
3656a26ae754SRob Clark 
3657a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_1					0x0000e401
3658*52260ae4SRob Clark #define A5XX_VFD_CONTROL_1_REGID4VTX__MASK			0x000000ff
3659*52260ae4SRob Clark #define A5XX_VFD_CONTROL_1_REGID4VTX__SHIFT			0
3660*52260ae4SRob Clark static inline uint32_t A5XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
3661*52260ae4SRob Clark {
3662*52260ae4SRob Clark 	return ((val) << A5XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A5XX_VFD_CONTROL_1_REGID4VTX__MASK;
3663*52260ae4SRob Clark }
3664a26ae754SRob Clark #define A5XX_VFD_CONTROL_1_REGID4INST__MASK			0x0000ff00
3665a26ae754SRob Clark #define A5XX_VFD_CONTROL_1_REGID4INST__SHIFT			8
3666a26ae754SRob Clark static inline uint32_t A5XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
3667a26ae754SRob Clark {
3668a26ae754SRob Clark 	return ((val) << A5XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A5XX_VFD_CONTROL_1_REGID4INST__MASK;
3669a26ae754SRob Clark }
3670a26ae754SRob Clark 
3671a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_2					0x0000e402
3672a26ae754SRob Clark 
3673a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_3					0x0000e403
3674a26ae754SRob Clark 
3675a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_4					0x0000e404
3676a26ae754SRob Clark 
3677a26ae754SRob Clark #define REG_A5XX_VFD_CONTROL_5					0x0000e405
3678a26ae754SRob Clark 
3679a26ae754SRob Clark #define REG_A5XX_VFD_INDEX_OFFSET				0x0000e408
3680a26ae754SRob Clark 
3681a26ae754SRob Clark #define REG_A5XX_VFD_INSTANCE_START_OFFSET			0x0000e409
3682a26ae754SRob Clark 
3683a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_FETCH(uint32_t i0) { return 0x0000e40a + 0x4*i0; }
3684a26ae754SRob Clark 
3685a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_FETCH_BASE_LO(uint32_t i0) { return 0x0000e40a + 0x4*i0; }
3686a26ae754SRob Clark 
3687a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_FETCH_BASE_HI(uint32_t i0) { return 0x0000e40b + 0x4*i0; }
3688a26ae754SRob Clark 
3689a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_FETCH_SIZE(uint32_t i0) { return 0x0000e40c + 0x4*i0; }
3690a26ae754SRob Clark 
3691a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_FETCH_STRIDE(uint32_t i0) { return 0x0000e40d + 0x4*i0; }
3692a26ae754SRob Clark 
3693a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_DECODE(uint32_t i0) { return 0x0000e48a + 0x2*i0; }
3694a26ae754SRob Clark 
3695a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x0000e48a + 0x2*i0; }
3696a26ae754SRob Clark #define A5XX_VFD_DECODE_INSTR_IDX__MASK				0x0000001f
3697a26ae754SRob Clark #define A5XX_VFD_DECODE_INSTR_IDX__SHIFT			0
3698a26ae754SRob Clark static inline uint32_t A5XX_VFD_DECODE_INSTR_IDX(uint32_t val)
3699a26ae754SRob Clark {
3700a26ae754SRob Clark 	return ((val) << A5XX_VFD_DECODE_INSTR_IDX__SHIFT) & A5XX_VFD_DECODE_INSTR_IDX__MASK;
3701a26ae754SRob Clark }
3702*52260ae4SRob Clark #define A5XX_VFD_DECODE_INSTR_INSTANCED				0x00020000
3703a26ae754SRob Clark #define A5XX_VFD_DECODE_INSTR_FORMAT__MASK			0x3ff00000
3704a26ae754SRob Clark #define A5XX_VFD_DECODE_INSTR_FORMAT__SHIFT			20
3705a26ae754SRob Clark static inline uint32_t A5XX_VFD_DECODE_INSTR_FORMAT(enum a5xx_vtx_fmt val)
3706a26ae754SRob Clark {
3707a26ae754SRob Clark 	return ((val) << A5XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A5XX_VFD_DECODE_INSTR_FORMAT__MASK;
3708a26ae754SRob Clark }
3709*52260ae4SRob Clark #define A5XX_VFD_DECODE_INSTR_UNK30				0x40000000
3710*52260ae4SRob Clark #define A5XX_VFD_DECODE_INSTR_FLOAT				0x80000000
3711a26ae754SRob Clark 
3712a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_DECODE_STEP_RATE(uint32_t i0) { return 0x0000e48b + 0x2*i0; }
3713a26ae754SRob Clark 
3714a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_DEST_CNTL(uint32_t i0) { return 0x0000e4ca + 0x1*i0; }
3715a26ae754SRob Clark 
3716a26ae754SRob Clark static inline uint32_t REG_A5XX_VFD_DEST_CNTL_INSTR(uint32_t i0) { return 0x0000e4ca + 0x1*i0; }
3717a26ae754SRob Clark #define A5XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK		0x0000000f
3718a26ae754SRob Clark #define A5XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT		0
3719a26ae754SRob Clark static inline uint32_t A5XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)
3720a26ae754SRob Clark {
3721a26ae754SRob Clark 	return ((val) << A5XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT) & A5XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK;
3722a26ae754SRob Clark }
3723a26ae754SRob Clark #define A5XX_VFD_DEST_CNTL_INSTR_REGID__MASK			0x00000ff0
3724a26ae754SRob Clark #define A5XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT			4
3725a26ae754SRob Clark static inline uint32_t A5XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)
3726a26ae754SRob Clark {
3727a26ae754SRob Clark 	return ((val) << A5XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT) & A5XX_VFD_DEST_CNTL_INSTR_REGID__MASK;
3728a26ae754SRob Clark }
3729a26ae754SRob Clark 
3730a26ae754SRob Clark #define REG_A5XX_VFD_POWER_CNTL					0x0000e4f0
3731a26ae754SRob Clark 
3732a26ae754SRob Clark #define REG_A5XX_SP_SP_CNTL					0x0000e580
3733a26ae754SRob Clark 
3734*52260ae4SRob Clark #define REG_A5XX_SP_VS_CONFIG					0x0000e584
3735*52260ae4SRob Clark #define A5XX_SP_VS_CONFIG_ENABLED				0x00000001
3736*52260ae4SRob Clark #define A5XX_SP_VS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3737*52260ae4SRob Clark #define A5XX_SP_VS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3738*52260ae4SRob Clark static inline uint32_t A5XX_SP_VS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3739a26ae754SRob Clark {
3740*52260ae4SRob Clark 	return ((val) << A5XX_SP_VS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_VS_CONFIG_CONSTOBJECTOFFSET__MASK;
3741a26ae754SRob Clark }
3742*52260ae4SRob Clark #define A5XX_SP_VS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3743*52260ae4SRob Clark #define A5XX_SP_VS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3744*52260ae4SRob Clark static inline uint32_t A5XX_SP_VS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3745a26ae754SRob Clark {
3746*52260ae4SRob Clark 	return ((val) << A5XX_SP_VS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_VS_CONFIG_SHADEROBJOFFSET__MASK;
3747a26ae754SRob Clark }
3748a26ae754SRob Clark 
3749*52260ae4SRob Clark #define REG_A5XX_SP_FS_CONFIG					0x0000e585
3750*52260ae4SRob Clark #define A5XX_SP_FS_CONFIG_ENABLED				0x00000001
3751*52260ae4SRob Clark #define A5XX_SP_FS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3752*52260ae4SRob Clark #define A5XX_SP_FS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3753*52260ae4SRob Clark static inline uint32_t A5XX_SP_FS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3754a26ae754SRob Clark {
3755*52260ae4SRob Clark 	return ((val) << A5XX_SP_FS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_FS_CONFIG_CONSTOBJECTOFFSET__MASK;
3756a26ae754SRob Clark }
3757*52260ae4SRob Clark #define A5XX_SP_FS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3758*52260ae4SRob Clark #define A5XX_SP_FS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3759*52260ae4SRob Clark static inline uint32_t A5XX_SP_FS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3760a26ae754SRob Clark {
3761*52260ae4SRob Clark 	return ((val) << A5XX_SP_FS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_FS_CONFIG_SHADEROBJOFFSET__MASK;
3762a26ae754SRob Clark }
3763a26ae754SRob Clark 
3764*52260ae4SRob Clark #define REG_A5XX_SP_HS_CONFIG					0x0000e586
3765*52260ae4SRob Clark #define A5XX_SP_HS_CONFIG_ENABLED				0x00000001
3766*52260ae4SRob Clark #define A5XX_SP_HS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3767*52260ae4SRob Clark #define A5XX_SP_HS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3768*52260ae4SRob Clark static inline uint32_t A5XX_SP_HS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3769a26ae754SRob Clark {
3770*52260ae4SRob Clark 	return ((val) << A5XX_SP_HS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_HS_CONFIG_CONSTOBJECTOFFSET__MASK;
3771a26ae754SRob Clark }
3772*52260ae4SRob Clark #define A5XX_SP_HS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3773*52260ae4SRob Clark #define A5XX_SP_HS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3774*52260ae4SRob Clark static inline uint32_t A5XX_SP_HS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3775a26ae754SRob Clark {
3776*52260ae4SRob Clark 	return ((val) << A5XX_SP_HS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_HS_CONFIG_SHADEROBJOFFSET__MASK;
3777a26ae754SRob Clark }
3778a26ae754SRob Clark 
3779*52260ae4SRob Clark #define REG_A5XX_SP_DS_CONFIG					0x0000e587
3780*52260ae4SRob Clark #define A5XX_SP_DS_CONFIG_ENABLED				0x00000001
3781*52260ae4SRob Clark #define A5XX_SP_DS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3782*52260ae4SRob Clark #define A5XX_SP_DS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3783*52260ae4SRob Clark static inline uint32_t A5XX_SP_DS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3784a26ae754SRob Clark {
3785*52260ae4SRob Clark 	return ((val) << A5XX_SP_DS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_DS_CONFIG_CONSTOBJECTOFFSET__MASK;
3786a26ae754SRob Clark }
3787*52260ae4SRob Clark #define A5XX_SP_DS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3788*52260ae4SRob Clark #define A5XX_SP_DS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3789*52260ae4SRob Clark static inline uint32_t A5XX_SP_DS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3790a26ae754SRob Clark {
3791*52260ae4SRob Clark 	return ((val) << A5XX_SP_DS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_DS_CONFIG_SHADEROBJOFFSET__MASK;
3792a26ae754SRob Clark }
3793a26ae754SRob Clark 
3794*52260ae4SRob Clark #define REG_A5XX_SP_GS_CONFIG					0x0000e588
3795*52260ae4SRob Clark #define A5XX_SP_GS_CONFIG_ENABLED				0x00000001
3796*52260ae4SRob Clark #define A5XX_SP_GS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3797*52260ae4SRob Clark #define A5XX_SP_GS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3798*52260ae4SRob Clark static inline uint32_t A5XX_SP_GS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3799a26ae754SRob Clark {
3800*52260ae4SRob Clark 	return ((val) << A5XX_SP_GS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_GS_CONFIG_CONSTOBJECTOFFSET__MASK;
3801a26ae754SRob Clark }
3802*52260ae4SRob Clark #define A5XX_SP_GS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3803*52260ae4SRob Clark #define A5XX_SP_GS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3804*52260ae4SRob Clark static inline uint32_t A5XX_SP_GS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3805a26ae754SRob Clark {
3806*52260ae4SRob Clark 	return ((val) << A5XX_SP_GS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_GS_CONFIG_SHADEROBJOFFSET__MASK;
3807a26ae754SRob Clark }
3808a26ae754SRob Clark 
3809a26ae754SRob Clark #define REG_A5XX_SP_CS_CONFIG					0x0000e589
3810*52260ae4SRob Clark #define A5XX_SP_CS_CONFIG_ENABLED				0x00000001
3811*52260ae4SRob Clark #define A5XX_SP_CS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
3812*52260ae4SRob Clark #define A5XX_SP_CS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
3813*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
3814*52260ae4SRob Clark {
3815*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_SP_CS_CONFIG_CONSTOBJECTOFFSET__MASK;
3816*52260ae4SRob Clark }
3817*52260ae4SRob Clark #define A5XX_SP_CS_CONFIG_SHADEROBJOFFSET__MASK			0x00007f00
3818*52260ae4SRob Clark #define A5XX_SP_CS_CONFIG_SHADEROBJOFFSET__SHIFT		8
3819*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CONFIG_SHADEROBJOFFSET(uint32_t val)
3820*52260ae4SRob Clark {
3821*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_SP_CS_CONFIG_SHADEROBJOFFSET__MASK;
3822*52260ae4SRob Clark }
3823a26ae754SRob Clark 
3824a26ae754SRob Clark #define REG_A5XX_SP_VS_CONFIG_MAX_CONST				0x0000e58a
3825a26ae754SRob Clark 
3826a26ae754SRob Clark #define REG_A5XX_SP_FS_CONFIG_MAX_CONST				0x0000e58b
3827a26ae754SRob Clark 
3828a26ae754SRob Clark #define REG_A5XX_SP_VS_CTRL_REG0				0x0000e590
3829*52260ae4SRob Clark #define A5XX_SP_VS_CTRL_REG0_THREADSIZE__MASK			0x00000008
3830*52260ae4SRob Clark #define A5XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT			3
3831*52260ae4SRob Clark static inline uint32_t A5XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
3832*52260ae4SRob Clark {
3833*52260ae4SRob Clark 	return ((val) << A5XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A5XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
3834*52260ae4SRob Clark }
3835a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
3836a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
3837a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
3838a26ae754SRob Clark {
3839a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A5XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
3840a26ae754SRob Clark }
3841a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
3842a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
3843a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
3844a26ae754SRob Clark {
3845a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A5XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
3846a26ae754SRob Clark }
3847a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_VARYING				0x00010000
3848a26ae754SRob Clark #define A5XX_SP_VS_CTRL_REG0_PIXLODENABLE			0x00100000
3849*52260ae4SRob Clark #define A5XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK			0xfe000000
3850*52260ae4SRob Clark #define A5XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT			25
3851*52260ae4SRob Clark static inline uint32_t A5XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)
3852*52260ae4SRob Clark {
3853*52260ae4SRob Clark 	return ((val) << A5XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT) & A5XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK;
3854*52260ae4SRob Clark }
3855a26ae754SRob Clark 
3856a26ae754SRob Clark #define REG_A5XX_SP_PRIMITIVE_CNTL				0x0000e592
3857*52260ae4SRob Clark #define A5XX_SP_PRIMITIVE_CNTL_VSOUT__MASK			0x0000001f
3858*52260ae4SRob Clark #define A5XX_SP_PRIMITIVE_CNTL_VSOUT__SHIFT			0
3859*52260ae4SRob Clark static inline uint32_t A5XX_SP_PRIMITIVE_CNTL_VSOUT(uint32_t val)
3860a26ae754SRob Clark {
3861*52260ae4SRob Clark 	return ((val) << A5XX_SP_PRIMITIVE_CNTL_VSOUT__SHIFT) & A5XX_SP_PRIMITIVE_CNTL_VSOUT__MASK;
3862a26ae754SRob Clark }
3863a26ae754SRob Clark 
3864a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_VS_OUT(uint32_t i0) { return 0x0000e593 + 0x1*i0; }
3865a26ae754SRob Clark 
3866a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_VS_OUT_REG(uint32_t i0) { return 0x0000e593 + 0x1*i0; }
3867a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_A_REGID__MASK			0x000000ff
3868a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_A_REGID__SHIFT			0
3869a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
3870a26ae754SRob Clark {
3871a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A5XX_SP_VS_OUT_REG_A_REGID__MASK;
3872a26ae754SRob Clark }
3873a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_A_COMPMASK__MASK			0x00000f00
3874a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT			8
3875a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
3876a26ae754SRob Clark {
3877a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A5XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
3878a26ae754SRob Clark }
3879a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_B_REGID__MASK			0x00ff0000
3880a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_B_REGID__SHIFT			16
3881a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
3882a26ae754SRob Clark {
3883a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A5XX_SP_VS_OUT_REG_B_REGID__MASK;
3884a26ae754SRob Clark }
3885a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_B_COMPMASK__MASK			0x0f000000
3886a26ae754SRob Clark #define A5XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT			24
3887a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
3888a26ae754SRob Clark {
3889a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A5XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
3890a26ae754SRob Clark }
3891a26ae754SRob Clark 
3892a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_VS_VPC_DST(uint32_t i0) { return 0x0000e5a3 + 0x1*i0; }
3893a26ae754SRob Clark 
3894a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x0000e5a3 + 0x1*i0; }
3895a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
3896a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT			0
3897a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
3898a26ae754SRob Clark {
3899a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A5XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
3900a26ae754SRob Clark }
3901a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
3902a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT			8
3903a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
3904a26ae754SRob Clark {
3905a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A5XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
3906a26ae754SRob Clark }
3907a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
3908a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT			16
3909a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
3910a26ae754SRob Clark {
3911a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A5XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
3912a26ae754SRob Clark }
3913a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
3914a26ae754SRob Clark #define A5XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT			24
3915a26ae754SRob Clark static inline uint32_t A5XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
3916a26ae754SRob Clark {
3917a26ae754SRob Clark 	return ((val) << A5XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A5XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
3918a26ae754SRob Clark }
3919a26ae754SRob Clark 
3920a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E5AB					0x0000e5ab
3921a26ae754SRob Clark 
3922a26ae754SRob Clark #define REG_A5XX_SP_VS_OBJ_START_LO				0x0000e5ac
3923a26ae754SRob Clark 
3924a26ae754SRob Clark #define REG_A5XX_SP_VS_OBJ_START_HI				0x0000e5ad
3925a26ae754SRob Clark 
3926a26ae754SRob Clark #define REG_A5XX_SP_FS_CTRL_REG0				0x0000e5c0
3927*52260ae4SRob Clark #define A5XX_SP_FS_CTRL_REG0_THREADSIZE__MASK			0x00000008
3928*52260ae4SRob Clark #define A5XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT			3
3929*52260ae4SRob Clark static inline uint32_t A5XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
3930*52260ae4SRob Clark {
3931*52260ae4SRob Clark 	return ((val) << A5XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A5XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
3932*52260ae4SRob Clark }
3933a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
3934a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
3935a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
3936a26ae754SRob Clark {
3937a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A5XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
3938a26ae754SRob Clark }
3939a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
3940a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
3941a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
3942a26ae754SRob Clark {
3943a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A5XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
3944a26ae754SRob Clark }
3945a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_VARYING				0x00010000
3946a26ae754SRob Clark #define A5XX_SP_FS_CTRL_REG0_PIXLODENABLE			0x00100000
3947*52260ae4SRob Clark #define A5XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK			0xfe000000
3948*52260ae4SRob Clark #define A5XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT			25
3949*52260ae4SRob Clark static inline uint32_t A5XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)
3950*52260ae4SRob Clark {
3951*52260ae4SRob Clark 	return ((val) << A5XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT) & A5XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK;
3952*52260ae4SRob Clark }
3953a26ae754SRob Clark 
3954a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E5C2					0x0000e5c2
3955a26ae754SRob Clark 
3956a26ae754SRob Clark #define REG_A5XX_SP_FS_OBJ_START_LO				0x0000e5c3
3957a26ae754SRob Clark 
3958a26ae754SRob Clark #define REG_A5XX_SP_FS_OBJ_START_HI				0x0000e5c4
3959a26ae754SRob Clark 
3960a26ae754SRob Clark #define REG_A5XX_SP_BLEND_CNTL					0x0000e5c9
3961*52260ae4SRob Clark #define A5XX_SP_BLEND_CNTL_ENABLED				0x00000001
3962*52260ae4SRob Clark #define A5XX_SP_BLEND_CNTL_UNK8					0x00000100
3963a26ae754SRob Clark 
3964a26ae754SRob Clark #define REG_A5XX_SP_FS_OUTPUT_CNTL				0x0000e5ca
3965a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_MRT__MASK			0x0000000f
3966a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_MRT__SHIFT			0
3967a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_OUTPUT_CNTL_MRT(uint32_t val)
3968a26ae754SRob Clark {
3969a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_OUTPUT_CNTL_MRT__SHIFT) & A5XX_SP_FS_OUTPUT_CNTL_MRT__MASK;
3970a26ae754SRob Clark }
3971a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_DEPTH_REGID__MASK		0x00001fe0
3972a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_DEPTH_REGID__SHIFT		5
3973a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_OUTPUT_CNTL_DEPTH_REGID(uint32_t val)
3974a26ae754SRob Clark {
3975a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_OUTPUT_CNTL_DEPTH_REGID__SHIFT) & A5XX_SP_FS_OUTPUT_CNTL_DEPTH_REGID__MASK;
3976a26ae754SRob Clark }
3977a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_SAMPLEMASK_REGID__MASK		0x001fe000
3978a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_CNTL_SAMPLEMASK_REGID__SHIFT		13
3979a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_OUTPUT_CNTL_SAMPLEMASK_REGID(uint32_t val)
3980a26ae754SRob Clark {
3981a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_OUTPUT_CNTL_SAMPLEMASK_REGID__SHIFT) & A5XX_SP_FS_OUTPUT_CNTL_SAMPLEMASK_REGID__MASK;
3982a26ae754SRob Clark }
3983a26ae754SRob Clark 
3984a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_FS_OUTPUT(uint32_t i0) { return 0x0000e5cb + 0x1*i0; }
3985a26ae754SRob Clark 
3986a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_FS_OUTPUT_REG(uint32_t i0) { return 0x0000e5cb + 0x1*i0; }
3987a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_REG_REGID__MASK			0x000000ff
3988a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_REG_REGID__SHIFT			0
3989a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)
3990a26ae754SRob Clark {
3991a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_OUTPUT_REG_REGID__SHIFT) & A5XX_SP_FS_OUTPUT_REG_REGID__MASK;
3992a26ae754SRob Clark }
3993a26ae754SRob Clark #define A5XX_SP_FS_OUTPUT_REG_HALF_PRECISION			0x00000100
3994a26ae754SRob Clark 
3995a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_FS_MRT(uint32_t i0) { return 0x0000e5d3 + 0x1*i0; }
3996a26ae754SRob Clark 
3997a26ae754SRob Clark static inline uint32_t REG_A5XX_SP_FS_MRT_REG(uint32_t i0) { return 0x0000e5d3 + 0x1*i0; }
3998a26ae754SRob Clark #define A5XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK			0x000000ff
3999a26ae754SRob Clark #define A5XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT			0
4000a26ae754SRob Clark static inline uint32_t A5XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a5xx_color_fmt val)
4001a26ae754SRob Clark {
4002a26ae754SRob Clark 	return ((val) << A5XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT) & A5XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK;
4003a26ae754SRob Clark }
4004*52260ae4SRob Clark #define A5XX_SP_FS_MRT_REG_COLOR_SRGB				0x00000400
4005a26ae754SRob Clark 
4006a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E5DB					0x0000e5db
4007a26ae754SRob Clark 
4008*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_E5F2					0x0000e5f2
4009*52260ae4SRob Clark 
4010*52260ae4SRob Clark #define REG_A5XX_SP_CS_OBJ_START_LO				0x0000e5f3
4011*52260ae4SRob Clark 
4012*52260ae4SRob Clark #define REG_A5XX_SP_CS_OBJ_START_HI				0x0000e5f4
4013*52260ae4SRob Clark 
4014*52260ae4SRob Clark #define REG_A5XX_SP_CS_CTRL_REG0				0x0000e5f0
4015*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_THREADSIZE__MASK			0x00000008
4016*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT			3
4017*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
4018*52260ae4SRob Clark {
4019*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT) & A5XX_SP_CS_CTRL_REG0_THREADSIZE__MASK;
4020*52260ae4SRob Clark }
4021*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
4022*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
4023*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
4024*52260ae4SRob Clark {
4025*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A5XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
4026*52260ae4SRob Clark }
4027*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
4028*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
4029*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
4030*52260ae4SRob Clark {
4031*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A5XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
4032*52260ae4SRob Clark }
4033*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_VARYING				0x00010000
4034*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_PIXLODENABLE			0x00100000
4035*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK			0xfe000000
4036*52260ae4SRob Clark #define A5XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT			25
4037*52260ae4SRob Clark static inline uint32_t A5XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)
4038*52260ae4SRob Clark {
4039*52260ae4SRob Clark 	return ((val) << A5XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT) & A5XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK;
4040*52260ae4SRob Clark }
4041a26ae754SRob Clark 
4042a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E600					0x0000e600
4043a26ae754SRob Clark 
4044*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_E602					0x0000e602
4045*52260ae4SRob Clark 
4046*52260ae4SRob Clark #define REG_A5XX_SP_HS_OBJ_START_LO				0x0000e603
4047*52260ae4SRob Clark 
4048*52260ae4SRob Clark #define REG_A5XX_SP_HS_OBJ_START_HI				0x0000e604
4049*52260ae4SRob Clark 
4050*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_E62B					0x0000e62b
4051*52260ae4SRob Clark 
4052*52260ae4SRob Clark #define REG_A5XX_SP_DS_OBJ_START_LO				0x0000e62c
4053*52260ae4SRob Clark 
4054*52260ae4SRob Clark #define REG_A5XX_SP_DS_OBJ_START_HI				0x0000e62d
4055*52260ae4SRob Clark 
4056a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E640					0x0000e640
4057a26ae754SRob Clark 
4058*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_E65B					0x0000e65b
4059*52260ae4SRob Clark 
4060*52260ae4SRob Clark #define REG_A5XX_SP_GS_OBJ_START_LO				0x0000e65c
4061*52260ae4SRob Clark 
4062*52260ae4SRob Clark #define REG_A5XX_SP_GS_OBJ_START_HI				0x0000e65d
4063*52260ae4SRob Clark 
4064a26ae754SRob Clark #define REG_A5XX_TPL1_TP_RAS_MSAA_CNTL				0x0000e704
4065a26ae754SRob Clark #define A5XX_TPL1_TP_RAS_MSAA_CNTL_SAMPLES__MASK		0x00000003
4066a26ae754SRob Clark #define A5XX_TPL1_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT		0
4067a26ae754SRob Clark static inline uint32_t A5XX_TPL1_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
4068a26ae754SRob Clark {
4069a26ae754SRob Clark 	return ((val) << A5XX_TPL1_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_TPL1_TP_RAS_MSAA_CNTL_SAMPLES__MASK;
4070a26ae754SRob Clark }
4071a26ae754SRob Clark 
4072a26ae754SRob Clark #define REG_A5XX_TPL1_TP_DEST_MSAA_CNTL				0x0000e705
4073a26ae754SRob Clark #define A5XX_TPL1_TP_DEST_MSAA_CNTL_SAMPLES__MASK		0x00000003
4074a26ae754SRob Clark #define A5XX_TPL1_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT		0
4075a26ae754SRob Clark static inline uint32_t A5XX_TPL1_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
4076a26ae754SRob Clark {
4077a26ae754SRob Clark 	return ((val) << A5XX_TPL1_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A5XX_TPL1_TP_DEST_MSAA_CNTL_SAMPLES__MASK;
4078a26ae754SRob Clark }
4079a26ae754SRob Clark #define A5XX_TPL1_TP_DEST_MSAA_CNTL_MSAA_DISABLE		0x00000004
4080a26ae754SRob Clark 
4081*52260ae4SRob Clark #define REG_A5XX_TPL1_TP_BORDER_COLOR_BASE_ADDR_LO		0x0000e706
4082*52260ae4SRob Clark 
4083*52260ae4SRob Clark #define REG_A5XX_TPL1_TP_BORDER_COLOR_BASE_ADDR_HI		0x0000e707
4084*52260ae4SRob Clark 
4085a26ae754SRob Clark #define REG_A5XX_TPL1_VS_TEX_COUNT				0x0000e700
4086a26ae754SRob Clark 
4087*52260ae4SRob Clark #define REG_A5XX_TPL1_HS_TEX_COUNT				0x0000e701
4088*52260ae4SRob Clark 
4089*52260ae4SRob Clark #define REG_A5XX_TPL1_DS_TEX_COUNT				0x0000e702
4090*52260ae4SRob Clark 
4091*52260ae4SRob Clark #define REG_A5XX_TPL1_GS_TEX_COUNT				0x0000e703
4092*52260ae4SRob Clark 
4093a26ae754SRob Clark #define REG_A5XX_TPL1_VS_TEX_SAMP_LO				0x0000e722
4094a26ae754SRob Clark 
4095a26ae754SRob Clark #define REG_A5XX_TPL1_VS_TEX_SAMP_HI				0x0000e723
4096a26ae754SRob Clark 
4097*52260ae4SRob Clark #define REG_A5XX_TPL1_HS_TEX_SAMP_LO				0x0000e724
4098*52260ae4SRob Clark 
4099*52260ae4SRob Clark #define REG_A5XX_TPL1_HS_TEX_SAMP_HI				0x0000e725
4100*52260ae4SRob Clark 
4101*52260ae4SRob Clark #define REG_A5XX_TPL1_DS_TEX_SAMP_LO				0x0000e726
4102*52260ae4SRob Clark 
4103*52260ae4SRob Clark #define REG_A5XX_TPL1_DS_TEX_SAMP_HI				0x0000e727
4104*52260ae4SRob Clark 
4105*52260ae4SRob Clark #define REG_A5XX_TPL1_GS_TEX_SAMP_LO				0x0000e728
4106*52260ae4SRob Clark 
4107*52260ae4SRob Clark #define REG_A5XX_TPL1_GS_TEX_SAMP_HI				0x0000e729
4108*52260ae4SRob Clark 
4109a26ae754SRob Clark #define REG_A5XX_TPL1_VS_TEX_CONST_LO				0x0000e72a
4110a26ae754SRob Clark 
4111a26ae754SRob Clark #define REG_A5XX_TPL1_VS_TEX_CONST_HI				0x0000e72b
4112a26ae754SRob Clark 
4113*52260ae4SRob Clark #define REG_A5XX_TPL1_HS_TEX_CONST_LO				0x0000e72c
4114*52260ae4SRob Clark 
4115*52260ae4SRob Clark #define REG_A5XX_TPL1_HS_TEX_CONST_HI				0x0000e72d
4116*52260ae4SRob Clark 
4117*52260ae4SRob Clark #define REG_A5XX_TPL1_DS_TEX_CONST_LO				0x0000e72e
4118*52260ae4SRob Clark 
4119*52260ae4SRob Clark #define REG_A5XX_TPL1_DS_TEX_CONST_HI				0x0000e72f
4120*52260ae4SRob Clark 
4121*52260ae4SRob Clark #define REG_A5XX_TPL1_GS_TEX_CONST_LO				0x0000e730
4122*52260ae4SRob Clark 
4123*52260ae4SRob Clark #define REG_A5XX_TPL1_GS_TEX_CONST_HI				0x0000e731
4124*52260ae4SRob Clark 
4125a26ae754SRob Clark #define REG_A5XX_TPL1_FS_TEX_COUNT				0x0000e750
4126a26ae754SRob Clark 
4127*52260ae4SRob Clark #define REG_A5XX_TPL1_CS_TEX_COUNT				0x0000e751
4128*52260ae4SRob Clark 
4129a26ae754SRob Clark #define REG_A5XX_TPL1_FS_TEX_SAMP_LO				0x0000e75a
4130a26ae754SRob Clark 
4131a26ae754SRob Clark #define REG_A5XX_TPL1_FS_TEX_SAMP_HI				0x0000e75b
4132a26ae754SRob Clark 
4133*52260ae4SRob Clark #define REG_A5XX_TPL1_CS_TEX_SAMP_LO				0x0000e75c
4134*52260ae4SRob Clark 
4135*52260ae4SRob Clark #define REG_A5XX_TPL1_CS_TEX_SAMP_HI				0x0000e75d
4136*52260ae4SRob Clark 
4137a26ae754SRob Clark #define REG_A5XX_TPL1_FS_TEX_CONST_LO				0x0000e75e
4138a26ae754SRob Clark 
4139a26ae754SRob Clark #define REG_A5XX_TPL1_FS_TEX_CONST_HI				0x0000e75f
4140a26ae754SRob Clark 
4141*52260ae4SRob Clark #define REG_A5XX_TPL1_CS_TEX_CONST_LO				0x0000e760
4142*52260ae4SRob Clark 
4143*52260ae4SRob Clark #define REG_A5XX_TPL1_CS_TEX_CONST_HI				0x0000e761
4144*52260ae4SRob Clark 
4145a26ae754SRob Clark #define REG_A5XX_TPL1_TP_FS_ROTATION_CNTL			0x0000e764
4146a26ae754SRob Clark 
4147a26ae754SRob Clark #define REG_A5XX_HLSQ_CONTROL_0_REG				0x0000e784
4148*52260ae4SRob Clark #define A5XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK		0x00000001
4149*52260ae4SRob Clark #define A5XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT		0
4150*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)
4151*52260ae4SRob Clark {
4152*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT) & A5XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK;
4153*52260ae4SRob Clark }
4154*52260ae4SRob Clark #define A5XX_HLSQ_CONTROL_0_REG_CSTHREADSIZE__MASK		0x00000004
4155*52260ae4SRob Clark #define A5XX_HLSQ_CONTROL_0_REG_CSTHREADSIZE__SHIFT		2
4156*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_0_REG_CSTHREADSIZE(enum a3xx_threadsize val)
4157*52260ae4SRob Clark {
4158*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_0_REG_CSTHREADSIZE__SHIFT) & A5XX_HLSQ_CONTROL_0_REG_CSTHREADSIZE__MASK;
4159*52260ae4SRob Clark }
4160a26ae754SRob Clark 
4161a26ae754SRob Clark #define REG_A5XX_HLSQ_CONTROL_1_REG				0x0000e785
4162a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_1_REG_PRIMALLOCTHRESHOLD__MASK	0x0000003f
4163a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_1_REG_PRIMALLOCTHRESHOLD__SHIFT	0
4164a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_1_REG_PRIMALLOCTHRESHOLD(uint32_t val)
4165a26ae754SRob Clark {
4166a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_1_REG_PRIMALLOCTHRESHOLD__SHIFT) & A5XX_HLSQ_CONTROL_1_REG_PRIMALLOCTHRESHOLD__MASK;
4167a26ae754SRob Clark }
4168a26ae754SRob Clark 
4169a26ae754SRob Clark #define REG_A5XX_HLSQ_CONTROL_2_REG				0x0000e786
4170a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK			0x000000ff
4171a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT		0
4172a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
4173a26ae754SRob Clark {
4174a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A5XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
4175a26ae754SRob Clark }
4176a26ae754SRob Clark 
4177a26ae754SRob Clark #define REG_A5XX_HLSQ_CONTROL_3_REG				0x0000e787
4178a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK		0x000000ff
4179a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT		0
4180a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID(uint32_t val)
4181a26ae754SRob Clark {
4182a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__SHIFT) & A5XX_HLSQ_CONTROL_3_REG_FRAGCOORDXYREGID__MASK;
4183a26ae754SRob Clark }
4184a26ae754SRob Clark 
4185a26ae754SRob Clark #define REG_A5XX_HLSQ_CONTROL_4_REG				0x0000e788
4186a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK		0x00ff0000
4187a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT		16
4188a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)
4189a26ae754SRob Clark {
4190a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT) & A5XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK;
4191a26ae754SRob Clark }
4192a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK		0xff000000
4193a26ae754SRob Clark #define A5XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT		24
4194a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)
4195a26ae754SRob Clark {
4196a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT) & A5XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK;
4197a26ae754SRob Clark }
4198a26ae754SRob Clark 
4199a26ae754SRob Clark #define REG_A5XX_HLSQ_UPDATE_CNTL				0x0000e78a
4200a26ae754SRob Clark 
4201*52260ae4SRob Clark #define REG_A5XX_HLSQ_VS_CONFIG					0x0000e78b
4202*52260ae4SRob Clark #define A5XX_HLSQ_VS_CONFIG_ENABLED				0x00000001
4203*52260ae4SRob Clark #define A5XX_HLSQ_VS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4204*52260ae4SRob Clark #define A5XX_HLSQ_VS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4205*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_VS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4206a26ae754SRob Clark {
4207*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_VS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_VS_CONFIG_CONSTOBJECTOFFSET__MASK;
4208a26ae754SRob Clark }
4209*52260ae4SRob Clark #define A5XX_HLSQ_VS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4210*52260ae4SRob Clark #define A5XX_HLSQ_VS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4211*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_VS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4212a26ae754SRob Clark {
4213*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_VS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_VS_CONFIG_SHADEROBJOFFSET__MASK;
4214a26ae754SRob Clark }
4215a26ae754SRob Clark 
4216*52260ae4SRob Clark #define REG_A5XX_HLSQ_FS_CONFIG					0x0000e78c
4217*52260ae4SRob Clark #define A5XX_HLSQ_FS_CONFIG_ENABLED				0x00000001
4218*52260ae4SRob Clark #define A5XX_HLSQ_FS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4219*52260ae4SRob Clark #define A5XX_HLSQ_FS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4220*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_FS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4221a26ae754SRob Clark {
4222*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_FS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_FS_CONFIG_CONSTOBJECTOFFSET__MASK;
4223a26ae754SRob Clark }
4224*52260ae4SRob Clark #define A5XX_HLSQ_FS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4225*52260ae4SRob Clark #define A5XX_HLSQ_FS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4226*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_FS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4227a26ae754SRob Clark {
4228*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_FS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_FS_CONFIG_SHADEROBJOFFSET__MASK;
4229a26ae754SRob Clark }
4230a26ae754SRob Clark 
4231*52260ae4SRob Clark #define REG_A5XX_HLSQ_HS_CONFIG					0x0000e78d
4232*52260ae4SRob Clark #define A5XX_HLSQ_HS_CONFIG_ENABLED				0x00000001
4233*52260ae4SRob Clark #define A5XX_HLSQ_HS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4234*52260ae4SRob Clark #define A5XX_HLSQ_HS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4235*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_HS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4236a26ae754SRob Clark {
4237*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_HS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_HS_CONFIG_CONSTOBJECTOFFSET__MASK;
4238a26ae754SRob Clark }
4239*52260ae4SRob Clark #define A5XX_HLSQ_HS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4240*52260ae4SRob Clark #define A5XX_HLSQ_HS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4241*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_HS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4242a26ae754SRob Clark {
4243*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_HS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_HS_CONFIG_SHADEROBJOFFSET__MASK;
4244a26ae754SRob Clark }
4245a26ae754SRob Clark 
4246*52260ae4SRob Clark #define REG_A5XX_HLSQ_DS_CONFIG					0x0000e78e
4247*52260ae4SRob Clark #define A5XX_HLSQ_DS_CONFIG_ENABLED				0x00000001
4248*52260ae4SRob Clark #define A5XX_HLSQ_DS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4249*52260ae4SRob Clark #define A5XX_HLSQ_DS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4250*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_DS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4251a26ae754SRob Clark {
4252*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_DS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_DS_CONFIG_CONSTOBJECTOFFSET__MASK;
4253a26ae754SRob Clark }
4254*52260ae4SRob Clark #define A5XX_HLSQ_DS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4255*52260ae4SRob Clark #define A5XX_HLSQ_DS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4256*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_DS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4257a26ae754SRob Clark {
4258*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_DS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_DS_CONFIG_SHADEROBJOFFSET__MASK;
4259a26ae754SRob Clark }
4260a26ae754SRob Clark 
4261*52260ae4SRob Clark #define REG_A5XX_HLSQ_GS_CONFIG					0x0000e78f
4262*52260ae4SRob Clark #define A5XX_HLSQ_GS_CONFIG_ENABLED				0x00000001
4263*52260ae4SRob Clark #define A5XX_HLSQ_GS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4264*52260ae4SRob Clark #define A5XX_HLSQ_GS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4265*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_GS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4266a26ae754SRob Clark {
4267*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_GS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_GS_CONFIG_CONSTOBJECTOFFSET__MASK;
4268a26ae754SRob Clark }
4269*52260ae4SRob Clark #define A5XX_HLSQ_GS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4270*52260ae4SRob Clark #define A5XX_HLSQ_GS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4271*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_GS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4272a26ae754SRob Clark {
4273*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_GS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_GS_CONFIG_SHADEROBJOFFSET__MASK;
4274a26ae754SRob Clark }
4275a26ae754SRob Clark 
4276a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_CONFIG					0x0000e790
4277*52260ae4SRob Clark #define A5XX_HLSQ_CS_CONFIG_ENABLED				0x00000001
4278*52260ae4SRob Clark #define A5XX_HLSQ_CS_CONFIG_CONSTOBJECTOFFSET__MASK		0x000000fe
4279*52260ae4SRob Clark #define A5XX_HLSQ_CS_CONFIG_CONSTOBJECTOFFSET__SHIFT		1
4280*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CONFIG_CONSTOBJECTOFFSET(uint32_t val)
4281*52260ae4SRob Clark {
4282*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CONFIG_CONSTOBJECTOFFSET__SHIFT) & A5XX_HLSQ_CS_CONFIG_CONSTOBJECTOFFSET__MASK;
4283*52260ae4SRob Clark }
4284*52260ae4SRob Clark #define A5XX_HLSQ_CS_CONFIG_SHADEROBJOFFSET__MASK		0x00007f00
4285*52260ae4SRob Clark #define A5XX_HLSQ_CS_CONFIG_SHADEROBJOFFSET__SHIFT		8
4286*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CONFIG_SHADEROBJOFFSET(uint32_t val)
4287*52260ae4SRob Clark {
4288*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CONFIG_SHADEROBJOFFSET__SHIFT) & A5XX_HLSQ_CS_CONFIG_SHADEROBJOFFSET__MASK;
4289*52260ae4SRob Clark }
4290a26ae754SRob Clark 
4291a26ae754SRob Clark #define REG_A5XX_HLSQ_VS_CNTL					0x0000e791
4292*52260ae4SRob Clark #define A5XX_HLSQ_VS_CNTL_SSBO_ENABLE				0x00000001
4293a26ae754SRob Clark #define A5XX_HLSQ_VS_CNTL_INSTRLEN__MASK			0xfffffffe
4294a26ae754SRob Clark #define A5XX_HLSQ_VS_CNTL_INSTRLEN__SHIFT			1
4295a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_VS_CNTL_INSTRLEN(uint32_t val)
4296a26ae754SRob Clark {
4297a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_VS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_VS_CNTL_INSTRLEN__MASK;
4298a26ae754SRob Clark }
4299a26ae754SRob Clark 
4300a26ae754SRob Clark #define REG_A5XX_HLSQ_FS_CNTL					0x0000e792
4301*52260ae4SRob Clark #define A5XX_HLSQ_FS_CNTL_SSBO_ENABLE				0x00000001
4302a26ae754SRob Clark #define A5XX_HLSQ_FS_CNTL_INSTRLEN__MASK			0xfffffffe
4303a26ae754SRob Clark #define A5XX_HLSQ_FS_CNTL_INSTRLEN__SHIFT			1
4304a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_FS_CNTL_INSTRLEN(uint32_t val)
4305a26ae754SRob Clark {
4306a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_FS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_FS_CNTL_INSTRLEN__MASK;
4307a26ae754SRob Clark }
4308a26ae754SRob Clark 
4309a26ae754SRob Clark #define REG_A5XX_HLSQ_HS_CNTL					0x0000e793
4310*52260ae4SRob Clark #define A5XX_HLSQ_HS_CNTL_SSBO_ENABLE				0x00000001
4311a26ae754SRob Clark #define A5XX_HLSQ_HS_CNTL_INSTRLEN__MASK			0xfffffffe
4312a26ae754SRob Clark #define A5XX_HLSQ_HS_CNTL_INSTRLEN__SHIFT			1
4313a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_HS_CNTL_INSTRLEN(uint32_t val)
4314a26ae754SRob Clark {
4315a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_HS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_HS_CNTL_INSTRLEN__MASK;
4316a26ae754SRob Clark }
4317a26ae754SRob Clark 
4318a26ae754SRob Clark #define REG_A5XX_HLSQ_DS_CNTL					0x0000e794
4319*52260ae4SRob Clark #define A5XX_HLSQ_DS_CNTL_SSBO_ENABLE				0x00000001
4320a26ae754SRob Clark #define A5XX_HLSQ_DS_CNTL_INSTRLEN__MASK			0xfffffffe
4321a26ae754SRob Clark #define A5XX_HLSQ_DS_CNTL_INSTRLEN__SHIFT			1
4322a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_DS_CNTL_INSTRLEN(uint32_t val)
4323a26ae754SRob Clark {
4324a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_DS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_DS_CNTL_INSTRLEN__MASK;
4325a26ae754SRob Clark }
4326a26ae754SRob Clark 
4327a26ae754SRob Clark #define REG_A5XX_HLSQ_GS_CNTL					0x0000e795
4328*52260ae4SRob Clark #define A5XX_HLSQ_GS_CNTL_SSBO_ENABLE				0x00000001
4329a26ae754SRob Clark #define A5XX_HLSQ_GS_CNTL_INSTRLEN__MASK			0xfffffffe
4330a26ae754SRob Clark #define A5XX_HLSQ_GS_CNTL_INSTRLEN__SHIFT			1
4331a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_GS_CNTL_INSTRLEN(uint32_t val)
4332a26ae754SRob Clark {
4333a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_GS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_GS_CNTL_INSTRLEN__MASK;
4334a26ae754SRob Clark }
4335a26ae754SRob Clark 
4336a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_CNTL					0x0000e796
4337*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_SSBO_ENABLE				0x00000001
4338a26ae754SRob Clark #define A5XX_HLSQ_CS_CNTL_INSTRLEN__MASK			0xfffffffe
4339a26ae754SRob Clark #define A5XX_HLSQ_CS_CNTL_INSTRLEN__SHIFT			1
4340a26ae754SRob Clark static inline uint32_t A5XX_HLSQ_CS_CNTL_INSTRLEN(uint32_t val)
4341a26ae754SRob Clark {
4342a26ae754SRob Clark 	return ((val) << A5XX_HLSQ_CS_CNTL_INSTRLEN__SHIFT) & A5XX_HLSQ_CS_CNTL_INSTRLEN__MASK;
4343a26ae754SRob Clark }
4344a26ae754SRob Clark 
4345a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_KERNEL_GROUP_X				0x0000e7b9
4346a26ae754SRob Clark 
4347a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_KERNEL_GROUP_Y				0x0000e7ba
4348a26ae754SRob Clark 
4349a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_KERNEL_GROUP_Z				0x0000e7bb
4350a26ae754SRob Clark 
4351a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_0				0x0000e7b0
4352*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK			0x00000003
4353*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT			0
4354*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)
4355*52260ae4SRob Clark {
4356*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT) & A5XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK;
4357*52260ae4SRob Clark }
4358*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK			0x00000ffc
4359*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT		2
4360*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)
4361*52260ae4SRob Clark {
4362*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT) & A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK;
4363*52260ae4SRob Clark }
4364*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK			0x003ff000
4365*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT		12
4366*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)
4367*52260ae4SRob Clark {
4368*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT) & A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK;
4369*52260ae4SRob Clark }
4370*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK			0xffc00000
4371*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT		22
4372*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)
4373*52260ae4SRob Clark {
4374*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT) & A5XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK;
4375*52260ae4SRob Clark }
4376a26ae754SRob Clark 
4377a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_1				0x0000e7b1
4378*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_1_SIZE_X__MASK			0xffffffff
4379*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_1_SIZE_X__SHIFT			0
4380*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_1_SIZE_X(uint32_t val)
4381*52260ae4SRob Clark {
4382*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_1_SIZE_X__SHIFT) & A5XX_HLSQ_CS_NDRANGE_1_SIZE_X__MASK;
4383*52260ae4SRob Clark }
4384a26ae754SRob Clark 
4385a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_2				0x0000e7b2
4386a26ae754SRob Clark 
4387a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_3				0x0000e7b3
4388*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_3_SIZE_Y__MASK			0xffffffff
4389*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_3_SIZE_Y__SHIFT			0
4390*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_3_SIZE_Y(uint32_t val)
4391*52260ae4SRob Clark {
4392*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_3_SIZE_Y__SHIFT) & A5XX_HLSQ_CS_NDRANGE_3_SIZE_Y__MASK;
4393*52260ae4SRob Clark }
4394a26ae754SRob Clark 
4395a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_4				0x0000e7b4
4396a26ae754SRob Clark 
4397a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_5				0x0000e7b5
4398*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_5_SIZE_Z__MASK			0xffffffff
4399*52260ae4SRob Clark #define A5XX_HLSQ_CS_NDRANGE_5_SIZE_Z__SHIFT			0
4400*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_NDRANGE_5_SIZE_Z(uint32_t val)
4401*52260ae4SRob Clark {
4402*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_NDRANGE_5_SIZE_Z__SHIFT) & A5XX_HLSQ_CS_NDRANGE_5_SIZE_Z__MASK;
4403*52260ae4SRob Clark }
4404a26ae754SRob Clark 
4405a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_NDRANGE_6				0x0000e7b6
4406a26ae754SRob Clark 
4407a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_CNTL_0					0x0000e7b7
4408*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK			0x000000ff
4409*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT			0
4410*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)
4411*52260ae4SRob Clark {
4412*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT) & A5XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK;
4413*52260ae4SRob Clark }
4414*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_UNK0__MASK				0x0000ff00
4415*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_UNK0__SHIFT				8
4416*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CNTL_0_UNK0(uint32_t val)
4417*52260ae4SRob Clark {
4418*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CNTL_0_UNK0__SHIFT) & A5XX_HLSQ_CS_CNTL_0_UNK0__MASK;
4419*52260ae4SRob Clark }
4420*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_UNK1__MASK				0x00ff0000
4421*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_UNK1__SHIFT				16
4422*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CNTL_0_UNK1(uint32_t val)
4423*52260ae4SRob Clark {
4424*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CNTL_0_UNK1__SHIFT) & A5XX_HLSQ_CS_CNTL_0_UNK1__MASK;
4425*52260ae4SRob Clark }
4426*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK			0xff000000
4427*52260ae4SRob Clark #define A5XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT			24
4428*52260ae4SRob Clark static inline uint32_t A5XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)
4429*52260ae4SRob Clark {
4430*52260ae4SRob Clark 	return ((val) << A5XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT) & A5XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK;
4431*52260ae4SRob Clark }
4432a26ae754SRob Clark 
4433a26ae754SRob Clark #define REG_A5XX_HLSQ_CS_CNTL_1					0x0000e7b8
4434a26ae754SRob Clark 
4435a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E7C0					0x0000e7c0
4436a26ae754SRob Clark 
4437a26ae754SRob Clark #define REG_A5XX_HLSQ_VS_CONSTLEN				0x0000e7c3
4438a26ae754SRob Clark 
4439a26ae754SRob Clark #define REG_A5XX_HLSQ_VS_INSTRLEN				0x0000e7c4
4440a26ae754SRob Clark 
4441a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E7C5					0x0000e7c5
4442a26ae754SRob Clark 
4443a26ae754SRob Clark #define REG_A5XX_HLSQ_HS_CONSTLEN				0x0000e7c8
4444a26ae754SRob Clark 
4445a26ae754SRob Clark #define REG_A5XX_HLSQ_HS_INSTRLEN				0x0000e7c9
4446a26ae754SRob Clark 
4447*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_E7CA					0x0000e7ca
4448*52260ae4SRob Clark 
4449a26ae754SRob Clark #define REG_A5XX_HLSQ_DS_CONSTLEN				0x0000e7cd
4450a26ae754SRob Clark 
4451a26ae754SRob Clark #define REG_A5XX_HLSQ_DS_INSTRLEN				0x0000e7ce
4452a26ae754SRob Clark 
4453a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E7CF					0x0000e7cf
4454a26ae754SRob Clark 
4455a26ae754SRob Clark #define REG_A5XX_HLSQ_GS_CONSTLEN				0x0000e7d2
4456a26ae754SRob Clark 
4457a26ae754SRob Clark #define REG_A5XX_HLSQ_GS_INSTRLEN				0x0000e7d3
4458a26ae754SRob Clark 
4459a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E7D4					0x0000e7d4
4460a26ae754SRob Clark 
4461*52260ae4SRob Clark #define REG_A5XX_HLSQ_FS_CONSTLEN				0x0000e7d7
4462*52260ae4SRob Clark 
4463*52260ae4SRob Clark #define REG_A5XX_HLSQ_FS_INSTRLEN				0x0000e7d8
4464*52260ae4SRob Clark 
4465a26ae754SRob Clark #define REG_A5XX_UNKNOWN_E7D9					0x0000e7d9
4466a26ae754SRob Clark 
4467*52260ae4SRob Clark #define REG_A5XX_HLSQ_CS_CONSTLEN				0x0000e7dc
4468a26ae754SRob Clark 
4469*52260ae4SRob Clark #define REG_A5XX_HLSQ_CS_INSTRLEN				0x0000e7dd
4470a26ae754SRob Clark 
4471*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_SOLID_DW0				0x00002101
4472*52260ae4SRob Clark 
4473*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_SOLID_DW1				0x00002102
4474*52260ae4SRob Clark 
4475*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_SOLID_DW2				0x00002103
4476*52260ae4SRob Clark 
4477*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_SOLID_DW3				0x00002104
4478a26ae754SRob Clark 
4479a26ae754SRob Clark #define REG_A5XX_RB_2D_SRC_INFO					0x00002107
4480a26ae754SRob Clark #define A5XX_RB_2D_SRC_INFO_COLOR_FORMAT__MASK			0x000000ff
4481a26ae754SRob Clark #define A5XX_RB_2D_SRC_INFO_COLOR_FORMAT__SHIFT			0
4482a26ae754SRob Clark static inline uint32_t A5XX_RB_2D_SRC_INFO_COLOR_FORMAT(enum a5xx_color_fmt val)
4483a26ae754SRob Clark {
4484a26ae754SRob Clark 	return ((val) << A5XX_RB_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A5XX_RB_2D_SRC_INFO_COLOR_FORMAT__MASK;
4485a26ae754SRob Clark }
4486a26ae754SRob Clark #define A5XX_RB_2D_SRC_INFO_COLOR_SWAP__MASK			0x00000c00
4487a26ae754SRob Clark #define A5XX_RB_2D_SRC_INFO_COLOR_SWAP__SHIFT			10
4488a26ae754SRob Clark static inline uint32_t A5XX_RB_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4489a26ae754SRob Clark {
4490a26ae754SRob Clark 	return ((val) << A5XX_RB_2D_SRC_INFO_COLOR_SWAP__SHIFT) & A5XX_RB_2D_SRC_INFO_COLOR_SWAP__MASK;
4491a26ae754SRob Clark }
4492a26ae754SRob Clark 
4493a26ae754SRob Clark #define REG_A5XX_RB_2D_SRC_LO					0x00002108
4494a26ae754SRob Clark 
4495a26ae754SRob Clark #define REG_A5XX_RB_2D_SRC_HI					0x00002109
4496a26ae754SRob Clark 
4497*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_SIZE					0x0000210a
4498*52260ae4SRob Clark #define A5XX_RB_2D_SRC_SIZE_PITCH__MASK				0x0000ffff
4499*52260ae4SRob Clark #define A5XX_RB_2D_SRC_SIZE_PITCH__SHIFT			0
4500*52260ae4SRob Clark static inline uint32_t A5XX_RB_2D_SRC_SIZE_PITCH(uint32_t val)
4501*52260ae4SRob Clark {
4502*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_2D_SRC_SIZE_PITCH__SHIFT) & A5XX_RB_2D_SRC_SIZE_PITCH__MASK;
4503*52260ae4SRob Clark }
4504*52260ae4SRob Clark #define A5XX_RB_2D_SRC_SIZE_ARRAY_PITCH__MASK			0xffff0000
4505*52260ae4SRob Clark #define A5XX_RB_2D_SRC_SIZE_ARRAY_PITCH__SHIFT			16
4506*52260ae4SRob Clark static inline uint32_t A5XX_RB_2D_SRC_SIZE_ARRAY_PITCH(uint32_t val)
4507*52260ae4SRob Clark {
4508*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_2D_SRC_SIZE_ARRAY_PITCH__SHIFT) & A5XX_RB_2D_SRC_SIZE_ARRAY_PITCH__MASK;
4509*52260ae4SRob Clark }
4510*52260ae4SRob Clark 
4511a26ae754SRob Clark #define REG_A5XX_RB_2D_DST_INFO					0x00002110
4512a26ae754SRob Clark #define A5XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK			0x000000ff
4513a26ae754SRob Clark #define A5XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT			0
4514a26ae754SRob Clark static inline uint32_t A5XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a5xx_color_fmt val)
4515a26ae754SRob Clark {
4516a26ae754SRob Clark 	return ((val) << A5XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A5XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK;
4517a26ae754SRob Clark }
4518a26ae754SRob Clark #define A5XX_RB_2D_DST_INFO_COLOR_SWAP__MASK			0x00000c00
4519a26ae754SRob Clark #define A5XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT			10
4520a26ae754SRob Clark static inline uint32_t A5XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4521a26ae754SRob Clark {
4522a26ae754SRob Clark 	return ((val) << A5XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT) & A5XX_RB_2D_DST_INFO_COLOR_SWAP__MASK;
4523a26ae754SRob Clark }
4524a26ae754SRob Clark 
4525a26ae754SRob Clark #define REG_A5XX_RB_2D_DST_LO					0x00002111
4526a26ae754SRob Clark 
4527a26ae754SRob Clark #define REG_A5XX_RB_2D_DST_HI					0x00002112
4528a26ae754SRob Clark 
4529*52260ae4SRob Clark #define REG_A5XX_RB_2D_DST_SIZE					0x00002113
4530*52260ae4SRob Clark #define A5XX_RB_2D_DST_SIZE_PITCH__MASK				0x0000ffff
4531*52260ae4SRob Clark #define A5XX_RB_2D_DST_SIZE_PITCH__SHIFT			0
4532*52260ae4SRob Clark static inline uint32_t A5XX_RB_2D_DST_SIZE_PITCH(uint32_t val)
4533*52260ae4SRob Clark {
4534*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_2D_DST_SIZE_PITCH__SHIFT) & A5XX_RB_2D_DST_SIZE_PITCH__MASK;
4535*52260ae4SRob Clark }
4536*52260ae4SRob Clark #define A5XX_RB_2D_DST_SIZE_ARRAY_PITCH__MASK			0xffff0000
4537*52260ae4SRob Clark #define A5XX_RB_2D_DST_SIZE_ARRAY_PITCH__SHIFT			16
4538*52260ae4SRob Clark static inline uint32_t A5XX_RB_2D_DST_SIZE_ARRAY_PITCH(uint32_t val)
4539*52260ae4SRob Clark {
4540*52260ae4SRob Clark 	return ((val >> 6) << A5XX_RB_2D_DST_SIZE_ARRAY_PITCH__SHIFT) & A5XX_RB_2D_DST_SIZE_ARRAY_PITCH__MASK;
4541*52260ae4SRob Clark }
4542*52260ae4SRob Clark 
4543*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_FLAGS_LO				0x00002140
4544*52260ae4SRob Clark 
4545*52260ae4SRob Clark #define REG_A5XX_RB_2D_SRC_FLAGS_HI				0x00002141
4546*52260ae4SRob Clark 
4547a26ae754SRob Clark #define REG_A5XX_RB_2D_DST_FLAGS_LO				0x00002143
4548a26ae754SRob Clark 
4549a26ae754SRob Clark #define REG_A5XX_RB_2D_DST_FLAGS_HI				0x00002144
4550a26ae754SRob Clark 
4551a26ae754SRob Clark #define REG_A5XX_GRAS_2D_SRC_INFO				0x00002181
4552a26ae754SRob Clark #define A5XX_GRAS_2D_SRC_INFO_COLOR_FORMAT__MASK		0x000000ff
4553a26ae754SRob Clark #define A5XX_GRAS_2D_SRC_INFO_COLOR_FORMAT__SHIFT		0
4554a26ae754SRob Clark static inline uint32_t A5XX_GRAS_2D_SRC_INFO_COLOR_FORMAT(enum a5xx_color_fmt val)
4555a26ae754SRob Clark {
4556a26ae754SRob Clark 	return ((val) << A5XX_GRAS_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A5XX_GRAS_2D_SRC_INFO_COLOR_FORMAT__MASK;
4557a26ae754SRob Clark }
4558a26ae754SRob Clark #define A5XX_GRAS_2D_SRC_INFO_COLOR_SWAP__MASK			0x00000c00
4559a26ae754SRob Clark #define A5XX_GRAS_2D_SRC_INFO_COLOR_SWAP__SHIFT			10
4560a26ae754SRob Clark static inline uint32_t A5XX_GRAS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4561a26ae754SRob Clark {
4562a26ae754SRob Clark 	return ((val) << A5XX_GRAS_2D_SRC_INFO_COLOR_SWAP__SHIFT) & A5XX_GRAS_2D_SRC_INFO_COLOR_SWAP__MASK;
4563a26ae754SRob Clark }
4564a26ae754SRob Clark 
4565a26ae754SRob Clark #define REG_A5XX_GRAS_2D_DST_INFO				0x00002182
4566a26ae754SRob Clark #define A5XX_GRAS_2D_DST_INFO_COLOR_FORMAT__MASK		0x000000ff
4567a26ae754SRob Clark #define A5XX_GRAS_2D_DST_INFO_COLOR_FORMAT__SHIFT		0
4568a26ae754SRob Clark static inline uint32_t A5XX_GRAS_2D_DST_INFO_COLOR_FORMAT(enum a5xx_color_fmt val)
4569a26ae754SRob Clark {
4570a26ae754SRob Clark 	return ((val) << A5XX_GRAS_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A5XX_GRAS_2D_DST_INFO_COLOR_FORMAT__MASK;
4571a26ae754SRob Clark }
4572a26ae754SRob Clark #define A5XX_GRAS_2D_DST_INFO_COLOR_SWAP__MASK			0x00000c00
4573a26ae754SRob Clark #define A5XX_GRAS_2D_DST_INFO_COLOR_SWAP__SHIFT			10
4574a26ae754SRob Clark static inline uint32_t A5XX_GRAS_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4575a26ae754SRob Clark {
4576a26ae754SRob Clark 	return ((val) << A5XX_GRAS_2D_DST_INFO_COLOR_SWAP__SHIFT) & A5XX_GRAS_2D_DST_INFO_COLOR_SWAP__MASK;
4577a26ae754SRob Clark }
4578a26ae754SRob Clark 
4579*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_2100					0x00002100
4580*52260ae4SRob Clark 
4581*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_2180					0x00002180
4582*52260ae4SRob Clark 
4583*52260ae4SRob Clark #define REG_A5XX_UNKNOWN_2184					0x00002184
4584*52260ae4SRob Clark 
4585a26ae754SRob Clark #define REG_A5XX_TEX_SAMP_0					0x00000000
4586a26ae754SRob Clark #define A5XX_TEX_SAMP_0_MIPFILTER_LINEAR_NEAR			0x00000001
4587a26ae754SRob Clark #define A5XX_TEX_SAMP_0_XY_MAG__MASK				0x00000006
4588a26ae754SRob Clark #define A5XX_TEX_SAMP_0_XY_MAG__SHIFT				1
4589a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_XY_MAG(enum a5xx_tex_filter val)
4590a26ae754SRob Clark {
4591a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_XY_MAG__SHIFT) & A5XX_TEX_SAMP_0_XY_MAG__MASK;
4592a26ae754SRob Clark }
4593a26ae754SRob Clark #define A5XX_TEX_SAMP_0_XY_MIN__MASK				0x00000018
4594a26ae754SRob Clark #define A5XX_TEX_SAMP_0_XY_MIN__SHIFT				3
4595a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_XY_MIN(enum a5xx_tex_filter val)
4596a26ae754SRob Clark {
4597a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_XY_MIN__SHIFT) & A5XX_TEX_SAMP_0_XY_MIN__MASK;
4598a26ae754SRob Clark }
4599a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_S__MASK				0x000000e0
4600a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_S__SHIFT				5
4601a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_WRAP_S(enum a5xx_tex_clamp val)
4602a26ae754SRob Clark {
4603a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_WRAP_S__SHIFT) & A5XX_TEX_SAMP_0_WRAP_S__MASK;
4604a26ae754SRob Clark }
4605a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_T__MASK				0x00000700
4606a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_T__SHIFT				8
4607a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_WRAP_T(enum a5xx_tex_clamp val)
4608a26ae754SRob Clark {
4609a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_WRAP_T__SHIFT) & A5XX_TEX_SAMP_0_WRAP_T__MASK;
4610a26ae754SRob Clark }
4611a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_R__MASK				0x00003800
4612a26ae754SRob Clark #define A5XX_TEX_SAMP_0_WRAP_R__SHIFT				11
4613a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_WRAP_R(enum a5xx_tex_clamp val)
4614a26ae754SRob Clark {
4615a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_WRAP_R__SHIFT) & A5XX_TEX_SAMP_0_WRAP_R__MASK;
4616a26ae754SRob Clark }
4617a26ae754SRob Clark #define A5XX_TEX_SAMP_0_ANISO__MASK				0x0001c000
4618a26ae754SRob Clark #define A5XX_TEX_SAMP_0_ANISO__SHIFT				14
4619a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_ANISO(enum a5xx_tex_aniso val)
4620a26ae754SRob Clark {
4621a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_0_ANISO__SHIFT) & A5XX_TEX_SAMP_0_ANISO__MASK;
4622a26ae754SRob Clark }
4623a26ae754SRob Clark #define A5XX_TEX_SAMP_0_LOD_BIAS__MASK				0xfff80000
4624a26ae754SRob Clark #define A5XX_TEX_SAMP_0_LOD_BIAS__SHIFT				19
4625a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_0_LOD_BIAS(float val)
4626a26ae754SRob Clark {
4627a26ae754SRob Clark 	return ((((int32_t)(val * 256.0))) << A5XX_TEX_SAMP_0_LOD_BIAS__SHIFT) & A5XX_TEX_SAMP_0_LOD_BIAS__MASK;
4628a26ae754SRob Clark }
4629a26ae754SRob Clark 
4630a26ae754SRob Clark #define REG_A5XX_TEX_SAMP_1					0x00000001
4631a26ae754SRob Clark #define A5XX_TEX_SAMP_1_COMPARE_FUNC__MASK			0x0000000e
4632a26ae754SRob Clark #define A5XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT			1
4633a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)
4634a26ae754SRob Clark {
4635a26ae754SRob Clark 	return ((val) << A5XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT) & A5XX_TEX_SAMP_1_COMPARE_FUNC__MASK;
4636a26ae754SRob Clark }
4637a26ae754SRob Clark #define A5XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF			0x00000010
4638a26ae754SRob Clark #define A5XX_TEX_SAMP_1_UNNORM_COORDS				0x00000020
4639a26ae754SRob Clark #define A5XX_TEX_SAMP_1_MIPFILTER_LINEAR_FAR			0x00000040
4640a26ae754SRob Clark #define A5XX_TEX_SAMP_1_MAX_LOD__MASK				0x000fff00
4641a26ae754SRob Clark #define A5XX_TEX_SAMP_1_MAX_LOD__SHIFT				8
4642a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_1_MAX_LOD(float val)
4643a26ae754SRob Clark {
4644a26ae754SRob Clark 	return ((((uint32_t)(val * 256.0))) << A5XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A5XX_TEX_SAMP_1_MAX_LOD__MASK;
4645a26ae754SRob Clark }
4646a26ae754SRob Clark #define A5XX_TEX_SAMP_1_MIN_LOD__MASK				0xfff00000
4647a26ae754SRob Clark #define A5XX_TEX_SAMP_1_MIN_LOD__SHIFT				20
4648a26ae754SRob Clark static inline uint32_t A5XX_TEX_SAMP_1_MIN_LOD(float val)
4649a26ae754SRob Clark {
4650a26ae754SRob Clark 	return ((((uint32_t)(val * 256.0))) << A5XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A5XX_TEX_SAMP_1_MIN_LOD__MASK;
4651a26ae754SRob Clark }
4652a26ae754SRob Clark 
4653a26ae754SRob Clark #define REG_A5XX_TEX_SAMP_2					0x00000002
4654*52260ae4SRob Clark #define A5XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK			0xfffffff0
4655*52260ae4SRob Clark #define A5XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT			4
4656*52260ae4SRob Clark static inline uint32_t A5XX_TEX_SAMP_2_BCOLOR_OFFSET(uint32_t val)
4657*52260ae4SRob Clark {
4658*52260ae4SRob Clark 	return ((val) << A5XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT) & A5XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK;
4659*52260ae4SRob Clark }
4660a26ae754SRob Clark 
4661a26ae754SRob Clark #define REG_A5XX_TEX_SAMP_3					0x00000003
4662a26ae754SRob Clark 
4663a26ae754SRob Clark #define REG_A5XX_TEX_CONST_0					0x00000000
4664a26ae754SRob Clark #define A5XX_TEX_CONST_0_TILE_MODE__MASK			0x00000003
4665a26ae754SRob Clark #define A5XX_TEX_CONST_0_TILE_MODE__SHIFT			0
4666a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_TILE_MODE(enum a5xx_tile_mode val)
4667a26ae754SRob Clark {
4668a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_TILE_MODE__SHIFT) & A5XX_TEX_CONST_0_TILE_MODE__MASK;
4669a26ae754SRob Clark }
4670a26ae754SRob Clark #define A5XX_TEX_CONST_0_SRGB					0x00000004
4671a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_X__MASK				0x00000070
4672a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_X__SHIFT				4
4673a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_SWIZ_X(enum a5xx_tex_swiz val)
4674a26ae754SRob Clark {
4675a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_SWIZ_X__SHIFT) & A5XX_TEX_CONST_0_SWIZ_X__MASK;
4676a26ae754SRob Clark }
4677a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_Y__MASK				0x00000380
4678a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_Y__SHIFT				7
4679a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_SWIZ_Y(enum a5xx_tex_swiz val)
4680a26ae754SRob Clark {
4681a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A5XX_TEX_CONST_0_SWIZ_Y__MASK;
4682a26ae754SRob Clark }
4683a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_Z__MASK				0x00001c00
4684a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_Z__SHIFT				10
4685a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_SWIZ_Z(enum a5xx_tex_swiz val)
4686a26ae754SRob Clark {
4687a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A5XX_TEX_CONST_0_SWIZ_Z__MASK;
4688a26ae754SRob Clark }
4689a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_W__MASK				0x0000e000
4690a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWIZ_W__SHIFT				13
4691a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_SWIZ_W(enum a5xx_tex_swiz val)
4692a26ae754SRob Clark {
4693a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_SWIZ_W__SHIFT) & A5XX_TEX_CONST_0_SWIZ_W__MASK;
4694a26ae754SRob Clark }
4695*52260ae4SRob Clark #define A5XX_TEX_CONST_0_MIPLVLS__MASK				0x000f0000
4696*52260ae4SRob Clark #define A5XX_TEX_CONST_0_MIPLVLS__SHIFT				16
4697*52260ae4SRob Clark static inline uint32_t A5XX_TEX_CONST_0_MIPLVLS(uint32_t val)
4698*52260ae4SRob Clark {
4699*52260ae4SRob Clark 	return ((val) << A5XX_TEX_CONST_0_MIPLVLS__SHIFT) & A5XX_TEX_CONST_0_MIPLVLS__MASK;
4700*52260ae4SRob Clark }
4701a26ae754SRob Clark #define A5XX_TEX_CONST_0_FMT__MASK				0x3fc00000
4702a26ae754SRob Clark #define A5XX_TEX_CONST_0_FMT__SHIFT				22
4703a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_FMT(enum a5xx_tex_fmt val)
4704a26ae754SRob Clark {
4705a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_FMT__SHIFT) & A5XX_TEX_CONST_0_FMT__MASK;
4706a26ae754SRob Clark }
4707a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWAP__MASK				0xc0000000
4708a26ae754SRob Clark #define A5XX_TEX_CONST_0_SWAP__SHIFT				30
4709a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)
4710a26ae754SRob Clark {
4711a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_0_SWAP__SHIFT) & A5XX_TEX_CONST_0_SWAP__MASK;
4712a26ae754SRob Clark }
4713a26ae754SRob Clark 
4714a26ae754SRob Clark #define REG_A5XX_TEX_CONST_1					0x00000001
4715a26ae754SRob Clark #define A5XX_TEX_CONST_1_WIDTH__MASK				0x00007fff
4716a26ae754SRob Clark #define A5XX_TEX_CONST_1_WIDTH__SHIFT				0
4717a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_1_WIDTH(uint32_t val)
4718a26ae754SRob Clark {
4719a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_1_WIDTH__SHIFT) & A5XX_TEX_CONST_1_WIDTH__MASK;
4720a26ae754SRob Clark }
4721a26ae754SRob Clark #define A5XX_TEX_CONST_1_HEIGHT__MASK				0x3fff8000
4722a26ae754SRob Clark #define A5XX_TEX_CONST_1_HEIGHT__SHIFT				15
4723a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_1_HEIGHT(uint32_t val)
4724a26ae754SRob Clark {
4725a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_1_HEIGHT__SHIFT) & A5XX_TEX_CONST_1_HEIGHT__MASK;
4726a26ae754SRob Clark }
4727a26ae754SRob Clark 
4728a26ae754SRob Clark #define REG_A5XX_TEX_CONST_2					0x00000002
4729a26ae754SRob Clark #define A5XX_TEX_CONST_2_FETCHSIZE__MASK			0x0000000f
4730a26ae754SRob Clark #define A5XX_TEX_CONST_2_FETCHSIZE__SHIFT			0
4731a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_2_FETCHSIZE(enum a5xx_tex_fetchsize val)
4732a26ae754SRob Clark {
4733a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_2_FETCHSIZE__SHIFT) & A5XX_TEX_CONST_2_FETCHSIZE__MASK;
4734a26ae754SRob Clark }
4735a26ae754SRob Clark #define A5XX_TEX_CONST_2_PITCH__MASK				0x1fffff80
4736a26ae754SRob Clark #define A5XX_TEX_CONST_2_PITCH__SHIFT				7
4737a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_2_PITCH(uint32_t val)
4738a26ae754SRob Clark {
4739a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_2_PITCH__SHIFT) & A5XX_TEX_CONST_2_PITCH__MASK;
4740a26ae754SRob Clark }
4741a26ae754SRob Clark #define A5XX_TEX_CONST_2_TYPE__MASK				0x60000000
4742a26ae754SRob Clark #define A5XX_TEX_CONST_2_TYPE__SHIFT				29
4743a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_2_TYPE(enum a5xx_tex_type val)
4744a26ae754SRob Clark {
4745a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_2_TYPE__SHIFT) & A5XX_TEX_CONST_2_TYPE__MASK;
4746a26ae754SRob Clark }
4747a26ae754SRob Clark 
4748a26ae754SRob Clark #define REG_A5XX_TEX_CONST_3					0x00000003
4749a26ae754SRob Clark #define A5XX_TEX_CONST_3_ARRAY_PITCH__MASK			0x00003fff
4750a26ae754SRob Clark #define A5XX_TEX_CONST_3_ARRAY_PITCH__SHIFT			0
4751a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)
4752a26ae754SRob Clark {
4753a26ae754SRob Clark 	return ((val >> 12) << A5XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A5XX_TEX_CONST_3_ARRAY_PITCH__MASK;
4754a26ae754SRob Clark }
4755a26ae754SRob Clark #define A5XX_TEX_CONST_3_FLAG					0x10000000
4756a26ae754SRob Clark 
4757a26ae754SRob Clark #define REG_A5XX_TEX_CONST_4					0x00000004
4758a26ae754SRob Clark #define A5XX_TEX_CONST_4_BASE_LO__MASK				0xffffffe0
4759a26ae754SRob Clark #define A5XX_TEX_CONST_4_BASE_LO__SHIFT				5
4760a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_4_BASE_LO(uint32_t val)
4761a26ae754SRob Clark {
4762a26ae754SRob Clark 	return ((val >> 5) << A5XX_TEX_CONST_4_BASE_LO__SHIFT) & A5XX_TEX_CONST_4_BASE_LO__MASK;
4763a26ae754SRob Clark }
4764a26ae754SRob Clark 
4765a26ae754SRob Clark #define REG_A5XX_TEX_CONST_5					0x00000005
4766a26ae754SRob Clark #define A5XX_TEX_CONST_5_BASE_HI__MASK				0x0001ffff
4767a26ae754SRob Clark #define A5XX_TEX_CONST_5_BASE_HI__SHIFT				0
4768a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_5_BASE_HI(uint32_t val)
4769a26ae754SRob Clark {
4770a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_5_BASE_HI__SHIFT) & A5XX_TEX_CONST_5_BASE_HI__MASK;
4771a26ae754SRob Clark }
4772a26ae754SRob Clark #define A5XX_TEX_CONST_5_DEPTH__MASK				0x3ffe0000
4773a26ae754SRob Clark #define A5XX_TEX_CONST_5_DEPTH__SHIFT				17
4774a26ae754SRob Clark static inline uint32_t A5XX_TEX_CONST_5_DEPTH(uint32_t val)
4775a26ae754SRob Clark {
4776a26ae754SRob Clark 	return ((val) << A5XX_TEX_CONST_5_DEPTH__SHIFT) & A5XX_TEX_CONST_5_DEPTH__MASK;
4777a26ae754SRob Clark }
4778a26ae754SRob Clark 
4779a26ae754SRob Clark #define REG_A5XX_TEX_CONST_6					0x00000006
4780a26ae754SRob Clark 
4781a26ae754SRob Clark #define REG_A5XX_TEX_CONST_7					0x00000007
4782a26ae754SRob Clark 
4783a26ae754SRob Clark #define REG_A5XX_TEX_CONST_8					0x00000008
4784a26ae754SRob Clark 
4785a26ae754SRob Clark #define REG_A5XX_TEX_CONST_9					0x00000009
4786a26ae754SRob Clark 
4787a26ae754SRob Clark #define REG_A5XX_TEX_CONST_10					0x0000000a
4788a26ae754SRob Clark 
4789a26ae754SRob Clark #define REG_A5XX_TEX_CONST_11					0x0000000b
4790a26ae754SRob Clark 
4791a26ae754SRob Clark 
4792a26ae754SRob Clark #endif /* A5XX_XML */
4793