xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/msm/adreno/a4xx.xml.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef A4XX_XML
2*4882a593Smuzhiyun #define A4XX_XML
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun /* Autogenerated file, DO NOT EDIT manually!
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun This file was generated by the rules-ng-ng headergen tool in this git repository:
7*4882a593Smuzhiyun http://github.com/freedreno/envytools/
8*4882a593Smuzhiyun git clone https://github.com/freedreno/envytools.git
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun The rules-ng-ng source files this header was generated from are:
11*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno.xml                     (    594 bytes, from 2020-07-23 21:58:14)
12*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/freedreno_copyright.xml        (   1572 bytes, from 2020-07-23 21:58:14)
13*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a2xx.xml                (  90159 bytes, from 2020-07-23 21:58:14)
14*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/adreno_common.xml       (  14386 bytes, from 2020-07-23 21:58:14)
15*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/adreno_pm4.xml          (  65048 bytes, from 2020-07-23 21:58:14)
16*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a3xx.xml                (  84226 bytes, from 2020-07-23 21:58:14)
17*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a4xx.xml                ( 112556 bytes, from 2020-07-23 21:58:14)
18*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a5xx.xml                ( 149461 bytes, from 2020-07-23 21:58:14)
19*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a6xx.xml                ( 184695 bytes, from 2020-07-23 21:58:14)
20*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/a6xx_gmu.xml            (  11218 bytes, from 2020-07-23 21:58:14)
21*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/ocmem.xml               (   1773 bytes, from 2020-07-23 21:58:14)
22*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/adreno_control_regs.xml (   4559 bytes, from 2020-07-23 21:58:14)
23*4882a593Smuzhiyun - /home/robclark/src/envytools/rnndb/adreno/adreno_pipe_regs.xml    (   2872 bytes, from 2020-07-23 21:58:14)
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun Copyright (C) 2013-2020 by the following authors:
26*4882a593Smuzhiyun - Rob Clark <robdclark@gmail.com> (robclark)
27*4882a593Smuzhiyun - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun Permission is hereby granted, free of charge, to any person obtaining
30*4882a593Smuzhiyun a copy of this software and associated documentation files (the
31*4882a593Smuzhiyun "Software"), to deal in the Software without restriction, including
32*4882a593Smuzhiyun without limitation the rights to use, copy, modify, merge, publish,
33*4882a593Smuzhiyun distribute, sublicense, and/or sell copies of the Software, and to
34*4882a593Smuzhiyun permit persons to whom the Software is furnished to do so, subject to
35*4882a593Smuzhiyun the following conditions:
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun The above copyright notice and this permission notice (including the
38*4882a593Smuzhiyun next paragraph) shall be included in all copies or substantial
39*4882a593Smuzhiyun portions of the Software.
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
42*4882a593Smuzhiyun EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
43*4882a593Smuzhiyun MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
44*4882a593Smuzhiyun IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
45*4882a593Smuzhiyun LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
46*4882a593Smuzhiyun OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
47*4882a593Smuzhiyun WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
48*4882a593Smuzhiyun */
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun enum a4xx_color_fmt {
52*4882a593Smuzhiyun 	RB4_A8_UNORM = 1,
53*4882a593Smuzhiyun 	RB4_R8_UNORM = 2,
54*4882a593Smuzhiyun 	RB4_R8_SNORM = 3,
55*4882a593Smuzhiyun 	RB4_R8_UINT = 4,
56*4882a593Smuzhiyun 	RB4_R8_SINT = 5,
57*4882a593Smuzhiyun 	RB4_R4G4B4A4_UNORM = 8,
58*4882a593Smuzhiyun 	RB4_R5G5B5A1_UNORM = 10,
59*4882a593Smuzhiyun 	RB4_R5G6B5_UNORM = 14,
60*4882a593Smuzhiyun 	RB4_R8G8_UNORM = 15,
61*4882a593Smuzhiyun 	RB4_R8G8_SNORM = 16,
62*4882a593Smuzhiyun 	RB4_R8G8_UINT = 17,
63*4882a593Smuzhiyun 	RB4_R8G8_SINT = 18,
64*4882a593Smuzhiyun 	RB4_R16_UNORM = 19,
65*4882a593Smuzhiyun 	RB4_R16_SNORM = 20,
66*4882a593Smuzhiyun 	RB4_R16_FLOAT = 21,
67*4882a593Smuzhiyun 	RB4_R16_UINT = 22,
68*4882a593Smuzhiyun 	RB4_R16_SINT = 23,
69*4882a593Smuzhiyun 	RB4_R8G8B8_UNORM = 25,
70*4882a593Smuzhiyun 	RB4_R8G8B8A8_UNORM = 26,
71*4882a593Smuzhiyun 	RB4_R8G8B8A8_SNORM = 28,
72*4882a593Smuzhiyun 	RB4_R8G8B8A8_UINT = 29,
73*4882a593Smuzhiyun 	RB4_R8G8B8A8_SINT = 30,
74*4882a593Smuzhiyun 	RB4_R10G10B10A2_UNORM = 31,
75*4882a593Smuzhiyun 	RB4_R10G10B10A2_UINT = 34,
76*4882a593Smuzhiyun 	RB4_R11G11B10_FLOAT = 39,
77*4882a593Smuzhiyun 	RB4_R16G16_UNORM = 40,
78*4882a593Smuzhiyun 	RB4_R16G16_SNORM = 41,
79*4882a593Smuzhiyun 	RB4_R16G16_FLOAT = 42,
80*4882a593Smuzhiyun 	RB4_R16G16_UINT = 43,
81*4882a593Smuzhiyun 	RB4_R16G16_SINT = 44,
82*4882a593Smuzhiyun 	RB4_R32_FLOAT = 45,
83*4882a593Smuzhiyun 	RB4_R32_UINT = 46,
84*4882a593Smuzhiyun 	RB4_R32_SINT = 47,
85*4882a593Smuzhiyun 	RB4_R16G16B16A16_UNORM = 52,
86*4882a593Smuzhiyun 	RB4_R16G16B16A16_SNORM = 53,
87*4882a593Smuzhiyun 	RB4_R16G16B16A16_FLOAT = 54,
88*4882a593Smuzhiyun 	RB4_R16G16B16A16_UINT = 55,
89*4882a593Smuzhiyun 	RB4_R16G16B16A16_SINT = 56,
90*4882a593Smuzhiyun 	RB4_R32G32_FLOAT = 57,
91*4882a593Smuzhiyun 	RB4_R32G32_UINT = 58,
92*4882a593Smuzhiyun 	RB4_R32G32_SINT = 59,
93*4882a593Smuzhiyun 	RB4_R32G32B32A32_FLOAT = 60,
94*4882a593Smuzhiyun 	RB4_R32G32B32A32_UINT = 61,
95*4882a593Smuzhiyun 	RB4_R32G32B32A32_SINT = 62,
96*4882a593Smuzhiyun 	RB4_NONE = 255,
97*4882a593Smuzhiyun };
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun enum a4xx_tile_mode {
100*4882a593Smuzhiyun 	TILE4_LINEAR = 0,
101*4882a593Smuzhiyun 	TILE4_2 = 2,
102*4882a593Smuzhiyun 	TILE4_3 = 3,
103*4882a593Smuzhiyun };
104*4882a593Smuzhiyun 
105*4882a593Smuzhiyun enum a4xx_vtx_fmt {
106*4882a593Smuzhiyun 	VFMT4_32_FLOAT = 1,
107*4882a593Smuzhiyun 	VFMT4_32_32_FLOAT = 2,
108*4882a593Smuzhiyun 	VFMT4_32_32_32_FLOAT = 3,
109*4882a593Smuzhiyun 	VFMT4_32_32_32_32_FLOAT = 4,
110*4882a593Smuzhiyun 	VFMT4_16_FLOAT = 5,
111*4882a593Smuzhiyun 	VFMT4_16_16_FLOAT = 6,
112*4882a593Smuzhiyun 	VFMT4_16_16_16_FLOAT = 7,
113*4882a593Smuzhiyun 	VFMT4_16_16_16_16_FLOAT = 8,
114*4882a593Smuzhiyun 	VFMT4_32_FIXED = 9,
115*4882a593Smuzhiyun 	VFMT4_32_32_FIXED = 10,
116*4882a593Smuzhiyun 	VFMT4_32_32_32_FIXED = 11,
117*4882a593Smuzhiyun 	VFMT4_32_32_32_32_FIXED = 12,
118*4882a593Smuzhiyun 	VFMT4_11_11_10_FLOAT = 13,
119*4882a593Smuzhiyun 	VFMT4_16_SINT = 16,
120*4882a593Smuzhiyun 	VFMT4_16_16_SINT = 17,
121*4882a593Smuzhiyun 	VFMT4_16_16_16_SINT = 18,
122*4882a593Smuzhiyun 	VFMT4_16_16_16_16_SINT = 19,
123*4882a593Smuzhiyun 	VFMT4_16_UINT = 20,
124*4882a593Smuzhiyun 	VFMT4_16_16_UINT = 21,
125*4882a593Smuzhiyun 	VFMT4_16_16_16_UINT = 22,
126*4882a593Smuzhiyun 	VFMT4_16_16_16_16_UINT = 23,
127*4882a593Smuzhiyun 	VFMT4_16_SNORM = 24,
128*4882a593Smuzhiyun 	VFMT4_16_16_SNORM = 25,
129*4882a593Smuzhiyun 	VFMT4_16_16_16_SNORM = 26,
130*4882a593Smuzhiyun 	VFMT4_16_16_16_16_SNORM = 27,
131*4882a593Smuzhiyun 	VFMT4_16_UNORM = 28,
132*4882a593Smuzhiyun 	VFMT4_16_16_UNORM = 29,
133*4882a593Smuzhiyun 	VFMT4_16_16_16_UNORM = 30,
134*4882a593Smuzhiyun 	VFMT4_16_16_16_16_UNORM = 31,
135*4882a593Smuzhiyun 	VFMT4_32_UINT = 32,
136*4882a593Smuzhiyun 	VFMT4_32_32_UINT = 33,
137*4882a593Smuzhiyun 	VFMT4_32_32_32_UINT = 34,
138*4882a593Smuzhiyun 	VFMT4_32_32_32_32_UINT = 35,
139*4882a593Smuzhiyun 	VFMT4_32_SINT = 36,
140*4882a593Smuzhiyun 	VFMT4_32_32_SINT = 37,
141*4882a593Smuzhiyun 	VFMT4_32_32_32_SINT = 38,
142*4882a593Smuzhiyun 	VFMT4_32_32_32_32_SINT = 39,
143*4882a593Smuzhiyun 	VFMT4_8_UINT = 40,
144*4882a593Smuzhiyun 	VFMT4_8_8_UINT = 41,
145*4882a593Smuzhiyun 	VFMT4_8_8_8_UINT = 42,
146*4882a593Smuzhiyun 	VFMT4_8_8_8_8_UINT = 43,
147*4882a593Smuzhiyun 	VFMT4_8_UNORM = 44,
148*4882a593Smuzhiyun 	VFMT4_8_8_UNORM = 45,
149*4882a593Smuzhiyun 	VFMT4_8_8_8_UNORM = 46,
150*4882a593Smuzhiyun 	VFMT4_8_8_8_8_UNORM = 47,
151*4882a593Smuzhiyun 	VFMT4_8_SINT = 48,
152*4882a593Smuzhiyun 	VFMT4_8_8_SINT = 49,
153*4882a593Smuzhiyun 	VFMT4_8_8_8_SINT = 50,
154*4882a593Smuzhiyun 	VFMT4_8_8_8_8_SINT = 51,
155*4882a593Smuzhiyun 	VFMT4_8_SNORM = 52,
156*4882a593Smuzhiyun 	VFMT4_8_8_SNORM = 53,
157*4882a593Smuzhiyun 	VFMT4_8_8_8_SNORM = 54,
158*4882a593Smuzhiyun 	VFMT4_8_8_8_8_SNORM = 55,
159*4882a593Smuzhiyun 	VFMT4_10_10_10_2_UINT = 56,
160*4882a593Smuzhiyun 	VFMT4_10_10_10_2_UNORM = 57,
161*4882a593Smuzhiyun 	VFMT4_10_10_10_2_SINT = 58,
162*4882a593Smuzhiyun 	VFMT4_10_10_10_2_SNORM = 59,
163*4882a593Smuzhiyun 	VFMT4_2_10_10_10_UINT = 60,
164*4882a593Smuzhiyun 	VFMT4_2_10_10_10_UNORM = 61,
165*4882a593Smuzhiyun 	VFMT4_2_10_10_10_SINT = 62,
166*4882a593Smuzhiyun 	VFMT4_2_10_10_10_SNORM = 63,
167*4882a593Smuzhiyun 	VFMT4_NONE = 255,
168*4882a593Smuzhiyun };
169*4882a593Smuzhiyun 
170*4882a593Smuzhiyun enum a4xx_tex_fmt {
171*4882a593Smuzhiyun 	TFMT4_A8_UNORM = 3,
172*4882a593Smuzhiyun 	TFMT4_8_UNORM = 4,
173*4882a593Smuzhiyun 	TFMT4_8_SNORM = 5,
174*4882a593Smuzhiyun 	TFMT4_8_UINT = 6,
175*4882a593Smuzhiyun 	TFMT4_8_SINT = 7,
176*4882a593Smuzhiyun 	TFMT4_4_4_4_4_UNORM = 8,
177*4882a593Smuzhiyun 	TFMT4_5_5_5_1_UNORM = 9,
178*4882a593Smuzhiyun 	TFMT4_5_6_5_UNORM = 11,
179*4882a593Smuzhiyun 	TFMT4_L8_A8_UNORM = 13,
180*4882a593Smuzhiyun 	TFMT4_8_8_UNORM = 14,
181*4882a593Smuzhiyun 	TFMT4_8_8_SNORM = 15,
182*4882a593Smuzhiyun 	TFMT4_8_8_UINT = 16,
183*4882a593Smuzhiyun 	TFMT4_8_8_SINT = 17,
184*4882a593Smuzhiyun 	TFMT4_16_UNORM = 18,
185*4882a593Smuzhiyun 	TFMT4_16_SNORM = 19,
186*4882a593Smuzhiyun 	TFMT4_16_FLOAT = 20,
187*4882a593Smuzhiyun 	TFMT4_16_UINT = 21,
188*4882a593Smuzhiyun 	TFMT4_16_SINT = 22,
189*4882a593Smuzhiyun 	TFMT4_8_8_8_8_UNORM = 28,
190*4882a593Smuzhiyun 	TFMT4_8_8_8_8_SNORM = 29,
191*4882a593Smuzhiyun 	TFMT4_8_8_8_8_UINT = 30,
192*4882a593Smuzhiyun 	TFMT4_8_8_8_8_SINT = 31,
193*4882a593Smuzhiyun 	TFMT4_9_9_9_E5_FLOAT = 32,
194*4882a593Smuzhiyun 	TFMT4_10_10_10_2_UNORM = 33,
195*4882a593Smuzhiyun 	TFMT4_10_10_10_2_UINT = 34,
196*4882a593Smuzhiyun 	TFMT4_11_11_10_FLOAT = 37,
197*4882a593Smuzhiyun 	TFMT4_16_16_UNORM = 38,
198*4882a593Smuzhiyun 	TFMT4_16_16_SNORM = 39,
199*4882a593Smuzhiyun 	TFMT4_16_16_FLOAT = 40,
200*4882a593Smuzhiyun 	TFMT4_16_16_UINT = 41,
201*4882a593Smuzhiyun 	TFMT4_16_16_SINT = 42,
202*4882a593Smuzhiyun 	TFMT4_32_FLOAT = 43,
203*4882a593Smuzhiyun 	TFMT4_32_UINT = 44,
204*4882a593Smuzhiyun 	TFMT4_32_SINT = 45,
205*4882a593Smuzhiyun 	TFMT4_16_16_16_16_UNORM = 51,
206*4882a593Smuzhiyun 	TFMT4_16_16_16_16_SNORM = 52,
207*4882a593Smuzhiyun 	TFMT4_16_16_16_16_FLOAT = 53,
208*4882a593Smuzhiyun 	TFMT4_16_16_16_16_UINT = 54,
209*4882a593Smuzhiyun 	TFMT4_16_16_16_16_SINT = 55,
210*4882a593Smuzhiyun 	TFMT4_32_32_FLOAT = 56,
211*4882a593Smuzhiyun 	TFMT4_32_32_UINT = 57,
212*4882a593Smuzhiyun 	TFMT4_32_32_SINT = 58,
213*4882a593Smuzhiyun 	TFMT4_32_32_32_FLOAT = 59,
214*4882a593Smuzhiyun 	TFMT4_32_32_32_UINT = 60,
215*4882a593Smuzhiyun 	TFMT4_32_32_32_SINT = 61,
216*4882a593Smuzhiyun 	TFMT4_32_32_32_32_FLOAT = 63,
217*4882a593Smuzhiyun 	TFMT4_32_32_32_32_UINT = 64,
218*4882a593Smuzhiyun 	TFMT4_32_32_32_32_SINT = 65,
219*4882a593Smuzhiyun 	TFMT4_X8Z24_UNORM = 71,
220*4882a593Smuzhiyun 	TFMT4_DXT1 = 86,
221*4882a593Smuzhiyun 	TFMT4_DXT3 = 87,
222*4882a593Smuzhiyun 	TFMT4_DXT5 = 88,
223*4882a593Smuzhiyun 	TFMT4_RGTC1_UNORM = 90,
224*4882a593Smuzhiyun 	TFMT4_RGTC1_SNORM = 91,
225*4882a593Smuzhiyun 	TFMT4_RGTC2_UNORM = 94,
226*4882a593Smuzhiyun 	TFMT4_RGTC2_SNORM = 95,
227*4882a593Smuzhiyun 	TFMT4_BPTC_UFLOAT = 97,
228*4882a593Smuzhiyun 	TFMT4_BPTC_FLOAT = 98,
229*4882a593Smuzhiyun 	TFMT4_BPTC = 99,
230*4882a593Smuzhiyun 	TFMT4_ATC_RGB = 100,
231*4882a593Smuzhiyun 	TFMT4_ATC_RGBA_EXPLICIT = 101,
232*4882a593Smuzhiyun 	TFMT4_ATC_RGBA_INTERPOLATED = 102,
233*4882a593Smuzhiyun 	TFMT4_ETC2_RG11_UNORM = 103,
234*4882a593Smuzhiyun 	TFMT4_ETC2_RG11_SNORM = 104,
235*4882a593Smuzhiyun 	TFMT4_ETC2_R11_UNORM = 105,
236*4882a593Smuzhiyun 	TFMT4_ETC2_R11_SNORM = 106,
237*4882a593Smuzhiyun 	TFMT4_ETC1 = 107,
238*4882a593Smuzhiyun 	TFMT4_ETC2_RGB8 = 108,
239*4882a593Smuzhiyun 	TFMT4_ETC2_RGBA8 = 109,
240*4882a593Smuzhiyun 	TFMT4_ETC2_RGB8A1 = 110,
241*4882a593Smuzhiyun 	TFMT4_ASTC_4x4 = 111,
242*4882a593Smuzhiyun 	TFMT4_ASTC_5x4 = 112,
243*4882a593Smuzhiyun 	TFMT4_ASTC_5x5 = 113,
244*4882a593Smuzhiyun 	TFMT4_ASTC_6x5 = 114,
245*4882a593Smuzhiyun 	TFMT4_ASTC_6x6 = 115,
246*4882a593Smuzhiyun 	TFMT4_ASTC_8x5 = 116,
247*4882a593Smuzhiyun 	TFMT4_ASTC_8x6 = 117,
248*4882a593Smuzhiyun 	TFMT4_ASTC_8x8 = 118,
249*4882a593Smuzhiyun 	TFMT4_ASTC_10x5 = 119,
250*4882a593Smuzhiyun 	TFMT4_ASTC_10x6 = 120,
251*4882a593Smuzhiyun 	TFMT4_ASTC_10x8 = 121,
252*4882a593Smuzhiyun 	TFMT4_ASTC_10x10 = 122,
253*4882a593Smuzhiyun 	TFMT4_ASTC_12x10 = 123,
254*4882a593Smuzhiyun 	TFMT4_ASTC_12x12 = 124,
255*4882a593Smuzhiyun 	TFMT4_NONE = 255,
256*4882a593Smuzhiyun };
257*4882a593Smuzhiyun 
258*4882a593Smuzhiyun enum a4xx_depth_format {
259*4882a593Smuzhiyun 	DEPTH4_NONE = 0,
260*4882a593Smuzhiyun 	DEPTH4_16 = 1,
261*4882a593Smuzhiyun 	DEPTH4_24_8 = 2,
262*4882a593Smuzhiyun 	DEPTH4_32 = 3,
263*4882a593Smuzhiyun };
264*4882a593Smuzhiyun 
265*4882a593Smuzhiyun enum a4xx_ccu_perfcounter_select {
266*4882a593Smuzhiyun 	CCU_BUSY_CYCLES = 0,
267*4882a593Smuzhiyun 	CCU_RB_DEPTH_RETURN_STALL = 2,
268*4882a593Smuzhiyun 	CCU_RB_COLOR_RETURN_STALL = 3,
269*4882a593Smuzhiyun 	CCU_DEPTH_BLOCKS = 6,
270*4882a593Smuzhiyun 	CCU_COLOR_BLOCKS = 7,
271*4882a593Smuzhiyun 	CCU_DEPTH_BLOCK_HIT = 8,
272*4882a593Smuzhiyun 	CCU_COLOR_BLOCK_HIT = 9,
273*4882a593Smuzhiyun 	CCU_DEPTH_FLAG1_COUNT = 10,
274*4882a593Smuzhiyun 	CCU_DEPTH_FLAG2_COUNT = 11,
275*4882a593Smuzhiyun 	CCU_DEPTH_FLAG3_COUNT = 12,
276*4882a593Smuzhiyun 	CCU_DEPTH_FLAG4_COUNT = 13,
277*4882a593Smuzhiyun 	CCU_COLOR_FLAG1_COUNT = 14,
278*4882a593Smuzhiyun 	CCU_COLOR_FLAG2_COUNT = 15,
279*4882a593Smuzhiyun 	CCU_COLOR_FLAG3_COUNT = 16,
280*4882a593Smuzhiyun 	CCU_COLOR_FLAG4_COUNT = 17,
281*4882a593Smuzhiyun 	CCU_PARTIAL_BLOCK_READ = 18,
282*4882a593Smuzhiyun };
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun enum a4xx_cp_perfcounter_select {
285*4882a593Smuzhiyun 	CP_ALWAYS_COUNT = 0,
286*4882a593Smuzhiyun 	CP_BUSY = 1,
287*4882a593Smuzhiyun 	CP_PFP_IDLE = 2,
288*4882a593Smuzhiyun 	CP_PFP_BUSY_WORKING = 3,
289*4882a593Smuzhiyun 	CP_PFP_STALL_CYCLES_ANY = 4,
290*4882a593Smuzhiyun 	CP_PFP_STARVE_CYCLES_ANY = 5,
291*4882a593Smuzhiyun 	CP_PFP_STARVED_PER_LOAD_ADDR = 6,
292*4882a593Smuzhiyun 	CP_PFP_STALLED_PER_STORE_ADDR = 7,
293*4882a593Smuzhiyun 	CP_PFP_PC_PROFILE = 8,
294*4882a593Smuzhiyun 	CP_PFP_MATCH_PM4_PKT_PROFILE = 9,
295*4882a593Smuzhiyun 	CP_PFP_COND_INDIRECT_DISCARDED = 10,
296*4882a593Smuzhiyun 	CP_LONG_RESUMPTIONS = 11,
297*4882a593Smuzhiyun 	CP_RESUME_CYCLES = 12,
298*4882a593Smuzhiyun 	CP_RESUME_TO_BOUNDARY_CYCLES = 13,
299*4882a593Smuzhiyun 	CP_LONG_PREEMPTIONS = 14,
300*4882a593Smuzhiyun 	CP_PREEMPT_CYCLES = 15,
301*4882a593Smuzhiyun 	CP_PREEMPT_TO_BOUNDARY_CYCLES = 16,
302*4882a593Smuzhiyun 	CP_ME_FIFO_EMPTY_PFP_IDLE = 17,
303*4882a593Smuzhiyun 	CP_ME_FIFO_EMPTY_PFP_BUSY = 18,
304*4882a593Smuzhiyun 	CP_ME_FIFO_NOT_EMPTY_NOT_FULL = 19,
305*4882a593Smuzhiyun 	CP_ME_FIFO_FULL_ME_BUSY = 20,
306*4882a593Smuzhiyun 	CP_ME_FIFO_FULL_ME_NON_WORKING = 21,
307*4882a593Smuzhiyun 	CP_ME_WAITING_FOR_PACKETS = 22,
308*4882a593Smuzhiyun 	CP_ME_BUSY_WORKING = 23,
309*4882a593Smuzhiyun 	CP_ME_STARVE_CYCLES_ANY = 24,
310*4882a593Smuzhiyun 	CP_ME_STARVE_CYCLES_PER_PROFILE = 25,
311*4882a593Smuzhiyun 	CP_ME_STALL_CYCLES_PER_PROFILE = 26,
312*4882a593Smuzhiyun 	CP_ME_PC_PROFILE = 27,
313*4882a593Smuzhiyun 	CP_RCIU_FIFO_EMPTY = 28,
314*4882a593Smuzhiyun 	CP_RCIU_FIFO_NOT_EMPTY_NOT_FULL = 29,
315*4882a593Smuzhiyun 	CP_RCIU_FIFO_FULL = 30,
316*4882a593Smuzhiyun 	CP_RCIU_FIFO_FULL_NO_CONTEXT = 31,
317*4882a593Smuzhiyun 	CP_RCIU_FIFO_FULL_AHB_MASTER = 32,
318*4882a593Smuzhiyun 	CP_RCIU_FIFO_FULL_OTHER = 33,
319*4882a593Smuzhiyun 	CP_AHB_IDLE = 34,
320*4882a593Smuzhiyun 	CP_AHB_STALL_ON_GRANT_NO_SPLIT = 35,
321*4882a593Smuzhiyun 	CP_AHB_STALL_ON_GRANT_SPLIT = 36,
322*4882a593Smuzhiyun 	CP_AHB_STALL_ON_GRANT_SPLIT_PROFILE = 37,
323*4882a593Smuzhiyun 	CP_AHB_BUSY_WORKING = 38,
324*4882a593Smuzhiyun 	CP_AHB_BUSY_STALL_ON_HRDY = 39,
325*4882a593Smuzhiyun 	CP_AHB_BUSY_STALL_ON_HRDY_PROFILE = 40,
326*4882a593Smuzhiyun };
327*4882a593Smuzhiyun 
328*4882a593Smuzhiyun enum a4xx_gras_ras_perfcounter_select {
329*4882a593Smuzhiyun 	RAS_SUPER_TILES = 0,
330*4882a593Smuzhiyun 	RAS_8X8_TILES = 1,
331*4882a593Smuzhiyun 	RAS_4X4_TILES = 2,
332*4882a593Smuzhiyun 	RAS_BUSY_CYCLES = 3,
333*4882a593Smuzhiyun 	RAS_STALL_CYCLES_BY_RB = 4,
334*4882a593Smuzhiyun 	RAS_STALL_CYCLES_BY_VSC = 5,
335*4882a593Smuzhiyun 	RAS_STARVE_CYCLES_BY_TSE = 6,
336*4882a593Smuzhiyun 	RAS_SUPERTILE_CYCLES = 7,
337*4882a593Smuzhiyun 	RAS_TILE_CYCLES = 8,
338*4882a593Smuzhiyun 	RAS_FULLY_COVERED_SUPER_TILES = 9,
339*4882a593Smuzhiyun 	RAS_FULLY_COVERED_8X8_TILES = 10,
340*4882a593Smuzhiyun 	RAS_4X4_PRIM = 11,
341*4882a593Smuzhiyun 	RAS_8X4_4X8_PRIM = 12,
342*4882a593Smuzhiyun 	RAS_8X8_PRIM = 13,
343*4882a593Smuzhiyun };
344*4882a593Smuzhiyun 
345*4882a593Smuzhiyun enum a4xx_gras_tse_perfcounter_select {
346*4882a593Smuzhiyun 	TSE_INPUT_PRIM = 0,
347*4882a593Smuzhiyun 	TSE_INPUT_NULL_PRIM = 1,
348*4882a593Smuzhiyun 	TSE_TRIVAL_REJ_PRIM = 2,
349*4882a593Smuzhiyun 	TSE_CLIPPED_PRIM = 3,
350*4882a593Smuzhiyun 	TSE_NEW_PRIM = 4,
351*4882a593Smuzhiyun 	TSE_ZERO_AREA_PRIM = 5,
352*4882a593Smuzhiyun 	TSE_FACENESS_CULLED_PRIM = 6,
353*4882a593Smuzhiyun 	TSE_ZERO_PIXEL_PRIM = 7,
354*4882a593Smuzhiyun 	TSE_OUTPUT_NULL_PRIM = 8,
355*4882a593Smuzhiyun 	TSE_OUTPUT_VISIBLE_PRIM = 9,
356*4882a593Smuzhiyun 	TSE_PRE_CLIP_PRIM = 10,
357*4882a593Smuzhiyun 	TSE_POST_CLIP_PRIM = 11,
358*4882a593Smuzhiyun 	TSE_BUSY_CYCLES = 12,
359*4882a593Smuzhiyun 	TSE_PC_STARVE = 13,
360*4882a593Smuzhiyun 	TSE_RAS_STALL = 14,
361*4882a593Smuzhiyun 	TSE_STALL_BARYPLANE_FIFO_FULL = 15,
362*4882a593Smuzhiyun 	TSE_STALL_ZPLANE_FIFO_FULL = 16,
363*4882a593Smuzhiyun };
364*4882a593Smuzhiyun 
365*4882a593Smuzhiyun enum a4xx_hlsq_perfcounter_select {
366*4882a593Smuzhiyun 	HLSQ_SP_VS_STAGE_CONSTANT = 0,
367*4882a593Smuzhiyun 	HLSQ_SP_VS_STAGE_INSTRUCTIONS = 1,
368*4882a593Smuzhiyun 	HLSQ_SP_FS_STAGE_CONSTANT = 2,
369*4882a593Smuzhiyun 	HLSQ_SP_FS_STAGE_INSTRUCTIONS = 3,
370*4882a593Smuzhiyun 	HLSQ_TP_STATE = 4,
371*4882a593Smuzhiyun 	HLSQ_QUADS = 5,
372*4882a593Smuzhiyun 	HLSQ_PIXELS = 6,
373*4882a593Smuzhiyun 	HLSQ_VERTICES = 7,
374*4882a593Smuzhiyun 	HLSQ_SP_VS_STAGE_DATA_BYTES = 13,
375*4882a593Smuzhiyun 	HLSQ_SP_FS_STAGE_DATA_BYTES = 14,
376*4882a593Smuzhiyun 	HLSQ_BUSY_CYCLES = 15,
377*4882a593Smuzhiyun 	HLSQ_STALL_CYCLES_SP_STATE = 16,
378*4882a593Smuzhiyun 	HLSQ_STALL_CYCLES_SP_VS_STAGE = 17,
379*4882a593Smuzhiyun 	HLSQ_STALL_CYCLES_SP_FS_STAGE = 18,
380*4882a593Smuzhiyun 	HLSQ_STALL_CYCLES_UCHE = 19,
381*4882a593Smuzhiyun 	HLSQ_RBBM_LOAD_CYCLES = 20,
382*4882a593Smuzhiyun 	HLSQ_DI_TO_VS_START_SP = 21,
383*4882a593Smuzhiyun 	HLSQ_DI_TO_FS_START_SP = 22,
384*4882a593Smuzhiyun 	HLSQ_VS_STAGE_START_TO_DONE_SP = 23,
385*4882a593Smuzhiyun 	HLSQ_FS_STAGE_START_TO_DONE_SP = 24,
386*4882a593Smuzhiyun 	HLSQ_SP_STATE_COPY_CYCLES_VS_STAGE = 25,
387*4882a593Smuzhiyun 	HLSQ_SP_STATE_COPY_CYCLES_FS_STAGE = 26,
388*4882a593Smuzhiyun 	HLSQ_UCHE_LATENCY_CYCLES = 27,
389*4882a593Smuzhiyun 	HLSQ_UCHE_LATENCY_COUNT = 28,
390*4882a593Smuzhiyun 	HLSQ_STARVE_CYCLES_VFD = 29,
391*4882a593Smuzhiyun };
392*4882a593Smuzhiyun 
393*4882a593Smuzhiyun enum a4xx_pc_perfcounter_select {
394*4882a593Smuzhiyun 	PC_VIS_STREAMS_LOADED = 0,
395*4882a593Smuzhiyun 	PC_VPC_PRIMITIVES = 2,
396*4882a593Smuzhiyun 	PC_DEAD_PRIM = 3,
397*4882a593Smuzhiyun 	PC_LIVE_PRIM = 4,
398*4882a593Smuzhiyun 	PC_DEAD_DRAWCALLS = 5,
399*4882a593Smuzhiyun 	PC_LIVE_DRAWCALLS = 6,
400*4882a593Smuzhiyun 	PC_VERTEX_MISSES = 7,
401*4882a593Smuzhiyun 	PC_STALL_CYCLES_VFD = 9,
402*4882a593Smuzhiyun 	PC_STALL_CYCLES_TSE = 10,
403*4882a593Smuzhiyun 	PC_STALL_CYCLES_UCHE = 11,
404*4882a593Smuzhiyun 	PC_WORKING_CYCLES = 12,
405*4882a593Smuzhiyun 	PC_IA_VERTICES = 13,
406*4882a593Smuzhiyun 	PC_GS_PRIMITIVES = 14,
407*4882a593Smuzhiyun 	PC_HS_INVOCATIONS = 15,
408*4882a593Smuzhiyun 	PC_DS_INVOCATIONS = 16,
409*4882a593Smuzhiyun 	PC_DS_PRIMITIVES = 17,
410*4882a593Smuzhiyun 	PC_STARVE_CYCLES_FOR_INDEX = 20,
411*4882a593Smuzhiyun 	PC_STARVE_CYCLES_FOR_TESS_FACTOR = 21,
412*4882a593Smuzhiyun 	PC_STARVE_CYCLES_FOR_VIZ_STREAM = 22,
413*4882a593Smuzhiyun 	PC_STALL_CYCLES_TESS = 23,
414*4882a593Smuzhiyun 	PC_STARVE_CYCLES_FOR_POSITION = 24,
415*4882a593Smuzhiyun 	PC_MODE0_DRAWCALL = 25,
416*4882a593Smuzhiyun 	PC_MODE1_DRAWCALL = 26,
417*4882a593Smuzhiyun 	PC_MODE2_DRAWCALL = 27,
418*4882a593Smuzhiyun 	PC_MODE3_DRAWCALL = 28,
419*4882a593Smuzhiyun 	PC_MODE4_DRAWCALL = 29,
420*4882a593Smuzhiyun 	PC_PREDICATED_DEAD_DRAWCALL = 30,
421*4882a593Smuzhiyun 	PC_STALL_CYCLES_BY_TSE_ONLY = 31,
422*4882a593Smuzhiyun 	PC_STALL_CYCLES_BY_VPC_ONLY = 32,
423*4882a593Smuzhiyun 	PC_VPC_POS_DATA_TRANSACTION = 33,
424*4882a593Smuzhiyun 	PC_BUSY_CYCLES = 34,
425*4882a593Smuzhiyun 	PC_STARVE_CYCLES_DI = 35,
426*4882a593Smuzhiyun 	PC_STALL_CYCLES_VPC = 36,
427*4882a593Smuzhiyun 	TESS_WORKING_CYCLES = 37,
428*4882a593Smuzhiyun 	TESS_NUM_CYCLES_SETUP_WORKING = 38,
429*4882a593Smuzhiyun 	TESS_NUM_CYCLES_PTGEN_WORKING = 39,
430*4882a593Smuzhiyun 	TESS_NUM_CYCLES_CONNGEN_WORKING = 40,
431*4882a593Smuzhiyun 	TESS_BUSY_CYCLES = 41,
432*4882a593Smuzhiyun 	TESS_STARVE_CYCLES_PC = 42,
433*4882a593Smuzhiyun 	TESS_STALL_CYCLES_PC = 43,
434*4882a593Smuzhiyun };
435*4882a593Smuzhiyun 
436*4882a593Smuzhiyun enum a4xx_pwr_perfcounter_select {
437*4882a593Smuzhiyun 	PWR_CORE_CLOCK_CYCLES = 0,
438*4882a593Smuzhiyun 	PWR_BUSY_CLOCK_CYCLES = 1,
439*4882a593Smuzhiyun };
440*4882a593Smuzhiyun 
441*4882a593Smuzhiyun enum a4xx_rb_perfcounter_select {
442*4882a593Smuzhiyun 	RB_BUSY_CYCLES = 0,
443*4882a593Smuzhiyun 	RB_BUSY_CYCLES_BINNING = 1,
444*4882a593Smuzhiyun 	RB_BUSY_CYCLES_RENDERING = 2,
445*4882a593Smuzhiyun 	RB_BUSY_CYCLES_RESOLVE = 3,
446*4882a593Smuzhiyun 	RB_STARVE_CYCLES_BY_SP = 4,
447*4882a593Smuzhiyun 	RB_STARVE_CYCLES_BY_RAS = 5,
448*4882a593Smuzhiyun 	RB_STARVE_CYCLES_BY_MARB = 6,
449*4882a593Smuzhiyun 	RB_STALL_CYCLES_BY_MARB = 7,
450*4882a593Smuzhiyun 	RB_STALL_CYCLES_BY_HLSQ = 8,
451*4882a593Smuzhiyun 	RB_RB_RB_MARB_DATA = 9,
452*4882a593Smuzhiyun 	RB_SP_RB_QUAD = 10,
453*4882a593Smuzhiyun 	RB_RAS_RB_Z_QUADS = 11,
454*4882a593Smuzhiyun 	RB_GMEM_CH0_READ = 12,
455*4882a593Smuzhiyun 	RB_GMEM_CH1_READ = 13,
456*4882a593Smuzhiyun 	RB_GMEM_CH0_WRITE = 14,
457*4882a593Smuzhiyun 	RB_GMEM_CH1_WRITE = 15,
458*4882a593Smuzhiyun 	RB_CP_CONTEXT_DONE = 16,
459*4882a593Smuzhiyun 	RB_CP_CACHE_FLUSH = 17,
460*4882a593Smuzhiyun 	RB_CP_ZPASS_DONE = 18,
461*4882a593Smuzhiyun 	RB_STALL_FIFO0_FULL = 19,
462*4882a593Smuzhiyun 	RB_STALL_FIFO1_FULL = 20,
463*4882a593Smuzhiyun 	RB_STALL_FIFO2_FULL = 21,
464*4882a593Smuzhiyun 	RB_STALL_FIFO3_FULL = 22,
465*4882a593Smuzhiyun 	RB_RB_HLSQ_TRANSACTIONS = 23,
466*4882a593Smuzhiyun 	RB_Z_READ = 24,
467*4882a593Smuzhiyun 	RB_Z_WRITE = 25,
468*4882a593Smuzhiyun 	RB_C_READ = 26,
469*4882a593Smuzhiyun 	RB_C_WRITE = 27,
470*4882a593Smuzhiyun 	RB_C_READ_LATENCY = 28,
471*4882a593Smuzhiyun 	RB_Z_READ_LATENCY = 29,
472*4882a593Smuzhiyun 	RB_STALL_BY_UCHE = 30,
473*4882a593Smuzhiyun 	RB_MARB_UCHE_TRANSACTIONS = 31,
474*4882a593Smuzhiyun 	RB_CACHE_STALL_MISS = 32,
475*4882a593Smuzhiyun 	RB_CACHE_STALL_FIFO_FULL = 33,
476*4882a593Smuzhiyun 	RB_8BIT_BLENDER_UNITS_ACTIVE = 34,
477*4882a593Smuzhiyun 	RB_16BIT_BLENDER_UNITS_ACTIVE = 35,
478*4882a593Smuzhiyun 	RB_SAMPLER_UNITS_ACTIVE = 36,
479*4882a593Smuzhiyun 	RB_TOTAL_PASS = 38,
480*4882a593Smuzhiyun 	RB_Z_PASS = 39,
481*4882a593Smuzhiyun 	RB_Z_FAIL = 40,
482*4882a593Smuzhiyun 	RB_S_FAIL = 41,
483*4882a593Smuzhiyun 	RB_POWER0 = 42,
484*4882a593Smuzhiyun 	RB_POWER1 = 43,
485*4882a593Smuzhiyun 	RB_POWER2 = 44,
486*4882a593Smuzhiyun 	RB_POWER3 = 45,
487*4882a593Smuzhiyun 	RB_POWER4 = 46,
488*4882a593Smuzhiyun 	RB_POWER5 = 47,
489*4882a593Smuzhiyun 	RB_POWER6 = 48,
490*4882a593Smuzhiyun 	RB_POWER7 = 49,
491*4882a593Smuzhiyun };
492*4882a593Smuzhiyun 
493*4882a593Smuzhiyun enum a4xx_rbbm_perfcounter_select {
494*4882a593Smuzhiyun 	RBBM_ALWAYS_ON = 0,
495*4882a593Smuzhiyun 	RBBM_VBIF_BUSY = 1,
496*4882a593Smuzhiyun 	RBBM_TSE_BUSY = 2,
497*4882a593Smuzhiyun 	RBBM_RAS_BUSY = 3,
498*4882a593Smuzhiyun 	RBBM_PC_DCALL_BUSY = 4,
499*4882a593Smuzhiyun 	RBBM_PC_VSD_BUSY = 5,
500*4882a593Smuzhiyun 	RBBM_VFD_BUSY = 6,
501*4882a593Smuzhiyun 	RBBM_VPC_BUSY = 7,
502*4882a593Smuzhiyun 	RBBM_UCHE_BUSY = 8,
503*4882a593Smuzhiyun 	RBBM_VSC_BUSY = 9,
504*4882a593Smuzhiyun 	RBBM_HLSQ_BUSY = 10,
505*4882a593Smuzhiyun 	RBBM_ANY_RB_BUSY = 11,
506*4882a593Smuzhiyun 	RBBM_ANY_TPL1_BUSY = 12,
507*4882a593Smuzhiyun 	RBBM_ANY_SP_BUSY = 13,
508*4882a593Smuzhiyun 	RBBM_ANY_MARB_BUSY = 14,
509*4882a593Smuzhiyun 	RBBM_ANY_ARB_BUSY = 15,
510*4882a593Smuzhiyun 	RBBM_AHB_STATUS_BUSY = 16,
511*4882a593Smuzhiyun 	RBBM_AHB_STATUS_STALLED = 17,
512*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR = 18,
513*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR_SPLIT = 19,
514*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR_ERROR = 20,
515*4882a593Smuzhiyun 	RBBM_AHB_STATUS_LONG_STALL = 21,
516*4882a593Smuzhiyun 	RBBM_STATUS_MASKED = 22,
517*4882a593Smuzhiyun 	RBBM_CP_BUSY_GFX_CORE_IDLE = 23,
518*4882a593Smuzhiyun 	RBBM_TESS_BUSY = 24,
519*4882a593Smuzhiyun 	RBBM_COM_BUSY = 25,
520*4882a593Smuzhiyun 	RBBM_DCOM_BUSY = 32,
521*4882a593Smuzhiyun 	RBBM_ANY_CCU_BUSY = 33,
522*4882a593Smuzhiyun 	RBBM_DPM_BUSY = 34,
523*4882a593Smuzhiyun };
524*4882a593Smuzhiyun 
525*4882a593Smuzhiyun enum a4xx_sp_perfcounter_select {
526*4882a593Smuzhiyun 	SP_LM_LOAD_INSTRUCTIONS = 0,
527*4882a593Smuzhiyun 	SP_LM_STORE_INSTRUCTIONS = 1,
528*4882a593Smuzhiyun 	SP_LM_ATOMICS = 2,
529*4882a593Smuzhiyun 	SP_GM_LOAD_INSTRUCTIONS = 3,
530*4882a593Smuzhiyun 	SP_GM_STORE_INSTRUCTIONS = 4,
531*4882a593Smuzhiyun 	SP_GM_ATOMICS = 5,
532*4882a593Smuzhiyun 	SP_VS_STAGE_TEX_INSTRUCTIONS = 6,
533*4882a593Smuzhiyun 	SP_VS_STAGE_CFLOW_INSTRUCTIONS = 7,
534*4882a593Smuzhiyun 	SP_VS_STAGE_EFU_INSTRUCTIONS = 8,
535*4882a593Smuzhiyun 	SP_VS_STAGE_FULL_ALU_INSTRUCTIONS = 9,
536*4882a593Smuzhiyun 	SP_VS_STAGE_HALF_ALU_INSTRUCTIONS = 10,
537*4882a593Smuzhiyun 	SP_FS_STAGE_TEX_INSTRUCTIONS = 11,
538*4882a593Smuzhiyun 	SP_FS_STAGE_CFLOW_INSTRUCTIONS = 12,
539*4882a593Smuzhiyun 	SP_FS_STAGE_EFU_INSTRUCTIONS = 13,
540*4882a593Smuzhiyun 	SP_FS_STAGE_FULL_ALU_INSTRUCTIONS = 14,
541*4882a593Smuzhiyun 	SP_FS_STAGE_HALF_ALU_INSTRUCTIONS = 15,
542*4882a593Smuzhiyun 	SP_VS_INSTRUCTIONS = 17,
543*4882a593Smuzhiyun 	SP_FS_INSTRUCTIONS = 18,
544*4882a593Smuzhiyun 	SP_ADDR_LOCK_COUNT = 19,
545*4882a593Smuzhiyun 	SP_UCHE_READ_TRANS = 20,
546*4882a593Smuzhiyun 	SP_UCHE_WRITE_TRANS = 21,
547*4882a593Smuzhiyun 	SP_EXPORT_VPC_TRANS = 22,
548*4882a593Smuzhiyun 	SP_EXPORT_RB_TRANS = 23,
549*4882a593Smuzhiyun 	SP_PIXELS_KILLED = 24,
550*4882a593Smuzhiyun 	SP_ICL1_REQUESTS = 25,
551*4882a593Smuzhiyun 	SP_ICL1_MISSES = 26,
552*4882a593Smuzhiyun 	SP_ICL0_REQUESTS = 27,
553*4882a593Smuzhiyun 	SP_ICL0_MISSES = 28,
554*4882a593Smuzhiyun 	SP_ALU_WORKING_CYCLES = 29,
555*4882a593Smuzhiyun 	SP_EFU_WORKING_CYCLES = 30,
556*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_VPC = 31,
557*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_TP = 32,
558*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_UCHE = 33,
559*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_RB = 34,
560*4882a593Smuzhiyun 	SP_BUSY_CYCLES = 35,
561*4882a593Smuzhiyun 	SP_HS_INSTRUCTIONS = 36,
562*4882a593Smuzhiyun 	SP_DS_INSTRUCTIONS = 37,
563*4882a593Smuzhiyun 	SP_GS_INSTRUCTIONS = 38,
564*4882a593Smuzhiyun 	SP_CS_INSTRUCTIONS = 39,
565*4882a593Smuzhiyun 	SP_SCHEDULER_NON_WORKING = 40,
566*4882a593Smuzhiyun 	SP_WAVE_CONTEXTS = 41,
567*4882a593Smuzhiyun 	SP_WAVE_CONTEXT_CYCLES = 42,
568*4882a593Smuzhiyun 	SP_POWER0 = 43,
569*4882a593Smuzhiyun 	SP_POWER1 = 44,
570*4882a593Smuzhiyun 	SP_POWER2 = 45,
571*4882a593Smuzhiyun 	SP_POWER3 = 46,
572*4882a593Smuzhiyun 	SP_POWER4 = 47,
573*4882a593Smuzhiyun 	SP_POWER5 = 48,
574*4882a593Smuzhiyun 	SP_POWER6 = 49,
575*4882a593Smuzhiyun 	SP_POWER7 = 50,
576*4882a593Smuzhiyun 	SP_POWER8 = 51,
577*4882a593Smuzhiyun 	SP_POWER9 = 52,
578*4882a593Smuzhiyun 	SP_POWER10 = 53,
579*4882a593Smuzhiyun 	SP_POWER11 = 54,
580*4882a593Smuzhiyun 	SP_POWER12 = 55,
581*4882a593Smuzhiyun 	SP_POWER13 = 56,
582*4882a593Smuzhiyun 	SP_POWER14 = 57,
583*4882a593Smuzhiyun 	SP_POWER15 = 58,
584*4882a593Smuzhiyun };
585*4882a593Smuzhiyun 
586*4882a593Smuzhiyun enum a4xx_tp_perfcounter_select {
587*4882a593Smuzhiyun 	TP_L1_REQUESTS = 0,
588*4882a593Smuzhiyun 	TP_L1_MISSES = 1,
589*4882a593Smuzhiyun 	TP_QUADS_OFFSET = 8,
590*4882a593Smuzhiyun 	TP_QUAD_SHADOW = 9,
591*4882a593Smuzhiyun 	TP_QUADS_ARRAY = 10,
592*4882a593Smuzhiyun 	TP_QUADS_GRADIENT = 11,
593*4882a593Smuzhiyun 	TP_QUADS_1D2D = 12,
594*4882a593Smuzhiyun 	TP_QUADS_3DCUBE = 13,
595*4882a593Smuzhiyun 	TP_BUSY_CYCLES = 16,
596*4882a593Smuzhiyun 	TP_STALL_CYCLES_BY_ARB = 17,
597*4882a593Smuzhiyun 	TP_STATE_CACHE_REQUESTS = 20,
598*4882a593Smuzhiyun 	TP_STATE_CACHE_MISSES = 21,
599*4882a593Smuzhiyun 	TP_POWER0 = 22,
600*4882a593Smuzhiyun 	TP_POWER1 = 23,
601*4882a593Smuzhiyun 	TP_POWER2 = 24,
602*4882a593Smuzhiyun 	TP_POWER3 = 25,
603*4882a593Smuzhiyun 	TP_POWER4 = 26,
604*4882a593Smuzhiyun 	TP_POWER5 = 27,
605*4882a593Smuzhiyun 	TP_POWER6 = 28,
606*4882a593Smuzhiyun 	TP_POWER7 = 29,
607*4882a593Smuzhiyun };
608*4882a593Smuzhiyun 
609*4882a593Smuzhiyun enum a4xx_uche_perfcounter_select {
610*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_TP = 0,
611*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_VFD = 1,
612*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_HLSQ = 2,
613*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_MARB = 3,
614*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_SP = 4,
615*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_TP = 5,
616*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_VFD = 6,
617*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_HLSQ = 7,
618*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_MARB = 8,
619*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_SP = 9,
620*4882a593Smuzhiyun 	UCHE_WRITE_REQUESTS_MARB = 10,
621*4882a593Smuzhiyun 	UCHE_WRITE_REQUESTS_SP = 11,
622*4882a593Smuzhiyun 	UCHE_TAG_CHECK_FAILS = 12,
623*4882a593Smuzhiyun 	UCHE_EVICTS = 13,
624*4882a593Smuzhiyun 	UCHE_FLUSHES = 14,
625*4882a593Smuzhiyun 	UCHE_VBIF_LATENCY_CYCLES = 15,
626*4882a593Smuzhiyun 	UCHE_VBIF_LATENCY_SAMPLES = 16,
627*4882a593Smuzhiyun 	UCHE_BUSY_CYCLES = 17,
628*4882a593Smuzhiyun 	UCHE_VBIF_READ_BEATS_PC = 18,
629*4882a593Smuzhiyun 	UCHE_READ_REQUESTS_PC = 19,
630*4882a593Smuzhiyun 	UCHE_WRITE_REQUESTS_VPC = 20,
631*4882a593Smuzhiyun 	UCHE_STALL_BY_VBIF = 21,
632*4882a593Smuzhiyun 	UCHE_WRITE_REQUESTS_VSC = 22,
633*4882a593Smuzhiyun 	UCHE_POWER0 = 23,
634*4882a593Smuzhiyun 	UCHE_POWER1 = 24,
635*4882a593Smuzhiyun 	UCHE_POWER2 = 25,
636*4882a593Smuzhiyun 	UCHE_POWER3 = 26,
637*4882a593Smuzhiyun 	UCHE_POWER4 = 27,
638*4882a593Smuzhiyun 	UCHE_POWER5 = 28,
639*4882a593Smuzhiyun 	UCHE_POWER6 = 29,
640*4882a593Smuzhiyun 	UCHE_POWER7 = 30,
641*4882a593Smuzhiyun };
642*4882a593Smuzhiyun 
643*4882a593Smuzhiyun enum a4xx_vbif_perfcounter_select {
644*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_0 = 0,
645*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_1 = 1,
646*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_2 = 2,
647*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_3 = 3,
648*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_4 = 4,
649*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_5 = 5,
650*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_6 = 6,
651*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_7 = 7,
652*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_8 = 8,
653*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_9 = 9,
654*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_10 = 10,
655*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_11 = 11,
656*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_12 = 12,
657*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_13 = 13,
658*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_14 = 14,
659*4882a593Smuzhiyun 	AXI_READ_REQUESTS_ID_15 = 15,
660*4882a593Smuzhiyun 	AXI0_READ_REQUESTS_TOTAL = 16,
661*4882a593Smuzhiyun 	AXI1_READ_REQUESTS_TOTAL = 17,
662*4882a593Smuzhiyun 	AXI2_READ_REQUESTS_TOTAL = 18,
663*4882a593Smuzhiyun 	AXI3_READ_REQUESTS_TOTAL = 19,
664*4882a593Smuzhiyun 	AXI_READ_REQUESTS_TOTAL = 20,
665*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_0 = 21,
666*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_1 = 22,
667*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_2 = 23,
668*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_3 = 24,
669*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_4 = 25,
670*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_5 = 26,
671*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_6 = 27,
672*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_7 = 28,
673*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_8 = 29,
674*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_9 = 30,
675*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_10 = 31,
676*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_11 = 32,
677*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_12 = 33,
678*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_13 = 34,
679*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_14 = 35,
680*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_ID_15 = 36,
681*4882a593Smuzhiyun 	AXI0_WRITE_REQUESTS_TOTAL = 37,
682*4882a593Smuzhiyun 	AXI1_WRITE_REQUESTS_TOTAL = 38,
683*4882a593Smuzhiyun 	AXI2_WRITE_REQUESTS_TOTAL = 39,
684*4882a593Smuzhiyun 	AXI3_WRITE_REQUESTS_TOTAL = 40,
685*4882a593Smuzhiyun 	AXI_WRITE_REQUESTS_TOTAL = 41,
686*4882a593Smuzhiyun 	AXI_TOTAL_REQUESTS = 42,
687*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_0 = 43,
688*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_1 = 44,
689*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_2 = 45,
690*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_3 = 46,
691*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_4 = 47,
692*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_5 = 48,
693*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_6 = 49,
694*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_7 = 50,
695*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_8 = 51,
696*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_9 = 52,
697*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_10 = 53,
698*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_11 = 54,
699*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_12 = 55,
700*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_13 = 56,
701*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_14 = 57,
702*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_ID_15 = 58,
703*4882a593Smuzhiyun 	AXI0_READ_DATA_BEATS_TOTAL = 59,
704*4882a593Smuzhiyun 	AXI1_READ_DATA_BEATS_TOTAL = 60,
705*4882a593Smuzhiyun 	AXI2_READ_DATA_BEATS_TOTAL = 61,
706*4882a593Smuzhiyun 	AXI3_READ_DATA_BEATS_TOTAL = 62,
707*4882a593Smuzhiyun 	AXI_READ_DATA_BEATS_TOTAL = 63,
708*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_0 = 64,
709*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_1 = 65,
710*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_2 = 66,
711*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_3 = 67,
712*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_4 = 68,
713*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_5 = 69,
714*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_6 = 70,
715*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_7 = 71,
716*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_8 = 72,
717*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_9 = 73,
718*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_10 = 74,
719*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_11 = 75,
720*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_12 = 76,
721*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_13 = 77,
722*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_14 = 78,
723*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_ID_15 = 79,
724*4882a593Smuzhiyun 	AXI0_WRITE_DATA_BEATS_TOTAL = 80,
725*4882a593Smuzhiyun 	AXI1_WRITE_DATA_BEATS_TOTAL = 81,
726*4882a593Smuzhiyun 	AXI2_WRITE_DATA_BEATS_TOTAL = 82,
727*4882a593Smuzhiyun 	AXI3_WRITE_DATA_BEATS_TOTAL = 83,
728*4882a593Smuzhiyun 	AXI_WRITE_DATA_BEATS_TOTAL = 84,
729*4882a593Smuzhiyun 	AXI_DATA_BEATS_TOTAL = 85,
730*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_0 = 86,
731*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_1 = 87,
732*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_2 = 88,
733*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_3 = 89,
734*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_4 = 90,
735*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_5 = 91,
736*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_6 = 92,
737*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_7 = 93,
738*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_8 = 94,
739*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_9 = 95,
740*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_10 = 96,
741*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_11 = 97,
742*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_12 = 98,
743*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_13 = 99,
744*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_14 = 100,
745*4882a593Smuzhiyun 	CYCLES_HELD_OFF_ID_15 = 101,
746*4882a593Smuzhiyun 	AXI_READ_REQUEST_HELD_OFF = 102,
747*4882a593Smuzhiyun 	AXI_WRITE_REQUEST_HELD_OFF = 103,
748*4882a593Smuzhiyun 	AXI_REQUEST_HELD_OFF = 104,
749*4882a593Smuzhiyun 	AXI_WRITE_DATA_HELD_OFF = 105,
750*4882a593Smuzhiyun 	OCMEM_AXI_READ_REQUEST_HELD_OFF = 106,
751*4882a593Smuzhiyun 	OCMEM_AXI_WRITE_REQUEST_HELD_OFF = 107,
752*4882a593Smuzhiyun 	OCMEM_AXI_REQUEST_HELD_OFF = 108,
753*4882a593Smuzhiyun 	OCMEM_AXI_WRITE_DATA_HELD_OFF = 109,
754*4882a593Smuzhiyun 	ELAPSED_CYCLES_DDR = 110,
755*4882a593Smuzhiyun 	ELAPSED_CYCLES_OCMEM = 111,
756*4882a593Smuzhiyun };
757*4882a593Smuzhiyun 
758*4882a593Smuzhiyun enum a4xx_vfd_perfcounter_select {
759*4882a593Smuzhiyun 	VFD_UCHE_BYTE_FETCHED = 0,
760*4882a593Smuzhiyun 	VFD_UCHE_TRANS = 1,
761*4882a593Smuzhiyun 	VFD_FETCH_INSTRUCTIONS = 3,
762*4882a593Smuzhiyun 	VFD_BUSY_CYCLES = 5,
763*4882a593Smuzhiyun 	VFD_STALL_CYCLES_UCHE = 6,
764*4882a593Smuzhiyun 	VFD_STALL_CYCLES_HLSQ = 7,
765*4882a593Smuzhiyun 	VFD_STALL_CYCLES_VPC_BYPASS = 8,
766*4882a593Smuzhiyun 	VFD_STALL_CYCLES_VPC_ALLOC = 9,
767*4882a593Smuzhiyun 	VFD_MODE_0_FIBERS = 13,
768*4882a593Smuzhiyun 	VFD_MODE_1_FIBERS = 14,
769*4882a593Smuzhiyun 	VFD_MODE_2_FIBERS = 15,
770*4882a593Smuzhiyun 	VFD_MODE_3_FIBERS = 16,
771*4882a593Smuzhiyun 	VFD_MODE_4_FIBERS = 17,
772*4882a593Smuzhiyun 	VFD_BFIFO_STALL = 18,
773*4882a593Smuzhiyun 	VFD_NUM_VERTICES_TOTAL = 19,
774*4882a593Smuzhiyun 	VFD_PACKER_FULL = 20,
775*4882a593Smuzhiyun 	VFD_UCHE_REQUEST_FIFO_FULL = 21,
776*4882a593Smuzhiyun 	VFD_STARVE_CYCLES_PC = 22,
777*4882a593Smuzhiyun 	VFD_STARVE_CYCLES_UCHE = 23,
778*4882a593Smuzhiyun };
779*4882a593Smuzhiyun 
780*4882a593Smuzhiyun enum a4xx_vpc_perfcounter_select {
781*4882a593Smuzhiyun 	VPC_SP_LM_COMPONENTS = 2,
782*4882a593Smuzhiyun 	VPC_SP0_LM_BYTES = 3,
783*4882a593Smuzhiyun 	VPC_SP1_LM_BYTES = 4,
784*4882a593Smuzhiyun 	VPC_SP2_LM_BYTES = 5,
785*4882a593Smuzhiyun 	VPC_SP3_LM_BYTES = 6,
786*4882a593Smuzhiyun 	VPC_WORKING_CYCLES = 7,
787*4882a593Smuzhiyun 	VPC_STALL_CYCLES_LM = 8,
788*4882a593Smuzhiyun 	VPC_STARVE_CYCLES_RAS = 9,
789*4882a593Smuzhiyun 	VPC_STREAMOUT_CYCLES = 10,
790*4882a593Smuzhiyun 	VPC_UCHE_TRANSACTIONS = 12,
791*4882a593Smuzhiyun 	VPC_STALL_CYCLES_UCHE = 13,
792*4882a593Smuzhiyun 	VPC_BUSY_CYCLES = 14,
793*4882a593Smuzhiyun 	VPC_STARVE_CYCLES_SP = 15,
794*4882a593Smuzhiyun };
795*4882a593Smuzhiyun 
796*4882a593Smuzhiyun enum a4xx_vsc_perfcounter_select {
797*4882a593Smuzhiyun 	VSC_BUSY_CYCLES = 0,
798*4882a593Smuzhiyun 	VSC_WORKING_CYCLES = 1,
799*4882a593Smuzhiyun 	VSC_STALL_CYCLES_UCHE = 2,
800*4882a593Smuzhiyun 	VSC_STARVE_CYCLES_RAS = 3,
801*4882a593Smuzhiyun 	VSC_EOT_NUM = 4,
802*4882a593Smuzhiyun };
803*4882a593Smuzhiyun 
804*4882a593Smuzhiyun enum a4xx_tex_filter {
805*4882a593Smuzhiyun 	A4XX_TEX_NEAREST = 0,
806*4882a593Smuzhiyun 	A4XX_TEX_LINEAR = 1,
807*4882a593Smuzhiyun 	A4XX_TEX_ANISO = 2,
808*4882a593Smuzhiyun };
809*4882a593Smuzhiyun 
810*4882a593Smuzhiyun enum a4xx_tex_clamp {
811*4882a593Smuzhiyun 	A4XX_TEX_REPEAT = 0,
812*4882a593Smuzhiyun 	A4XX_TEX_CLAMP_TO_EDGE = 1,
813*4882a593Smuzhiyun 	A4XX_TEX_MIRROR_REPEAT = 2,
814*4882a593Smuzhiyun 	A4XX_TEX_CLAMP_TO_BORDER = 3,
815*4882a593Smuzhiyun 	A4XX_TEX_MIRROR_CLAMP = 4,
816*4882a593Smuzhiyun };
817*4882a593Smuzhiyun 
818*4882a593Smuzhiyun enum a4xx_tex_aniso {
819*4882a593Smuzhiyun 	A4XX_TEX_ANISO_1 = 0,
820*4882a593Smuzhiyun 	A4XX_TEX_ANISO_2 = 1,
821*4882a593Smuzhiyun 	A4XX_TEX_ANISO_4 = 2,
822*4882a593Smuzhiyun 	A4XX_TEX_ANISO_8 = 3,
823*4882a593Smuzhiyun 	A4XX_TEX_ANISO_16 = 4,
824*4882a593Smuzhiyun };
825*4882a593Smuzhiyun 
826*4882a593Smuzhiyun enum a4xx_tex_swiz {
827*4882a593Smuzhiyun 	A4XX_TEX_X = 0,
828*4882a593Smuzhiyun 	A4XX_TEX_Y = 1,
829*4882a593Smuzhiyun 	A4XX_TEX_Z = 2,
830*4882a593Smuzhiyun 	A4XX_TEX_W = 3,
831*4882a593Smuzhiyun 	A4XX_TEX_ZERO = 4,
832*4882a593Smuzhiyun 	A4XX_TEX_ONE = 5,
833*4882a593Smuzhiyun };
834*4882a593Smuzhiyun 
835*4882a593Smuzhiyun enum a4xx_tex_type {
836*4882a593Smuzhiyun 	A4XX_TEX_1D = 0,
837*4882a593Smuzhiyun 	A4XX_TEX_2D = 1,
838*4882a593Smuzhiyun 	A4XX_TEX_CUBE = 2,
839*4882a593Smuzhiyun 	A4XX_TEX_3D = 3,
840*4882a593Smuzhiyun };
841*4882a593Smuzhiyun 
842*4882a593Smuzhiyun #define A4XX_CGC_HLSQ_EARLY_CYC__MASK				0x00700000
843*4882a593Smuzhiyun #define A4XX_CGC_HLSQ_EARLY_CYC__SHIFT				20
A4XX_CGC_HLSQ_EARLY_CYC(uint32_t val)844*4882a593Smuzhiyun static inline uint32_t A4XX_CGC_HLSQ_EARLY_CYC(uint32_t val)
845*4882a593Smuzhiyun {
846*4882a593Smuzhiyun 	return ((val) << A4XX_CGC_HLSQ_EARLY_CYC__SHIFT) & A4XX_CGC_HLSQ_EARLY_CYC__MASK;
847*4882a593Smuzhiyun }
848*4882a593Smuzhiyun #define A4XX_INT0_RBBM_GPU_IDLE					0x00000001
849*4882a593Smuzhiyun #define A4XX_INT0_RBBM_AHB_ERROR				0x00000002
850*4882a593Smuzhiyun #define A4XX_INT0_RBBM_REG_TIMEOUT				0x00000004
851*4882a593Smuzhiyun #define A4XX_INT0_RBBM_ME_MS_TIMEOUT				0x00000008
852*4882a593Smuzhiyun #define A4XX_INT0_RBBM_PFP_MS_TIMEOUT				0x00000010
853*4882a593Smuzhiyun #define A4XX_INT0_RBBM_ATB_BUS_OVERFLOW				0x00000020
854*4882a593Smuzhiyun #define A4XX_INT0_VFD_ERROR					0x00000040
855*4882a593Smuzhiyun #define A4XX_INT0_CP_SW_INT					0x00000080
856*4882a593Smuzhiyun #define A4XX_INT0_CP_T0_PACKET_IN_IB				0x00000100
857*4882a593Smuzhiyun #define A4XX_INT0_CP_OPCODE_ERROR				0x00000200
858*4882a593Smuzhiyun #define A4XX_INT0_CP_RESERVED_BIT_ERROR				0x00000400
859*4882a593Smuzhiyun #define A4XX_INT0_CP_HW_FAULT					0x00000800
860*4882a593Smuzhiyun #define A4XX_INT0_CP_DMA					0x00001000
861*4882a593Smuzhiyun #define A4XX_INT0_CP_IB2_INT					0x00002000
862*4882a593Smuzhiyun #define A4XX_INT0_CP_IB1_INT					0x00004000
863*4882a593Smuzhiyun #define A4XX_INT0_CP_RB_INT					0x00008000
864*4882a593Smuzhiyun #define A4XX_INT0_CP_REG_PROTECT_FAULT				0x00010000
865*4882a593Smuzhiyun #define A4XX_INT0_CP_RB_DONE_TS					0x00020000
866*4882a593Smuzhiyun #define A4XX_INT0_CP_VS_DONE_TS					0x00040000
867*4882a593Smuzhiyun #define A4XX_INT0_CP_PS_DONE_TS					0x00080000
868*4882a593Smuzhiyun #define A4XX_INT0_CACHE_FLUSH_TS				0x00100000
869*4882a593Smuzhiyun #define A4XX_INT0_CP_AHB_ERROR_HALT				0x00200000
870*4882a593Smuzhiyun #define A4XX_INT0_MISC_HANG_DETECT				0x01000000
871*4882a593Smuzhiyun #define A4XX_INT0_UCHE_OOB_ACCESS				0x02000000
872*4882a593Smuzhiyun #define REG_A4XX_RB_GMEM_BASE_ADDR				0x00000cc0
873*4882a593Smuzhiyun 
874*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_0				0x00000cc7
875*4882a593Smuzhiyun 
876*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_1				0x00000cc8
877*4882a593Smuzhiyun 
878*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_2				0x00000cc9
879*4882a593Smuzhiyun 
880*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_3				0x00000cca
881*4882a593Smuzhiyun 
882*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_4				0x00000ccb
883*4882a593Smuzhiyun 
884*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_5				0x00000ccc
885*4882a593Smuzhiyun 
886*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_6				0x00000ccd
887*4882a593Smuzhiyun 
888*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_RB_SEL_7				0x00000cce
889*4882a593Smuzhiyun 
890*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_CCU_SEL_0				0x00000ccf
891*4882a593Smuzhiyun 
892*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_CCU_SEL_1				0x00000cd0
893*4882a593Smuzhiyun 
894*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_CCU_SEL_2				0x00000cd1
895*4882a593Smuzhiyun 
896*4882a593Smuzhiyun #define REG_A4XX_RB_PERFCTR_CCU_SEL_3				0x00000cd2
897*4882a593Smuzhiyun 
898*4882a593Smuzhiyun #define REG_A4XX_RB_FRAME_BUFFER_DIMENSION			0x00000ce0
899*4882a593Smuzhiyun #define A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__MASK		0x00003fff
900*4882a593Smuzhiyun #define A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__SHIFT		0
A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH(uint32_t val)901*4882a593Smuzhiyun static inline uint32_t A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH(uint32_t val)
902*4882a593Smuzhiyun {
903*4882a593Smuzhiyun 	return ((val) << A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__SHIFT) & A4XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__MASK;
904*4882a593Smuzhiyun }
905*4882a593Smuzhiyun #define A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__MASK		0x3fff0000
906*4882a593Smuzhiyun #define A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__SHIFT		16
A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT(uint32_t val)907*4882a593Smuzhiyun static inline uint32_t A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT(uint32_t val)
908*4882a593Smuzhiyun {
909*4882a593Smuzhiyun 	return ((val) << A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__SHIFT) & A4XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__MASK;
910*4882a593Smuzhiyun }
911*4882a593Smuzhiyun 
912*4882a593Smuzhiyun #define REG_A4XX_RB_CLEAR_COLOR_DW0				0x000020cc
913*4882a593Smuzhiyun 
914*4882a593Smuzhiyun #define REG_A4XX_RB_CLEAR_COLOR_DW1				0x000020cd
915*4882a593Smuzhiyun 
916*4882a593Smuzhiyun #define REG_A4XX_RB_CLEAR_COLOR_DW2				0x000020ce
917*4882a593Smuzhiyun 
918*4882a593Smuzhiyun #define REG_A4XX_RB_CLEAR_COLOR_DW3				0x000020cf
919*4882a593Smuzhiyun 
920*4882a593Smuzhiyun #define REG_A4XX_RB_MODE_CONTROL				0x000020a0
921*4882a593Smuzhiyun #define A4XX_RB_MODE_CONTROL_WIDTH__MASK			0x0000003f
922*4882a593Smuzhiyun #define A4XX_RB_MODE_CONTROL_WIDTH__SHIFT			0
A4XX_RB_MODE_CONTROL_WIDTH(uint32_t val)923*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MODE_CONTROL_WIDTH(uint32_t val)
924*4882a593Smuzhiyun {
925*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_MODE_CONTROL_WIDTH__SHIFT) & A4XX_RB_MODE_CONTROL_WIDTH__MASK;
926*4882a593Smuzhiyun }
927*4882a593Smuzhiyun #define A4XX_RB_MODE_CONTROL_HEIGHT__MASK			0x00003f00
928*4882a593Smuzhiyun #define A4XX_RB_MODE_CONTROL_HEIGHT__SHIFT			8
A4XX_RB_MODE_CONTROL_HEIGHT(uint32_t val)929*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MODE_CONTROL_HEIGHT(uint32_t val)
930*4882a593Smuzhiyun {
931*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_MODE_CONTROL_HEIGHT__SHIFT) & A4XX_RB_MODE_CONTROL_HEIGHT__MASK;
932*4882a593Smuzhiyun }
933*4882a593Smuzhiyun #define A4XX_RB_MODE_CONTROL_ENABLE_GMEM			0x00010000
934*4882a593Smuzhiyun 
935*4882a593Smuzhiyun #define REG_A4XX_RB_RENDER_CONTROL				0x000020a1
936*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL_BINNING_PASS			0x00000001
937*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL_DISABLE_COLOR_PIPE		0x00000020
938*4882a593Smuzhiyun 
939*4882a593Smuzhiyun #define REG_A4XX_RB_MSAA_CONTROL				0x000020a2
940*4882a593Smuzhiyun #define A4XX_RB_MSAA_CONTROL_DISABLE				0x00001000
941*4882a593Smuzhiyun #define A4XX_RB_MSAA_CONTROL_SAMPLES__MASK			0x0000e000
942*4882a593Smuzhiyun #define A4XX_RB_MSAA_CONTROL_SAMPLES__SHIFT			13
A4XX_RB_MSAA_CONTROL_SAMPLES(uint32_t val)943*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MSAA_CONTROL_SAMPLES(uint32_t val)
944*4882a593Smuzhiyun {
945*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MSAA_CONTROL_SAMPLES__SHIFT) & A4XX_RB_MSAA_CONTROL_SAMPLES__MASK;
946*4882a593Smuzhiyun }
947*4882a593Smuzhiyun 
948*4882a593Smuzhiyun #define REG_A4XX_RB_RENDER_CONTROL2				0x000020a3
949*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_COORD_MASK__MASK		0x0000000f
950*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_COORD_MASK__SHIFT		0
A4XX_RB_RENDER_CONTROL2_COORD_MASK(uint32_t val)951*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_CONTROL2_COORD_MASK(uint32_t val)
952*4882a593Smuzhiyun {
953*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_CONTROL2_COORD_MASK__SHIFT) & A4XX_RB_RENDER_CONTROL2_COORD_MASK__MASK;
954*4882a593Smuzhiyun }
955*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_SAMPLEMASK			0x00000010
956*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_FACENESS			0x00000020
957*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_SAMPLEID			0x00000040
958*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES__MASK		0x00000380
959*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES__SHIFT		7
A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES(uint32_t val)960*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES(uint32_t val)
961*4882a593Smuzhiyun {
962*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES__SHIFT) & A4XX_RB_RENDER_CONTROL2_MSAA_SAMPLES__MASK;
963*4882a593Smuzhiyun }
964*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_SAMPLEID_HR			0x00000800
965*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_IJ_PERSP_PIXEL			0x00001000
966*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_IJ_PERSP_CENTROID		0x00002000
967*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_IJ_PERSP_SAMPLE			0x00004000
968*4882a593Smuzhiyun #define A4XX_RB_RENDER_CONTROL2_SIZE				0x00008000
969*4882a593Smuzhiyun 
REG_A4XX_RB_MRT(uint32_t i0)970*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT(uint32_t i0) { return 0x000020a4 + 0x5*i0; }
971*4882a593Smuzhiyun 
REG_A4XX_RB_MRT_CONTROL(uint32_t i0)972*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT_CONTROL(uint32_t i0) { return 0x000020a4 + 0x5*i0; }
973*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_READ_DEST_ENABLE			0x00000008
974*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_BLEND				0x00000010
975*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_BLEND2				0x00000020
976*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_ROP_ENABLE				0x00000040
977*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_ROP_CODE__MASK			0x00000f00
978*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_ROP_CODE__SHIFT			8
A4XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)979*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)
980*4882a593Smuzhiyun {
981*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_CONTROL_ROP_CODE__SHIFT) & A4XX_RB_MRT_CONTROL_ROP_CODE__MASK;
982*4882a593Smuzhiyun }
983*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK		0x0f000000
984*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT		24
A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)985*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
986*4882a593Smuzhiyun {
987*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A4XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
988*4882a593Smuzhiyun }
989*4882a593Smuzhiyun 
REG_A4XX_RB_MRT_BUF_INFO(uint32_t i0)990*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x000020a5 + 0x5*i0; }
991*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK			0x0000003f
992*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT		0
A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a4xx_color_fmt val)993*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a4xx_color_fmt val)
994*4882a593Smuzhiyun {
995*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A4XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
996*4882a593Smuzhiyun }
997*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK		0x000000c0
998*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT		6
A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a4xx_tile_mode val)999*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a4xx_tile_mode val)
1000*4882a593Smuzhiyun {
1001*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A4XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
1002*4882a593Smuzhiyun }
1003*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_DITHER_MODE__MASK			0x00000600
1004*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_DITHER_MODE__SHIFT			9
A4XX_RB_MRT_BUF_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)1005*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BUF_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)
1006*4882a593Smuzhiyun {
1007*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BUF_INFO_DITHER_MODE__SHIFT) & A4XX_RB_MRT_BUF_INFO_DITHER_MODE__MASK;
1008*4882a593Smuzhiyun }
1009*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK			0x00001800
1010*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT			11
A4XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)1011*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
1012*4882a593Smuzhiyun {
1013*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A4XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
1014*4882a593Smuzhiyun }
1015*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_SRGB				0x00002000
1016*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__MASK		0xffffc000
1017*4882a593Smuzhiyun #define A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT		14
A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH(uint32_t val)1018*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH(uint32_t val)
1019*4882a593Smuzhiyun {
1020*4882a593Smuzhiyun 	return ((val >> 4) << A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT) & A4XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__MASK;
1021*4882a593Smuzhiyun }
1022*4882a593Smuzhiyun 
REG_A4XX_RB_MRT_BASE(uint32_t i0)1023*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT_BASE(uint32_t i0) { return 0x000020a6 + 0x5*i0; }
1024*4882a593Smuzhiyun 
REG_A4XX_RB_MRT_CONTROL3(uint32_t i0)1025*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT_CONTROL3(uint32_t i0) { return 0x000020a7 + 0x5*i0; }
1026*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL3_STRIDE__MASK			0x03fffff8
1027*4882a593Smuzhiyun #define A4XX_RB_MRT_CONTROL3_STRIDE__SHIFT			3
A4XX_RB_MRT_CONTROL3_STRIDE(uint32_t val)1028*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_CONTROL3_STRIDE(uint32_t val)
1029*4882a593Smuzhiyun {
1030*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_CONTROL3_STRIDE__SHIFT) & A4XX_RB_MRT_CONTROL3_STRIDE__MASK;
1031*4882a593Smuzhiyun }
1032*4882a593Smuzhiyun 
REG_A4XX_RB_MRT_BLEND_CONTROL(uint32_t i0)1033*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x000020a8 + 0x5*i0; }
1034*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK		0x0000001f
1035*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT		0
A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)1036*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
1037*4882a593Smuzhiyun {
1038*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
1039*4882a593Smuzhiyun }
1040*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK	0x000000e0
1041*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT	5
A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)1042*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
1043*4882a593Smuzhiyun {
1044*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
1045*4882a593Smuzhiyun }
1046*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK		0x00001f00
1047*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT	8
A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)1048*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
1049*4882a593Smuzhiyun {
1050*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
1051*4882a593Smuzhiyun }
1052*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK	0x001f0000
1053*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT	16
A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)1054*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
1055*4882a593Smuzhiyun {
1056*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
1057*4882a593Smuzhiyun }
1058*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK	0x00e00000
1059*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT	21
A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)1060*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
1061*4882a593Smuzhiyun {
1062*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
1063*4882a593Smuzhiyun }
1064*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK	0x1f000000
1065*4882a593Smuzhiyun #define A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT	24
A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)1066*4882a593Smuzhiyun static inline uint32_t A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
1067*4882a593Smuzhiyun {
1068*4882a593Smuzhiyun 	return ((val) << A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A4XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
1069*4882a593Smuzhiyun }
1070*4882a593Smuzhiyun 
1071*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_RED					0x000020f0
1072*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_UINT__MASK				0x000000ff
1073*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_UINT__SHIFT				0
A4XX_RB_BLEND_RED_UINT(uint32_t val)1074*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_RED_UINT(uint32_t val)
1075*4882a593Smuzhiyun {
1076*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_RED_UINT__SHIFT) & A4XX_RB_BLEND_RED_UINT__MASK;
1077*4882a593Smuzhiyun }
1078*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_SINT__MASK				0x0000ff00
1079*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_SINT__SHIFT				8
A4XX_RB_BLEND_RED_SINT(uint32_t val)1080*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_RED_SINT(uint32_t val)
1081*4882a593Smuzhiyun {
1082*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_RED_SINT__SHIFT) & A4XX_RB_BLEND_RED_SINT__MASK;
1083*4882a593Smuzhiyun }
1084*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_FLOAT__MASK				0xffff0000
1085*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_FLOAT__SHIFT				16
A4XX_RB_BLEND_RED_FLOAT(float val)1086*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_RED_FLOAT(float val)
1087*4882a593Smuzhiyun {
1088*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A4XX_RB_BLEND_RED_FLOAT__SHIFT) & A4XX_RB_BLEND_RED_FLOAT__MASK;
1089*4882a593Smuzhiyun }
1090*4882a593Smuzhiyun 
1091*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_RED_F32				0x000020f1
1092*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_F32__MASK				0xffffffff
1093*4882a593Smuzhiyun #define A4XX_RB_BLEND_RED_F32__SHIFT				0
A4XX_RB_BLEND_RED_F32(float val)1094*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_RED_F32(float val)
1095*4882a593Smuzhiyun {
1096*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_RB_BLEND_RED_F32__SHIFT) & A4XX_RB_BLEND_RED_F32__MASK;
1097*4882a593Smuzhiyun }
1098*4882a593Smuzhiyun 
1099*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_GREEN					0x000020f2
1100*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_UINT__MASK				0x000000ff
1101*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_UINT__SHIFT				0
A4XX_RB_BLEND_GREEN_UINT(uint32_t val)1102*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_GREEN_UINT(uint32_t val)
1103*4882a593Smuzhiyun {
1104*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_GREEN_UINT__SHIFT) & A4XX_RB_BLEND_GREEN_UINT__MASK;
1105*4882a593Smuzhiyun }
1106*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_SINT__MASK				0x0000ff00
1107*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_SINT__SHIFT				8
A4XX_RB_BLEND_GREEN_SINT(uint32_t val)1108*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_GREEN_SINT(uint32_t val)
1109*4882a593Smuzhiyun {
1110*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_GREEN_SINT__SHIFT) & A4XX_RB_BLEND_GREEN_SINT__MASK;
1111*4882a593Smuzhiyun }
1112*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_FLOAT__MASK				0xffff0000
1113*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_FLOAT__SHIFT			16
A4XX_RB_BLEND_GREEN_FLOAT(float val)1114*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_GREEN_FLOAT(float val)
1115*4882a593Smuzhiyun {
1116*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A4XX_RB_BLEND_GREEN_FLOAT__SHIFT) & A4XX_RB_BLEND_GREEN_FLOAT__MASK;
1117*4882a593Smuzhiyun }
1118*4882a593Smuzhiyun 
1119*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_GREEN_F32				0x000020f3
1120*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_F32__MASK				0xffffffff
1121*4882a593Smuzhiyun #define A4XX_RB_BLEND_GREEN_F32__SHIFT				0
A4XX_RB_BLEND_GREEN_F32(float val)1122*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_GREEN_F32(float val)
1123*4882a593Smuzhiyun {
1124*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_RB_BLEND_GREEN_F32__SHIFT) & A4XX_RB_BLEND_GREEN_F32__MASK;
1125*4882a593Smuzhiyun }
1126*4882a593Smuzhiyun 
1127*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_BLUE					0x000020f4
1128*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_UINT__MASK				0x000000ff
1129*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_UINT__SHIFT				0
A4XX_RB_BLEND_BLUE_UINT(uint32_t val)1130*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_BLUE_UINT(uint32_t val)
1131*4882a593Smuzhiyun {
1132*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_BLUE_UINT__SHIFT) & A4XX_RB_BLEND_BLUE_UINT__MASK;
1133*4882a593Smuzhiyun }
1134*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_SINT__MASK				0x0000ff00
1135*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_SINT__SHIFT				8
A4XX_RB_BLEND_BLUE_SINT(uint32_t val)1136*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_BLUE_SINT(uint32_t val)
1137*4882a593Smuzhiyun {
1138*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_BLUE_SINT__SHIFT) & A4XX_RB_BLEND_BLUE_SINT__MASK;
1139*4882a593Smuzhiyun }
1140*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_FLOAT__MASK				0xffff0000
1141*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_FLOAT__SHIFT				16
A4XX_RB_BLEND_BLUE_FLOAT(float val)1142*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_BLUE_FLOAT(float val)
1143*4882a593Smuzhiyun {
1144*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A4XX_RB_BLEND_BLUE_FLOAT__SHIFT) & A4XX_RB_BLEND_BLUE_FLOAT__MASK;
1145*4882a593Smuzhiyun }
1146*4882a593Smuzhiyun 
1147*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_BLUE_F32				0x000020f5
1148*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_F32__MASK				0xffffffff
1149*4882a593Smuzhiyun #define A4XX_RB_BLEND_BLUE_F32__SHIFT				0
A4XX_RB_BLEND_BLUE_F32(float val)1150*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_BLUE_F32(float val)
1151*4882a593Smuzhiyun {
1152*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_RB_BLEND_BLUE_F32__SHIFT) & A4XX_RB_BLEND_BLUE_F32__MASK;
1153*4882a593Smuzhiyun }
1154*4882a593Smuzhiyun 
1155*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_ALPHA					0x000020f6
1156*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_UINT__MASK				0x000000ff
1157*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_UINT__SHIFT				0
A4XX_RB_BLEND_ALPHA_UINT(uint32_t val)1158*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_ALPHA_UINT(uint32_t val)
1159*4882a593Smuzhiyun {
1160*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_ALPHA_UINT__SHIFT) & A4XX_RB_BLEND_ALPHA_UINT__MASK;
1161*4882a593Smuzhiyun }
1162*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_SINT__MASK				0x0000ff00
1163*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_SINT__SHIFT				8
A4XX_RB_BLEND_ALPHA_SINT(uint32_t val)1164*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_ALPHA_SINT(uint32_t val)
1165*4882a593Smuzhiyun {
1166*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BLEND_ALPHA_SINT__SHIFT) & A4XX_RB_BLEND_ALPHA_SINT__MASK;
1167*4882a593Smuzhiyun }
1168*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_FLOAT__MASK				0xffff0000
1169*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_FLOAT__SHIFT			16
A4XX_RB_BLEND_ALPHA_FLOAT(float val)1170*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_ALPHA_FLOAT(float val)
1171*4882a593Smuzhiyun {
1172*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A4XX_RB_BLEND_ALPHA_FLOAT__SHIFT) & A4XX_RB_BLEND_ALPHA_FLOAT__MASK;
1173*4882a593Smuzhiyun }
1174*4882a593Smuzhiyun 
1175*4882a593Smuzhiyun #define REG_A4XX_RB_BLEND_ALPHA_F32				0x000020f7
1176*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_F32__MASK				0xffffffff
1177*4882a593Smuzhiyun #define A4XX_RB_BLEND_ALPHA_F32__SHIFT				0
A4XX_RB_BLEND_ALPHA_F32(float val)1178*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BLEND_ALPHA_F32(float val)
1179*4882a593Smuzhiyun {
1180*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_RB_BLEND_ALPHA_F32__SHIFT) & A4XX_RB_BLEND_ALPHA_F32__MASK;
1181*4882a593Smuzhiyun }
1182*4882a593Smuzhiyun 
1183*4882a593Smuzhiyun #define REG_A4XX_RB_ALPHA_CONTROL				0x000020f8
1184*4882a593Smuzhiyun #define A4XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK			0x000000ff
1185*4882a593Smuzhiyun #define A4XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT			0
A4XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)1186*4882a593Smuzhiyun static inline uint32_t A4XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)
1187*4882a593Smuzhiyun {
1188*4882a593Smuzhiyun 	return ((val) << A4XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT) & A4XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK;
1189*4882a593Smuzhiyun }
1190*4882a593Smuzhiyun #define A4XX_RB_ALPHA_CONTROL_ALPHA_TEST			0x00000100
1191*4882a593Smuzhiyun #define A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK		0x00000e00
1192*4882a593Smuzhiyun #define A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT		9
A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)1193*4882a593Smuzhiyun static inline uint32_t A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
1194*4882a593Smuzhiyun {
1195*4882a593Smuzhiyun 	return ((val) << A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A4XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK;
1196*4882a593Smuzhiyun }
1197*4882a593Smuzhiyun 
1198*4882a593Smuzhiyun #define REG_A4XX_RB_FS_OUTPUT					0x000020f9
1199*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_ENABLE_BLEND__MASK			0x000000ff
1200*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_ENABLE_BLEND__SHIFT			0
A4XX_RB_FS_OUTPUT_ENABLE_BLEND(uint32_t val)1201*4882a593Smuzhiyun static inline uint32_t A4XX_RB_FS_OUTPUT_ENABLE_BLEND(uint32_t val)
1202*4882a593Smuzhiyun {
1203*4882a593Smuzhiyun 	return ((val) << A4XX_RB_FS_OUTPUT_ENABLE_BLEND__SHIFT) & A4XX_RB_FS_OUTPUT_ENABLE_BLEND__MASK;
1204*4882a593Smuzhiyun }
1205*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_INDEPENDENT_BLEND			0x00000100
1206*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_SAMPLE_MASK__MASK			0xffff0000
1207*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_SAMPLE_MASK__SHIFT			16
A4XX_RB_FS_OUTPUT_SAMPLE_MASK(uint32_t val)1208*4882a593Smuzhiyun static inline uint32_t A4XX_RB_FS_OUTPUT_SAMPLE_MASK(uint32_t val)
1209*4882a593Smuzhiyun {
1210*4882a593Smuzhiyun 	return ((val) << A4XX_RB_FS_OUTPUT_SAMPLE_MASK__SHIFT) & A4XX_RB_FS_OUTPUT_SAMPLE_MASK__MASK;
1211*4882a593Smuzhiyun }
1212*4882a593Smuzhiyun 
1213*4882a593Smuzhiyun #define REG_A4XX_RB_SAMPLE_COUNT_CONTROL			0x000020fa
1214*4882a593Smuzhiyun #define A4XX_RB_SAMPLE_COUNT_CONTROL_COPY			0x00000002
1215*4882a593Smuzhiyun #define A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR__MASK			0xfffffffc
1216*4882a593Smuzhiyun #define A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR__SHIFT		2
A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR(uint32_t val)1217*4882a593Smuzhiyun static inline uint32_t A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR(uint32_t val)
1218*4882a593Smuzhiyun {
1219*4882a593Smuzhiyun 	return ((val >> 2) << A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR__SHIFT) & A4XX_RB_SAMPLE_COUNT_CONTROL_ADDR__MASK;
1220*4882a593Smuzhiyun }
1221*4882a593Smuzhiyun 
1222*4882a593Smuzhiyun #define REG_A4XX_RB_RENDER_COMPONENTS				0x000020fb
1223*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT0__MASK			0x0000000f
1224*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT0__SHIFT			0
A4XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)1225*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)
1226*4882a593Smuzhiyun {
1227*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT0__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT0__MASK;
1228*4882a593Smuzhiyun }
1229*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT1__MASK			0x000000f0
1230*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT1__SHIFT			4
A4XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)1231*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)
1232*4882a593Smuzhiyun {
1233*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT1__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT1__MASK;
1234*4882a593Smuzhiyun }
1235*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT2__MASK			0x00000f00
1236*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT2__SHIFT			8
A4XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)1237*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)
1238*4882a593Smuzhiyun {
1239*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT2__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT2__MASK;
1240*4882a593Smuzhiyun }
1241*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT3__MASK			0x0000f000
1242*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT3__SHIFT			12
A4XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)1243*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)
1244*4882a593Smuzhiyun {
1245*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT3__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT3__MASK;
1246*4882a593Smuzhiyun }
1247*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT4__MASK			0x000f0000
1248*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT4__SHIFT			16
A4XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)1249*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)
1250*4882a593Smuzhiyun {
1251*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT4__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT4__MASK;
1252*4882a593Smuzhiyun }
1253*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT5__MASK			0x00f00000
1254*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT5__SHIFT			20
A4XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)1255*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)
1256*4882a593Smuzhiyun {
1257*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT5__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT5__MASK;
1258*4882a593Smuzhiyun }
1259*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT6__MASK			0x0f000000
1260*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT6__SHIFT			24
A4XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)1261*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)
1262*4882a593Smuzhiyun {
1263*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT6__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT6__MASK;
1264*4882a593Smuzhiyun }
1265*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT7__MASK			0xf0000000
1266*4882a593Smuzhiyun #define A4XX_RB_RENDER_COMPONENTS_RT7__SHIFT			28
A4XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)1267*4882a593Smuzhiyun static inline uint32_t A4XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)
1268*4882a593Smuzhiyun {
1269*4882a593Smuzhiyun 	return ((val) << A4XX_RB_RENDER_COMPONENTS_RT7__SHIFT) & A4XX_RB_RENDER_COMPONENTS_RT7__MASK;
1270*4882a593Smuzhiyun }
1271*4882a593Smuzhiyun 
1272*4882a593Smuzhiyun #define REG_A4XX_RB_COPY_CONTROL				0x000020fc
1273*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_MSAA_RESOLVE__MASK			0x00000003
1274*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_MSAA_RESOLVE__SHIFT		0
A4XX_RB_COPY_CONTROL_MSAA_RESOLVE(enum a3xx_msaa_samples val)1275*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_CONTROL_MSAA_RESOLVE(enum a3xx_msaa_samples val)
1276*4882a593Smuzhiyun {
1277*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_CONTROL_MSAA_RESOLVE__SHIFT) & A4XX_RB_COPY_CONTROL_MSAA_RESOLVE__MASK;
1278*4882a593Smuzhiyun }
1279*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_MODE__MASK				0x00000070
1280*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_MODE__SHIFT			4
A4XX_RB_COPY_CONTROL_MODE(enum adreno_rb_copy_control_mode val)1281*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_CONTROL_MODE(enum adreno_rb_copy_control_mode val)
1282*4882a593Smuzhiyun {
1283*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_CONTROL_MODE__SHIFT) & A4XX_RB_COPY_CONTROL_MODE__MASK;
1284*4882a593Smuzhiyun }
1285*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_FASTCLEAR__MASK			0x00000f00
1286*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT			8
A4XX_RB_COPY_CONTROL_FASTCLEAR(uint32_t val)1287*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_CONTROL_FASTCLEAR(uint32_t val)
1288*4882a593Smuzhiyun {
1289*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT) & A4XX_RB_COPY_CONTROL_FASTCLEAR__MASK;
1290*4882a593Smuzhiyun }
1291*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_GMEM_BASE__MASK			0xffffc000
1292*4882a593Smuzhiyun #define A4XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT			14
A4XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)1293*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)
1294*4882a593Smuzhiyun {
1295*4882a593Smuzhiyun 	return ((val >> 14) << A4XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT) & A4XX_RB_COPY_CONTROL_GMEM_BASE__MASK;
1296*4882a593Smuzhiyun }
1297*4882a593Smuzhiyun 
1298*4882a593Smuzhiyun #define REG_A4XX_RB_COPY_DEST_BASE				0x000020fd
1299*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_BASE_BASE__MASK			0xffffffe0
1300*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_BASE_BASE__SHIFT			5
A4XX_RB_COPY_DEST_BASE_BASE(uint32_t val)1301*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_BASE_BASE(uint32_t val)
1302*4882a593Smuzhiyun {
1303*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_COPY_DEST_BASE_BASE__SHIFT) & A4XX_RB_COPY_DEST_BASE_BASE__MASK;
1304*4882a593Smuzhiyun }
1305*4882a593Smuzhiyun 
1306*4882a593Smuzhiyun #define REG_A4XX_RB_COPY_DEST_PITCH				0x000020fe
1307*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_PITCH_PITCH__MASK			0xffffffff
1308*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_PITCH_PITCH__SHIFT			0
A4XX_RB_COPY_DEST_PITCH_PITCH(uint32_t val)1309*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_PITCH_PITCH(uint32_t val)
1310*4882a593Smuzhiyun {
1311*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_COPY_DEST_PITCH_PITCH__SHIFT) & A4XX_RB_COPY_DEST_PITCH_PITCH__MASK;
1312*4882a593Smuzhiyun }
1313*4882a593Smuzhiyun 
1314*4882a593Smuzhiyun #define REG_A4XX_RB_COPY_DEST_INFO				0x000020ff
1315*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_FORMAT__MASK			0x000000fc
1316*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_FORMAT__SHIFT			2
A4XX_RB_COPY_DEST_INFO_FORMAT(enum a4xx_color_fmt val)1317*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_FORMAT(enum a4xx_color_fmt val)
1318*4882a593Smuzhiyun {
1319*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_FORMAT__SHIFT) & A4XX_RB_COPY_DEST_INFO_FORMAT__MASK;
1320*4882a593Smuzhiyun }
1321*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_SWAP__MASK			0x00000300
1322*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_SWAP__SHIFT			8
A4XX_RB_COPY_DEST_INFO_SWAP(enum a3xx_color_swap val)1323*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_SWAP(enum a3xx_color_swap val)
1324*4882a593Smuzhiyun {
1325*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_SWAP__SHIFT) & A4XX_RB_COPY_DEST_INFO_SWAP__MASK;
1326*4882a593Smuzhiyun }
1327*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_DITHER_MODE__MASK		0x00000c00
1328*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_DITHER_MODE__SHIFT		10
A4XX_RB_COPY_DEST_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)1329*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)
1330*4882a593Smuzhiyun {
1331*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_DITHER_MODE__SHIFT) & A4XX_RB_COPY_DEST_INFO_DITHER_MODE__MASK;
1332*4882a593Smuzhiyun }
1333*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__MASK		0x0003c000
1334*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__SHIFT		14
A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE(uint32_t val)1335*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE(uint32_t val)
1336*4882a593Smuzhiyun {
1337*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__SHIFT) & A4XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__MASK;
1338*4882a593Smuzhiyun }
1339*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_ENDIAN__MASK			0x001c0000
1340*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_ENDIAN__SHIFT			18
A4XX_RB_COPY_DEST_INFO_ENDIAN(enum adreno_rb_surface_endian val)1341*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_ENDIAN(enum adreno_rb_surface_endian val)
1342*4882a593Smuzhiyun {
1343*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_ENDIAN__SHIFT) & A4XX_RB_COPY_DEST_INFO_ENDIAN__MASK;
1344*4882a593Smuzhiyun }
1345*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_TILE__MASK			0x03000000
1346*4882a593Smuzhiyun #define A4XX_RB_COPY_DEST_INFO_TILE__SHIFT			24
A4XX_RB_COPY_DEST_INFO_TILE(enum a4xx_tile_mode val)1347*4882a593Smuzhiyun static inline uint32_t A4XX_RB_COPY_DEST_INFO_TILE(enum a4xx_tile_mode val)
1348*4882a593Smuzhiyun {
1349*4882a593Smuzhiyun 	return ((val) << A4XX_RB_COPY_DEST_INFO_TILE__SHIFT) & A4XX_RB_COPY_DEST_INFO_TILE__MASK;
1350*4882a593Smuzhiyun }
1351*4882a593Smuzhiyun 
1352*4882a593Smuzhiyun #define REG_A4XX_RB_FS_OUTPUT_REG				0x00002100
1353*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_REG_MRT__MASK				0x0000000f
1354*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_REG_MRT__SHIFT			0
A4XX_RB_FS_OUTPUT_REG_MRT(uint32_t val)1355*4882a593Smuzhiyun static inline uint32_t A4XX_RB_FS_OUTPUT_REG_MRT(uint32_t val)
1356*4882a593Smuzhiyun {
1357*4882a593Smuzhiyun 	return ((val) << A4XX_RB_FS_OUTPUT_REG_MRT__SHIFT) & A4XX_RB_FS_OUTPUT_REG_MRT__MASK;
1358*4882a593Smuzhiyun }
1359*4882a593Smuzhiyun #define A4XX_RB_FS_OUTPUT_REG_FRAG_WRITES_Z			0x00000020
1360*4882a593Smuzhiyun 
1361*4882a593Smuzhiyun #define REG_A4XX_RB_DEPTH_CONTROL				0x00002101
1362*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_FRAG_WRITES_Z			0x00000001
1363*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_Z_ENABLE				0x00000002
1364*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_Z_WRITE_ENABLE			0x00000004
1365*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_ZFUNC__MASK			0x00000070
1366*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_ZFUNC__SHIFT			4
A4XX_RB_DEPTH_CONTROL_ZFUNC(enum adreno_compare_func val)1367*4882a593Smuzhiyun static inline uint32_t A4XX_RB_DEPTH_CONTROL_ZFUNC(enum adreno_compare_func val)
1368*4882a593Smuzhiyun {
1369*4882a593Smuzhiyun 	return ((val) << A4XX_RB_DEPTH_CONTROL_ZFUNC__SHIFT) & A4XX_RB_DEPTH_CONTROL_ZFUNC__MASK;
1370*4882a593Smuzhiyun }
1371*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_Z_CLAMP_ENABLE			0x00000080
1372*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_EARLY_Z_DISABLE			0x00010000
1373*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_FORCE_FRAGZ_TO_FS			0x00020000
1374*4882a593Smuzhiyun #define A4XX_RB_DEPTH_CONTROL_Z_TEST_ENABLE			0x80000000
1375*4882a593Smuzhiyun 
1376*4882a593Smuzhiyun #define REG_A4XX_RB_DEPTH_CLEAR					0x00002102
1377*4882a593Smuzhiyun 
1378*4882a593Smuzhiyun #define REG_A4XX_RB_DEPTH_INFO					0x00002103
1379*4882a593Smuzhiyun #define A4XX_RB_DEPTH_INFO_DEPTH_FORMAT__MASK			0x00000003
1380*4882a593Smuzhiyun #define A4XX_RB_DEPTH_INFO_DEPTH_FORMAT__SHIFT			0
A4XX_RB_DEPTH_INFO_DEPTH_FORMAT(enum a4xx_depth_format val)1381*4882a593Smuzhiyun static inline uint32_t A4XX_RB_DEPTH_INFO_DEPTH_FORMAT(enum a4xx_depth_format val)
1382*4882a593Smuzhiyun {
1383*4882a593Smuzhiyun 	return ((val) << A4XX_RB_DEPTH_INFO_DEPTH_FORMAT__SHIFT) & A4XX_RB_DEPTH_INFO_DEPTH_FORMAT__MASK;
1384*4882a593Smuzhiyun }
1385*4882a593Smuzhiyun #define A4XX_RB_DEPTH_INFO_DEPTH_BASE__MASK			0xfffff000
1386*4882a593Smuzhiyun #define A4XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT			12
A4XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)1387*4882a593Smuzhiyun static inline uint32_t A4XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)
1388*4882a593Smuzhiyun {
1389*4882a593Smuzhiyun 	return ((val >> 12) << A4XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT) & A4XX_RB_DEPTH_INFO_DEPTH_BASE__MASK;
1390*4882a593Smuzhiyun }
1391*4882a593Smuzhiyun 
1392*4882a593Smuzhiyun #define REG_A4XX_RB_DEPTH_PITCH					0x00002104
1393*4882a593Smuzhiyun #define A4XX_RB_DEPTH_PITCH__MASK				0xffffffff
1394*4882a593Smuzhiyun #define A4XX_RB_DEPTH_PITCH__SHIFT				0
A4XX_RB_DEPTH_PITCH(uint32_t val)1395*4882a593Smuzhiyun static inline uint32_t A4XX_RB_DEPTH_PITCH(uint32_t val)
1396*4882a593Smuzhiyun {
1397*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_DEPTH_PITCH__SHIFT) & A4XX_RB_DEPTH_PITCH__MASK;
1398*4882a593Smuzhiyun }
1399*4882a593Smuzhiyun 
1400*4882a593Smuzhiyun #define REG_A4XX_RB_DEPTH_PITCH2				0x00002105
1401*4882a593Smuzhiyun #define A4XX_RB_DEPTH_PITCH2__MASK				0xffffffff
1402*4882a593Smuzhiyun #define A4XX_RB_DEPTH_PITCH2__SHIFT				0
A4XX_RB_DEPTH_PITCH2(uint32_t val)1403*4882a593Smuzhiyun static inline uint32_t A4XX_RB_DEPTH_PITCH2(uint32_t val)
1404*4882a593Smuzhiyun {
1405*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_DEPTH_PITCH2__SHIFT) & A4XX_RB_DEPTH_PITCH2__MASK;
1406*4882a593Smuzhiyun }
1407*4882a593Smuzhiyun 
1408*4882a593Smuzhiyun #define REG_A4XX_RB_STENCIL_CONTROL				0x00002106
1409*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_STENCIL_ENABLE			0x00000001
1410*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF		0x00000002
1411*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_STENCIL_READ			0x00000004
1412*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FUNC__MASK			0x00000700
1413*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FUNC__SHIFT			8
A4XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)1414*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
1415*4882a593Smuzhiyun {
1416*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A4XX_RB_STENCIL_CONTROL_FUNC__MASK;
1417*4882a593Smuzhiyun }
1418*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FAIL__MASK			0x00003800
1419*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FAIL__SHIFT			11
A4XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)1420*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
1421*4882a593Smuzhiyun {
1422*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A4XX_RB_STENCIL_CONTROL_FAIL__MASK;
1423*4882a593Smuzhiyun }
1424*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZPASS__MASK			0x0001c000
1425*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZPASS__SHIFT			14
A4XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)1426*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
1427*4882a593Smuzhiyun {
1428*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A4XX_RB_STENCIL_CONTROL_ZPASS__MASK;
1429*4882a593Smuzhiyun }
1430*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZFAIL__MASK			0x000e0000
1431*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT			17
A4XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)1432*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
1433*4882a593Smuzhiyun {
1434*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A4XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
1435*4882a593Smuzhiyun }
1436*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FUNC_BF__MASK			0x00700000
1437*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT			20
A4XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)1438*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
1439*4882a593Smuzhiyun {
1440*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A4XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
1441*4882a593Smuzhiyun }
1442*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FAIL_BF__MASK			0x03800000
1443*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT			23
A4XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)1444*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
1445*4882a593Smuzhiyun {
1446*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A4XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
1447*4882a593Smuzhiyun }
1448*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK			0x1c000000
1449*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT			26
A4XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)1450*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
1451*4882a593Smuzhiyun {
1452*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A4XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
1453*4882a593Smuzhiyun }
1454*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK			0xe0000000
1455*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT			29
A4XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)1456*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
1457*4882a593Smuzhiyun {
1458*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A4XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
1459*4882a593Smuzhiyun }
1460*4882a593Smuzhiyun 
1461*4882a593Smuzhiyun #define REG_A4XX_RB_STENCIL_CONTROL2				0x00002107
1462*4882a593Smuzhiyun #define A4XX_RB_STENCIL_CONTROL2_STENCIL_BUFFER			0x00000001
1463*4882a593Smuzhiyun 
1464*4882a593Smuzhiyun #define REG_A4XX_RB_STENCIL_INFO				0x00002108
1465*4882a593Smuzhiyun #define A4XX_RB_STENCIL_INFO_SEPARATE_STENCIL			0x00000001
1466*4882a593Smuzhiyun #define A4XX_RB_STENCIL_INFO_STENCIL_BASE__MASK			0xfffff000
1467*4882a593Smuzhiyun #define A4XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT		12
A4XX_RB_STENCIL_INFO_STENCIL_BASE(uint32_t val)1468*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_INFO_STENCIL_BASE(uint32_t val)
1469*4882a593Smuzhiyun {
1470*4882a593Smuzhiyun 	return ((val >> 12) << A4XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT) & A4XX_RB_STENCIL_INFO_STENCIL_BASE__MASK;
1471*4882a593Smuzhiyun }
1472*4882a593Smuzhiyun 
1473*4882a593Smuzhiyun #define REG_A4XX_RB_STENCIL_PITCH				0x00002109
1474*4882a593Smuzhiyun #define A4XX_RB_STENCIL_PITCH__MASK				0xffffffff
1475*4882a593Smuzhiyun #define A4XX_RB_STENCIL_PITCH__SHIFT				0
A4XX_RB_STENCIL_PITCH(uint32_t val)1476*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCIL_PITCH(uint32_t val)
1477*4882a593Smuzhiyun {
1478*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_RB_STENCIL_PITCH__SHIFT) & A4XX_RB_STENCIL_PITCH__MASK;
1479*4882a593Smuzhiyun }
1480*4882a593Smuzhiyun 
1481*4882a593Smuzhiyun #define REG_A4XX_RB_STENCILREFMASK				0x0000210b
1482*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILREF__MASK			0x000000ff
1483*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILREF__SHIFT		0
A4XX_RB_STENCILREFMASK_STENCILREF(uint32_t val)1484*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_STENCILREF(uint32_t val)
1485*4882a593Smuzhiyun {
1486*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_STENCILREF__SHIFT) & A4XX_RB_STENCILREFMASK_STENCILREF__MASK;
1487*4882a593Smuzhiyun }
1488*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILMASK__MASK		0x0000ff00
1489*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILMASK__SHIFT		8
A4XX_RB_STENCILREFMASK_STENCILMASK(uint32_t val)1490*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_STENCILMASK(uint32_t val)
1491*4882a593Smuzhiyun {
1492*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_STENCILMASK__SHIFT) & A4XX_RB_STENCILREFMASK_STENCILMASK__MASK;
1493*4882a593Smuzhiyun }
1494*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK		0x00ff0000
1495*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT		16
A4XX_RB_STENCILREFMASK_STENCILWRITEMASK(uint32_t val)1496*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_STENCILWRITEMASK(uint32_t val)
1497*4882a593Smuzhiyun {
1498*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT) & A4XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK;
1499*4882a593Smuzhiyun }
1500*4882a593Smuzhiyun 
1501*4882a593Smuzhiyun #define REG_A4XX_RB_STENCILREFMASK_BF				0x0000210c
1502*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILREF__MASK		0x000000ff
1503*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILREF__SHIFT		0
A4XX_RB_STENCILREFMASK_BF_STENCILREF(uint32_t val)1504*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_BF_STENCILREF(uint32_t val)
1505*4882a593Smuzhiyun {
1506*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_BF_STENCILREF__SHIFT) & A4XX_RB_STENCILREFMASK_BF_STENCILREF__MASK;
1507*4882a593Smuzhiyun }
1508*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILMASK__MASK		0x0000ff00
1509*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILMASK__SHIFT		8
A4XX_RB_STENCILREFMASK_BF_STENCILMASK(uint32_t val)1510*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_BF_STENCILMASK(uint32_t val)
1511*4882a593Smuzhiyun {
1512*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_BF_STENCILMASK__SHIFT) & A4XX_RB_STENCILREFMASK_BF_STENCILMASK__MASK;
1513*4882a593Smuzhiyun }
1514*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__MASK	0x00ff0000
1515*4882a593Smuzhiyun #define A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__SHIFT	16
A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK(uint32_t val)1516*4882a593Smuzhiyun static inline uint32_t A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK(uint32_t val)
1517*4882a593Smuzhiyun {
1518*4882a593Smuzhiyun 	return ((val) << A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__SHIFT) & A4XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__MASK;
1519*4882a593Smuzhiyun }
1520*4882a593Smuzhiyun 
1521*4882a593Smuzhiyun #define REG_A4XX_RB_BIN_OFFSET					0x0000210d
1522*4882a593Smuzhiyun #define A4XX_RB_BIN_OFFSET_WINDOW_OFFSET_DISABLE		0x80000000
1523*4882a593Smuzhiyun #define A4XX_RB_BIN_OFFSET_X__MASK				0x00007fff
1524*4882a593Smuzhiyun #define A4XX_RB_BIN_OFFSET_X__SHIFT				0
A4XX_RB_BIN_OFFSET_X(uint32_t val)1525*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BIN_OFFSET_X(uint32_t val)
1526*4882a593Smuzhiyun {
1527*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BIN_OFFSET_X__SHIFT) & A4XX_RB_BIN_OFFSET_X__MASK;
1528*4882a593Smuzhiyun }
1529*4882a593Smuzhiyun #define A4XX_RB_BIN_OFFSET_Y__MASK				0x7fff0000
1530*4882a593Smuzhiyun #define A4XX_RB_BIN_OFFSET_Y__SHIFT				16
A4XX_RB_BIN_OFFSET_Y(uint32_t val)1531*4882a593Smuzhiyun static inline uint32_t A4XX_RB_BIN_OFFSET_Y(uint32_t val)
1532*4882a593Smuzhiyun {
1533*4882a593Smuzhiyun 	return ((val) << A4XX_RB_BIN_OFFSET_Y__SHIFT) & A4XX_RB_BIN_OFFSET_Y__MASK;
1534*4882a593Smuzhiyun }
1535*4882a593Smuzhiyun 
REG_A4XX_RB_VPORT_Z_CLAMP(uint32_t i0)1536*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_VPORT_Z_CLAMP(uint32_t i0) { return 0x00002120 + 0x2*i0; }
1537*4882a593Smuzhiyun 
REG_A4XX_RB_VPORT_Z_CLAMP_MIN(uint32_t i0)1538*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_VPORT_Z_CLAMP_MIN(uint32_t i0) { return 0x00002120 + 0x2*i0; }
1539*4882a593Smuzhiyun 
REG_A4XX_RB_VPORT_Z_CLAMP_MAX(uint32_t i0)1540*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RB_VPORT_Z_CLAMP_MAX(uint32_t i0) { return 0x00002121 + 0x2*i0; }
1541*4882a593Smuzhiyun 
1542*4882a593Smuzhiyun #define REG_A4XX_RBBM_HW_VERSION				0x00000000
1543*4882a593Smuzhiyun 
1544*4882a593Smuzhiyun #define REG_A4XX_RBBM_HW_CONFIGURATION				0x00000002
1545*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_TP(uint32_t i0)1546*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_TP(uint32_t i0) { return 0x00000004 + 0x1*i0; }
1547*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_TP_REG(uint32_t i0)1548*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_TP_REG(uint32_t i0) { return 0x00000004 + 0x1*i0; }
1549*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_TP(uint32_t i0)1550*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_TP(uint32_t i0) { return 0x00000008 + 0x1*i0; }
1551*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_TP_REG(uint32_t i0)1552*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_TP_REG(uint32_t i0) { return 0x00000008 + 0x1*i0; }
1553*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_TP(uint32_t i0)1554*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_TP(uint32_t i0) { return 0x0000000c + 0x1*i0; }
1555*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_TP_REG(uint32_t i0)1556*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_TP_REG(uint32_t i0) { return 0x0000000c + 0x1*i0; }
1557*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_TP(uint32_t i0)1558*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_TP(uint32_t i0) { return 0x00000010 + 0x1*i0; }
1559*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_TP_REG(uint32_t i0)1560*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_TP_REG(uint32_t i0) { return 0x00000010 + 0x1*i0; }
1561*4882a593Smuzhiyun 
1562*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL_UCHE 				0x00000014
1563*4882a593Smuzhiyun 
1564*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL2_UCHE				0x00000015
1565*4882a593Smuzhiyun 
1566*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL3_UCHE				0x00000016
1567*4882a593Smuzhiyun 
1568*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL4_UCHE				0x00000017
1569*4882a593Smuzhiyun 
1570*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_HYST_UCHE				0x00000018
1571*4882a593Smuzhiyun 
1572*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_DELAY_UCHE				0x00000019
1573*4882a593Smuzhiyun 
1574*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_MODE_GPC				0x0000001a
1575*4882a593Smuzhiyun 
1576*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_DELAY_GPC				0x0000001b
1577*4882a593Smuzhiyun 
1578*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_HYST_GPC				0x0000001c
1579*4882a593Smuzhiyun 
1580*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL_TSE_RAS_RBBM			0x0000001d
1581*4882a593Smuzhiyun 
1582*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x0000001e
1583*4882a593Smuzhiyun 
1584*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x0000001f
1585*4882a593Smuzhiyun 
1586*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL					0x00000020
1587*4882a593Smuzhiyun 
1588*4882a593Smuzhiyun #define REG_A4XX_RBBM_SP_HYST_CNT				0x00000021
1589*4882a593Smuzhiyun 
1590*4882a593Smuzhiyun #define REG_A4XX_RBBM_SW_RESET_CMD				0x00000022
1591*4882a593Smuzhiyun 
1592*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_CTL0					0x00000023
1593*4882a593Smuzhiyun 
1594*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_CTL1					0x00000024
1595*4882a593Smuzhiyun 
1596*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_CMD					0x00000025
1597*4882a593Smuzhiyun 
1598*4882a593Smuzhiyun #define REG_A4XX_RBBM_RB_SUB_BLOCK_SEL_CTL			0x00000026
1599*4882a593Smuzhiyun 
1600*4882a593Smuzhiyun #define REG_A4XX_RBBM_RAM_ACC_63_32				0x00000028
1601*4882a593Smuzhiyun 
1602*4882a593Smuzhiyun #define REG_A4XX_RBBM_WAIT_IDLE_CLOCKS_CTL			0x0000002b
1603*4882a593Smuzhiyun 
1604*4882a593Smuzhiyun #define REG_A4XX_RBBM_INTERFACE_HANG_INT_CTL			0x0000002f
1605*4882a593Smuzhiyun 
1606*4882a593Smuzhiyun #define REG_A4XX_RBBM_INTERFACE_HANG_MASK_CTL4			0x00000034
1607*4882a593Smuzhiyun 
1608*4882a593Smuzhiyun #define REG_A4XX_RBBM_INT_CLEAR_CMD				0x00000036
1609*4882a593Smuzhiyun 
1610*4882a593Smuzhiyun #define REG_A4XX_RBBM_INT_0_MASK				0x00000037
1611*4882a593Smuzhiyun 
1612*4882a593Smuzhiyun #define REG_A4XX_RBBM_RBBM_CTL					0x0000003e
1613*4882a593Smuzhiyun 
1614*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_DEBUG_CTL				0x0000003f
1615*4882a593Smuzhiyun 
1616*4882a593Smuzhiyun #define REG_A4XX_RBBM_VBIF_DEBUG_CTL				0x00000041
1617*4882a593Smuzhiyun 
1618*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL2				0x00000042
1619*4882a593Smuzhiyun 
1620*4882a593Smuzhiyun #define REG_A4XX_RBBM_BLOCK_SW_RESET_CMD			0x00000045
1621*4882a593Smuzhiyun 
1622*4882a593Smuzhiyun #define REG_A4XX_RBBM_RESET_CYCLES				0x00000047
1623*4882a593Smuzhiyun 
1624*4882a593Smuzhiyun #define REG_A4XX_RBBM_EXT_TRACE_BUS_CTL				0x00000049
1625*4882a593Smuzhiyun 
1626*4882a593Smuzhiyun #define REG_A4XX_RBBM_CFG_DEBBUS_SEL_A				0x0000004a
1627*4882a593Smuzhiyun 
1628*4882a593Smuzhiyun #define REG_A4XX_RBBM_CFG_DEBBUS_SEL_B				0x0000004b
1629*4882a593Smuzhiyun 
1630*4882a593Smuzhiyun #define REG_A4XX_RBBM_CFG_DEBBUS_SEL_C				0x0000004c
1631*4882a593Smuzhiyun 
1632*4882a593Smuzhiyun #define REG_A4XX_RBBM_CFG_DEBBUS_SEL_D				0x0000004d
1633*4882a593Smuzhiyun 
1634*4882a593Smuzhiyun #define REG_A4XX_RBBM_POWER_CNTL_IP				0x00000098
1635*4882a593Smuzhiyun #define A4XX_RBBM_POWER_CNTL_IP_SW_COLLAPSE			0x00000001
1636*4882a593Smuzhiyun #define A4XX_RBBM_POWER_CNTL_IP_SP_TP_PWR_ON			0x00100000
1637*4882a593Smuzhiyun 
1638*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_0_LO				0x0000009c
1639*4882a593Smuzhiyun 
1640*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_0_HI				0x0000009d
1641*4882a593Smuzhiyun 
1642*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_1_LO				0x0000009e
1643*4882a593Smuzhiyun 
1644*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_1_HI				0x0000009f
1645*4882a593Smuzhiyun 
1646*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_2_LO				0x000000a0
1647*4882a593Smuzhiyun 
1648*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_2_HI				0x000000a1
1649*4882a593Smuzhiyun 
1650*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_3_LO				0x000000a2
1651*4882a593Smuzhiyun 
1652*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_3_HI				0x000000a3
1653*4882a593Smuzhiyun 
1654*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_4_LO				0x000000a4
1655*4882a593Smuzhiyun 
1656*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_4_HI				0x000000a5
1657*4882a593Smuzhiyun 
1658*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_5_LO				0x000000a6
1659*4882a593Smuzhiyun 
1660*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_5_HI				0x000000a7
1661*4882a593Smuzhiyun 
1662*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_6_LO				0x000000a8
1663*4882a593Smuzhiyun 
1664*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_6_HI				0x000000a9
1665*4882a593Smuzhiyun 
1666*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_7_LO				0x000000aa
1667*4882a593Smuzhiyun 
1668*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CP_7_HI				0x000000ab
1669*4882a593Smuzhiyun 
1670*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_0_LO				0x000000ac
1671*4882a593Smuzhiyun 
1672*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_0_HI				0x000000ad
1673*4882a593Smuzhiyun 
1674*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_1_LO				0x000000ae
1675*4882a593Smuzhiyun 
1676*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_1_HI				0x000000af
1677*4882a593Smuzhiyun 
1678*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_2_LO				0x000000b0
1679*4882a593Smuzhiyun 
1680*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_2_HI				0x000000b1
1681*4882a593Smuzhiyun 
1682*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_3_LO				0x000000b2
1683*4882a593Smuzhiyun 
1684*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_3_HI				0x000000b3
1685*4882a593Smuzhiyun 
1686*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_0_LO				0x000000b4
1687*4882a593Smuzhiyun 
1688*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_0_HI				0x000000b5
1689*4882a593Smuzhiyun 
1690*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_1_LO				0x000000b6
1691*4882a593Smuzhiyun 
1692*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_1_HI				0x000000b7
1693*4882a593Smuzhiyun 
1694*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_2_LO				0x000000b8
1695*4882a593Smuzhiyun 
1696*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_2_HI				0x000000b9
1697*4882a593Smuzhiyun 
1698*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_3_LO				0x000000ba
1699*4882a593Smuzhiyun 
1700*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_3_HI				0x000000bb
1701*4882a593Smuzhiyun 
1702*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_4_LO				0x000000bc
1703*4882a593Smuzhiyun 
1704*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_4_HI				0x000000bd
1705*4882a593Smuzhiyun 
1706*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_5_LO				0x000000be
1707*4882a593Smuzhiyun 
1708*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_5_HI				0x000000bf
1709*4882a593Smuzhiyun 
1710*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_6_LO				0x000000c0
1711*4882a593Smuzhiyun 
1712*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_6_HI				0x000000c1
1713*4882a593Smuzhiyun 
1714*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_7_LO				0x000000c2
1715*4882a593Smuzhiyun 
1716*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PC_7_HI				0x000000c3
1717*4882a593Smuzhiyun 
1718*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_0_LO				0x000000c4
1719*4882a593Smuzhiyun 
1720*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_0_HI				0x000000c5
1721*4882a593Smuzhiyun 
1722*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_1_LO				0x000000c6
1723*4882a593Smuzhiyun 
1724*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_1_HI				0x000000c7
1725*4882a593Smuzhiyun 
1726*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_2_LO				0x000000c8
1727*4882a593Smuzhiyun 
1728*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_2_HI				0x000000c9
1729*4882a593Smuzhiyun 
1730*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_3_LO				0x000000ca
1731*4882a593Smuzhiyun 
1732*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_3_HI				0x000000cb
1733*4882a593Smuzhiyun 
1734*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_4_LO				0x000000cc
1735*4882a593Smuzhiyun 
1736*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_4_HI				0x000000cd
1737*4882a593Smuzhiyun 
1738*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_5_LO				0x000000ce
1739*4882a593Smuzhiyun 
1740*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_5_HI				0x000000cf
1741*4882a593Smuzhiyun 
1742*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_6_LO				0x000000d0
1743*4882a593Smuzhiyun 
1744*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_6_HI				0x000000d1
1745*4882a593Smuzhiyun 
1746*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_7_LO				0x000000d2
1747*4882a593Smuzhiyun 
1748*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VFD_7_HI				0x000000d3
1749*4882a593Smuzhiyun 
1750*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_0_LO				0x000000d4
1751*4882a593Smuzhiyun 
1752*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_0_HI				0x000000d5
1753*4882a593Smuzhiyun 
1754*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_1_LO				0x000000d6
1755*4882a593Smuzhiyun 
1756*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_1_HI				0x000000d7
1757*4882a593Smuzhiyun 
1758*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_2_LO				0x000000d8
1759*4882a593Smuzhiyun 
1760*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_2_HI				0x000000d9
1761*4882a593Smuzhiyun 
1762*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_3_LO				0x000000da
1763*4882a593Smuzhiyun 
1764*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_3_HI				0x000000db
1765*4882a593Smuzhiyun 
1766*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_4_LO				0x000000dc
1767*4882a593Smuzhiyun 
1768*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_4_HI				0x000000dd
1769*4882a593Smuzhiyun 
1770*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_5_LO				0x000000de
1771*4882a593Smuzhiyun 
1772*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_5_HI				0x000000df
1773*4882a593Smuzhiyun 
1774*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_6_LO				0x000000e0
1775*4882a593Smuzhiyun 
1776*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_6_HI				0x000000e1
1777*4882a593Smuzhiyun 
1778*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_7_LO				0x000000e2
1779*4882a593Smuzhiyun 
1780*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_HLSQ_7_HI				0x000000e3
1781*4882a593Smuzhiyun 
1782*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_0_LO				0x000000e4
1783*4882a593Smuzhiyun 
1784*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_0_HI				0x000000e5
1785*4882a593Smuzhiyun 
1786*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_1_LO				0x000000e6
1787*4882a593Smuzhiyun 
1788*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_1_HI				0x000000e7
1789*4882a593Smuzhiyun 
1790*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_2_LO				0x000000e8
1791*4882a593Smuzhiyun 
1792*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_2_HI				0x000000e9
1793*4882a593Smuzhiyun 
1794*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_3_LO				0x000000ea
1795*4882a593Smuzhiyun 
1796*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VPC_3_HI				0x000000eb
1797*4882a593Smuzhiyun 
1798*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_0_LO				0x000000ec
1799*4882a593Smuzhiyun 
1800*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_0_HI				0x000000ed
1801*4882a593Smuzhiyun 
1802*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_1_LO				0x000000ee
1803*4882a593Smuzhiyun 
1804*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_1_HI				0x000000ef
1805*4882a593Smuzhiyun 
1806*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_2_LO				0x000000f0
1807*4882a593Smuzhiyun 
1808*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_2_HI				0x000000f1
1809*4882a593Smuzhiyun 
1810*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_3_LO				0x000000f2
1811*4882a593Smuzhiyun 
1812*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CCU_3_HI				0x000000f3
1813*4882a593Smuzhiyun 
1814*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_0_LO				0x000000f4
1815*4882a593Smuzhiyun 
1816*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_0_HI				0x000000f5
1817*4882a593Smuzhiyun 
1818*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_1_LO				0x000000f6
1819*4882a593Smuzhiyun 
1820*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_1_HI				0x000000f7
1821*4882a593Smuzhiyun 
1822*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_2_LO				0x000000f8
1823*4882a593Smuzhiyun 
1824*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_2_HI				0x000000f9
1825*4882a593Smuzhiyun 
1826*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_3_LO				0x000000fa
1827*4882a593Smuzhiyun 
1828*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TSE_3_HI				0x000000fb
1829*4882a593Smuzhiyun 
1830*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_0_LO				0x000000fc
1831*4882a593Smuzhiyun 
1832*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_0_HI				0x000000fd
1833*4882a593Smuzhiyun 
1834*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_1_LO				0x000000fe
1835*4882a593Smuzhiyun 
1836*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_1_HI				0x000000ff
1837*4882a593Smuzhiyun 
1838*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_2_LO				0x00000100
1839*4882a593Smuzhiyun 
1840*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_2_HI				0x00000101
1841*4882a593Smuzhiyun 
1842*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_3_LO				0x00000102
1843*4882a593Smuzhiyun 
1844*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RAS_3_HI				0x00000103
1845*4882a593Smuzhiyun 
1846*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_0_LO				0x00000104
1847*4882a593Smuzhiyun 
1848*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_0_HI				0x00000105
1849*4882a593Smuzhiyun 
1850*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_1_LO				0x00000106
1851*4882a593Smuzhiyun 
1852*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_1_HI				0x00000107
1853*4882a593Smuzhiyun 
1854*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_2_LO				0x00000108
1855*4882a593Smuzhiyun 
1856*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_2_HI				0x00000109
1857*4882a593Smuzhiyun 
1858*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_3_LO				0x0000010a
1859*4882a593Smuzhiyun 
1860*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_3_HI				0x0000010b
1861*4882a593Smuzhiyun 
1862*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_4_LO				0x0000010c
1863*4882a593Smuzhiyun 
1864*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_4_HI				0x0000010d
1865*4882a593Smuzhiyun 
1866*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_5_LO				0x0000010e
1867*4882a593Smuzhiyun 
1868*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_5_HI				0x0000010f
1869*4882a593Smuzhiyun 
1870*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_6_LO				0x00000110
1871*4882a593Smuzhiyun 
1872*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_6_HI				0x00000111
1873*4882a593Smuzhiyun 
1874*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_7_LO				0x00000112
1875*4882a593Smuzhiyun 
1876*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_UCHE_7_HI				0x00000113
1877*4882a593Smuzhiyun 
1878*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_0_LO				0x00000114
1879*4882a593Smuzhiyun 
1880*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_0_HI				0x00000115
1881*4882a593Smuzhiyun 
1882*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_1_LO				0x00000116
1883*4882a593Smuzhiyun 
1884*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_1_HI				0x00000117
1885*4882a593Smuzhiyun 
1886*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_2_LO				0x00000118
1887*4882a593Smuzhiyun 
1888*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_2_HI				0x00000119
1889*4882a593Smuzhiyun 
1890*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_3_LO				0x0000011a
1891*4882a593Smuzhiyun 
1892*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_3_HI				0x0000011b
1893*4882a593Smuzhiyun 
1894*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_4_LO				0x0000011c
1895*4882a593Smuzhiyun 
1896*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_4_HI				0x0000011d
1897*4882a593Smuzhiyun 
1898*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_5_LO				0x0000011e
1899*4882a593Smuzhiyun 
1900*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_5_HI				0x0000011f
1901*4882a593Smuzhiyun 
1902*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_6_LO				0x00000120
1903*4882a593Smuzhiyun 
1904*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_6_HI				0x00000121
1905*4882a593Smuzhiyun 
1906*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_7_LO				0x00000122
1907*4882a593Smuzhiyun 
1908*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_TP_7_HI				0x00000123
1909*4882a593Smuzhiyun 
1910*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_0_LO				0x00000124
1911*4882a593Smuzhiyun 
1912*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_0_HI				0x00000125
1913*4882a593Smuzhiyun 
1914*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_1_LO				0x00000126
1915*4882a593Smuzhiyun 
1916*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_1_HI				0x00000127
1917*4882a593Smuzhiyun 
1918*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_2_LO				0x00000128
1919*4882a593Smuzhiyun 
1920*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_2_HI				0x00000129
1921*4882a593Smuzhiyun 
1922*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_3_LO				0x0000012a
1923*4882a593Smuzhiyun 
1924*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_3_HI				0x0000012b
1925*4882a593Smuzhiyun 
1926*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_4_LO				0x0000012c
1927*4882a593Smuzhiyun 
1928*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_4_HI				0x0000012d
1929*4882a593Smuzhiyun 
1930*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_5_LO				0x0000012e
1931*4882a593Smuzhiyun 
1932*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_5_HI				0x0000012f
1933*4882a593Smuzhiyun 
1934*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_6_LO				0x00000130
1935*4882a593Smuzhiyun 
1936*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_6_HI				0x00000131
1937*4882a593Smuzhiyun 
1938*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_7_LO				0x00000132
1939*4882a593Smuzhiyun 
1940*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_7_HI				0x00000133
1941*4882a593Smuzhiyun 
1942*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_8_LO				0x00000134
1943*4882a593Smuzhiyun 
1944*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_8_HI				0x00000135
1945*4882a593Smuzhiyun 
1946*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_9_LO				0x00000136
1947*4882a593Smuzhiyun 
1948*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_9_HI				0x00000137
1949*4882a593Smuzhiyun 
1950*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_10_LO				0x00000138
1951*4882a593Smuzhiyun 
1952*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_10_HI				0x00000139
1953*4882a593Smuzhiyun 
1954*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_11_LO				0x0000013a
1955*4882a593Smuzhiyun 
1956*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_SP_11_HI				0x0000013b
1957*4882a593Smuzhiyun 
1958*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_0_LO				0x0000013c
1959*4882a593Smuzhiyun 
1960*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_0_HI				0x0000013d
1961*4882a593Smuzhiyun 
1962*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_1_LO				0x0000013e
1963*4882a593Smuzhiyun 
1964*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_1_HI				0x0000013f
1965*4882a593Smuzhiyun 
1966*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_2_LO				0x00000140
1967*4882a593Smuzhiyun 
1968*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_2_HI				0x00000141
1969*4882a593Smuzhiyun 
1970*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_3_LO				0x00000142
1971*4882a593Smuzhiyun 
1972*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_3_HI				0x00000143
1973*4882a593Smuzhiyun 
1974*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_4_LO				0x00000144
1975*4882a593Smuzhiyun 
1976*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_4_HI				0x00000145
1977*4882a593Smuzhiyun 
1978*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_5_LO				0x00000146
1979*4882a593Smuzhiyun 
1980*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_5_HI				0x00000147
1981*4882a593Smuzhiyun 
1982*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_6_LO				0x00000148
1983*4882a593Smuzhiyun 
1984*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_6_HI				0x00000149
1985*4882a593Smuzhiyun 
1986*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_7_LO				0x0000014a
1987*4882a593Smuzhiyun 
1988*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RB_7_HI				0x0000014b
1989*4882a593Smuzhiyun 
1990*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VSC_0_LO				0x0000014c
1991*4882a593Smuzhiyun 
1992*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VSC_0_HI				0x0000014d
1993*4882a593Smuzhiyun 
1994*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VSC_1_LO				0x0000014e
1995*4882a593Smuzhiyun 
1996*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_VSC_1_HI				0x0000014f
1997*4882a593Smuzhiyun 
1998*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PWR_0_LO				0x00000166
1999*4882a593Smuzhiyun 
2000*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PWR_0_HI				0x00000167
2001*4882a593Smuzhiyun 
2002*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PWR_1_LO				0x00000168
2003*4882a593Smuzhiyun 
2004*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_PWR_1_HI				0x00000169
2005*4882a593Smuzhiyun 
2006*4882a593Smuzhiyun #define REG_A4XX_RBBM_ALWAYSON_COUNTER_LO			0x0000016e
2007*4882a593Smuzhiyun 
2008*4882a593Smuzhiyun #define REG_A4XX_RBBM_ALWAYSON_COUNTER_HI			0x0000016f
2009*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_SP(uint32_t i0)2010*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_SP(uint32_t i0) { return 0x00000068 + 0x1*i0; }
2011*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_SP_REG(uint32_t i0)2012*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_SP_REG(uint32_t i0) { return 0x00000068 + 0x1*i0; }
2013*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_SP(uint32_t i0)2014*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_SP(uint32_t i0) { return 0x0000006c + 0x1*i0; }
2015*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_SP_REG(uint32_t i0)2016*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_SP_REG(uint32_t i0) { return 0x0000006c + 0x1*i0; }
2017*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_SP(uint32_t i0)2018*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_SP(uint32_t i0) { return 0x00000070 + 0x1*i0; }
2019*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_SP_REG(uint32_t i0)2020*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_SP_REG(uint32_t i0) { return 0x00000070 + 0x1*i0; }
2021*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_SP(uint32_t i0)2022*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_SP(uint32_t i0) { return 0x00000074 + 0x1*i0; }
2023*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_SP_REG(uint32_t i0)2024*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_SP_REG(uint32_t i0) { return 0x00000074 + 0x1*i0; }
2025*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_RB(uint32_t i0)2026*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_RB(uint32_t i0) { return 0x00000078 + 0x1*i0; }
2027*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_RB_REG(uint32_t i0)2028*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_RB_REG(uint32_t i0) { return 0x00000078 + 0x1*i0; }
2029*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_RB(uint32_t i0)2030*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_RB(uint32_t i0) { return 0x0000007c + 0x1*i0; }
2031*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL2_RB_REG(uint32_t i0)2032*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL2_RB_REG(uint32_t i0) { return 0x0000007c + 0x1*i0; }
2033*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU(uint32_t i0)2034*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU(uint32_t i0) { return 0x00000082 + 0x1*i0; }
2035*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU_REG(uint32_t i0)2036*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU_REG(uint32_t i0) { return 0x00000082 + 0x1*i0; }
2037*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU(uint32_t i0)2038*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU(uint32_t i0) { return 0x00000086 + 0x1*i0; }
2039*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU_REG(uint32_t i0)2040*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU_REG(uint32_t i0) { return 0x00000086 + 0x1*i0; }
2041*4882a593Smuzhiyun 
2042*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_HYST_COM_DCOM			0x00000080
2043*4882a593Smuzhiyun 
2044*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL_COM_DCOM			0x00000081
2045*4882a593Smuzhiyun 
2046*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_CTL_HLSQ				0x0000008a
2047*4882a593Smuzhiyun 
2048*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_HYST_HLSQ				0x0000008b
2049*4882a593Smuzhiyun 
2050*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_DELAY_HLSQ				0x0000008c
2051*4882a593Smuzhiyun 
2052*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_DELAY_COM_DCOM			0x0000008d
2053*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1(uint32_t i0)2054*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1(uint32_t i0) { return 0x0000008e + 0x1*i0; }
2055*4882a593Smuzhiyun 
REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1_REG(uint32_t i0)2056*4882a593Smuzhiyun static inline uint32_t REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1_REG(uint32_t i0) { return 0x0000008e + 0x1*i0; }
2057*4882a593Smuzhiyun 
2058*4882a593Smuzhiyun #define REG_A4XX_RBBM_SP_REGFILE_SLEEP_CNTL_0			0x00000099
2059*4882a593Smuzhiyun 
2060*4882a593Smuzhiyun #define REG_A4XX_RBBM_SP_REGFILE_SLEEP_CNTL_1			0x0000009a
2061*4882a593Smuzhiyun 
2062*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_CTL				0x00000170
2063*4882a593Smuzhiyun 
2064*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_LOAD_CMD0				0x00000171
2065*4882a593Smuzhiyun 
2066*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_LOAD_CMD1				0x00000172
2067*4882a593Smuzhiyun 
2068*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_LOAD_CMD2				0x00000173
2069*4882a593Smuzhiyun 
2070*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_LOAD_VALUE_LO			0x00000174
2071*4882a593Smuzhiyun 
2072*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_LOAD_VALUE_HI			0x00000175
2073*4882a593Smuzhiyun 
2074*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_SEL_0			0x00000176
2075*4882a593Smuzhiyun 
2076*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_SEL_1			0x00000177
2077*4882a593Smuzhiyun 
2078*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_SEL_2			0x00000178
2079*4882a593Smuzhiyun 
2080*4882a593Smuzhiyun #define REG_A4XX_RBBM_PERFCTR_RBBM_SEL_3			0x00000179
2081*4882a593Smuzhiyun 
2082*4882a593Smuzhiyun #define REG_A4XX_RBBM_GPU_BUSY_MASKED				0x0000017a
2083*4882a593Smuzhiyun 
2084*4882a593Smuzhiyun #define REG_A4XX_RBBM_INT_0_STATUS				0x0000017d
2085*4882a593Smuzhiyun 
2086*4882a593Smuzhiyun #define REG_A4XX_RBBM_CLOCK_STATUS				0x00000182
2087*4882a593Smuzhiyun 
2088*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_STATUS				0x00000189
2089*4882a593Smuzhiyun 
2090*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_ME_SPLIT_STATUS			0x0000018c
2091*4882a593Smuzhiyun 
2092*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_PFP_SPLIT_STATUS			0x0000018d
2093*4882a593Smuzhiyun 
2094*4882a593Smuzhiyun #define REG_A4XX_RBBM_AHB_ERROR_STATUS				0x0000018f
2095*4882a593Smuzhiyun 
2096*4882a593Smuzhiyun #define REG_A4XX_RBBM_STATUS					0x00000191
2097*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_HI_BUSY				0x00000001
2098*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_CP_ME_BUSY				0x00000002
2099*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_CP_PFP_BUSY				0x00000004
2100*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_CP_NRT_BUSY				0x00004000
2101*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_VBIF_BUSY				0x00008000
2102*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_TSE_BUSY				0x00010000
2103*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_RAS_BUSY				0x00020000
2104*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_RB_BUSY				0x00040000
2105*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_PC_DCALL_BUSY				0x00080000
2106*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_PC_VSD_BUSY				0x00100000
2107*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_VFD_BUSY				0x00200000
2108*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_VPC_BUSY				0x00400000
2109*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_UCHE_BUSY				0x00800000
2110*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_SP_BUSY				0x01000000
2111*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_TPL1_BUSY				0x02000000
2112*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_MARB_BUSY				0x04000000
2113*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_VSC_BUSY				0x08000000
2114*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_ARB_BUSY				0x10000000
2115*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_HLSQ_BUSY				0x20000000
2116*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_GPU_BUSY_NOHC				0x40000000
2117*4882a593Smuzhiyun #define A4XX_RBBM_STATUS_GPU_BUSY				0x80000000
2118*4882a593Smuzhiyun 
2119*4882a593Smuzhiyun #define REG_A4XX_RBBM_INTERFACE_RRDY_STATUS5			0x0000019f
2120*4882a593Smuzhiyun 
2121*4882a593Smuzhiyun #define REG_A4XX_RBBM_POWER_STATUS				0x000001b0
2122*4882a593Smuzhiyun #define A4XX_RBBM_POWER_STATUS_SP_TP_PWR_ON			0x00100000
2123*4882a593Smuzhiyun 
2124*4882a593Smuzhiyun #define REG_A4XX_RBBM_WAIT_IDLE_CLOCKS_CTL2			0x000001b8
2125*4882a593Smuzhiyun 
2126*4882a593Smuzhiyun #define REG_A4XX_CP_SCRATCH_UMASK				0x00000228
2127*4882a593Smuzhiyun 
2128*4882a593Smuzhiyun #define REG_A4XX_CP_SCRATCH_ADDR				0x00000229
2129*4882a593Smuzhiyun 
2130*4882a593Smuzhiyun #define REG_A4XX_CP_RB_BASE					0x00000200
2131*4882a593Smuzhiyun 
2132*4882a593Smuzhiyun #define REG_A4XX_CP_RB_CNTL					0x00000201
2133*4882a593Smuzhiyun 
2134*4882a593Smuzhiyun #define REG_A4XX_CP_RB_WPTR					0x00000205
2135*4882a593Smuzhiyun 
2136*4882a593Smuzhiyun #define REG_A4XX_CP_RB_RPTR_ADDR				0x00000203
2137*4882a593Smuzhiyun 
2138*4882a593Smuzhiyun #define REG_A4XX_CP_RB_RPTR					0x00000204
2139*4882a593Smuzhiyun 
2140*4882a593Smuzhiyun #define REG_A4XX_CP_IB1_BASE					0x00000206
2141*4882a593Smuzhiyun 
2142*4882a593Smuzhiyun #define REG_A4XX_CP_IB1_BUFSZ					0x00000207
2143*4882a593Smuzhiyun 
2144*4882a593Smuzhiyun #define REG_A4XX_CP_IB2_BASE					0x00000208
2145*4882a593Smuzhiyun 
2146*4882a593Smuzhiyun #define REG_A4XX_CP_IB2_BUFSZ					0x00000209
2147*4882a593Smuzhiyun 
2148*4882a593Smuzhiyun #define REG_A4XX_CP_ME_NRT_ADDR					0x0000020c
2149*4882a593Smuzhiyun 
2150*4882a593Smuzhiyun #define REG_A4XX_CP_ME_NRT_DATA					0x0000020d
2151*4882a593Smuzhiyun 
2152*4882a593Smuzhiyun #define REG_A4XX_CP_ME_RB_DONE_DATA				0x00000217
2153*4882a593Smuzhiyun 
2154*4882a593Smuzhiyun #define REG_A4XX_CP_QUEUE_THRESH2				0x00000219
2155*4882a593Smuzhiyun 
2156*4882a593Smuzhiyun #define REG_A4XX_CP_MERCIU_SIZE					0x0000021b
2157*4882a593Smuzhiyun 
2158*4882a593Smuzhiyun #define REG_A4XX_CP_ROQ_ADDR					0x0000021c
2159*4882a593Smuzhiyun 
2160*4882a593Smuzhiyun #define REG_A4XX_CP_ROQ_DATA					0x0000021d
2161*4882a593Smuzhiyun 
2162*4882a593Smuzhiyun #define REG_A4XX_CP_MEQ_ADDR					0x0000021e
2163*4882a593Smuzhiyun 
2164*4882a593Smuzhiyun #define REG_A4XX_CP_MEQ_DATA					0x0000021f
2165*4882a593Smuzhiyun 
2166*4882a593Smuzhiyun #define REG_A4XX_CP_MERCIU_ADDR					0x00000220
2167*4882a593Smuzhiyun 
2168*4882a593Smuzhiyun #define REG_A4XX_CP_MERCIU_DATA					0x00000221
2169*4882a593Smuzhiyun 
2170*4882a593Smuzhiyun #define REG_A4XX_CP_MERCIU_DATA2				0x00000222
2171*4882a593Smuzhiyun 
2172*4882a593Smuzhiyun #define REG_A4XX_CP_PFP_UCODE_ADDR				0x00000223
2173*4882a593Smuzhiyun 
2174*4882a593Smuzhiyun #define REG_A4XX_CP_PFP_UCODE_DATA				0x00000224
2175*4882a593Smuzhiyun 
2176*4882a593Smuzhiyun #define REG_A4XX_CP_ME_RAM_WADDR				0x00000225
2177*4882a593Smuzhiyun 
2178*4882a593Smuzhiyun #define REG_A4XX_CP_ME_RAM_RADDR				0x00000226
2179*4882a593Smuzhiyun 
2180*4882a593Smuzhiyun #define REG_A4XX_CP_ME_RAM_DATA					0x00000227
2181*4882a593Smuzhiyun 
2182*4882a593Smuzhiyun #define REG_A4XX_CP_PREEMPT					0x0000022a
2183*4882a593Smuzhiyun 
2184*4882a593Smuzhiyun #define REG_A4XX_CP_CNTL					0x0000022c
2185*4882a593Smuzhiyun 
2186*4882a593Smuzhiyun #define REG_A4XX_CP_ME_CNTL					0x0000022d
2187*4882a593Smuzhiyun 
2188*4882a593Smuzhiyun #define REG_A4XX_CP_DEBUG					0x0000022e
2189*4882a593Smuzhiyun 
2190*4882a593Smuzhiyun #define REG_A4XX_CP_DEBUG_ECO_CONTROL				0x00000231
2191*4882a593Smuzhiyun 
2192*4882a593Smuzhiyun #define REG_A4XX_CP_DRAW_STATE_ADDR				0x00000232
2193*4882a593Smuzhiyun 
REG_A4XX_CP_PROTECT(uint32_t i0)2194*4882a593Smuzhiyun static inline uint32_t REG_A4XX_CP_PROTECT(uint32_t i0) { return 0x00000240 + 0x1*i0; }
2195*4882a593Smuzhiyun 
REG_A4XX_CP_PROTECT_REG(uint32_t i0)2196*4882a593Smuzhiyun static inline uint32_t REG_A4XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000240 + 0x1*i0; }
2197*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_BASE_ADDR__MASK			0x0001ffff
2198*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_BASE_ADDR__SHIFT			0
A4XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)2199*4882a593Smuzhiyun static inline uint32_t A4XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)
2200*4882a593Smuzhiyun {
2201*4882a593Smuzhiyun 	return ((val) << A4XX_CP_PROTECT_REG_BASE_ADDR__SHIFT) & A4XX_CP_PROTECT_REG_BASE_ADDR__MASK;
2202*4882a593Smuzhiyun }
2203*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_MASK_LEN__MASK			0x1f000000
2204*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_MASK_LEN__SHIFT			24
A4XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)2205*4882a593Smuzhiyun static inline uint32_t A4XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)
2206*4882a593Smuzhiyun {
2207*4882a593Smuzhiyun 	return ((val) << A4XX_CP_PROTECT_REG_MASK_LEN__SHIFT) & A4XX_CP_PROTECT_REG_MASK_LEN__MASK;
2208*4882a593Smuzhiyun }
2209*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_TRAP_WRITE__MASK			0x20000000
2210*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_TRAP_WRITE__SHIFT			29
A4XX_CP_PROTECT_REG_TRAP_WRITE(uint32_t val)2211*4882a593Smuzhiyun static inline uint32_t A4XX_CP_PROTECT_REG_TRAP_WRITE(uint32_t val)
2212*4882a593Smuzhiyun {
2213*4882a593Smuzhiyun 	return ((val) << A4XX_CP_PROTECT_REG_TRAP_WRITE__SHIFT) & A4XX_CP_PROTECT_REG_TRAP_WRITE__MASK;
2214*4882a593Smuzhiyun }
2215*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_TRAP_READ__MASK			0x40000000
2216*4882a593Smuzhiyun #define A4XX_CP_PROTECT_REG_TRAP_READ__SHIFT			30
A4XX_CP_PROTECT_REG_TRAP_READ(uint32_t val)2217*4882a593Smuzhiyun static inline uint32_t A4XX_CP_PROTECT_REG_TRAP_READ(uint32_t val)
2218*4882a593Smuzhiyun {
2219*4882a593Smuzhiyun 	return ((val) << A4XX_CP_PROTECT_REG_TRAP_READ__SHIFT) & A4XX_CP_PROTECT_REG_TRAP_READ__MASK;
2220*4882a593Smuzhiyun }
2221*4882a593Smuzhiyun 
2222*4882a593Smuzhiyun #define REG_A4XX_CP_PROTECT_CTRL				0x00000250
2223*4882a593Smuzhiyun 
2224*4882a593Smuzhiyun #define REG_A4XX_CP_ST_BASE					0x000004c0
2225*4882a593Smuzhiyun 
2226*4882a593Smuzhiyun #define REG_A4XX_CP_STQ_AVAIL					0x000004ce
2227*4882a593Smuzhiyun 
2228*4882a593Smuzhiyun #define REG_A4XX_CP_MERCIU_STAT					0x000004d0
2229*4882a593Smuzhiyun 
2230*4882a593Smuzhiyun #define REG_A4XX_CP_WFI_PEND_CTR				0x000004d2
2231*4882a593Smuzhiyun 
2232*4882a593Smuzhiyun #define REG_A4XX_CP_HW_FAULT					0x000004d8
2233*4882a593Smuzhiyun 
2234*4882a593Smuzhiyun #define REG_A4XX_CP_PROTECT_STATUS				0x000004da
2235*4882a593Smuzhiyun 
2236*4882a593Smuzhiyun #define REG_A4XX_CP_EVENTS_IN_FLIGHT				0x000004dd
2237*4882a593Smuzhiyun 
2238*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_0				0x00000500
2239*4882a593Smuzhiyun 
2240*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_1				0x00000501
2241*4882a593Smuzhiyun 
2242*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_2				0x00000502
2243*4882a593Smuzhiyun 
2244*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_3				0x00000503
2245*4882a593Smuzhiyun 
2246*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_4				0x00000504
2247*4882a593Smuzhiyun 
2248*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_5				0x00000505
2249*4882a593Smuzhiyun 
2250*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_6				0x00000506
2251*4882a593Smuzhiyun 
2252*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCTR_CP_SEL_7				0x00000507
2253*4882a593Smuzhiyun 
2254*4882a593Smuzhiyun #define REG_A4XX_CP_PERFCOMBINER_SELECT				0x0000050b
2255*4882a593Smuzhiyun 
REG_A4XX_CP_SCRATCH(uint32_t i0)2256*4882a593Smuzhiyun static inline uint32_t REG_A4XX_CP_SCRATCH(uint32_t i0) { return 0x00000578 + 0x1*i0; }
2257*4882a593Smuzhiyun 
REG_A4XX_CP_SCRATCH_REG(uint32_t i0)2258*4882a593Smuzhiyun static inline uint32_t REG_A4XX_CP_SCRATCH_REG(uint32_t i0) { return 0x00000578 + 0x1*i0; }
2259*4882a593Smuzhiyun 
2260*4882a593Smuzhiyun #define REG_A4XX_SP_VS_STATUS					0x00000ec0
2261*4882a593Smuzhiyun 
2262*4882a593Smuzhiyun #define REG_A4XX_SP_MODE_CONTROL				0x00000ec3
2263*4882a593Smuzhiyun 
2264*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_0				0x00000ec4
2265*4882a593Smuzhiyun 
2266*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_1				0x00000ec5
2267*4882a593Smuzhiyun 
2268*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_2				0x00000ec6
2269*4882a593Smuzhiyun 
2270*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_3				0x00000ec7
2271*4882a593Smuzhiyun 
2272*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_4				0x00000ec8
2273*4882a593Smuzhiyun 
2274*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_5				0x00000ec9
2275*4882a593Smuzhiyun 
2276*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_6				0x00000eca
2277*4882a593Smuzhiyun 
2278*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_7				0x00000ecb
2279*4882a593Smuzhiyun 
2280*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_8				0x00000ecc
2281*4882a593Smuzhiyun 
2282*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_9				0x00000ecd
2283*4882a593Smuzhiyun 
2284*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_10				0x00000ece
2285*4882a593Smuzhiyun 
2286*4882a593Smuzhiyun #define REG_A4XX_SP_PERFCTR_SP_SEL_11				0x00000ecf
2287*4882a593Smuzhiyun 
2288*4882a593Smuzhiyun #define REG_A4XX_SP_SP_CTRL_REG					0x000022c0
2289*4882a593Smuzhiyun #define A4XX_SP_SP_CTRL_REG_BINNING_PASS			0x00080000
2290*4882a593Smuzhiyun 
2291*4882a593Smuzhiyun #define REG_A4XX_SP_INSTR_CACHE_CTRL				0x000022c1
2292*4882a593Smuzhiyun #define A4XX_SP_INSTR_CACHE_CTRL_VS_BUFFER			0x00000080
2293*4882a593Smuzhiyun #define A4XX_SP_INSTR_CACHE_CTRL_FS_BUFFER			0x00000100
2294*4882a593Smuzhiyun #define A4XX_SP_INSTR_CACHE_CTRL_INSTR_BUFFER			0x00000400
2295*4882a593Smuzhiyun 
2296*4882a593Smuzhiyun #define REG_A4XX_SP_VS_CTRL_REG0				0x000022c4
2297*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_THREADMODE__MASK			0x00000001
2298*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT			0
A4XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)2299*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
2300*4882a593Smuzhiyun {
2301*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT) & A4XX_SP_VS_CTRL_REG0_THREADMODE__MASK;
2302*4882a593Smuzhiyun }
2303*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_VARYING				0x00000002
2304*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_CACHEINVALID			0x00000004
2305*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
2306*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)2307*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
2308*4882a593Smuzhiyun {
2309*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A4XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
2310*4882a593Smuzhiyun }
2311*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
2312*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)2313*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
2314*4882a593Smuzhiyun {
2315*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A4XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
2316*4882a593Smuzhiyun }
2317*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__MASK		0x000c0000
2318*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__SHIFT		18
A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)2319*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)
2320*4882a593Smuzhiyun {
2321*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__SHIFT) & A4XX_SP_VS_CTRL_REG0_INOUTREGOVERLAP__MASK;
2322*4882a593Smuzhiyun }
2323*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_THREADSIZE__MASK			0x00100000
2324*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT			20
A4XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)2325*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
2326*4882a593Smuzhiyun {
2327*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A4XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
2328*4882a593Smuzhiyun }
2329*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_SUPERTHREADMODE			0x00200000
2330*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG0_PIXLODENABLE			0x00400000
2331*4882a593Smuzhiyun 
2332*4882a593Smuzhiyun #define REG_A4XX_SP_VS_CTRL_REG1				0x000022c5
2333*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG1_CONSTLENGTH__MASK			0x000000ff
2334*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG1_CONSTLENGTH__SHIFT			0
A4XX_SP_VS_CTRL_REG1_CONSTLENGTH(uint32_t val)2335*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG1_CONSTLENGTH(uint32_t val)
2336*4882a593Smuzhiyun {
2337*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG1_CONSTLENGTH__SHIFT) & A4XX_SP_VS_CTRL_REG1_CONSTLENGTH__MASK;
2338*4882a593Smuzhiyun }
2339*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__MASK		0x7f000000
2340*4882a593Smuzhiyun #define A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__SHIFT		24
A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)2341*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)
2342*4882a593Smuzhiyun {
2343*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__SHIFT) & A4XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__MASK;
2344*4882a593Smuzhiyun }
2345*4882a593Smuzhiyun 
2346*4882a593Smuzhiyun #define REG_A4XX_SP_VS_PARAM_REG				0x000022c6
2347*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_POSREGID__MASK			0x000000ff
2348*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_POSREGID__SHIFT			0
A4XX_SP_VS_PARAM_REG_POSREGID(uint32_t val)2349*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_PARAM_REG_POSREGID(uint32_t val)
2350*4882a593Smuzhiyun {
2351*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_PARAM_REG_POSREGID__SHIFT) & A4XX_SP_VS_PARAM_REG_POSREGID__MASK;
2352*4882a593Smuzhiyun }
2353*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_PSIZEREGID__MASK			0x0000ff00
2354*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_PSIZEREGID__SHIFT			8
A4XX_SP_VS_PARAM_REG_PSIZEREGID(uint32_t val)2355*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_PARAM_REG_PSIZEREGID(uint32_t val)
2356*4882a593Smuzhiyun {
2357*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_PARAM_REG_PSIZEREGID__SHIFT) & A4XX_SP_VS_PARAM_REG_PSIZEREGID__MASK;
2358*4882a593Smuzhiyun }
2359*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK		0xfff00000
2360*4882a593Smuzhiyun #define A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__SHIFT		20
A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)2361*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)
2362*4882a593Smuzhiyun {
2363*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__SHIFT) & A4XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK;
2364*4882a593Smuzhiyun }
2365*4882a593Smuzhiyun 
REG_A4XX_SP_VS_OUT(uint32_t i0)2366*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_VS_OUT(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
2367*4882a593Smuzhiyun 
REG_A4XX_SP_VS_OUT_REG(uint32_t i0)2368*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_VS_OUT_REG(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
2369*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_A_REGID__MASK			0x000001ff
2370*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_A_REGID__SHIFT			0
A4XX_SP_VS_OUT_REG_A_REGID(uint32_t val)2371*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
2372*4882a593Smuzhiyun {
2373*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A4XX_SP_VS_OUT_REG_A_REGID__MASK;
2374*4882a593Smuzhiyun }
2375*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_A_COMPMASK__MASK			0x00001e00
2376*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT			9
A4XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)2377*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
2378*4882a593Smuzhiyun {
2379*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A4XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
2380*4882a593Smuzhiyun }
2381*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_B_REGID__MASK			0x01ff0000
2382*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_B_REGID__SHIFT			16
A4XX_SP_VS_OUT_REG_B_REGID(uint32_t val)2383*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
2384*4882a593Smuzhiyun {
2385*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A4XX_SP_VS_OUT_REG_B_REGID__MASK;
2386*4882a593Smuzhiyun }
2387*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_B_COMPMASK__MASK			0x1e000000
2388*4882a593Smuzhiyun #define A4XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT			25
A4XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)2389*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
2390*4882a593Smuzhiyun {
2391*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A4XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
2392*4882a593Smuzhiyun }
2393*4882a593Smuzhiyun 
REG_A4XX_SP_VS_VPC_DST(uint32_t i0)2394*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_VS_VPC_DST(uint32_t i0) { return 0x000022d8 + 0x1*i0; }
2395*4882a593Smuzhiyun 
REG_A4XX_SP_VS_VPC_DST_REG(uint32_t i0)2396*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x000022d8 + 0x1*i0; }
2397*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
2398*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT			0
A4XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)2399*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
2400*4882a593Smuzhiyun {
2401*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A4XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
2402*4882a593Smuzhiyun }
2403*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
2404*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT			8
A4XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)2405*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
2406*4882a593Smuzhiyun {
2407*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A4XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
2408*4882a593Smuzhiyun }
2409*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
2410*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT			16
A4XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)2411*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
2412*4882a593Smuzhiyun {
2413*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A4XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
2414*4882a593Smuzhiyun }
2415*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
2416*4882a593Smuzhiyun #define A4XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT			24
A4XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)2417*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
2418*4882a593Smuzhiyun {
2419*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A4XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
2420*4882a593Smuzhiyun }
2421*4882a593Smuzhiyun 
2422*4882a593Smuzhiyun #define REG_A4XX_SP_VS_OBJ_OFFSET_REG				0x000022e0
2423*4882a593Smuzhiyun #define A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2424*4882a593Smuzhiyun #define A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2425*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2426*4882a593Smuzhiyun {
2427*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2428*4882a593Smuzhiyun }
2429*4882a593Smuzhiyun #define A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2430*4882a593Smuzhiyun #define A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2431*4882a593Smuzhiyun static inline uint32_t A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2432*4882a593Smuzhiyun {
2433*4882a593Smuzhiyun 	return ((val) << A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A4XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2434*4882a593Smuzhiyun }
2435*4882a593Smuzhiyun 
2436*4882a593Smuzhiyun #define REG_A4XX_SP_VS_OBJ_START				0x000022e1
2437*4882a593Smuzhiyun 
2438*4882a593Smuzhiyun #define REG_A4XX_SP_VS_PVT_MEM_PARAM				0x000022e2
2439*4882a593Smuzhiyun 
2440*4882a593Smuzhiyun #define REG_A4XX_SP_VS_PVT_MEM_ADDR				0x000022e3
2441*4882a593Smuzhiyun 
2442*4882a593Smuzhiyun #define REG_A4XX_SP_VS_LENGTH_REG				0x000022e5
2443*4882a593Smuzhiyun 
2444*4882a593Smuzhiyun #define REG_A4XX_SP_FS_CTRL_REG0				0x000022e8
2445*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_THREADMODE__MASK			0x00000001
2446*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT			0
A4XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)2447*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
2448*4882a593Smuzhiyun {
2449*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT) & A4XX_SP_FS_CTRL_REG0_THREADMODE__MASK;
2450*4882a593Smuzhiyun }
2451*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_VARYING				0x00000002
2452*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_CACHEINVALID			0x00000004
2453*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
2454*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)2455*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
2456*4882a593Smuzhiyun {
2457*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A4XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
2458*4882a593Smuzhiyun }
2459*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
2460*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)2461*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
2462*4882a593Smuzhiyun {
2463*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A4XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
2464*4882a593Smuzhiyun }
2465*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__MASK		0x000c0000
2466*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__SHIFT		18
A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)2467*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP(uint32_t val)
2468*4882a593Smuzhiyun {
2469*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__SHIFT) & A4XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP__MASK;
2470*4882a593Smuzhiyun }
2471*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_THREADSIZE__MASK			0x00100000
2472*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT			20
A4XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)2473*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
2474*4882a593Smuzhiyun {
2475*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A4XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
2476*4882a593Smuzhiyun }
2477*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_SUPERTHREADMODE			0x00200000
2478*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG0_PIXLODENABLE			0x00400000
2479*4882a593Smuzhiyun 
2480*4882a593Smuzhiyun #define REG_A4XX_SP_FS_CTRL_REG1				0x000022e9
2481*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG1_CONSTLENGTH__MASK			0x000000ff
2482*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG1_CONSTLENGTH__SHIFT			0
A4XX_SP_FS_CTRL_REG1_CONSTLENGTH(uint32_t val)2483*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_CTRL_REG1_CONSTLENGTH(uint32_t val)
2484*4882a593Smuzhiyun {
2485*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_CTRL_REG1_CONSTLENGTH__SHIFT) & A4XX_SP_FS_CTRL_REG1_CONSTLENGTH__MASK;
2486*4882a593Smuzhiyun }
2487*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG1_FACENESS				0x00080000
2488*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG1_VARYING				0x00100000
2489*4882a593Smuzhiyun #define A4XX_SP_FS_CTRL_REG1_FRAGCOORD				0x00200000
2490*4882a593Smuzhiyun 
2491*4882a593Smuzhiyun #define REG_A4XX_SP_FS_OBJ_OFFSET_REG				0x000022ea
2492*4882a593Smuzhiyun #define A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2493*4882a593Smuzhiyun #define A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2494*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2495*4882a593Smuzhiyun {
2496*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2497*4882a593Smuzhiyun }
2498*4882a593Smuzhiyun #define A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2499*4882a593Smuzhiyun #define A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2500*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2501*4882a593Smuzhiyun {
2502*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A4XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2503*4882a593Smuzhiyun }
2504*4882a593Smuzhiyun 
2505*4882a593Smuzhiyun #define REG_A4XX_SP_FS_OBJ_START				0x000022eb
2506*4882a593Smuzhiyun 
2507*4882a593Smuzhiyun #define REG_A4XX_SP_FS_PVT_MEM_PARAM				0x000022ec
2508*4882a593Smuzhiyun 
2509*4882a593Smuzhiyun #define REG_A4XX_SP_FS_PVT_MEM_ADDR				0x000022ed
2510*4882a593Smuzhiyun 
2511*4882a593Smuzhiyun #define REG_A4XX_SP_FS_LENGTH_REG				0x000022ef
2512*4882a593Smuzhiyun 
2513*4882a593Smuzhiyun #define REG_A4XX_SP_FS_OUTPUT_REG				0x000022f0
2514*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_MRT__MASK				0x0000000f
2515*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_MRT__SHIFT			0
A4XX_SP_FS_OUTPUT_REG_MRT(uint32_t val)2516*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_OUTPUT_REG_MRT(uint32_t val)
2517*4882a593Smuzhiyun {
2518*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_OUTPUT_REG_MRT__SHIFT) & A4XX_SP_FS_OUTPUT_REG_MRT__MASK;
2519*4882a593Smuzhiyun }
2520*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_DEPTH_ENABLE			0x00000080
2521*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID__MASK			0x0000ff00
2522*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID__SHIFT		8
A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID(uint32_t val)2523*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID(uint32_t val)
2524*4882a593Smuzhiyun {
2525*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID__SHIFT) & A4XX_SP_FS_OUTPUT_REG_DEPTH_REGID__MASK;
2526*4882a593Smuzhiyun }
2527*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID__MASK		0xff000000
2528*4882a593Smuzhiyun #define A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID__SHIFT		24
A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID(uint32_t val)2529*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID(uint32_t val)
2530*4882a593Smuzhiyun {
2531*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID__SHIFT) & A4XX_SP_FS_OUTPUT_REG_SAMPLEMASK_REGID__MASK;
2532*4882a593Smuzhiyun }
2533*4882a593Smuzhiyun 
REG_A4XX_SP_FS_MRT(uint32_t i0)2534*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_FS_MRT(uint32_t i0) { return 0x000022f1 + 0x1*i0; }
2535*4882a593Smuzhiyun 
REG_A4XX_SP_FS_MRT_REG(uint32_t i0)2536*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_FS_MRT_REG(uint32_t i0) { return 0x000022f1 + 0x1*i0; }
2537*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_REGID__MASK				0x000000ff
2538*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_REGID__SHIFT				0
A4XX_SP_FS_MRT_REG_REGID(uint32_t val)2539*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_MRT_REG_REGID(uint32_t val)
2540*4882a593Smuzhiyun {
2541*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_MRT_REG_REGID__SHIFT) & A4XX_SP_FS_MRT_REG_REGID__MASK;
2542*4882a593Smuzhiyun }
2543*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_HALF_PRECISION			0x00000100
2544*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_MRTFORMAT__MASK			0x0003f000
2545*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_MRTFORMAT__SHIFT			12
A4XX_SP_FS_MRT_REG_MRTFORMAT(enum a4xx_color_fmt val)2546*4882a593Smuzhiyun static inline uint32_t A4XX_SP_FS_MRT_REG_MRTFORMAT(enum a4xx_color_fmt val)
2547*4882a593Smuzhiyun {
2548*4882a593Smuzhiyun 	return ((val) << A4XX_SP_FS_MRT_REG_MRTFORMAT__SHIFT) & A4XX_SP_FS_MRT_REG_MRTFORMAT__MASK;
2549*4882a593Smuzhiyun }
2550*4882a593Smuzhiyun #define A4XX_SP_FS_MRT_REG_COLOR_SRGB				0x00040000
2551*4882a593Smuzhiyun 
2552*4882a593Smuzhiyun #define REG_A4XX_SP_CS_CTRL_REG0				0x00002300
2553*4882a593Smuzhiyun 
2554*4882a593Smuzhiyun #define REG_A4XX_SP_CS_OBJ_OFFSET_REG				0x00002301
2555*4882a593Smuzhiyun 
2556*4882a593Smuzhiyun #define REG_A4XX_SP_CS_OBJ_START				0x00002302
2557*4882a593Smuzhiyun 
2558*4882a593Smuzhiyun #define REG_A4XX_SP_CS_PVT_MEM_PARAM				0x00002303
2559*4882a593Smuzhiyun 
2560*4882a593Smuzhiyun #define REG_A4XX_SP_CS_PVT_MEM_ADDR				0x00002304
2561*4882a593Smuzhiyun 
2562*4882a593Smuzhiyun #define REG_A4XX_SP_CS_PVT_MEM_SIZE				0x00002305
2563*4882a593Smuzhiyun 
2564*4882a593Smuzhiyun #define REG_A4XX_SP_CS_LENGTH_REG				0x00002306
2565*4882a593Smuzhiyun 
2566*4882a593Smuzhiyun #define REG_A4XX_SP_HS_OBJ_OFFSET_REG				0x0000230d
2567*4882a593Smuzhiyun #define A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2568*4882a593Smuzhiyun #define A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2569*4882a593Smuzhiyun static inline uint32_t A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2570*4882a593Smuzhiyun {
2571*4882a593Smuzhiyun 	return ((val) << A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_SP_HS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2572*4882a593Smuzhiyun }
2573*4882a593Smuzhiyun #define A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2574*4882a593Smuzhiyun #define A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2575*4882a593Smuzhiyun static inline uint32_t A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2576*4882a593Smuzhiyun {
2577*4882a593Smuzhiyun 	return ((val) << A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A4XX_SP_HS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2578*4882a593Smuzhiyun }
2579*4882a593Smuzhiyun 
2580*4882a593Smuzhiyun #define REG_A4XX_SP_HS_OBJ_START				0x0000230e
2581*4882a593Smuzhiyun 
2582*4882a593Smuzhiyun #define REG_A4XX_SP_HS_PVT_MEM_PARAM				0x0000230f
2583*4882a593Smuzhiyun 
2584*4882a593Smuzhiyun #define REG_A4XX_SP_HS_PVT_MEM_ADDR				0x00002310
2585*4882a593Smuzhiyun 
2586*4882a593Smuzhiyun #define REG_A4XX_SP_HS_LENGTH_REG				0x00002312
2587*4882a593Smuzhiyun 
2588*4882a593Smuzhiyun #define REG_A4XX_SP_DS_PARAM_REG				0x0000231a
2589*4882a593Smuzhiyun #define A4XX_SP_DS_PARAM_REG_POSREGID__MASK			0x000000ff
2590*4882a593Smuzhiyun #define A4XX_SP_DS_PARAM_REG_POSREGID__SHIFT			0
A4XX_SP_DS_PARAM_REG_POSREGID(uint32_t val)2591*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_PARAM_REG_POSREGID(uint32_t val)
2592*4882a593Smuzhiyun {
2593*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_PARAM_REG_POSREGID__SHIFT) & A4XX_SP_DS_PARAM_REG_POSREGID__MASK;
2594*4882a593Smuzhiyun }
2595*4882a593Smuzhiyun #define A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR__MASK		0xfff00000
2596*4882a593Smuzhiyun #define A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR__SHIFT		20
A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR(uint32_t val)2597*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR(uint32_t val)
2598*4882a593Smuzhiyun {
2599*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR__SHIFT) & A4XX_SP_DS_PARAM_REG_TOTALGSOUTVAR__MASK;
2600*4882a593Smuzhiyun }
2601*4882a593Smuzhiyun 
REG_A4XX_SP_DS_OUT(uint32_t i0)2602*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_DS_OUT(uint32_t i0) { return 0x0000231b + 0x1*i0; }
2603*4882a593Smuzhiyun 
REG_A4XX_SP_DS_OUT_REG(uint32_t i0)2604*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_DS_OUT_REG(uint32_t i0) { return 0x0000231b + 0x1*i0; }
2605*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_A_REGID__MASK			0x000001ff
2606*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_A_REGID__SHIFT			0
A4XX_SP_DS_OUT_REG_A_REGID(uint32_t val)2607*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OUT_REG_A_REGID(uint32_t val)
2608*4882a593Smuzhiyun {
2609*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OUT_REG_A_REGID__SHIFT) & A4XX_SP_DS_OUT_REG_A_REGID__MASK;
2610*4882a593Smuzhiyun }
2611*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_A_COMPMASK__MASK			0x00001e00
2612*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT			9
A4XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)2613*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)
2614*4882a593Smuzhiyun {
2615*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT) & A4XX_SP_DS_OUT_REG_A_COMPMASK__MASK;
2616*4882a593Smuzhiyun }
2617*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_B_REGID__MASK			0x01ff0000
2618*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_B_REGID__SHIFT			16
A4XX_SP_DS_OUT_REG_B_REGID(uint32_t val)2619*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OUT_REG_B_REGID(uint32_t val)
2620*4882a593Smuzhiyun {
2621*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OUT_REG_B_REGID__SHIFT) & A4XX_SP_DS_OUT_REG_B_REGID__MASK;
2622*4882a593Smuzhiyun }
2623*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_B_COMPMASK__MASK			0x1e000000
2624*4882a593Smuzhiyun #define A4XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT			25
A4XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)2625*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)
2626*4882a593Smuzhiyun {
2627*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT) & A4XX_SP_DS_OUT_REG_B_COMPMASK__MASK;
2628*4882a593Smuzhiyun }
2629*4882a593Smuzhiyun 
REG_A4XX_SP_DS_VPC_DST(uint32_t i0)2630*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_DS_VPC_DST(uint32_t i0) { return 0x0000232c + 0x1*i0; }
2631*4882a593Smuzhiyun 
REG_A4XX_SP_DS_VPC_DST_REG(uint32_t i0)2632*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_DS_VPC_DST_REG(uint32_t i0) { return 0x0000232c + 0x1*i0; }
2633*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
2634*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT			0
A4XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)2635*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)
2636*4882a593Smuzhiyun {
2637*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT) & A4XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK;
2638*4882a593Smuzhiyun }
2639*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
2640*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT			8
A4XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)2641*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)
2642*4882a593Smuzhiyun {
2643*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT) & A4XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK;
2644*4882a593Smuzhiyun }
2645*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
2646*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT			16
A4XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)2647*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)
2648*4882a593Smuzhiyun {
2649*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT) & A4XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK;
2650*4882a593Smuzhiyun }
2651*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
2652*4882a593Smuzhiyun #define A4XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT			24
A4XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)2653*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)
2654*4882a593Smuzhiyun {
2655*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT) & A4XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK;
2656*4882a593Smuzhiyun }
2657*4882a593Smuzhiyun 
2658*4882a593Smuzhiyun #define REG_A4XX_SP_DS_OBJ_OFFSET_REG				0x00002334
2659*4882a593Smuzhiyun #define A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2660*4882a593Smuzhiyun #define A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2661*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2662*4882a593Smuzhiyun {
2663*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_SP_DS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2664*4882a593Smuzhiyun }
2665*4882a593Smuzhiyun #define A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2666*4882a593Smuzhiyun #define A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2667*4882a593Smuzhiyun static inline uint32_t A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2668*4882a593Smuzhiyun {
2669*4882a593Smuzhiyun 	return ((val) << A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A4XX_SP_DS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2670*4882a593Smuzhiyun }
2671*4882a593Smuzhiyun 
2672*4882a593Smuzhiyun #define REG_A4XX_SP_DS_OBJ_START				0x00002335
2673*4882a593Smuzhiyun 
2674*4882a593Smuzhiyun #define REG_A4XX_SP_DS_PVT_MEM_PARAM				0x00002336
2675*4882a593Smuzhiyun 
2676*4882a593Smuzhiyun #define REG_A4XX_SP_DS_PVT_MEM_ADDR				0x00002337
2677*4882a593Smuzhiyun 
2678*4882a593Smuzhiyun #define REG_A4XX_SP_DS_LENGTH_REG				0x00002339
2679*4882a593Smuzhiyun 
2680*4882a593Smuzhiyun #define REG_A4XX_SP_GS_PARAM_REG				0x00002341
2681*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_POSREGID__MASK			0x000000ff
2682*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_POSREGID__SHIFT			0
A4XX_SP_GS_PARAM_REG_POSREGID(uint32_t val)2683*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_PARAM_REG_POSREGID(uint32_t val)
2684*4882a593Smuzhiyun {
2685*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_PARAM_REG_POSREGID__SHIFT) & A4XX_SP_GS_PARAM_REG_POSREGID__MASK;
2686*4882a593Smuzhiyun }
2687*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_PRIMREGID__MASK			0x0000ff00
2688*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_PRIMREGID__SHIFT			8
A4XX_SP_GS_PARAM_REG_PRIMREGID(uint32_t val)2689*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_PARAM_REG_PRIMREGID(uint32_t val)
2690*4882a593Smuzhiyun {
2691*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_PARAM_REG_PRIMREGID__SHIFT) & A4XX_SP_GS_PARAM_REG_PRIMREGID__MASK;
2692*4882a593Smuzhiyun }
2693*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR__MASK		0xfff00000
2694*4882a593Smuzhiyun #define A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR__SHIFT		20
A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR(uint32_t val)2695*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR(uint32_t val)
2696*4882a593Smuzhiyun {
2697*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR__SHIFT) & A4XX_SP_GS_PARAM_REG_TOTALGSOUTVAR__MASK;
2698*4882a593Smuzhiyun }
2699*4882a593Smuzhiyun 
REG_A4XX_SP_GS_OUT(uint32_t i0)2700*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_GS_OUT(uint32_t i0) { return 0x00002342 + 0x1*i0; }
2701*4882a593Smuzhiyun 
REG_A4XX_SP_GS_OUT_REG(uint32_t i0)2702*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_GS_OUT_REG(uint32_t i0) { return 0x00002342 + 0x1*i0; }
2703*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_A_REGID__MASK			0x000001ff
2704*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_A_REGID__SHIFT			0
A4XX_SP_GS_OUT_REG_A_REGID(uint32_t val)2705*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OUT_REG_A_REGID(uint32_t val)
2706*4882a593Smuzhiyun {
2707*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OUT_REG_A_REGID__SHIFT) & A4XX_SP_GS_OUT_REG_A_REGID__MASK;
2708*4882a593Smuzhiyun }
2709*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_A_COMPMASK__MASK			0x00001e00
2710*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT			9
A4XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)2711*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)
2712*4882a593Smuzhiyun {
2713*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT) & A4XX_SP_GS_OUT_REG_A_COMPMASK__MASK;
2714*4882a593Smuzhiyun }
2715*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_B_REGID__MASK			0x01ff0000
2716*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_B_REGID__SHIFT			16
A4XX_SP_GS_OUT_REG_B_REGID(uint32_t val)2717*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OUT_REG_B_REGID(uint32_t val)
2718*4882a593Smuzhiyun {
2719*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OUT_REG_B_REGID__SHIFT) & A4XX_SP_GS_OUT_REG_B_REGID__MASK;
2720*4882a593Smuzhiyun }
2721*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_B_COMPMASK__MASK			0x1e000000
2722*4882a593Smuzhiyun #define A4XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT			25
A4XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)2723*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)
2724*4882a593Smuzhiyun {
2725*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT) & A4XX_SP_GS_OUT_REG_B_COMPMASK__MASK;
2726*4882a593Smuzhiyun }
2727*4882a593Smuzhiyun 
REG_A4XX_SP_GS_VPC_DST(uint32_t i0)2728*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_GS_VPC_DST(uint32_t i0) { return 0x00002353 + 0x1*i0; }
2729*4882a593Smuzhiyun 
REG_A4XX_SP_GS_VPC_DST_REG(uint32_t i0)2730*4882a593Smuzhiyun static inline uint32_t REG_A4XX_SP_GS_VPC_DST_REG(uint32_t i0) { return 0x00002353 + 0x1*i0; }
2731*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
2732*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT			0
A4XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)2733*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)
2734*4882a593Smuzhiyun {
2735*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT) & A4XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK;
2736*4882a593Smuzhiyun }
2737*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
2738*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT			8
A4XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)2739*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)
2740*4882a593Smuzhiyun {
2741*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT) & A4XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK;
2742*4882a593Smuzhiyun }
2743*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
2744*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT			16
A4XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)2745*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)
2746*4882a593Smuzhiyun {
2747*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT) & A4XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK;
2748*4882a593Smuzhiyun }
2749*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
2750*4882a593Smuzhiyun #define A4XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT			24
A4XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)2751*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)
2752*4882a593Smuzhiyun {
2753*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT) & A4XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK;
2754*4882a593Smuzhiyun }
2755*4882a593Smuzhiyun 
2756*4882a593Smuzhiyun #define REG_A4XX_SP_GS_OBJ_OFFSET_REG				0x0000235b
2757*4882a593Smuzhiyun #define A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2758*4882a593Smuzhiyun #define A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2759*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2760*4882a593Smuzhiyun {
2761*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_SP_GS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2762*4882a593Smuzhiyun }
2763*4882a593Smuzhiyun #define A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2764*4882a593Smuzhiyun #define A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2765*4882a593Smuzhiyun static inline uint32_t A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2766*4882a593Smuzhiyun {
2767*4882a593Smuzhiyun 	return ((val) << A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A4XX_SP_GS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2768*4882a593Smuzhiyun }
2769*4882a593Smuzhiyun 
2770*4882a593Smuzhiyun #define REG_A4XX_SP_GS_OBJ_START				0x0000235c
2771*4882a593Smuzhiyun 
2772*4882a593Smuzhiyun #define REG_A4XX_SP_GS_PVT_MEM_PARAM				0x0000235d
2773*4882a593Smuzhiyun 
2774*4882a593Smuzhiyun #define REG_A4XX_SP_GS_PVT_MEM_ADDR				0x0000235e
2775*4882a593Smuzhiyun 
2776*4882a593Smuzhiyun #define REG_A4XX_SP_GS_LENGTH_REG				0x00002360
2777*4882a593Smuzhiyun 
2778*4882a593Smuzhiyun #define REG_A4XX_VPC_DEBUG_RAM_SEL				0x00000e60
2779*4882a593Smuzhiyun 
2780*4882a593Smuzhiyun #define REG_A4XX_VPC_DEBUG_RAM_READ				0x00000e61
2781*4882a593Smuzhiyun 
2782*4882a593Smuzhiyun #define REG_A4XX_VPC_DEBUG_ECO_CONTROL				0x00000e64
2783*4882a593Smuzhiyun 
2784*4882a593Smuzhiyun #define REG_A4XX_VPC_PERFCTR_VPC_SEL_0				0x00000e65
2785*4882a593Smuzhiyun 
2786*4882a593Smuzhiyun #define REG_A4XX_VPC_PERFCTR_VPC_SEL_1				0x00000e66
2787*4882a593Smuzhiyun 
2788*4882a593Smuzhiyun #define REG_A4XX_VPC_PERFCTR_VPC_SEL_2				0x00000e67
2789*4882a593Smuzhiyun 
2790*4882a593Smuzhiyun #define REG_A4XX_VPC_PERFCTR_VPC_SEL_3				0x00000e68
2791*4882a593Smuzhiyun 
2792*4882a593Smuzhiyun #define REG_A4XX_VPC_ATTR					0x00002140
2793*4882a593Smuzhiyun #define A4XX_VPC_ATTR_TOTALATTR__MASK				0x000001ff
2794*4882a593Smuzhiyun #define A4XX_VPC_ATTR_TOTALATTR__SHIFT				0
A4XX_VPC_ATTR_TOTALATTR(uint32_t val)2795*4882a593Smuzhiyun static inline uint32_t A4XX_VPC_ATTR_TOTALATTR(uint32_t val)
2796*4882a593Smuzhiyun {
2797*4882a593Smuzhiyun 	return ((val) << A4XX_VPC_ATTR_TOTALATTR__SHIFT) & A4XX_VPC_ATTR_TOTALATTR__MASK;
2798*4882a593Smuzhiyun }
2799*4882a593Smuzhiyun #define A4XX_VPC_ATTR_PSIZE					0x00000200
2800*4882a593Smuzhiyun #define A4XX_VPC_ATTR_THRDASSIGN__MASK				0x00003000
2801*4882a593Smuzhiyun #define A4XX_VPC_ATTR_THRDASSIGN__SHIFT				12
A4XX_VPC_ATTR_THRDASSIGN(uint32_t val)2802*4882a593Smuzhiyun static inline uint32_t A4XX_VPC_ATTR_THRDASSIGN(uint32_t val)
2803*4882a593Smuzhiyun {
2804*4882a593Smuzhiyun 	return ((val) << A4XX_VPC_ATTR_THRDASSIGN__SHIFT) & A4XX_VPC_ATTR_THRDASSIGN__MASK;
2805*4882a593Smuzhiyun }
2806*4882a593Smuzhiyun #define A4XX_VPC_ATTR_ENABLE					0x02000000
2807*4882a593Smuzhiyun 
2808*4882a593Smuzhiyun #define REG_A4XX_VPC_PACK					0x00002141
2809*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMBYPASSVAR__MASK			0x000000ff
2810*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMBYPASSVAR__SHIFT			0
A4XX_VPC_PACK_NUMBYPASSVAR(uint32_t val)2811*4882a593Smuzhiyun static inline uint32_t A4XX_VPC_PACK_NUMBYPASSVAR(uint32_t val)
2812*4882a593Smuzhiyun {
2813*4882a593Smuzhiyun 	return ((val) << A4XX_VPC_PACK_NUMBYPASSVAR__SHIFT) & A4XX_VPC_PACK_NUMBYPASSVAR__MASK;
2814*4882a593Smuzhiyun }
2815*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMFPNONPOSVAR__MASK			0x0000ff00
2816*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMFPNONPOSVAR__SHIFT			8
A4XX_VPC_PACK_NUMFPNONPOSVAR(uint32_t val)2817*4882a593Smuzhiyun static inline uint32_t A4XX_VPC_PACK_NUMFPNONPOSVAR(uint32_t val)
2818*4882a593Smuzhiyun {
2819*4882a593Smuzhiyun 	return ((val) << A4XX_VPC_PACK_NUMFPNONPOSVAR__SHIFT) & A4XX_VPC_PACK_NUMFPNONPOSVAR__MASK;
2820*4882a593Smuzhiyun }
2821*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMNONPOSVSVAR__MASK			0x00ff0000
2822*4882a593Smuzhiyun #define A4XX_VPC_PACK_NUMNONPOSVSVAR__SHIFT			16
A4XX_VPC_PACK_NUMNONPOSVSVAR(uint32_t val)2823*4882a593Smuzhiyun static inline uint32_t A4XX_VPC_PACK_NUMNONPOSVSVAR(uint32_t val)
2824*4882a593Smuzhiyun {
2825*4882a593Smuzhiyun 	return ((val) << A4XX_VPC_PACK_NUMNONPOSVSVAR__SHIFT) & A4XX_VPC_PACK_NUMNONPOSVSVAR__MASK;
2826*4882a593Smuzhiyun }
2827*4882a593Smuzhiyun 
REG_A4XX_VPC_VARYING_INTERP(uint32_t i0)2828*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00002142 + 0x1*i0; }
2829*4882a593Smuzhiyun 
REG_A4XX_VPC_VARYING_INTERP_MODE(uint32_t i0)2830*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x00002142 + 0x1*i0; }
2831*4882a593Smuzhiyun 
REG_A4XX_VPC_VARYING_PS_REPL(uint32_t i0)2832*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x0000214a + 0x1*i0; }
2833*4882a593Smuzhiyun 
REG_A4XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0)2834*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x0000214a + 0x1*i0; }
2835*4882a593Smuzhiyun 
2836*4882a593Smuzhiyun #define REG_A4XX_VPC_SO_FLUSH_WADDR_3				0x0000216e
2837*4882a593Smuzhiyun 
2838*4882a593Smuzhiyun #define REG_A4XX_VSC_BIN_SIZE					0x00000c00
2839*4882a593Smuzhiyun #define A4XX_VSC_BIN_SIZE_WIDTH__MASK				0x0000001f
2840*4882a593Smuzhiyun #define A4XX_VSC_BIN_SIZE_WIDTH__SHIFT				0
A4XX_VSC_BIN_SIZE_WIDTH(uint32_t val)2841*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
2842*4882a593Smuzhiyun {
2843*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A4XX_VSC_BIN_SIZE_WIDTH__MASK;
2844*4882a593Smuzhiyun }
2845*4882a593Smuzhiyun #define A4XX_VSC_BIN_SIZE_HEIGHT__MASK				0x000003e0
2846*4882a593Smuzhiyun #define A4XX_VSC_BIN_SIZE_HEIGHT__SHIFT				5
A4XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)2847*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
2848*4882a593Smuzhiyun {
2849*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A4XX_VSC_BIN_SIZE_HEIGHT__MASK;
2850*4882a593Smuzhiyun }
2851*4882a593Smuzhiyun 
2852*4882a593Smuzhiyun #define REG_A4XX_VSC_SIZE_ADDRESS				0x00000c01
2853*4882a593Smuzhiyun 
2854*4882a593Smuzhiyun #define REG_A4XX_VSC_SIZE_ADDRESS2				0x00000c02
2855*4882a593Smuzhiyun 
2856*4882a593Smuzhiyun #define REG_A4XX_VSC_DEBUG_ECO_CONTROL				0x00000c03
2857*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_CONFIG(uint32_t i0)2858*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000c08 + 0x1*i0; }
2859*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_CONFIG_REG(uint32_t i0)2860*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_CONFIG_REG(uint32_t i0) { return 0x00000c08 + 0x1*i0; }
2861*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_X__MASK			0x000003ff
2862*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_X__SHIFT			0
A4XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)2863*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)
2864*4882a593Smuzhiyun {
2865*4882a593Smuzhiyun 	return ((val) << A4XX_VSC_PIPE_CONFIG_REG_X__SHIFT) & A4XX_VSC_PIPE_CONFIG_REG_X__MASK;
2866*4882a593Smuzhiyun }
2867*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_Y__MASK			0x000ffc00
2868*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_Y__SHIFT			10
A4XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)2869*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)
2870*4882a593Smuzhiyun {
2871*4882a593Smuzhiyun 	return ((val) << A4XX_VSC_PIPE_CONFIG_REG_Y__SHIFT) & A4XX_VSC_PIPE_CONFIG_REG_Y__MASK;
2872*4882a593Smuzhiyun }
2873*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_W__MASK			0x00f00000
2874*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_W__SHIFT			20
A4XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)2875*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)
2876*4882a593Smuzhiyun {
2877*4882a593Smuzhiyun 	return ((val) << A4XX_VSC_PIPE_CONFIG_REG_W__SHIFT) & A4XX_VSC_PIPE_CONFIG_REG_W__MASK;
2878*4882a593Smuzhiyun }
2879*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_H__MASK			0x0f000000
2880*4882a593Smuzhiyun #define A4XX_VSC_PIPE_CONFIG_REG_H__SHIFT			24
A4XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)2881*4882a593Smuzhiyun static inline uint32_t A4XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)
2882*4882a593Smuzhiyun {
2883*4882a593Smuzhiyun 	return ((val) << A4XX_VSC_PIPE_CONFIG_REG_H__SHIFT) & A4XX_VSC_PIPE_CONFIG_REG_H__MASK;
2884*4882a593Smuzhiyun }
2885*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_DATA_ADDRESS(uint32_t i0)2886*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_DATA_ADDRESS(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
2887*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_DATA_ADDRESS_REG(uint32_t i0)2888*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_DATA_ADDRESS_REG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
2889*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_DATA_LENGTH(uint32_t i0)2890*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_DATA_LENGTH(uint32_t i0) { return 0x00000c18 + 0x1*i0; }
2891*4882a593Smuzhiyun 
REG_A4XX_VSC_PIPE_DATA_LENGTH_REG(uint32_t i0)2892*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VSC_PIPE_DATA_LENGTH_REG(uint32_t i0) { return 0x00000c18 + 0x1*i0; }
2893*4882a593Smuzhiyun 
2894*4882a593Smuzhiyun #define REG_A4XX_VSC_PIPE_PARTIAL_POSN_1			0x00000c41
2895*4882a593Smuzhiyun 
2896*4882a593Smuzhiyun #define REG_A4XX_VSC_PERFCTR_VSC_SEL_0				0x00000c50
2897*4882a593Smuzhiyun 
2898*4882a593Smuzhiyun #define REG_A4XX_VSC_PERFCTR_VSC_SEL_1				0x00000c51
2899*4882a593Smuzhiyun 
2900*4882a593Smuzhiyun #define REG_A4XX_VFD_DEBUG_CONTROL				0x00000e40
2901*4882a593Smuzhiyun 
2902*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_0				0x00000e43
2903*4882a593Smuzhiyun 
2904*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_1				0x00000e44
2905*4882a593Smuzhiyun 
2906*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_2				0x00000e45
2907*4882a593Smuzhiyun 
2908*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_3				0x00000e46
2909*4882a593Smuzhiyun 
2910*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_4				0x00000e47
2911*4882a593Smuzhiyun 
2912*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_5				0x00000e48
2913*4882a593Smuzhiyun 
2914*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_6				0x00000e49
2915*4882a593Smuzhiyun 
2916*4882a593Smuzhiyun #define REG_A4XX_VFD_PERFCTR_VFD_SEL_7				0x00000e4a
2917*4882a593Smuzhiyun 
2918*4882a593Smuzhiyun #define REG_A4XX_VGT_CL_INITIATOR				0x000021d0
2919*4882a593Smuzhiyun 
2920*4882a593Smuzhiyun #define REG_A4XX_VGT_EVENT_INITIATOR				0x000021d9
2921*4882a593Smuzhiyun 
2922*4882a593Smuzhiyun #define REG_A4XX_VFD_CONTROL_0					0x00002200
2923*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_TOTALATTRTOVS__MASK			0x000000ff
2924*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_TOTALATTRTOVS__SHIFT			0
A4XX_VFD_CONTROL_0_TOTALATTRTOVS(uint32_t val)2925*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_0_TOTALATTRTOVS(uint32_t val)
2926*4882a593Smuzhiyun {
2927*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_0_TOTALATTRTOVS__SHIFT) & A4XX_VFD_CONTROL_0_TOTALATTRTOVS__MASK;
2928*4882a593Smuzhiyun }
2929*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_BYPASSATTROVS__MASK			0x0001fe00
2930*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_BYPASSATTROVS__SHIFT			9
A4XX_VFD_CONTROL_0_BYPASSATTROVS(uint32_t val)2931*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_0_BYPASSATTROVS(uint32_t val)
2932*4882a593Smuzhiyun {
2933*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_0_BYPASSATTROVS__SHIFT) & A4XX_VFD_CONTROL_0_BYPASSATTROVS__MASK;
2934*4882a593Smuzhiyun }
2935*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_STRMDECINSTRCNT__MASK		0x03f00000
2936*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_STRMDECINSTRCNT__SHIFT		20
A4XX_VFD_CONTROL_0_STRMDECINSTRCNT(uint32_t val)2937*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_0_STRMDECINSTRCNT(uint32_t val)
2938*4882a593Smuzhiyun {
2939*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_0_STRMDECINSTRCNT__SHIFT) & A4XX_VFD_CONTROL_0_STRMDECINSTRCNT__MASK;
2940*4882a593Smuzhiyun }
2941*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__MASK		0xfc000000
2942*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__SHIFT		26
A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT(uint32_t val)2943*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT(uint32_t val)
2944*4882a593Smuzhiyun {
2945*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__SHIFT) & A4XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__MASK;
2946*4882a593Smuzhiyun }
2947*4882a593Smuzhiyun 
2948*4882a593Smuzhiyun #define REG_A4XX_VFD_CONTROL_1					0x00002201
2949*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_MAXSTORAGE__MASK			0x0000ffff
2950*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT			0
A4XX_VFD_CONTROL_1_MAXSTORAGE(uint32_t val)2951*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_1_MAXSTORAGE(uint32_t val)
2952*4882a593Smuzhiyun {
2953*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT) & A4XX_VFD_CONTROL_1_MAXSTORAGE__MASK;
2954*4882a593Smuzhiyun }
2955*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_REGID4VTX__MASK			0x00ff0000
2956*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_REGID4VTX__SHIFT			16
A4XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)2957*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
2958*4882a593Smuzhiyun {
2959*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A4XX_VFD_CONTROL_1_REGID4VTX__MASK;
2960*4882a593Smuzhiyun }
2961*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_REGID4INST__MASK			0xff000000
2962*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_1_REGID4INST__SHIFT			24
A4XX_VFD_CONTROL_1_REGID4INST(uint32_t val)2963*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
2964*4882a593Smuzhiyun {
2965*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A4XX_VFD_CONTROL_1_REGID4INST__MASK;
2966*4882a593Smuzhiyun }
2967*4882a593Smuzhiyun 
2968*4882a593Smuzhiyun #define REG_A4XX_VFD_CONTROL_2					0x00002202
2969*4882a593Smuzhiyun 
2970*4882a593Smuzhiyun #define REG_A4XX_VFD_CONTROL_3					0x00002203
2971*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_VTXCNT__MASK			0x0000ff00
2972*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_VTXCNT__SHIFT			8
A4XX_VFD_CONTROL_3_REGID_VTXCNT(uint32_t val)2973*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_3_REGID_VTXCNT(uint32_t val)
2974*4882a593Smuzhiyun {
2975*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_3_REGID_VTXCNT__SHIFT) & A4XX_VFD_CONTROL_3_REGID_VTXCNT__MASK;
2976*4882a593Smuzhiyun }
2977*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_TESSX__MASK			0x00ff0000
2978*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_TESSX__SHIFT			16
A4XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)2979*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)
2980*4882a593Smuzhiyun {
2981*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_3_REGID_TESSX__SHIFT) & A4XX_VFD_CONTROL_3_REGID_TESSX__MASK;
2982*4882a593Smuzhiyun }
2983*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_TESSY__MASK			0xff000000
2984*4882a593Smuzhiyun #define A4XX_VFD_CONTROL_3_REGID_TESSY__SHIFT			24
A4XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)2985*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)
2986*4882a593Smuzhiyun {
2987*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_CONTROL_3_REGID_TESSY__SHIFT) & A4XX_VFD_CONTROL_3_REGID_TESSY__MASK;
2988*4882a593Smuzhiyun }
2989*4882a593Smuzhiyun 
2990*4882a593Smuzhiyun #define REG_A4XX_VFD_CONTROL_4					0x00002204
2991*4882a593Smuzhiyun 
2992*4882a593Smuzhiyun #define REG_A4XX_VFD_INDEX_OFFSET				0x00002208
2993*4882a593Smuzhiyun 
REG_A4XX_VFD_FETCH(uint32_t i0)2994*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_FETCH(uint32_t i0) { return 0x0000220a + 0x4*i0; }
2995*4882a593Smuzhiyun 
REG_A4XX_VFD_FETCH_INSTR_0(uint32_t i0)2996*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_FETCH_INSTR_0(uint32_t i0) { return 0x0000220a + 0x4*i0; }
2997*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_FETCHSIZE__MASK			0x0000007f
2998*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_FETCHSIZE__SHIFT			0
A4XX_VFD_FETCH_INSTR_0_FETCHSIZE(uint32_t val)2999*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_FETCH_INSTR_0_FETCHSIZE(uint32_t val)
3000*4882a593Smuzhiyun {
3001*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_FETCH_INSTR_0_FETCHSIZE__SHIFT) & A4XX_VFD_FETCH_INSTR_0_FETCHSIZE__MASK;
3002*4882a593Smuzhiyun }
3003*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK			0x0001ff80
3004*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT			7
A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE(uint32_t val)3005*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE(uint32_t val)
3006*4882a593Smuzhiyun {
3007*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT) & A4XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK;
3008*4882a593Smuzhiyun }
3009*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_SWITCHNEXT			0x00080000
3010*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_0_INSTANCED			0x00100000
3011*4882a593Smuzhiyun 
REG_A4XX_VFD_FETCH_INSTR_1(uint32_t i0)3012*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_FETCH_INSTR_1(uint32_t i0) { return 0x0000220b + 0x4*i0; }
3013*4882a593Smuzhiyun 
REG_A4XX_VFD_FETCH_INSTR_2(uint32_t i0)3014*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_FETCH_INSTR_2(uint32_t i0) { return 0x0000220c + 0x4*i0; }
3015*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_2_SIZE__MASK			0xffffffff
3016*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_2_SIZE__SHIFT			0
A4XX_VFD_FETCH_INSTR_2_SIZE(uint32_t val)3017*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_FETCH_INSTR_2_SIZE(uint32_t val)
3018*4882a593Smuzhiyun {
3019*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_FETCH_INSTR_2_SIZE__SHIFT) & A4XX_VFD_FETCH_INSTR_2_SIZE__MASK;
3020*4882a593Smuzhiyun }
3021*4882a593Smuzhiyun 
REG_A4XX_VFD_FETCH_INSTR_3(uint32_t i0)3022*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_FETCH_INSTR_3(uint32_t i0) { return 0x0000220d + 0x4*i0; }
3023*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_3_STEPRATE__MASK			0x000001ff
3024*4882a593Smuzhiyun #define A4XX_VFD_FETCH_INSTR_3_STEPRATE__SHIFT			0
A4XX_VFD_FETCH_INSTR_3_STEPRATE(uint32_t val)3025*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_FETCH_INSTR_3_STEPRATE(uint32_t val)
3026*4882a593Smuzhiyun {
3027*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_FETCH_INSTR_3_STEPRATE__SHIFT) & A4XX_VFD_FETCH_INSTR_3_STEPRATE__MASK;
3028*4882a593Smuzhiyun }
3029*4882a593Smuzhiyun 
REG_A4XX_VFD_DECODE(uint32_t i0)3030*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_DECODE(uint32_t i0) { return 0x0000228a + 0x1*i0; }
3031*4882a593Smuzhiyun 
REG_A4XX_VFD_DECODE_INSTR(uint32_t i0)3032*4882a593Smuzhiyun static inline uint32_t REG_A4XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x0000228a + 0x1*i0; }
3033*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_WRITEMASK__MASK			0x0000000f
3034*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_WRITEMASK__SHIFT			0
A4XX_VFD_DECODE_INSTR_WRITEMASK(uint32_t val)3035*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_DECODE_INSTR_WRITEMASK(uint32_t val)
3036*4882a593Smuzhiyun {
3037*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_DECODE_INSTR_WRITEMASK__SHIFT) & A4XX_VFD_DECODE_INSTR_WRITEMASK__MASK;
3038*4882a593Smuzhiyun }
3039*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_CONSTFILL				0x00000010
3040*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_FORMAT__MASK			0x00000fc0
3041*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_FORMAT__SHIFT			6
A4XX_VFD_DECODE_INSTR_FORMAT(enum a4xx_vtx_fmt val)3042*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_DECODE_INSTR_FORMAT(enum a4xx_vtx_fmt val)
3043*4882a593Smuzhiyun {
3044*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A4XX_VFD_DECODE_INSTR_FORMAT__MASK;
3045*4882a593Smuzhiyun }
3046*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_REGID__MASK			0x000ff000
3047*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_REGID__SHIFT			12
A4XX_VFD_DECODE_INSTR_REGID(uint32_t val)3048*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_DECODE_INSTR_REGID(uint32_t val)
3049*4882a593Smuzhiyun {
3050*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_DECODE_INSTR_REGID__SHIFT) & A4XX_VFD_DECODE_INSTR_REGID__MASK;
3051*4882a593Smuzhiyun }
3052*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_INT				0x00100000
3053*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_SWAP__MASK			0x00c00000
3054*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_SWAP__SHIFT			22
A4XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)3055*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)
3056*4882a593Smuzhiyun {
3057*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_DECODE_INSTR_SWAP__SHIFT) & A4XX_VFD_DECODE_INSTR_SWAP__MASK;
3058*4882a593Smuzhiyun }
3059*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_SHIFTCNT__MASK			0x1f000000
3060*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_SHIFTCNT__SHIFT			24
A4XX_VFD_DECODE_INSTR_SHIFTCNT(uint32_t val)3061*4882a593Smuzhiyun static inline uint32_t A4XX_VFD_DECODE_INSTR_SHIFTCNT(uint32_t val)
3062*4882a593Smuzhiyun {
3063*4882a593Smuzhiyun 	return ((val) << A4XX_VFD_DECODE_INSTR_SHIFTCNT__SHIFT) & A4XX_VFD_DECODE_INSTR_SHIFTCNT__MASK;
3064*4882a593Smuzhiyun }
3065*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_LASTCOMPVALID			0x20000000
3066*4882a593Smuzhiyun #define A4XX_VFD_DECODE_INSTR_SWITCHNEXT			0x40000000
3067*4882a593Smuzhiyun 
3068*4882a593Smuzhiyun #define REG_A4XX_TPL1_DEBUG_ECO_CONTROL				0x00000f00
3069*4882a593Smuzhiyun 
3070*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_MODE_CONTROL				0x00000f03
3071*4882a593Smuzhiyun 
3072*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_0				0x00000f04
3073*4882a593Smuzhiyun 
3074*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_1				0x00000f05
3075*4882a593Smuzhiyun 
3076*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_2				0x00000f06
3077*4882a593Smuzhiyun 
3078*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_3				0x00000f07
3079*4882a593Smuzhiyun 
3080*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_4				0x00000f08
3081*4882a593Smuzhiyun 
3082*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_5				0x00000f09
3083*4882a593Smuzhiyun 
3084*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_6				0x00000f0a
3085*4882a593Smuzhiyun 
3086*4882a593Smuzhiyun #define REG_A4XX_TPL1_PERFCTR_TP_SEL_7				0x00000f0b
3087*4882a593Smuzhiyun 
3088*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_TEX_OFFSET				0x00002380
3089*4882a593Smuzhiyun 
3090*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_TEX_COUNT				0x00002381
3091*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_VS__MASK				0x000000ff
3092*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_VS__SHIFT			0
A4XX_TPL1_TP_TEX_COUNT_VS(uint32_t val)3093*4882a593Smuzhiyun static inline uint32_t A4XX_TPL1_TP_TEX_COUNT_VS(uint32_t val)
3094*4882a593Smuzhiyun {
3095*4882a593Smuzhiyun 	return ((val) << A4XX_TPL1_TP_TEX_COUNT_VS__SHIFT) & A4XX_TPL1_TP_TEX_COUNT_VS__MASK;
3096*4882a593Smuzhiyun }
3097*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_HS__MASK				0x0000ff00
3098*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_HS__SHIFT			8
A4XX_TPL1_TP_TEX_COUNT_HS(uint32_t val)3099*4882a593Smuzhiyun static inline uint32_t A4XX_TPL1_TP_TEX_COUNT_HS(uint32_t val)
3100*4882a593Smuzhiyun {
3101*4882a593Smuzhiyun 	return ((val) << A4XX_TPL1_TP_TEX_COUNT_HS__SHIFT) & A4XX_TPL1_TP_TEX_COUNT_HS__MASK;
3102*4882a593Smuzhiyun }
3103*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_DS__MASK				0x00ff0000
3104*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_DS__SHIFT			16
A4XX_TPL1_TP_TEX_COUNT_DS(uint32_t val)3105*4882a593Smuzhiyun static inline uint32_t A4XX_TPL1_TP_TEX_COUNT_DS(uint32_t val)
3106*4882a593Smuzhiyun {
3107*4882a593Smuzhiyun 	return ((val) << A4XX_TPL1_TP_TEX_COUNT_DS__SHIFT) & A4XX_TPL1_TP_TEX_COUNT_DS__MASK;
3108*4882a593Smuzhiyun }
3109*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_GS__MASK				0xff000000
3110*4882a593Smuzhiyun #define A4XX_TPL1_TP_TEX_COUNT_GS__SHIFT			24
A4XX_TPL1_TP_TEX_COUNT_GS(uint32_t val)3111*4882a593Smuzhiyun static inline uint32_t A4XX_TPL1_TP_TEX_COUNT_GS(uint32_t val)
3112*4882a593Smuzhiyun {
3113*4882a593Smuzhiyun 	return ((val) << A4XX_TPL1_TP_TEX_COUNT_GS__SHIFT) & A4XX_TPL1_TP_TEX_COUNT_GS__MASK;
3114*4882a593Smuzhiyun }
3115*4882a593Smuzhiyun 
3116*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_VS_BORDER_COLOR_BASE_ADDR		0x00002384
3117*4882a593Smuzhiyun 
3118*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_HS_BORDER_COLOR_BASE_ADDR		0x00002387
3119*4882a593Smuzhiyun 
3120*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_DS_BORDER_COLOR_BASE_ADDR		0x0000238a
3121*4882a593Smuzhiyun 
3122*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_GS_BORDER_COLOR_BASE_ADDR		0x0000238d
3123*4882a593Smuzhiyun 
3124*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_FS_TEX_COUNT				0x000023a0
3125*4882a593Smuzhiyun 
3126*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_FS_BORDER_COLOR_BASE_ADDR		0x000023a1
3127*4882a593Smuzhiyun 
3128*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_CS_BORDER_COLOR_BASE_ADDR		0x000023a4
3129*4882a593Smuzhiyun 
3130*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_CS_SAMPLER_BASE_ADDR			0x000023a5
3131*4882a593Smuzhiyun 
3132*4882a593Smuzhiyun #define REG_A4XX_TPL1_TP_CS_TEXMEMOBJ_BASE_ADDR			0x000023a6
3133*4882a593Smuzhiyun 
3134*4882a593Smuzhiyun #define REG_A4XX_GRAS_TSE_STATUS				0x00000c80
3135*4882a593Smuzhiyun 
3136*4882a593Smuzhiyun #define REG_A4XX_GRAS_DEBUG_ECO_CONTROL				0x00000c81
3137*4882a593Smuzhiyun 
3138*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_TSE_SEL_0				0x00000c88
3139*4882a593Smuzhiyun 
3140*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_TSE_SEL_1				0x00000c89
3141*4882a593Smuzhiyun 
3142*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_TSE_SEL_2				0x00000c8a
3143*4882a593Smuzhiyun 
3144*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_TSE_SEL_3				0x00000c8b
3145*4882a593Smuzhiyun 
3146*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_RAS_SEL_0				0x00000c8c
3147*4882a593Smuzhiyun 
3148*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_RAS_SEL_1				0x00000c8d
3149*4882a593Smuzhiyun 
3150*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_RAS_SEL_2				0x00000c8e
3151*4882a593Smuzhiyun 
3152*4882a593Smuzhiyun #define REG_A4XX_GRAS_PERFCTR_RAS_SEL_3				0x00000c8f
3153*4882a593Smuzhiyun 
3154*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_CLIP_CNTL				0x00002000
3155*4882a593Smuzhiyun #define A4XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE			0x00008000
3156*4882a593Smuzhiyun #define A4XX_GRAS_CL_CLIP_CNTL_ZNEAR_CLIP_DISABLE		0x00010000
3157*4882a593Smuzhiyun #define A4XX_GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE		0x00020000
3158*4882a593Smuzhiyun #define A4XX_GRAS_CL_CLIP_CNTL_ZERO_GB_SCALE_Z			0x00400000
3159*4882a593Smuzhiyun 
3160*4882a593Smuzhiyun #define REG_A4XX_GRAS_CNTL					0x00002003
3161*4882a593Smuzhiyun #define A4XX_GRAS_CNTL_IJ_PERSP					0x00000001
3162*4882a593Smuzhiyun #define A4XX_GRAS_CNTL_IJ_LINEAR				0x00000002
3163*4882a593Smuzhiyun 
3164*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_GB_CLIP_ADJ				0x00002004
3165*4882a593Smuzhiyun #define A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ__MASK			0x000003ff
3166*4882a593Smuzhiyun #define A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ__SHIFT			0
A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ(uint32_t val)3167*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ(uint32_t val)
3168*4882a593Smuzhiyun {
3169*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ__SHIFT) & A4XX_GRAS_CL_GB_CLIP_ADJ_HORZ__MASK;
3170*4882a593Smuzhiyun }
3171*4882a593Smuzhiyun #define A4XX_GRAS_CL_GB_CLIP_ADJ_VERT__MASK			0x000ffc00
3172*4882a593Smuzhiyun #define A4XX_GRAS_CL_GB_CLIP_ADJ_VERT__SHIFT			10
A4XX_GRAS_CL_GB_CLIP_ADJ_VERT(uint32_t val)3173*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_GB_CLIP_ADJ_VERT(uint32_t val)
3174*4882a593Smuzhiyun {
3175*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_CL_GB_CLIP_ADJ_VERT__SHIFT) & A4XX_GRAS_CL_GB_CLIP_ADJ_VERT__MASK;
3176*4882a593Smuzhiyun }
3177*4882a593Smuzhiyun 
3178*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_XOFFSET_0			0x00002008
3179*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_XOFFSET_0__MASK			0xffffffff
3180*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT			0
A4XX_GRAS_CL_VPORT_XOFFSET_0(float val)3181*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_XOFFSET_0(float val)
3182*4882a593Smuzhiyun {
3183*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_XOFFSET_0__SHIFT) & A4XX_GRAS_CL_VPORT_XOFFSET_0__MASK;
3184*4882a593Smuzhiyun }
3185*4882a593Smuzhiyun 
3186*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_XSCALE_0				0x00002009
3187*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_XSCALE_0__MASK			0xffffffff
3188*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_XSCALE_0__SHIFT			0
A4XX_GRAS_CL_VPORT_XSCALE_0(float val)3189*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_XSCALE_0(float val)
3190*4882a593Smuzhiyun {
3191*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_XSCALE_0__SHIFT) & A4XX_GRAS_CL_VPORT_XSCALE_0__MASK;
3192*4882a593Smuzhiyun }
3193*4882a593Smuzhiyun 
3194*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_YOFFSET_0			0x0000200a
3195*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_YOFFSET_0__MASK			0xffffffff
3196*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT			0
A4XX_GRAS_CL_VPORT_YOFFSET_0(float val)3197*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_YOFFSET_0(float val)
3198*4882a593Smuzhiyun {
3199*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_YOFFSET_0__SHIFT) & A4XX_GRAS_CL_VPORT_YOFFSET_0__MASK;
3200*4882a593Smuzhiyun }
3201*4882a593Smuzhiyun 
3202*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_YSCALE_0				0x0000200b
3203*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_YSCALE_0__MASK			0xffffffff
3204*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_YSCALE_0__SHIFT			0
A4XX_GRAS_CL_VPORT_YSCALE_0(float val)3205*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_YSCALE_0(float val)
3206*4882a593Smuzhiyun {
3207*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_YSCALE_0__SHIFT) & A4XX_GRAS_CL_VPORT_YSCALE_0__MASK;
3208*4882a593Smuzhiyun }
3209*4882a593Smuzhiyun 
3210*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_ZOFFSET_0			0x0000200c
3211*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_ZOFFSET_0__MASK			0xffffffff
3212*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT			0
A4XX_GRAS_CL_VPORT_ZOFFSET_0(float val)3213*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_ZOFFSET_0(float val)
3214*4882a593Smuzhiyun {
3215*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_ZOFFSET_0__SHIFT) & A4XX_GRAS_CL_VPORT_ZOFFSET_0__MASK;
3216*4882a593Smuzhiyun }
3217*4882a593Smuzhiyun 
3218*4882a593Smuzhiyun #define REG_A4XX_GRAS_CL_VPORT_ZSCALE_0				0x0000200d
3219*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_ZSCALE_0__MASK			0xffffffff
3220*4882a593Smuzhiyun #define A4XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT			0
A4XX_GRAS_CL_VPORT_ZSCALE_0(float val)3221*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_CL_VPORT_ZSCALE_0(float val)
3222*4882a593Smuzhiyun {
3223*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_CL_VPORT_ZSCALE_0__SHIFT) & A4XX_GRAS_CL_VPORT_ZSCALE_0__MASK;
3224*4882a593Smuzhiyun }
3225*4882a593Smuzhiyun 
3226*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_POINT_MINMAX				0x00002070
3227*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_MINMAX_MIN__MASK			0x0000ffff
3228*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT			0
A4XX_GRAS_SU_POINT_MINMAX_MIN(float val)3229*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POINT_MINMAX_MIN(float val)
3230*4882a593Smuzhiyun {
3231*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A4XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A4XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
3232*4882a593Smuzhiyun }
3233*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_MINMAX_MAX__MASK			0xffff0000
3234*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT			16
A4XX_GRAS_SU_POINT_MINMAX_MAX(float val)3235*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POINT_MINMAX_MAX(float val)
3236*4882a593Smuzhiyun {
3237*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A4XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A4XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
3238*4882a593Smuzhiyun }
3239*4882a593Smuzhiyun 
3240*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_POINT_SIZE				0x00002071
3241*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_SIZE__MASK				0xffffffff
3242*4882a593Smuzhiyun #define A4XX_GRAS_SU_POINT_SIZE__SHIFT				0
A4XX_GRAS_SU_POINT_SIZE(float val)3243*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POINT_SIZE(float val)
3244*4882a593Smuzhiyun {
3245*4882a593Smuzhiyun 	return ((((int32_t)(val * 16.0))) << A4XX_GRAS_SU_POINT_SIZE__SHIFT) & A4XX_GRAS_SU_POINT_SIZE__MASK;
3246*4882a593Smuzhiyun }
3247*4882a593Smuzhiyun 
3248*4882a593Smuzhiyun #define REG_A4XX_GRAS_ALPHA_CONTROL				0x00002073
3249*4882a593Smuzhiyun #define A4XX_GRAS_ALPHA_CONTROL_ALPHA_TEST_ENABLE		0x00000004
3250*4882a593Smuzhiyun #define A4XX_GRAS_ALPHA_CONTROL_FORCE_FRAGZ_TO_FS		0x00000008
3251*4882a593Smuzhiyun 
3252*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_POLY_OFFSET_SCALE			0x00002074
3253*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_SCALE__MASK			0xffffffff
3254*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT			0
A4XX_GRAS_SU_POLY_OFFSET_SCALE(float val)3255*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POLY_OFFSET_SCALE(float val)
3256*4882a593Smuzhiyun {
3257*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT) & A4XX_GRAS_SU_POLY_OFFSET_SCALE__MASK;
3258*4882a593Smuzhiyun }
3259*4882a593Smuzhiyun 
3260*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_POLY_OFFSET_OFFSET			0x00002075
3261*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK			0xffffffff
3262*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT			0
A4XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)3263*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
3264*4882a593Smuzhiyun {
3265*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A4XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
3266*4882a593Smuzhiyun }
3267*4882a593Smuzhiyun 
3268*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_POLY_OFFSET_CLAMP			0x00002076
3269*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_CLAMP__MASK			0xffffffff
3270*4882a593Smuzhiyun #define A4XX_GRAS_SU_POLY_OFFSET_CLAMP__SHIFT			0
A4XX_GRAS_SU_POLY_OFFSET_CLAMP(float val)3271*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_POLY_OFFSET_CLAMP(float val)
3272*4882a593Smuzhiyun {
3273*4882a593Smuzhiyun 	return ((fui(val)) << A4XX_GRAS_SU_POLY_OFFSET_CLAMP__SHIFT) & A4XX_GRAS_SU_POLY_OFFSET_CLAMP__MASK;
3274*4882a593Smuzhiyun }
3275*4882a593Smuzhiyun 
3276*4882a593Smuzhiyun #define REG_A4XX_GRAS_DEPTH_CONTROL				0x00002077
3277*4882a593Smuzhiyun #define A4XX_GRAS_DEPTH_CONTROL_FORMAT__MASK			0x00000003
3278*4882a593Smuzhiyun #define A4XX_GRAS_DEPTH_CONTROL_FORMAT__SHIFT			0
A4XX_GRAS_DEPTH_CONTROL_FORMAT(enum a4xx_depth_format val)3279*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_DEPTH_CONTROL_FORMAT(enum a4xx_depth_format val)
3280*4882a593Smuzhiyun {
3281*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_DEPTH_CONTROL_FORMAT__SHIFT) & A4XX_GRAS_DEPTH_CONTROL_FORMAT__MASK;
3282*4882a593Smuzhiyun }
3283*4882a593Smuzhiyun 
3284*4882a593Smuzhiyun #define REG_A4XX_GRAS_SU_MODE_CONTROL				0x00002078
3285*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_CULL_FRONT			0x00000001
3286*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_CULL_BACK			0x00000002
3287*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_FRONT_CW			0x00000004
3288*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__MASK		0x000007f8
3289*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__SHIFT		3
A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH(float val)3290*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH(float val)
3291*4882a593Smuzhiyun {
3292*4882a593Smuzhiyun 	return ((((int32_t)(val * 4.0))) << A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__SHIFT) & A4XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__MASK;
3293*4882a593Smuzhiyun }
3294*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_POLY_OFFSET			0x00000800
3295*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_MSAA_ENABLE			0x00002000
3296*4882a593Smuzhiyun #define A4XX_GRAS_SU_MODE_CONTROL_RENDERING_PASS		0x00100000
3297*4882a593Smuzhiyun 
3298*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_CONTROL				0x0000207b
3299*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_RENDER_MODE__MASK			0x0000000c
3300*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_RENDER_MODE__SHIFT			2
A4XX_GRAS_SC_CONTROL_RENDER_MODE(enum a3xx_render_mode val)3301*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_CONTROL_RENDER_MODE(enum a3xx_render_mode val)
3302*4882a593Smuzhiyun {
3303*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_CONTROL_RENDER_MODE__SHIFT) & A4XX_GRAS_SC_CONTROL_RENDER_MODE__MASK;
3304*4882a593Smuzhiyun }
3305*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES__MASK			0x00000380
3306*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES__SHIFT		7
A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES(uint32_t val)3307*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES(uint32_t val)
3308*4882a593Smuzhiyun {
3309*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES__SHIFT) & A4XX_GRAS_SC_CONTROL_MSAA_SAMPLES__MASK;
3310*4882a593Smuzhiyun }
3311*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_MSAA_DISABLE			0x00000800
3312*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_RASTER_MODE__MASK			0x0000f000
3313*4882a593Smuzhiyun #define A4XX_GRAS_SC_CONTROL_RASTER_MODE__SHIFT			12
A4XX_GRAS_SC_CONTROL_RASTER_MODE(uint32_t val)3314*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_CONTROL_RASTER_MODE(uint32_t val)
3315*4882a593Smuzhiyun {
3316*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_CONTROL_RASTER_MODE__SHIFT) & A4XX_GRAS_SC_CONTROL_RASTER_MODE__MASK;
3317*4882a593Smuzhiyun }
3318*4882a593Smuzhiyun 
3319*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_SCREEN_SCISSOR_TL			0x0000207c
3320*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_TL_WINDOW_OFFSET_DISABLE	0x80000000
3321*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK			0x00007fff
3322*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT			0
A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)3323*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)
3324*4882a593Smuzhiyun {
3325*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT) & A4XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK;
3326*4882a593Smuzhiyun }
3327*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK			0x7fff0000
3328*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT			16
A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)3329*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)
3330*4882a593Smuzhiyun {
3331*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT) & A4XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK;
3332*4882a593Smuzhiyun }
3333*4882a593Smuzhiyun 
3334*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_SCREEN_SCISSOR_BR			0x0000207d
3335*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_BR_WINDOW_OFFSET_DISABLE	0x80000000
3336*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK			0x00007fff
3337*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT			0
A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)3338*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)
3339*4882a593Smuzhiyun {
3340*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT) & A4XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK;
3341*4882a593Smuzhiyun }
3342*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK			0x7fff0000
3343*4882a593Smuzhiyun #define A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT			16
A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)3344*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)
3345*4882a593Smuzhiyun {
3346*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT) & A4XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK;
3347*4882a593Smuzhiyun }
3348*4882a593Smuzhiyun 
3349*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_WINDOW_SCISSOR_BR			0x0000209c
3350*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_BR_WINDOW_OFFSET_DISABLE	0x80000000
3351*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK			0x00007fff
3352*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT			0
A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)3353*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
3354*4882a593Smuzhiyun {
3355*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A4XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
3356*4882a593Smuzhiyun }
3357*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK			0x7fff0000
3358*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT			16
A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)3359*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
3360*4882a593Smuzhiyun {
3361*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A4XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
3362*4882a593Smuzhiyun }
3363*4882a593Smuzhiyun 
3364*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_WINDOW_SCISSOR_TL			0x0000209d
3365*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE	0x80000000
3366*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK			0x00007fff
3367*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT			0
A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)3368*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
3369*4882a593Smuzhiyun {
3370*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A4XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
3371*4882a593Smuzhiyun }
3372*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK			0x7fff0000
3373*4882a593Smuzhiyun #define A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT			16
A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)3374*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
3375*4882a593Smuzhiyun {
3376*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A4XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
3377*4882a593Smuzhiyun }
3378*4882a593Smuzhiyun 
3379*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_EXTENT_WINDOW_BR			0x0000209e
3380*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_BR_WINDOW_OFFSET_DISABLE	0x80000000
3381*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_BR_X__MASK			0x00007fff
3382*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_BR_X__SHIFT			0
A4XX_GRAS_SC_EXTENT_WINDOW_BR_X(uint32_t val)3383*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_EXTENT_WINDOW_BR_X(uint32_t val)
3384*4882a593Smuzhiyun {
3385*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_EXTENT_WINDOW_BR_X__SHIFT) & A4XX_GRAS_SC_EXTENT_WINDOW_BR_X__MASK;
3386*4882a593Smuzhiyun }
3387*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y__MASK			0x7fff0000
3388*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y__SHIFT			16
A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y(uint32_t val)3389*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y(uint32_t val)
3390*4882a593Smuzhiyun {
3391*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y__SHIFT) & A4XX_GRAS_SC_EXTENT_WINDOW_BR_Y__MASK;
3392*4882a593Smuzhiyun }
3393*4882a593Smuzhiyun 
3394*4882a593Smuzhiyun #define REG_A4XX_GRAS_SC_EXTENT_WINDOW_TL			0x0000209f
3395*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_TL_WINDOW_OFFSET_DISABLE	0x80000000
3396*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_TL_X__MASK			0x00007fff
3397*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_TL_X__SHIFT			0
A4XX_GRAS_SC_EXTENT_WINDOW_TL_X(uint32_t val)3398*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_EXTENT_WINDOW_TL_X(uint32_t val)
3399*4882a593Smuzhiyun {
3400*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_EXTENT_WINDOW_TL_X__SHIFT) & A4XX_GRAS_SC_EXTENT_WINDOW_TL_X__MASK;
3401*4882a593Smuzhiyun }
3402*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y__MASK			0x7fff0000
3403*4882a593Smuzhiyun #define A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y__SHIFT			16
A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y(uint32_t val)3404*4882a593Smuzhiyun static inline uint32_t A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y(uint32_t val)
3405*4882a593Smuzhiyun {
3406*4882a593Smuzhiyun 	return ((val) << A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y__SHIFT) & A4XX_GRAS_SC_EXTENT_WINDOW_TL_Y__MASK;
3407*4882a593Smuzhiyun }
3408*4882a593Smuzhiyun 
3409*4882a593Smuzhiyun #define REG_A4XX_UCHE_CACHE_MODE_CONTROL			0x00000e80
3410*4882a593Smuzhiyun 
3411*4882a593Smuzhiyun #define REG_A4XX_UCHE_TRAP_BASE_LO				0x00000e83
3412*4882a593Smuzhiyun 
3413*4882a593Smuzhiyun #define REG_A4XX_UCHE_TRAP_BASE_HI				0x00000e84
3414*4882a593Smuzhiyun 
3415*4882a593Smuzhiyun #define REG_A4XX_UCHE_CACHE_STATUS				0x00000e88
3416*4882a593Smuzhiyun 
3417*4882a593Smuzhiyun #define REG_A4XX_UCHE_INVALIDATE0				0x00000e8a
3418*4882a593Smuzhiyun 
3419*4882a593Smuzhiyun #define REG_A4XX_UCHE_INVALIDATE1				0x00000e8b
3420*4882a593Smuzhiyun 
3421*4882a593Smuzhiyun #define REG_A4XX_UCHE_CACHE_WAYS_VFD				0x00000e8c
3422*4882a593Smuzhiyun 
3423*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_0			0x00000e8e
3424*4882a593Smuzhiyun 
3425*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_1			0x00000e8f
3426*4882a593Smuzhiyun 
3427*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_2			0x00000e90
3428*4882a593Smuzhiyun 
3429*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_3			0x00000e91
3430*4882a593Smuzhiyun 
3431*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_4			0x00000e92
3432*4882a593Smuzhiyun 
3433*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_5			0x00000e93
3434*4882a593Smuzhiyun 
3435*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_6			0x00000e94
3436*4882a593Smuzhiyun 
3437*4882a593Smuzhiyun #define REG_A4XX_UCHE_PERFCTR_UCHE_SEL_7			0x00000e95
3438*4882a593Smuzhiyun 
3439*4882a593Smuzhiyun #define REG_A4XX_HLSQ_TIMEOUT_THRESHOLD				0x00000e00
3440*4882a593Smuzhiyun 
3441*4882a593Smuzhiyun #define REG_A4XX_HLSQ_DEBUG_ECO_CONTROL				0x00000e04
3442*4882a593Smuzhiyun 
3443*4882a593Smuzhiyun #define REG_A4XX_HLSQ_MODE_CONTROL				0x00000e05
3444*4882a593Smuzhiyun 
3445*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERF_PIPE_MASK				0x00000e0e
3446*4882a593Smuzhiyun 
3447*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_0			0x00000e06
3448*4882a593Smuzhiyun 
3449*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_1			0x00000e07
3450*4882a593Smuzhiyun 
3451*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_2			0x00000e08
3452*4882a593Smuzhiyun 
3453*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_3			0x00000e09
3454*4882a593Smuzhiyun 
3455*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_4			0x00000e0a
3456*4882a593Smuzhiyun 
3457*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_5			0x00000e0b
3458*4882a593Smuzhiyun 
3459*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_6			0x00000e0c
3460*4882a593Smuzhiyun 
3461*4882a593Smuzhiyun #define REG_A4XX_HLSQ_PERFCTR_HLSQ_SEL_7			0x00000e0d
3462*4882a593Smuzhiyun 
3463*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CONTROL_0_REG				0x000023c0
3464*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK		0x00000010
3465*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT		4
A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)3466*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)
3467*4882a593Smuzhiyun {
3468*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT) & A4XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK;
3469*4882a593Smuzhiyun }
3470*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_FSSUPERTHREADENABLE		0x00000040
3471*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_SPSHADERRESTART			0x00000200
3472*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_RESERVED2			0x00000400
3473*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_CHUNKDISABLE			0x04000000
3474*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_CONSTMODE__MASK			0x08000000
3475*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_CONSTMODE__SHIFT		27
A4XX_HLSQ_CONTROL_0_REG_CONSTMODE(uint32_t val)3476*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_0_REG_CONSTMODE(uint32_t val)
3477*4882a593Smuzhiyun {
3478*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_0_REG_CONSTMODE__SHIFT) & A4XX_HLSQ_CONTROL_0_REG_CONSTMODE__MASK;
3479*4882a593Smuzhiyun }
3480*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_LAZYUPDATEDISABLE		0x10000000
3481*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_SPCONSTFULLUPDATE		0x20000000
3482*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_TPFULLUPDATE			0x40000000
3483*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_0_REG_SINGLECONTEXT			0x80000000
3484*4882a593Smuzhiyun 
3485*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CONTROL_1_REG				0x000023c1
3486*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK		0x00000040
3487*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT		6
A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE(enum a3xx_threadsize val)3488*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE(enum a3xx_threadsize val)
3489*4882a593Smuzhiyun {
3490*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT) & A4XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK;
3491*4882a593Smuzhiyun }
3492*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_VSSUPERTHREADENABLE		0x00000100
3493*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_RESERVED1			0x00000200
3494*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_COORDREGID__MASK		0x00ff0000
3495*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_COORDREGID__SHIFT		16
A4XX_HLSQ_CONTROL_1_REG_COORDREGID(uint32_t val)3496*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_1_REG_COORDREGID(uint32_t val)
3497*4882a593Smuzhiyun {
3498*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_1_REG_COORDREGID__SHIFT) & A4XX_HLSQ_CONTROL_1_REG_COORDREGID__MASK;
3499*4882a593Smuzhiyun }
3500*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID__MASK		0xff000000
3501*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID__SHIFT		24
A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID(uint32_t val)3502*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID(uint32_t val)
3503*4882a593Smuzhiyun {
3504*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID__SHIFT) & A4XX_HLSQ_CONTROL_1_REG_ZWCOORDREGID__MASK;
3505*4882a593Smuzhiyun }
3506*4882a593Smuzhiyun 
3507*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CONTROL_2_REG				0x000023c2
3508*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__MASK	0xfc000000
3509*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__SHIFT	26
A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val)3510*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val)
3511*4882a593Smuzhiyun {
3512*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__SHIFT) & A4XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__MASK;
3513*4882a593Smuzhiyun }
3514*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK			0x000003fc
3515*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT		2
A4XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)3516*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
3517*4882a593Smuzhiyun {
3518*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A4XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
3519*4882a593Smuzhiyun }
3520*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID__MASK		0x0003fc00
3521*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID__SHIFT		10
A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID(uint32_t val)3522*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID(uint32_t val)
3523*4882a593Smuzhiyun {
3524*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID__SHIFT) & A4XX_HLSQ_CONTROL_2_REG_SAMPLEID_REGID__MASK;
3525*4882a593Smuzhiyun }
3526*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID__MASK		0x03fc0000
3527*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID__SHIFT		18
A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID(uint32_t val)3528*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID(uint32_t val)
3529*4882a593Smuzhiyun {
3530*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID__SHIFT) & A4XX_HLSQ_CONTROL_2_REG_SAMPLEMASK_REGID__MASK;
3531*4882a593Smuzhiyun }
3532*4882a593Smuzhiyun 
3533*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CONTROL_3_REG				0x000023c3
3534*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK		0x000000ff
3535*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT		0
A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)3536*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)
3537*4882a593Smuzhiyun {
3538*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK;
3539*4882a593Smuzhiyun }
3540*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK		0x0000ff00
3541*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT		8
A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)3542*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)
3543*4882a593Smuzhiyun {
3544*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK;
3545*4882a593Smuzhiyun }
3546*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK		0x00ff0000
3547*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT	16
A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)3548*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)
3549*4882a593Smuzhiyun {
3550*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK;
3551*4882a593Smuzhiyun }
3552*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK	0xff000000
3553*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT	24
A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)3554*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)
3555*4882a593Smuzhiyun {
3556*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A4XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK;
3557*4882a593Smuzhiyun }
3558*4882a593Smuzhiyun 
3559*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CONTROL_4_REG				0x000023c4
3560*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK		0x000000ff
3561*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT		0
A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)3562*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)
3563*4882a593Smuzhiyun {
3564*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A4XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK;
3565*4882a593Smuzhiyun }
3566*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK		0x0000ff00
3567*4882a593Smuzhiyun #define A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT		8
A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)3568*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)
3569*4882a593Smuzhiyun {
3570*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A4XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK;
3571*4882a593Smuzhiyun }
3572*4882a593Smuzhiyun 
3573*4882a593Smuzhiyun #define REG_A4XX_HLSQ_VS_CONTROL_REG				0x000023c5
3574*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3575*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH(uint32_t val)3576*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3577*4882a593Smuzhiyun {
3578*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK;
3579*4882a593Smuzhiyun }
3580*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3581*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3582*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3583*4882a593Smuzhiyun {
3584*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_VS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3585*4882a593Smuzhiyun }
3586*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_SSBO_ENABLE			0x00008000
3587*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_ENABLED			0x00010000
3588*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3589*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3590*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3591*4882a593Smuzhiyun {
3592*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_VS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3593*4882a593Smuzhiyun }
3594*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3595*4882a593Smuzhiyun #define A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH(uint32_t val)3596*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3597*4882a593Smuzhiyun {
3598*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__MASK;
3599*4882a593Smuzhiyun }
3600*4882a593Smuzhiyun 
3601*4882a593Smuzhiyun #define REG_A4XX_HLSQ_FS_CONTROL_REG				0x000023c6
3602*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3603*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH(uint32_t val)3604*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3605*4882a593Smuzhiyun {
3606*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK;
3607*4882a593Smuzhiyun }
3608*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3609*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3610*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3611*4882a593Smuzhiyun {
3612*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_FS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3613*4882a593Smuzhiyun }
3614*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_SSBO_ENABLE			0x00008000
3615*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_ENABLED			0x00010000
3616*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3617*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3618*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3619*4882a593Smuzhiyun {
3620*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_FS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3621*4882a593Smuzhiyun }
3622*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3623*4882a593Smuzhiyun #define A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH(uint32_t val)3624*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3625*4882a593Smuzhiyun {
3626*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__MASK;
3627*4882a593Smuzhiyun }
3628*4882a593Smuzhiyun 
3629*4882a593Smuzhiyun #define REG_A4XX_HLSQ_HS_CONTROL_REG				0x000023c7
3630*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3631*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH(uint32_t val)3632*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3633*4882a593Smuzhiyun {
3634*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_HS_CONTROL_REG_CONSTLENGTH__MASK;
3635*4882a593Smuzhiyun }
3636*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3637*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3638*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3639*4882a593Smuzhiyun {
3640*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_HS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3641*4882a593Smuzhiyun }
3642*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_SSBO_ENABLE			0x00008000
3643*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_ENABLED			0x00010000
3644*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3645*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3646*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3647*4882a593Smuzhiyun {
3648*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_HS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3649*4882a593Smuzhiyun }
3650*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3651*4882a593Smuzhiyun #define A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH(uint32_t val)3652*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3653*4882a593Smuzhiyun {
3654*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_HS_CONTROL_REG_INSTRLENGTH__MASK;
3655*4882a593Smuzhiyun }
3656*4882a593Smuzhiyun 
3657*4882a593Smuzhiyun #define REG_A4XX_HLSQ_DS_CONTROL_REG				0x000023c8
3658*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3659*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH(uint32_t val)3660*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3661*4882a593Smuzhiyun {
3662*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_DS_CONTROL_REG_CONSTLENGTH__MASK;
3663*4882a593Smuzhiyun }
3664*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3665*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3666*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3667*4882a593Smuzhiyun {
3668*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_DS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3669*4882a593Smuzhiyun }
3670*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_SSBO_ENABLE			0x00008000
3671*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_ENABLED			0x00010000
3672*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3673*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3674*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3675*4882a593Smuzhiyun {
3676*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_DS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3677*4882a593Smuzhiyun }
3678*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3679*4882a593Smuzhiyun #define A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH(uint32_t val)3680*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3681*4882a593Smuzhiyun {
3682*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_DS_CONTROL_REG_INSTRLENGTH__MASK;
3683*4882a593Smuzhiyun }
3684*4882a593Smuzhiyun 
3685*4882a593Smuzhiyun #define REG_A4XX_HLSQ_GS_CONTROL_REG				0x000023c9
3686*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3687*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH(uint32_t val)3688*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3689*4882a593Smuzhiyun {
3690*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_GS_CONTROL_REG_CONSTLENGTH__MASK;
3691*4882a593Smuzhiyun }
3692*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3693*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3694*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3695*4882a593Smuzhiyun {
3696*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_GS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3697*4882a593Smuzhiyun }
3698*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_SSBO_ENABLE			0x00008000
3699*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_ENABLED			0x00010000
3700*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3701*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3702*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3703*4882a593Smuzhiyun {
3704*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_GS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3705*4882a593Smuzhiyun }
3706*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3707*4882a593Smuzhiyun #define A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH(uint32_t val)3708*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3709*4882a593Smuzhiyun {
3710*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_GS_CONTROL_REG_INSTRLENGTH__MASK;
3711*4882a593Smuzhiyun }
3712*4882a593Smuzhiyun 
3713*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CS_CONTROL_REG				0x000023ca
3714*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH__MASK		0x000000ff
3715*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH(uint32_t val)3716*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH(uint32_t val)
3717*4882a593Smuzhiyun {
3718*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH__SHIFT) & A4XX_HLSQ_CS_CONTROL_REG_CONSTLENGTH__MASK;
3719*4882a593Smuzhiyun }
3720*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET__MASK	0x00007f00
3721*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT	8
A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)3722*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET(uint32_t val)
3723*4882a593Smuzhiyun {
3724*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET__SHIFT) & A4XX_HLSQ_CS_CONTROL_REG_CONSTOBJECTOFFSET__MASK;
3725*4882a593Smuzhiyun }
3726*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_SSBO_ENABLE			0x00008000
3727*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_ENABLED			0x00010000
3728*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET__MASK		0x00fe0000
3729*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET__SHIFT		17
A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)3730*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET(uint32_t val)
3731*4882a593Smuzhiyun {
3732*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET__SHIFT) & A4XX_HLSQ_CS_CONTROL_REG_SHADEROBJOFFSET__MASK;
3733*4882a593Smuzhiyun }
3734*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
3735*4882a593Smuzhiyun #define A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH(uint32_t val)3736*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH(uint32_t val)
3737*4882a593Smuzhiyun {
3738*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH__SHIFT) & A4XX_HLSQ_CS_CONTROL_REG_INSTRLENGTH__MASK;
3739*4882a593Smuzhiyun }
3740*4882a593Smuzhiyun 
3741*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_0				0x000023cd
3742*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM__MASK			0x00000003
3743*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM__SHIFT			0
A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM(uint32_t val)3744*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM(uint32_t val)
3745*4882a593Smuzhiyun {
3746*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM__SHIFT) & A4XX_HLSQ_CL_NDRANGE_0_KERNELDIM__MASK;
3747*4882a593Smuzhiyun }
3748*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX__MASK			0x00000ffc
3749*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX__SHIFT		2
A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX(uint32_t val)3750*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX(uint32_t val)
3751*4882a593Smuzhiyun {
3752*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX__SHIFT) & A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEX__MASK;
3753*4882a593Smuzhiyun }
3754*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY__MASK			0x003ff000
3755*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY__SHIFT		12
A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY(uint32_t val)3756*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY(uint32_t val)
3757*4882a593Smuzhiyun {
3758*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY__SHIFT) & A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEY__MASK;
3759*4882a593Smuzhiyun }
3760*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ__MASK			0xffc00000
3761*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ__SHIFT		22
A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ(uint32_t val)3762*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ(uint32_t val)
3763*4882a593Smuzhiyun {
3764*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ__SHIFT) & A4XX_HLSQ_CL_NDRANGE_0_LOCALSIZEZ__MASK;
3765*4882a593Smuzhiyun }
3766*4882a593Smuzhiyun 
3767*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_1				0x000023ce
3768*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_1_SIZE_X__MASK			0xffffffff
3769*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_1_SIZE_X__SHIFT			0
A4XX_HLSQ_CL_NDRANGE_1_SIZE_X(uint32_t val)3770*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_1_SIZE_X(uint32_t val)
3771*4882a593Smuzhiyun {
3772*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_1_SIZE_X__SHIFT) & A4XX_HLSQ_CL_NDRANGE_1_SIZE_X__MASK;
3773*4882a593Smuzhiyun }
3774*4882a593Smuzhiyun 
3775*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_2				0x000023cf
3776*4882a593Smuzhiyun 
3777*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_3				0x000023d0
3778*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y__MASK			0xffffffff
3779*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y__SHIFT			0
A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y(uint32_t val)3780*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y(uint32_t val)
3781*4882a593Smuzhiyun {
3782*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y__SHIFT) & A4XX_HLSQ_CL_NDRANGE_3_SIZE_Y__MASK;
3783*4882a593Smuzhiyun }
3784*4882a593Smuzhiyun 
3785*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_4				0x000023d1
3786*4882a593Smuzhiyun 
3787*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_5				0x000023d2
3788*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z__MASK			0xffffffff
3789*4882a593Smuzhiyun #define A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z__SHIFT			0
A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z(uint32_t val)3790*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z(uint32_t val)
3791*4882a593Smuzhiyun {
3792*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z__SHIFT) & A4XX_HLSQ_CL_NDRANGE_5_SIZE_Z__MASK;
3793*4882a593Smuzhiyun }
3794*4882a593Smuzhiyun 
3795*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_NDRANGE_6				0x000023d3
3796*4882a593Smuzhiyun 
3797*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_CONTROL_0				0x000023d4
3798*4882a593Smuzhiyun #define A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID__MASK		0x000000ff
3799*4882a593Smuzhiyun #define A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID__SHIFT		0
A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID(uint32_t val)3800*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID(uint32_t val)
3801*4882a593Smuzhiyun {
3802*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID__SHIFT) & A4XX_HLSQ_CL_CONTROL_0_WGIDCONSTID__MASK;
3803*4882a593Smuzhiyun }
3804*4882a593Smuzhiyun #define A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID__MASK		0xff000000
3805*4882a593Smuzhiyun #define A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID__SHIFT		24
A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID(uint32_t val)3806*4882a593Smuzhiyun static inline uint32_t A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID(uint32_t val)
3807*4882a593Smuzhiyun {
3808*4882a593Smuzhiyun 	return ((val) << A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID__SHIFT) & A4XX_HLSQ_CL_CONTROL_0_LOCALIDREGID__MASK;
3809*4882a593Smuzhiyun }
3810*4882a593Smuzhiyun 
3811*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_CONTROL_1				0x000023d5
3812*4882a593Smuzhiyun 
3813*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_KERNEL_CONST				0x000023d6
3814*4882a593Smuzhiyun 
3815*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_KERNEL_GROUP_X				0x000023d7
3816*4882a593Smuzhiyun 
3817*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_KERNEL_GROUP_Y				0x000023d8
3818*4882a593Smuzhiyun 
3819*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_KERNEL_GROUP_Z				0x000023d9
3820*4882a593Smuzhiyun 
3821*4882a593Smuzhiyun #define REG_A4XX_HLSQ_CL_WG_OFFSET				0x000023da
3822*4882a593Smuzhiyun 
3823*4882a593Smuzhiyun #define REG_A4XX_HLSQ_UPDATE_CONTROL				0x000023db
3824*4882a593Smuzhiyun 
3825*4882a593Smuzhiyun #define REG_A4XX_PC_BINNING_COMMAND				0x00000d00
3826*4882a593Smuzhiyun #define A4XX_PC_BINNING_COMMAND_BINNING_ENABLE			0x00000001
3827*4882a593Smuzhiyun 
3828*4882a593Smuzhiyun #define REG_A4XX_PC_TESSFACTOR_ADDR				0x00000d08
3829*4882a593Smuzhiyun 
3830*4882a593Smuzhiyun #define REG_A4XX_PC_DRAWCALL_SETUP_OVERRIDE			0x00000d0c
3831*4882a593Smuzhiyun 
3832*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_0				0x00000d10
3833*4882a593Smuzhiyun 
3834*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_1				0x00000d11
3835*4882a593Smuzhiyun 
3836*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_2				0x00000d12
3837*4882a593Smuzhiyun 
3838*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_3				0x00000d13
3839*4882a593Smuzhiyun 
3840*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_4				0x00000d14
3841*4882a593Smuzhiyun 
3842*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_5				0x00000d15
3843*4882a593Smuzhiyun 
3844*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_6				0x00000d16
3845*4882a593Smuzhiyun 
3846*4882a593Smuzhiyun #define REG_A4XX_PC_PERFCTR_PC_SEL_7				0x00000d17
3847*4882a593Smuzhiyun 
3848*4882a593Smuzhiyun #define REG_A4XX_PC_BIN_BASE					0x000021c0
3849*4882a593Smuzhiyun 
3850*4882a593Smuzhiyun #define REG_A4XX_PC_VSTREAM_CONTROL				0x000021c2
3851*4882a593Smuzhiyun #define A4XX_PC_VSTREAM_CONTROL_SIZE__MASK			0x003f0000
3852*4882a593Smuzhiyun #define A4XX_PC_VSTREAM_CONTROL_SIZE__SHIFT			16
A4XX_PC_VSTREAM_CONTROL_SIZE(uint32_t val)3853*4882a593Smuzhiyun static inline uint32_t A4XX_PC_VSTREAM_CONTROL_SIZE(uint32_t val)
3854*4882a593Smuzhiyun {
3855*4882a593Smuzhiyun 	return ((val) << A4XX_PC_VSTREAM_CONTROL_SIZE__SHIFT) & A4XX_PC_VSTREAM_CONTROL_SIZE__MASK;
3856*4882a593Smuzhiyun }
3857*4882a593Smuzhiyun #define A4XX_PC_VSTREAM_CONTROL_N__MASK				0x07c00000
3858*4882a593Smuzhiyun #define A4XX_PC_VSTREAM_CONTROL_N__SHIFT			22
A4XX_PC_VSTREAM_CONTROL_N(uint32_t val)3859*4882a593Smuzhiyun static inline uint32_t A4XX_PC_VSTREAM_CONTROL_N(uint32_t val)
3860*4882a593Smuzhiyun {
3861*4882a593Smuzhiyun 	return ((val) << A4XX_PC_VSTREAM_CONTROL_N__SHIFT) & A4XX_PC_VSTREAM_CONTROL_N__MASK;
3862*4882a593Smuzhiyun }
3863*4882a593Smuzhiyun 
3864*4882a593Smuzhiyun #define REG_A4XX_PC_PRIM_VTX_CNTL				0x000021c4
3865*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL_VAROUT__MASK			0x0000000f
3866*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL_VAROUT__SHIFT			0
A4XX_PC_PRIM_VTX_CNTL_VAROUT(uint32_t val)3867*4882a593Smuzhiyun static inline uint32_t A4XX_PC_PRIM_VTX_CNTL_VAROUT(uint32_t val)
3868*4882a593Smuzhiyun {
3869*4882a593Smuzhiyun 	return ((val) << A4XX_PC_PRIM_VTX_CNTL_VAROUT__SHIFT) & A4XX_PC_PRIM_VTX_CNTL_VAROUT__MASK;
3870*4882a593Smuzhiyun }
3871*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL_PRIMITIVE_RESTART			0x00100000
3872*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL_PROVOKING_VTX_LAST		0x02000000
3873*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL_PSIZE				0x04000000
3874*4882a593Smuzhiyun 
3875*4882a593Smuzhiyun #define REG_A4XX_PC_PRIM_VTX_CNTL2				0x000021c5
3876*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE__MASK	0x00000007
3877*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE__SHIFT	0
A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE(enum adreno_pa_su_sc_draw val)3878*4882a593Smuzhiyun static inline uint32_t A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE(enum adreno_pa_su_sc_draw val)
3879*4882a593Smuzhiyun {
3880*4882a593Smuzhiyun 	return ((val) << A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE__SHIFT) & A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_FRONT_PTYPE__MASK;
3881*4882a593Smuzhiyun }
3882*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE__MASK	0x00000038
3883*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE__SHIFT	3
A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE(enum adreno_pa_su_sc_draw val)3884*4882a593Smuzhiyun static inline uint32_t A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE(enum adreno_pa_su_sc_draw val)
3885*4882a593Smuzhiyun {
3886*4882a593Smuzhiyun 	return ((val) << A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE__SHIFT) & A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_BACK_PTYPE__MASK;
3887*4882a593Smuzhiyun }
3888*4882a593Smuzhiyun #define A4XX_PC_PRIM_VTX_CNTL2_POLYMODE_ENABLE			0x00000040
3889*4882a593Smuzhiyun 
3890*4882a593Smuzhiyun #define REG_A4XX_PC_RESTART_INDEX				0x000021c6
3891*4882a593Smuzhiyun 
3892*4882a593Smuzhiyun #define REG_A4XX_PC_GS_PARAM					0x000021e5
3893*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_MAX_VERTICES__MASK			0x000003ff
3894*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_MAX_VERTICES__SHIFT			0
A4XX_PC_GS_PARAM_MAX_VERTICES(uint32_t val)3895*4882a593Smuzhiyun static inline uint32_t A4XX_PC_GS_PARAM_MAX_VERTICES(uint32_t val)
3896*4882a593Smuzhiyun {
3897*4882a593Smuzhiyun 	return ((val) << A4XX_PC_GS_PARAM_MAX_VERTICES__SHIFT) & A4XX_PC_GS_PARAM_MAX_VERTICES__MASK;
3898*4882a593Smuzhiyun }
3899*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_INVOCATIONS__MASK			0x0000f800
3900*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_INVOCATIONS__SHIFT			11
A4XX_PC_GS_PARAM_INVOCATIONS(uint32_t val)3901*4882a593Smuzhiyun static inline uint32_t A4XX_PC_GS_PARAM_INVOCATIONS(uint32_t val)
3902*4882a593Smuzhiyun {
3903*4882a593Smuzhiyun 	return ((val) << A4XX_PC_GS_PARAM_INVOCATIONS__SHIFT) & A4XX_PC_GS_PARAM_INVOCATIONS__MASK;
3904*4882a593Smuzhiyun }
3905*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_PRIMTYPE__MASK				0x01800000
3906*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_PRIMTYPE__SHIFT			23
A4XX_PC_GS_PARAM_PRIMTYPE(enum adreno_pa_su_sc_draw val)3907*4882a593Smuzhiyun static inline uint32_t A4XX_PC_GS_PARAM_PRIMTYPE(enum adreno_pa_su_sc_draw val)
3908*4882a593Smuzhiyun {
3909*4882a593Smuzhiyun 	return ((val) << A4XX_PC_GS_PARAM_PRIMTYPE__SHIFT) & A4XX_PC_GS_PARAM_PRIMTYPE__MASK;
3910*4882a593Smuzhiyun }
3911*4882a593Smuzhiyun #define A4XX_PC_GS_PARAM_LAYER					0x80000000
3912*4882a593Smuzhiyun 
3913*4882a593Smuzhiyun #define REG_A4XX_PC_HS_PARAM					0x000021e7
3914*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_VERTICES_OUT__MASK			0x0000003f
3915*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_VERTICES_OUT__SHIFT			0
A4XX_PC_HS_PARAM_VERTICES_OUT(uint32_t val)3916*4882a593Smuzhiyun static inline uint32_t A4XX_PC_HS_PARAM_VERTICES_OUT(uint32_t val)
3917*4882a593Smuzhiyun {
3918*4882a593Smuzhiyun 	return ((val) << A4XX_PC_HS_PARAM_VERTICES_OUT__SHIFT) & A4XX_PC_HS_PARAM_VERTICES_OUT__MASK;
3919*4882a593Smuzhiyun }
3920*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_SPACING__MASK				0x00600000
3921*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_SPACING__SHIFT				21
A4XX_PC_HS_PARAM_SPACING(enum a4xx_tess_spacing val)3922*4882a593Smuzhiyun static inline uint32_t A4XX_PC_HS_PARAM_SPACING(enum a4xx_tess_spacing val)
3923*4882a593Smuzhiyun {
3924*4882a593Smuzhiyun 	return ((val) << A4XX_PC_HS_PARAM_SPACING__SHIFT) & A4XX_PC_HS_PARAM_SPACING__MASK;
3925*4882a593Smuzhiyun }
3926*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_CW					0x00800000
3927*4882a593Smuzhiyun #define A4XX_PC_HS_PARAM_CONNECTED				0x01000000
3928*4882a593Smuzhiyun 
3929*4882a593Smuzhiyun #define REG_A4XX_VBIF_VERSION					0x00003000
3930*4882a593Smuzhiyun 
3931*4882a593Smuzhiyun #define REG_A4XX_VBIF_CLKON					0x00003001
3932*4882a593Smuzhiyun #define A4XX_VBIF_CLKON_FORCE_ON_TESTBUS			0x00000001
3933*4882a593Smuzhiyun 
3934*4882a593Smuzhiyun #define REG_A4XX_VBIF_ABIT_SORT					0x0000301c
3935*4882a593Smuzhiyun 
3936*4882a593Smuzhiyun #define REG_A4XX_VBIF_ABIT_SORT_CONF				0x0000301d
3937*4882a593Smuzhiyun 
3938*4882a593Smuzhiyun #define REG_A4XX_VBIF_GATE_OFF_WRREQ_EN				0x0000302a
3939*4882a593Smuzhiyun 
3940*4882a593Smuzhiyun #define REG_A4XX_VBIF_IN_RD_LIM_CONF0				0x0000302c
3941*4882a593Smuzhiyun 
3942*4882a593Smuzhiyun #define REG_A4XX_VBIF_IN_RD_LIM_CONF1				0x0000302d
3943*4882a593Smuzhiyun 
3944*4882a593Smuzhiyun #define REG_A4XX_VBIF_IN_WR_LIM_CONF0				0x00003030
3945*4882a593Smuzhiyun 
3946*4882a593Smuzhiyun #define REG_A4XX_VBIF_IN_WR_LIM_CONF1				0x00003031
3947*4882a593Smuzhiyun 
3948*4882a593Smuzhiyun #define REG_A4XX_VBIF_ROUND_ROBIN_QOS_ARB			0x00003049
3949*4882a593Smuzhiyun 
3950*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_EN0				0x000030c0
3951*4882a593Smuzhiyun 
3952*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_EN1				0x000030c1
3953*4882a593Smuzhiyun 
3954*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_EN2				0x000030c2
3955*4882a593Smuzhiyun 
3956*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_EN3				0x000030c3
3957*4882a593Smuzhiyun 
3958*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_SEL0				0x000030d0
3959*4882a593Smuzhiyun 
3960*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_SEL1				0x000030d1
3961*4882a593Smuzhiyun 
3962*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_SEL2				0x000030d2
3963*4882a593Smuzhiyun 
3964*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_SEL3				0x000030d3
3965*4882a593Smuzhiyun 
3966*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_LOW0				0x000030d8
3967*4882a593Smuzhiyun 
3968*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_LOW1				0x000030d9
3969*4882a593Smuzhiyun 
3970*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_LOW2				0x000030da
3971*4882a593Smuzhiyun 
3972*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_LOW3				0x000030db
3973*4882a593Smuzhiyun 
3974*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_HIGH0				0x000030e0
3975*4882a593Smuzhiyun 
3976*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_HIGH1				0x000030e1
3977*4882a593Smuzhiyun 
3978*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_HIGH2				0x000030e2
3979*4882a593Smuzhiyun 
3980*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_CNT_HIGH3				0x000030e3
3981*4882a593Smuzhiyun 
3982*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
3983*4882a593Smuzhiyun 
3984*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
3985*4882a593Smuzhiyun 
3986*4882a593Smuzhiyun #define REG_A4XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
3987*4882a593Smuzhiyun 
3988*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_0CC5					0x00000cc5
3989*4882a593Smuzhiyun 
3990*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_0CC6					0x00000cc6
3991*4882a593Smuzhiyun 
3992*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_0D01					0x00000d01
3993*4882a593Smuzhiyun 
3994*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_0E42					0x00000e42
3995*4882a593Smuzhiyun 
3996*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_0EC2					0x00000ec2
3997*4882a593Smuzhiyun 
3998*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2001					0x00002001
3999*4882a593Smuzhiyun 
4000*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_209B					0x0000209b
4001*4882a593Smuzhiyun 
4002*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_20EF					0x000020ef
4003*4882a593Smuzhiyun 
4004*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2152					0x00002152
4005*4882a593Smuzhiyun 
4006*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2153					0x00002153
4007*4882a593Smuzhiyun 
4008*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2154					0x00002154
4009*4882a593Smuzhiyun 
4010*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2155					0x00002155
4011*4882a593Smuzhiyun 
4012*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2156					0x00002156
4013*4882a593Smuzhiyun 
4014*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2157					0x00002157
4015*4882a593Smuzhiyun 
4016*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_21C3					0x000021c3
4017*4882a593Smuzhiyun 
4018*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_21E6					0x000021e6
4019*4882a593Smuzhiyun 
4020*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2209					0x00002209
4021*4882a593Smuzhiyun 
4022*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_22D7					0x000022d7
4023*4882a593Smuzhiyun 
4024*4882a593Smuzhiyun #define REG_A4XX_UNKNOWN_2352					0x00002352
4025*4882a593Smuzhiyun 
4026*4882a593Smuzhiyun #define REG_A4XX_TEX_SAMP_0					0x00000000
4027*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_MIPFILTER_LINEAR_NEAR			0x00000001
4028*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_XY_MAG__MASK				0x00000006
4029*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_XY_MAG__SHIFT				1
A4XX_TEX_SAMP_0_XY_MAG(enum a4xx_tex_filter val)4030*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_XY_MAG(enum a4xx_tex_filter val)
4031*4882a593Smuzhiyun {
4032*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_XY_MAG__SHIFT) & A4XX_TEX_SAMP_0_XY_MAG__MASK;
4033*4882a593Smuzhiyun }
4034*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_XY_MIN__MASK				0x00000018
4035*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_XY_MIN__SHIFT				3
A4XX_TEX_SAMP_0_XY_MIN(enum a4xx_tex_filter val)4036*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_XY_MIN(enum a4xx_tex_filter val)
4037*4882a593Smuzhiyun {
4038*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_XY_MIN__SHIFT) & A4XX_TEX_SAMP_0_XY_MIN__MASK;
4039*4882a593Smuzhiyun }
4040*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_S__MASK				0x000000e0
4041*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_S__SHIFT				5
A4XX_TEX_SAMP_0_WRAP_S(enum a4xx_tex_clamp val)4042*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_WRAP_S(enum a4xx_tex_clamp val)
4043*4882a593Smuzhiyun {
4044*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_WRAP_S__SHIFT) & A4XX_TEX_SAMP_0_WRAP_S__MASK;
4045*4882a593Smuzhiyun }
4046*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_T__MASK				0x00000700
4047*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_T__SHIFT				8
A4XX_TEX_SAMP_0_WRAP_T(enum a4xx_tex_clamp val)4048*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_WRAP_T(enum a4xx_tex_clamp val)
4049*4882a593Smuzhiyun {
4050*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_WRAP_T__SHIFT) & A4XX_TEX_SAMP_0_WRAP_T__MASK;
4051*4882a593Smuzhiyun }
4052*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_R__MASK				0x00003800
4053*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_WRAP_R__SHIFT				11
A4XX_TEX_SAMP_0_WRAP_R(enum a4xx_tex_clamp val)4054*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_WRAP_R(enum a4xx_tex_clamp val)
4055*4882a593Smuzhiyun {
4056*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_WRAP_R__SHIFT) & A4XX_TEX_SAMP_0_WRAP_R__MASK;
4057*4882a593Smuzhiyun }
4058*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_ANISO__MASK				0x0001c000
4059*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_ANISO__SHIFT				14
A4XX_TEX_SAMP_0_ANISO(enum a4xx_tex_aniso val)4060*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_ANISO(enum a4xx_tex_aniso val)
4061*4882a593Smuzhiyun {
4062*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_0_ANISO__SHIFT) & A4XX_TEX_SAMP_0_ANISO__MASK;
4063*4882a593Smuzhiyun }
4064*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_LOD_BIAS__MASK				0xfff80000
4065*4882a593Smuzhiyun #define A4XX_TEX_SAMP_0_LOD_BIAS__SHIFT				19
A4XX_TEX_SAMP_0_LOD_BIAS(float val)4066*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_0_LOD_BIAS(float val)
4067*4882a593Smuzhiyun {
4068*4882a593Smuzhiyun 	return ((((int32_t)(val * 256.0))) << A4XX_TEX_SAMP_0_LOD_BIAS__SHIFT) & A4XX_TEX_SAMP_0_LOD_BIAS__MASK;
4069*4882a593Smuzhiyun }
4070*4882a593Smuzhiyun 
4071*4882a593Smuzhiyun #define REG_A4XX_TEX_SAMP_1					0x00000001
4072*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_COMPARE_FUNC__MASK			0x0000000e
4073*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT			1
A4XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)4074*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)
4075*4882a593Smuzhiyun {
4076*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT) & A4XX_TEX_SAMP_1_COMPARE_FUNC__MASK;
4077*4882a593Smuzhiyun }
4078*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF			0x00000010
4079*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_UNNORM_COORDS				0x00000020
4080*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_MIPFILTER_LINEAR_FAR			0x00000040
4081*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_MAX_LOD__MASK				0x000fff00
4082*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_MAX_LOD__SHIFT				8
A4XX_TEX_SAMP_1_MAX_LOD(float val)4083*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_1_MAX_LOD(float val)
4084*4882a593Smuzhiyun {
4085*4882a593Smuzhiyun 	return ((((uint32_t)(val * 256.0))) << A4XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A4XX_TEX_SAMP_1_MAX_LOD__MASK;
4086*4882a593Smuzhiyun }
4087*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_MIN_LOD__MASK				0xfff00000
4088*4882a593Smuzhiyun #define A4XX_TEX_SAMP_1_MIN_LOD__SHIFT				20
A4XX_TEX_SAMP_1_MIN_LOD(float val)4089*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_SAMP_1_MIN_LOD(float val)
4090*4882a593Smuzhiyun {
4091*4882a593Smuzhiyun 	return ((((uint32_t)(val * 256.0))) << A4XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A4XX_TEX_SAMP_1_MIN_LOD__MASK;
4092*4882a593Smuzhiyun }
4093*4882a593Smuzhiyun 
4094*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_0					0x00000000
4095*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_TILED					0x00000001
4096*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SRGB					0x00000004
4097*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_X__MASK				0x00000070
4098*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_X__SHIFT				4
A4XX_TEX_CONST_0_SWIZ_X(enum a4xx_tex_swiz val)4099*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_SWIZ_X(enum a4xx_tex_swiz val)
4100*4882a593Smuzhiyun {
4101*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_SWIZ_X__SHIFT) & A4XX_TEX_CONST_0_SWIZ_X__MASK;
4102*4882a593Smuzhiyun }
4103*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_Y__MASK				0x00000380
4104*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_Y__SHIFT				7
A4XX_TEX_CONST_0_SWIZ_Y(enum a4xx_tex_swiz val)4105*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_SWIZ_Y(enum a4xx_tex_swiz val)
4106*4882a593Smuzhiyun {
4107*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A4XX_TEX_CONST_0_SWIZ_Y__MASK;
4108*4882a593Smuzhiyun }
4109*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_Z__MASK				0x00001c00
4110*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_Z__SHIFT				10
A4XX_TEX_CONST_0_SWIZ_Z(enum a4xx_tex_swiz val)4111*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_SWIZ_Z(enum a4xx_tex_swiz val)
4112*4882a593Smuzhiyun {
4113*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A4XX_TEX_CONST_0_SWIZ_Z__MASK;
4114*4882a593Smuzhiyun }
4115*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_W__MASK				0x0000e000
4116*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_SWIZ_W__SHIFT				13
A4XX_TEX_CONST_0_SWIZ_W(enum a4xx_tex_swiz val)4117*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_SWIZ_W(enum a4xx_tex_swiz val)
4118*4882a593Smuzhiyun {
4119*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_SWIZ_W__SHIFT) & A4XX_TEX_CONST_0_SWIZ_W__MASK;
4120*4882a593Smuzhiyun }
4121*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_MIPLVLS__MASK				0x000f0000
4122*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_MIPLVLS__SHIFT				16
A4XX_TEX_CONST_0_MIPLVLS(uint32_t val)4123*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_MIPLVLS(uint32_t val)
4124*4882a593Smuzhiyun {
4125*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_MIPLVLS__SHIFT) & A4XX_TEX_CONST_0_MIPLVLS__MASK;
4126*4882a593Smuzhiyun }
4127*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_FMT__MASK				0x1fc00000
4128*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_FMT__SHIFT				22
A4XX_TEX_CONST_0_FMT(enum a4xx_tex_fmt val)4129*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_FMT(enum a4xx_tex_fmt val)
4130*4882a593Smuzhiyun {
4131*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_FMT__SHIFT) & A4XX_TEX_CONST_0_FMT__MASK;
4132*4882a593Smuzhiyun }
4133*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_TYPE__MASK				0x60000000
4134*4882a593Smuzhiyun #define A4XX_TEX_CONST_0_TYPE__SHIFT				29
A4XX_TEX_CONST_0_TYPE(enum a4xx_tex_type val)4135*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_0_TYPE(enum a4xx_tex_type val)
4136*4882a593Smuzhiyun {
4137*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_0_TYPE__SHIFT) & A4XX_TEX_CONST_0_TYPE__MASK;
4138*4882a593Smuzhiyun }
4139*4882a593Smuzhiyun 
4140*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_1					0x00000001
4141*4882a593Smuzhiyun #define A4XX_TEX_CONST_1_HEIGHT__MASK				0x00007fff
4142*4882a593Smuzhiyun #define A4XX_TEX_CONST_1_HEIGHT__SHIFT				0
A4XX_TEX_CONST_1_HEIGHT(uint32_t val)4143*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_1_HEIGHT(uint32_t val)
4144*4882a593Smuzhiyun {
4145*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_1_HEIGHT__SHIFT) & A4XX_TEX_CONST_1_HEIGHT__MASK;
4146*4882a593Smuzhiyun }
4147*4882a593Smuzhiyun #define A4XX_TEX_CONST_1_WIDTH__MASK				0x3fff8000
4148*4882a593Smuzhiyun #define A4XX_TEX_CONST_1_WIDTH__SHIFT				15
A4XX_TEX_CONST_1_WIDTH(uint32_t val)4149*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_1_WIDTH(uint32_t val)
4150*4882a593Smuzhiyun {
4151*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_1_WIDTH__SHIFT) & A4XX_TEX_CONST_1_WIDTH__MASK;
4152*4882a593Smuzhiyun }
4153*4882a593Smuzhiyun 
4154*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_2					0x00000002
4155*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_PITCHALIGN__MASK			0x0000000f
4156*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_PITCHALIGN__SHIFT			0
A4XX_TEX_CONST_2_PITCHALIGN(uint32_t val)4157*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_2_PITCHALIGN(uint32_t val)
4158*4882a593Smuzhiyun {
4159*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_2_PITCHALIGN__SHIFT) & A4XX_TEX_CONST_2_PITCHALIGN__MASK;
4160*4882a593Smuzhiyun }
4161*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_PITCH__MASK				0x3ffffe00
4162*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_PITCH__SHIFT				9
A4XX_TEX_CONST_2_PITCH(uint32_t val)4163*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_2_PITCH(uint32_t val)
4164*4882a593Smuzhiyun {
4165*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_2_PITCH__SHIFT) & A4XX_TEX_CONST_2_PITCH__MASK;
4166*4882a593Smuzhiyun }
4167*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_SWAP__MASK				0xc0000000
4168*4882a593Smuzhiyun #define A4XX_TEX_CONST_2_SWAP__SHIFT				30
A4XX_TEX_CONST_2_SWAP(enum a3xx_color_swap val)4169*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_2_SWAP(enum a3xx_color_swap val)
4170*4882a593Smuzhiyun {
4171*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_2_SWAP__SHIFT) & A4XX_TEX_CONST_2_SWAP__MASK;
4172*4882a593Smuzhiyun }
4173*4882a593Smuzhiyun 
4174*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_3					0x00000003
4175*4882a593Smuzhiyun #define A4XX_TEX_CONST_3_LAYERSZ__MASK				0x00003fff
4176*4882a593Smuzhiyun #define A4XX_TEX_CONST_3_LAYERSZ__SHIFT				0
A4XX_TEX_CONST_3_LAYERSZ(uint32_t val)4177*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_3_LAYERSZ(uint32_t val)
4178*4882a593Smuzhiyun {
4179*4882a593Smuzhiyun 	return ((val >> 12) << A4XX_TEX_CONST_3_LAYERSZ__SHIFT) & A4XX_TEX_CONST_3_LAYERSZ__MASK;
4180*4882a593Smuzhiyun }
4181*4882a593Smuzhiyun #define A4XX_TEX_CONST_3_DEPTH__MASK				0x7ffc0000
4182*4882a593Smuzhiyun #define A4XX_TEX_CONST_3_DEPTH__SHIFT				18
A4XX_TEX_CONST_3_DEPTH(uint32_t val)4183*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_3_DEPTH(uint32_t val)
4184*4882a593Smuzhiyun {
4185*4882a593Smuzhiyun 	return ((val) << A4XX_TEX_CONST_3_DEPTH__SHIFT) & A4XX_TEX_CONST_3_DEPTH__MASK;
4186*4882a593Smuzhiyun }
4187*4882a593Smuzhiyun 
4188*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_4					0x00000004
4189*4882a593Smuzhiyun #define A4XX_TEX_CONST_4_LAYERSZ__MASK				0x0000000f
4190*4882a593Smuzhiyun #define A4XX_TEX_CONST_4_LAYERSZ__SHIFT				0
A4XX_TEX_CONST_4_LAYERSZ(uint32_t val)4191*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_4_LAYERSZ(uint32_t val)
4192*4882a593Smuzhiyun {
4193*4882a593Smuzhiyun 	return ((val >> 12) << A4XX_TEX_CONST_4_LAYERSZ__SHIFT) & A4XX_TEX_CONST_4_LAYERSZ__MASK;
4194*4882a593Smuzhiyun }
4195*4882a593Smuzhiyun #define A4XX_TEX_CONST_4_BASE__MASK				0xffffffe0
4196*4882a593Smuzhiyun #define A4XX_TEX_CONST_4_BASE__SHIFT				5
A4XX_TEX_CONST_4_BASE(uint32_t val)4197*4882a593Smuzhiyun static inline uint32_t A4XX_TEX_CONST_4_BASE(uint32_t val)
4198*4882a593Smuzhiyun {
4199*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_TEX_CONST_4_BASE__SHIFT) & A4XX_TEX_CONST_4_BASE__MASK;
4200*4882a593Smuzhiyun }
4201*4882a593Smuzhiyun 
4202*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_5					0x00000005
4203*4882a593Smuzhiyun 
4204*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_6					0x00000006
4205*4882a593Smuzhiyun 
4206*4882a593Smuzhiyun #define REG_A4XX_TEX_CONST_7					0x00000007
4207*4882a593Smuzhiyun 
4208*4882a593Smuzhiyun #define REG_A4XX_SSBO_0_0					0x00000000
4209*4882a593Smuzhiyun #define A4XX_SSBO_0_0_BASE__MASK				0xffffffe0
4210*4882a593Smuzhiyun #define A4XX_SSBO_0_0_BASE__SHIFT				5
A4XX_SSBO_0_0_BASE(uint32_t val)4211*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_0_0_BASE(uint32_t val)
4212*4882a593Smuzhiyun {
4213*4882a593Smuzhiyun 	return ((val >> 5) << A4XX_SSBO_0_0_BASE__SHIFT) & A4XX_SSBO_0_0_BASE__MASK;
4214*4882a593Smuzhiyun }
4215*4882a593Smuzhiyun 
4216*4882a593Smuzhiyun #define REG_A4XX_SSBO_0_1					0x00000001
4217*4882a593Smuzhiyun #define A4XX_SSBO_0_1_PITCH__MASK				0x003fffff
4218*4882a593Smuzhiyun #define A4XX_SSBO_0_1_PITCH__SHIFT				0
A4XX_SSBO_0_1_PITCH(uint32_t val)4219*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_0_1_PITCH(uint32_t val)
4220*4882a593Smuzhiyun {
4221*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_0_1_PITCH__SHIFT) & A4XX_SSBO_0_1_PITCH__MASK;
4222*4882a593Smuzhiyun }
4223*4882a593Smuzhiyun 
4224*4882a593Smuzhiyun #define REG_A4XX_SSBO_0_2					0x00000002
4225*4882a593Smuzhiyun #define A4XX_SSBO_0_2_ARRAY_PITCH__MASK				0x03fff000
4226*4882a593Smuzhiyun #define A4XX_SSBO_0_2_ARRAY_PITCH__SHIFT			12
A4XX_SSBO_0_2_ARRAY_PITCH(uint32_t val)4227*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_0_2_ARRAY_PITCH(uint32_t val)
4228*4882a593Smuzhiyun {
4229*4882a593Smuzhiyun 	return ((val >> 12) << A4XX_SSBO_0_2_ARRAY_PITCH__SHIFT) & A4XX_SSBO_0_2_ARRAY_PITCH__MASK;
4230*4882a593Smuzhiyun }
4231*4882a593Smuzhiyun 
4232*4882a593Smuzhiyun #define REG_A4XX_SSBO_0_3					0x00000003
4233*4882a593Smuzhiyun #define A4XX_SSBO_0_3_CPP__MASK					0x0000003f
4234*4882a593Smuzhiyun #define A4XX_SSBO_0_3_CPP__SHIFT				0
A4XX_SSBO_0_3_CPP(uint32_t val)4235*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_0_3_CPP(uint32_t val)
4236*4882a593Smuzhiyun {
4237*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_0_3_CPP__SHIFT) & A4XX_SSBO_0_3_CPP__MASK;
4238*4882a593Smuzhiyun }
4239*4882a593Smuzhiyun 
4240*4882a593Smuzhiyun #define REG_A4XX_SSBO_1_0					0x00000000
4241*4882a593Smuzhiyun #define A4XX_SSBO_1_0_CPP__MASK					0x0000001f
4242*4882a593Smuzhiyun #define A4XX_SSBO_1_0_CPP__SHIFT				0
A4XX_SSBO_1_0_CPP(uint32_t val)4243*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_1_0_CPP(uint32_t val)
4244*4882a593Smuzhiyun {
4245*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_1_0_CPP__SHIFT) & A4XX_SSBO_1_0_CPP__MASK;
4246*4882a593Smuzhiyun }
4247*4882a593Smuzhiyun #define A4XX_SSBO_1_0_FMT__MASK					0x0000ff00
4248*4882a593Smuzhiyun #define A4XX_SSBO_1_0_FMT__SHIFT				8
A4XX_SSBO_1_0_FMT(enum a4xx_color_fmt val)4249*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_1_0_FMT(enum a4xx_color_fmt val)
4250*4882a593Smuzhiyun {
4251*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_1_0_FMT__SHIFT) & A4XX_SSBO_1_0_FMT__MASK;
4252*4882a593Smuzhiyun }
4253*4882a593Smuzhiyun #define A4XX_SSBO_1_0_WIDTH__MASK				0xffff0000
4254*4882a593Smuzhiyun #define A4XX_SSBO_1_0_WIDTH__SHIFT				16
A4XX_SSBO_1_0_WIDTH(uint32_t val)4255*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_1_0_WIDTH(uint32_t val)
4256*4882a593Smuzhiyun {
4257*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_1_0_WIDTH__SHIFT) & A4XX_SSBO_1_0_WIDTH__MASK;
4258*4882a593Smuzhiyun }
4259*4882a593Smuzhiyun 
4260*4882a593Smuzhiyun #define REG_A4XX_SSBO_1_1					0x00000001
4261*4882a593Smuzhiyun #define A4XX_SSBO_1_1_HEIGHT__MASK				0x0000ffff
4262*4882a593Smuzhiyun #define A4XX_SSBO_1_1_HEIGHT__SHIFT				0
A4XX_SSBO_1_1_HEIGHT(uint32_t val)4263*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_1_1_HEIGHT(uint32_t val)
4264*4882a593Smuzhiyun {
4265*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_1_1_HEIGHT__SHIFT) & A4XX_SSBO_1_1_HEIGHT__MASK;
4266*4882a593Smuzhiyun }
4267*4882a593Smuzhiyun #define A4XX_SSBO_1_1_DEPTH__MASK				0xffff0000
4268*4882a593Smuzhiyun #define A4XX_SSBO_1_1_DEPTH__SHIFT				16
A4XX_SSBO_1_1_DEPTH(uint32_t val)4269*4882a593Smuzhiyun static inline uint32_t A4XX_SSBO_1_1_DEPTH(uint32_t val)
4270*4882a593Smuzhiyun {
4271*4882a593Smuzhiyun 	return ((val) << A4XX_SSBO_1_1_DEPTH__SHIFT) & A4XX_SSBO_1_1_DEPTH__MASK;
4272*4882a593Smuzhiyun }
4273*4882a593Smuzhiyun 
4274*4882a593Smuzhiyun 
4275*4882a593Smuzhiyun #endif /* A4XX_XML */
4276