xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/msm/adreno/a3xx.xml.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef A3XX_XML
2*4882a593Smuzhiyun #define A3XX_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 a3xx_tile_mode {
52*4882a593Smuzhiyun 	LINEAR = 0,
53*4882a593Smuzhiyun 	TILE_4X4 = 1,
54*4882a593Smuzhiyun 	TILE_32X32 = 2,
55*4882a593Smuzhiyun 	TILE_4X2 = 3,
56*4882a593Smuzhiyun };
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun enum a3xx_state_block_id {
59*4882a593Smuzhiyun 	HLSQ_BLOCK_ID_TP_TEX = 2,
60*4882a593Smuzhiyun 	HLSQ_BLOCK_ID_TP_MIPMAP = 3,
61*4882a593Smuzhiyun 	HLSQ_BLOCK_ID_SP_VS = 4,
62*4882a593Smuzhiyun 	HLSQ_BLOCK_ID_SP_FS = 6,
63*4882a593Smuzhiyun };
64*4882a593Smuzhiyun 
65*4882a593Smuzhiyun enum a3xx_cache_opcode {
66*4882a593Smuzhiyun 	INVALIDATE = 1,
67*4882a593Smuzhiyun };
68*4882a593Smuzhiyun 
69*4882a593Smuzhiyun enum a3xx_vtx_fmt {
70*4882a593Smuzhiyun 	VFMT_32_FLOAT = 0,
71*4882a593Smuzhiyun 	VFMT_32_32_FLOAT = 1,
72*4882a593Smuzhiyun 	VFMT_32_32_32_FLOAT = 2,
73*4882a593Smuzhiyun 	VFMT_32_32_32_32_FLOAT = 3,
74*4882a593Smuzhiyun 	VFMT_16_FLOAT = 4,
75*4882a593Smuzhiyun 	VFMT_16_16_FLOAT = 5,
76*4882a593Smuzhiyun 	VFMT_16_16_16_FLOAT = 6,
77*4882a593Smuzhiyun 	VFMT_16_16_16_16_FLOAT = 7,
78*4882a593Smuzhiyun 	VFMT_32_FIXED = 8,
79*4882a593Smuzhiyun 	VFMT_32_32_FIXED = 9,
80*4882a593Smuzhiyun 	VFMT_32_32_32_FIXED = 10,
81*4882a593Smuzhiyun 	VFMT_32_32_32_32_FIXED = 11,
82*4882a593Smuzhiyun 	VFMT_16_SINT = 16,
83*4882a593Smuzhiyun 	VFMT_16_16_SINT = 17,
84*4882a593Smuzhiyun 	VFMT_16_16_16_SINT = 18,
85*4882a593Smuzhiyun 	VFMT_16_16_16_16_SINT = 19,
86*4882a593Smuzhiyun 	VFMT_16_UINT = 20,
87*4882a593Smuzhiyun 	VFMT_16_16_UINT = 21,
88*4882a593Smuzhiyun 	VFMT_16_16_16_UINT = 22,
89*4882a593Smuzhiyun 	VFMT_16_16_16_16_UINT = 23,
90*4882a593Smuzhiyun 	VFMT_16_SNORM = 24,
91*4882a593Smuzhiyun 	VFMT_16_16_SNORM = 25,
92*4882a593Smuzhiyun 	VFMT_16_16_16_SNORM = 26,
93*4882a593Smuzhiyun 	VFMT_16_16_16_16_SNORM = 27,
94*4882a593Smuzhiyun 	VFMT_16_UNORM = 28,
95*4882a593Smuzhiyun 	VFMT_16_16_UNORM = 29,
96*4882a593Smuzhiyun 	VFMT_16_16_16_UNORM = 30,
97*4882a593Smuzhiyun 	VFMT_16_16_16_16_UNORM = 31,
98*4882a593Smuzhiyun 	VFMT_32_UINT = 32,
99*4882a593Smuzhiyun 	VFMT_32_32_UINT = 33,
100*4882a593Smuzhiyun 	VFMT_32_32_32_UINT = 34,
101*4882a593Smuzhiyun 	VFMT_32_32_32_32_UINT = 35,
102*4882a593Smuzhiyun 	VFMT_32_SINT = 36,
103*4882a593Smuzhiyun 	VFMT_32_32_SINT = 37,
104*4882a593Smuzhiyun 	VFMT_32_32_32_SINT = 38,
105*4882a593Smuzhiyun 	VFMT_32_32_32_32_SINT = 39,
106*4882a593Smuzhiyun 	VFMT_8_UINT = 40,
107*4882a593Smuzhiyun 	VFMT_8_8_UINT = 41,
108*4882a593Smuzhiyun 	VFMT_8_8_8_UINT = 42,
109*4882a593Smuzhiyun 	VFMT_8_8_8_8_UINT = 43,
110*4882a593Smuzhiyun 	VFMT_8_UNORM = 44,
111*4882a593Smuzhiyun 	VFMT_8_8_UNORM = 45,
112*4882a593Smuzhiyun 	VFMT_8_8_8_UNORM = 46,
113*4882a593Smuzhiyun 	VFMT_8_8_8_8_UNORM = 47,
114*4882a593Smuzhiyun 	VFMT_8_SINT = 48,
115*4882a593Smuzhiyun 	VFMT_8_8_SINT = 49,
116*4882a593Smuzhiyun 	VFMT_8_8_8_SINT = 50,
117*4882a593Smuzhiyun 	VFMT_8_8_8_8_SINT = 51,
118*4882a593Smuzhiyun 	VFMT_8_SNORM = 52,
119*4882a593Smuzhiyun 	VFMT_8_8_SNORM = 53,
120*4882a593Smuzhiyun 	VFMT_8_8_8_SNORM = 54,
121*4882a593Smuzhiyun 	VFMT_8_8_8_8_SNORM = 55,
122*4882a593Smuzhiyun 	VFMT_10_10_10_2_UINT = 56,
123*4882a593Smuzhiyun 	VFMT_10_10_10_2_UNORM = 57,
124*4882a593Smuzhiyun 	VFMT_10_10_10_2_SINT = 58,
125*4882a593Smuzhiyun 	VFMT_10_10_10_2_SNORM = 59,
126*4882a593Smuzhiyun 	VFMT_2_10_10_10_UINT = 60,
127*4882a593Smuzhiyun 	VFMT_2_10_10_10_UNORM = 61,
128*4882a593Smuzhiyun 	VFMT_2_10_10_10_SINT = 62,
129*4882a593Smuzhiyun 	VFMT_2_10_10_10_SNORM = 63,
130*4882a593Smuzhiyun 	VFMT_NONE = 255,
131*4882a593Smuzhiyun };
132*4882a593Smuzhiyun 
133*4882a593Smuzhiyun enum a3xx_tex_fmt {
134*4882a593Smuzhiyun 	TFMT_5_6_5_UNORM = 4,
135*4882a593Smuzhiyun 	TFMT_5_5_5_1_UNORM = 5,
136*4882a593Smuzhiyun 	TFMT_4_4_4_4_UNORM = 7,
137*4882a593Smuzhiyun 	TFMT_Z16_UNORM = 9,
138*4882a593Smuzhiyun 	TFMT_X8Z24_UNORM = 10,
139*4882a593Smuzhiyun 	TFMT_Z32_FLOAT = 11,
140*4882a593Smuzhiyun 	TFMT_UV_64X32 = 16,
141*4882a593Smuzhiyun 	TFMT_VU_64X32 = 17,
142*4882a593Smuzhiyun 	TFMT_Y_64X32 = 18,
143*4882a593Smuzhiyun 	TFMT_NV12_64X32 = 19,
144*4882a593Smuzhiyun 	TFMT_UV_LINEAR = 20,
145*4882a593Smuzhiyun 	TFMT_VU_LINEAR = 21,
146*4882a593Smuzhiyun 	TFMT_Y_LINEAR = 22,
147*4882a593Smuzhiyun 	TFMT_NV12_LINEAR = 23,
148*4882a593Smuzhiyun 	TFMT_I420_Y = 24,
149*4882a593Smuzhiyun 	TFMT_I420_U = 26,
150*4882a593Smuzhiyun 	TFMT_I420_V = 27,
151*4882a593Smuzhiyun 	TFMT_ATC_RGB = 32,
152*4882a593Smuzhiyun 	TFMT_ATC_RGBA_EXPLICIT = 33,
153*4882a593Smuzhiyun 	TFMT_ETC1 = 34,
154*4882a593Smuzhiyun 	TFMT_ATC_RGBA_INTERPOLATED = 35,
155*4882a593Smuzhiyun 	TFMT_DXT1 = 36,
156*4882a593Smuzhiyun 	TFMT_DXT3 = 37,
157*4882a593Smuzhiyun 	TFMT_DXT5 = 38,
158*4882a593Smuzhiyun 	TFMT_2_10_10_10_UNORM = 40,
159*4882a593Smuzhiyun 	TFMT_10_10_10_2_UNORM = 41,
160*4882a593Smuzhiyun 	TFMT_9_9_9_E5_FLOAT = 42,
161*4882a593Smuzhiyun 	TFMT_11_11_10_FLOAT = 43,
162*4882a593Smuzhiyun 	TFMT_A8_UNORM = 44,
163*4882a593Smuzhiyun 	TFMT_L8_UNORM = 45,
164*4882a593Smuzhiyun 	TFMT_L8_A8_UNORM = 47,
165*4882a593Smuzhiyun 	TFMT_8_UNORM = 48,
166*4882a593Smuzhiyun 	TFMT_8_8_UNORM = 49,
167*4882a593Smuzhiyun 	TFMT_8_8_8_UNORM = 50,
168*4882a593Smuzhiyun 	TFMT_8_8_8_8_UNORM = 51,
169*4882a593Smuzhiyun 	TFMT_8_SNORM = 52,
170*4882a593Smuzhiyun 	TFMT_8_8_SNORM = 53,
171*4882a593Smuzhiyun 	TFMT_8_8_8_SNORM = 54,
172*4882a593Smuzhiyun 	TFMT_8_8_8_8_SNORM = 55,
173*4882a593Smuzhiyun 	TFMT_8_UINT = 56,
174*4882a593Smuzhiyun 	TFMT_8_8_UINT = 57,
175*4882a593Smuzhiyun 	TFMT_8_8_8_UINT = 58,
176*4882a593Smuzhiyun 	TFMT_8_8_8_8_UINT = 59,
177*4882a593Smuzhiyun 	TFMT_8_SINT = 60,
178*4882a593Smuzhiyun 	TFMT_8_8_SINT = 61,
179*4882a593Smuzhiyun 	TFMT_8_8_8_SINT = 62,
180*4882a593Smuzhiyun 	TFMT_8_8_8_8_SINT = 63,
181*4882a593Smuzhiyun 	TFMT_16_FLOAT = 64,
182*4882a593Smuzhiyun 	TFMT_16_16_FLOAT = 65,
183*4882a593Smuzhiyun 	TFMT_16_16_16_16_FLOAT = 67,
184*4882a593Smuzhiyun 	TFMT_16_UINT = 68,
185*4882a593Smuzhiyun 	TFMT_16_16_UINT = 69,
186*4882a593Smuzhiyun 	TFMT_16_16_16_16_UINT = 71,
187*4882a593Smuzhiyun 	TFMT_16_SINT = 72,
188*4882a593Smuzhiyun 	TFMT_16_16_SINT = 73,
189*4882a593Smuzhiyun 	TFMT_16_16_16_16_SINT = 75,
190*4882a593Smuzhiyun 	TFMT_16_UNORM = 76,
191*4882a593Smuzhiyun 	TFMT_16_16_UNORM = 77,
192*4882a593Smuzhiyun 	TFMT_16_16_16_16_UNORM = 79,
193*4882a593Smuzhiyun 	TFMT_16_SNORM = 80,
194*4882a593Smuzhiyun 	TFMT_16_16_SNORM = 81,
195*4882a593Smuzhiyun 	TFMT_16_16_16_16_SNORM = 83,
196*4882a593Smuzhiyun 	TFMT_32_FLOAT = 84,
197*4882a593Smuzhiyun 	TFMT_32_32_FLOAT = 85,
198*4882a593Smuzhiyun 	TFMT_32_32_32_32_FLOAT = 87,
199*4882a593Smuzhiyun 	TFMT_32_UINT = 88,
200*4882a593Smuzhiyun 	TFMT_32_32_UINT = 89,
201*4882a593Smuzhiyun 	TFMT_32_32_32_32_UINT = 91,
202*4882a593Smuzhiyun 	TFMT_32_SINT = 92,
203*4882a593Smuzhiyun 	TFMT_32_32_SINT = 93,
204*4882a593Smuzhiyun 	TFMT_32_32_32_32_SINT = 95,
205*4882a593Smuzhiyun 	TFMT_2_10_10_10_UINT = 96,
206*4882a593Smuzhiyun 	TFMT_10_10_10_2_UINT = 97,
207*4882a593Smuzhiyun 	TFMT_ETC2_RG11_SNORM = 112,
208*4882a593Smuzhiyun 	TFMT_ETC2_RG11_UNORM = 113,
209*4882a593Smuzhiyun 	TFMT_ETC2_R11_SNORM = 114,
210*4882a593Smuzhiyun 	TFMT_ETC2_R11_UNORM = 115,
211*4882a593Smuzhiyun 	TFMT_ETC2_RGBA8 = 116,
212*4882a593Smuzhiyun 	TFMT_ETC2_RGB8A1 = 117,
213*4882a593Smuzhiyun 	TFMT_ETC2_RGB8 = 118,
214*4882a593Smuzhiyun 	TFMT_NONE = 255,
215*4882a593Smuzhiyun };
216*4882a593Smuzhiyun 
217*4882a593Smuzhiyun enum a3xx_color_fmt {
218*4882a593Smuzhiyun 	RB_R5G6B5_UNORM = 0,
219*4882a593Smuzhiyun 	RB_R5G5B5A1_UNORM = 1,
220*4882a593Smuzhiyun 	RB_R4G4B4A4_UNORM = 3,
221*4882a593Smuzhiyun 	RB_R8G8B8_UNORM = 4,
222*4882a593Smuzhiyun 	RB_R8G8B8A8_UNORM = 8,
223*4882a593Smuzhiyun 	RB_R8G8B8A8_SNORM = 9,
224*4882a593Smuzhiyun 	RB_R8G8B8A8_UINT = 10,
225*4882a593Smuzhiyun 	RB_R8G8B8A8_SINT = 11,
226*4882a593Smuzhiyun 	RB_R8G8_UNORM = 12,
227*4882a593Smuzhiyun 	RB_R8G8_SNORM = 13,
228*4882a593Smuzhiyun 	RB_R8G8_UINT = 14,
229*4882a593Smuzhiyun 	RB_R8G8_SINT = 15,
230*4882a593Smuzhiyun 	RB_R10G10B10A2_UNORM = 16,
231*4882a593Smuzhiyun 	RB_A2R10G10B10_UNORM = 17,
232*4882a593Smuzhiyun 	RB_R10G10B10A2_UINT = 18,
233*4882a593Smuzhiyun 	RB_A2R10G10B10_UINT = 19,
234*4882a593Smuzhiyun 	RB_A8_UNORM = 20,
235*4882a593Smuzhiyun 	RB_R8_UNORM = 21,
236*4882a593Smuzhiyun 	RB_R16_FLOAT = 24,
237*4882a593Smuzhiyun 	RB_R16G16_FLOAT = 25,
238*4882a593Smuzhiyun 	RB_R16G16B16A16_FLOAT = 27,
239*4882a593Smuzhiyun 	RB_R11G11B10_FLOAT = 28,
240*4882a593Smuzhiyun 	RB_R16_SNORM = 32,
241*4882a593Smuzhiyun 	RB_R16G16_SNORM = 33,
242*4882a593Smuzhiyun 	RB_R16G16B16A16_SNORM = 35,
243*4882a593Smuzhiyun 	RB_R16_UNORM = 36,
244*4882a593Smuzhiyun 	RB_R16G16_UNORM = 37,
245*4882a593Smuzhiyun 	RB_R16G16B16A16_UNORM = 39,
246*4882a593Smuzhiyun 	RB_R16_SINT = 40,
247*4882a593Smuzhiyun 	RB_R16G16_SINT = 41,
248*4882a593Smuzhiyun 	RB_R16G16B16A16_SINT = 43,
249*4882a593Smuzhiyun 	RB_R16_UINT = 44,
250*4882a593Smuzhiyun 	RB_R16G16_UINT = 45,
251*4882a593Smuzhiyun 	RB_R16G16B16A16_UINT = 47,
252*4882a593Smuzhiyun 	RB_R32_FLOAT = 48,
253*4882a593Smuzhiyun 	RB_R32G32_FLOAT = 49,
254*4882a593Smuzhiyun 	RB_R32G32B32A32_FLOAT = 51,
255*4882a593Smuzhiyun 	RB_R32_SINT = 52,
256*4882a593Smuzhiyun 	RB_R32G32_SINT = 53,
257*4882a593Smuzhiyun 	RB_R32G32B32A32_SINT = 55,
258*4882a593Smuzhiyun 	RB_R32_UINT = 56,
259*4882a593Smuzhiyun 	RB_R32G32_UINT = 57,
260*4882a593Smuzhiyun 	RB_R32G32B32A32_UINT = 59,
261*4882a593Smuzhiyun 	RB_NONE = 255,
262*4882a593Smuzhiyun };
263*4882a593Smuzhiyun 
264*4882a593Smuzhiyun enum a3xx_cp_perfcounter_select {
265*4882a593Smuzhiyun 	CP_ALWAYS_COUNT = 0,
266*4882a593Smuzhiyun 	CP_AHB_PFPTRANS_WAIT = 3,
267*4882a593Smuzhiyun 	CP_AHB_NRTTRANS_WAIT = 6,
268*4882a593Smuzhiyun 	CP_CSF_NRT_READ_WAIT = 8,
269*4882a593Smuzhiyun 	CP_CSF_I1_FIFO_FULL = 9,
270*4882a593Smuzhiyun 	CP_CSF_I2_FIFO_FULL = 10,
271*4882a593Smuzhiyun 	CP_CSF_ST_FIFO_FULL = 11,
272*4882a593Smuzhiyun 	CP_RESERVED_12 = 12,
273*4882a593Smuzhiyun 	CP_CSF_RING_ROQ_FULL = 13,
274*4882a593Smuzhiyun 	CP_CSF_I1_ROQ_FULL = 14,
275*4882a593Smuzhiyun 	CP_CSF_I2_ROQ_FULL = 15,
276*4882a593Smuzhiyun 	CP_CSF_ST_ROQ_FULL = 16,
277*4882a593Smuzhiyun 	CP_RESERVED_17 = 17,
278*4882a593Smuzhiyun 	CP_MIU_TAG_MEM_FULL = 18,
279*4882a593Smuzhiyun 	CP_MIU_NRT_WRITE_STALLED = 22,
280*4882a593Smuzhiyun 	CP_MIU_NRT_READ_STALLED = 23,
281*4882a593Smuzhiyun 	CP_ME_REGS_RB_DONE_FIFO_FULL = 26,
282*4882a593Smuzhiyun 	CP_ME_REGS_VS_EVENT_FIFO_FULL = 27,
283*4882a593Smuzhiyun 	CP_ME_REGS_PS_EVENT_FIFO_FULL = 28,
284*4882a593Smuzhiyun 	CP_ME_REGS_CF_EVENT_FIFO_FULL = 29,
285*4882a593Smuzhiyun 	CP_ME_MICRO_RB_STARVED = 30,
286*4882a593Smuzhiyun 	CP_AHB_RBBM_DWORD_SENT = 40,
287*4882a593Smuzhiyun 	CP_ME_BUSY_CLOCKS = 41,
288*4882a593Smuzhiyun 	CP_ME_WAIT_CONTEXT_AVAIL = 42,
289*4882a593Smuzhiyun 	CP_PFP_TYPE0_PACKET = 43,
290*4882a593Smuzhiyun 	CP_PFP_TYPE3_PACKET = 44,
291*4882a593Smuzhiyun 	CP_CSF_RB_WPTR_NEQ_RPTR = 45,
292*4882a593Smuzhiyun 	CP_CSF_I1_SIZE_NEQ_ZERO = 46,
293*4882a593Smuzhiyun 	CP_CSF_I2_SIZE_NEQ_ZERO = 47,
294*4882a593Smuzhiyun 	CP_CSF_RBI1I2_FETCHING = 48,
295*4882a593Smuzhiyun };
296*4882a593Smuzhiyun 
297*4882a593Smuzhiyun enum a3xx_gras_tse_perfcounter_select {
298*4882a593Smuzhiyun 	GRAS_TSEPERF_INPUT_PRIM = 0,
299*4882a593Smuzhiyun 	GRAS_TSEPERF_INPUT_NULL_PRIM = 1,
300*4882a593Smuzhiyun 	GRAS_TSEPERF_TRIVAL_REJ_PRIM = 2,
301*4882a593Smuzhiyun 	GRAS_TSEPERF_CLIPPED_PRIM = 3,
302*4882a593Smuzhiyun 	GRAS_TSEPERF_NEW_PRIM = 4,
303*4882a593Smuzhiyun 	GRAS_TSEPERF_ZERO_AREA_PRIM = 5,
304*4882a593Smuzhiyun 	GRAS_TSEPERF_FACENESS_CULLED_PRIM = 6,
305*4882a593Smuzhiyun 	GRAS_TSEPERF_ZERO_PIXEL_PRIM = 7,
306*4882a593Smuzhiyun 	GRAS_TSEPERF_OUTPUT_NULL_PRIM = 8,
307*4882a593Smuzhiyun 	GRAS_TSEPERF_OUTPUT_VISIBLE_PRIM = 9,
308*4882a593Smuzhiyun 	GRAS_TSEPERF_PRE_CLIP_PRIM = 10,
309*4882a593Smuzhiyun 	GRAS_TSEPERF_POST_CLIP_PRIM = 11,
310*4882a593Smuzhiyun 	GRAS_TSEPERF_WORKING_CYCLES = 12,
311*4882a593Smuzhiyun 	GRAS_TSEPERF_PC_STARVE = 13,
312*4882a593Smuzhiyun 	GRAS_TSERASPERF_STALL = 14,
313*4882a593Smuzhiyun };
314*4882a593Smuzhiyun 
315*4882a593Smuzhiyun enum a3xx_gras_ras_perfcounter_select {
316*4882a593Smuzhiyun 	GRAS_RASPERF_16X16_TILES = 0,
317*4882a593Smuzhiyun 	GRAS_RASPERF_8X8_TILES = 1,
318*4882a593Smuzhiyun 	GRAS_RASPERF_4X4_TILES = 2,
319*4882a593Smuzhiyun 	GRAS_RASPERF_WORKING_CYCLES = 3,
320*4882a593Smuzhiyun 	GRAS_RASPERF_STALL_CYCLES_BY_RB = 4,
321*4882a593Smuzhiyun 	GRAS_RASPERF_STALL_CYCLES_BY_VSC = 5,
322*4882a593Smuzhiyun 	GRAS_RASPERF_STARVE_CYCLES_BY_TSE = 6,
323*4882a593Smuzhiyun };
324*4882a593Smuzhiyun 
325*4882a593Smuzhiyun enum a3xx_hlsq_perfcounter_select {
326*4882a593Smuzhiyun 	HLSQ_PERF_SP_VS_CONSTANT = 0,
327*4882a593Smuzhiyun 	HLSQ_PERF_SP_VS_INSTRUCTIONS = 1,
328*4882a593Smuzhiyun 	HLSQ_PERF_SP_FS_CONSTANT = 2,
329*4882a593Smuzhiyun 	HLSQ_PERF_SP_FS_INSTRUCTIONS = 3,
330*4882a593Smuzhiyun 	HLSQ_PERF_TP_STATE = 4,
331*4882a593Smuzhiyun 	HLSQ_PERF_QUADS = 5,
332*4882a593Smuzhiyun 	HLSQ_PERF_PIXELS = 6,
333*4882a593Smuzhiyun 	HLSQ_PERF_VERTICES = 7,
334*4882a593Smuzhiyun 	HLSQ_PERF_FS8_THREADS = 8,
335*4882a593Smuzhiyun 	HLSQ_PERF_FS16_THREADS = 9,
336*4882a593Smuzhiyun 	HLSQ_PERF_FS32_THREADS = 10,
337*4882a593Smuzhiyun 	HLSQ_PERF_VS8_THREADS = 11,
338*4882a593Smuzhiyun 	HLSQ_PERF_VS16_THREADS = 12,
339*4882a593Smuzhiyun 	HLSQ_PERF_SP_VS_DATA_BYTES = 13,
340*4882a593Smuzhiyun 	HLSQ_PERF_SP_FS_DATA_BYTES = 14,
341*4882a593Smuzhiyun 	HLSQ_PERF_ACTIVE_CYCLES = 15,
342*4882a593Smuzhiyun 	HLSQ_PERF_STALL_CYCLES_SP_STATE = 16,
343*4882a593Smuzhiyun 	HLSQ_PERF_STALL_CYCLES_SP_VS = 17,
344*4882a593Smuzhiyun 	HLSQ_PERF_STALL_CYCLES_SP_FS = 18,
345*4882a593Smuzhiyun 	HLSQ_PERF_STALL_CYCLES_UCHE = 19,
346*4882a593Smuzhiyun 	HLSQ_PERF_RBBM_LOAD_CYCLES = 20,
347*4882a593Smuzhiyun 	HLSQ_PERF_DI_TO_VS_START_SP0 = 21,
348*4882a593Smuzhiyun 	HLSQ_PERF_DI_TO_FS_START_SP0 = 22,
349*4882a593Smuzhiyun 	HLSQ_PERF_VS_START_TO_DONE_SP0 = 23,
350*4882a593Smuzhiyun 	HLSQ_PERF_FS_START_TO_DONE_SP0 = 24,
351*4882a593Smuzhiyun 	HLSQ_PERF_SP_STATE_COPY_CYCLES_VS = 25,
352*4882a593Smuzhiyun 	HLSQ_PERF_SP_STATE_COPY_CYCLES_FS = 26,
353*4882a593Smuzhiyun 	HLSQ_PERF_UCHE_LATENCY_CYCLES = 27,
354*4882a593Smuzhiyun 	HLSQ_PERF_UCHE_LATENCY_COUNT = 28,
355*4882a593Smuzhiyun };
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun enum a3xx_pc_perfcounter_select {
358*4882a593Smuzhiyun 	PC_PCPERF_VISIBILITY_STREAMS = 0,
359*4882a593Smuzhiyun 	PC_PCPERF_TOTAL_INSTANCES = 1,
360*4882a593Smuzhiyun 	PC_PCPERF_PRIMITIVES_PC_VPC = 2,
361*4882a593Smuzhiyun 	PC_PCPERF_PRIMITIVES_KILLED_BY_VS = 3,
362*4882a593Smuzhiyun 	PC_PCPERF_PRIMITIVES_VISIBLE_BY_VS = 4,
363*4882a593Smuzhiyun 	PC_PCPERF_DRAWCALLS_KILLED_BY_VS = 5,
364*4882a593Smuzhiyun 	PC_PCPERF_DRAWCALLS_VISIBLE_BY_VS = 6,
365*4882a593Smuzhiyun 	PC_PCPERF_VERTICES_TO_VFD = 7,
366*4882a593Smuzhiyun 	PC_PCPERF_REUSED_VERTICES = 8,
367*4882a593Smuzhiyun 	PC_PCPERF_CYCLES_STALLED_BY_VFD = 9,
368*4882a593Smuzhiyun 	PC_PCPERF_CYCLES_STALLED_BY_TSE = 10,
369*4882a593Smuzhiyun 	PC_PCPERF_CYCLES_STALLED_BY_VBIF = 11,
370*4882a593Smuzhiyun 	PC_PCPERF_CYCLES_IS_WORKING = 12,
371*4882a593Smuzhiyun };
372*4882a593Smuzhiyun 
373*4882a593Smuzhiyun enum a3xx_rb_perfcounter_select {
374*4882a593Smuzhiyun 	RB_RBPERF_ACTIVE_CYCLES_ANY = 0,
375*4882a593Smuzhiyun 	RB_RBPERF_ACTIVE_CYCLES_ALL = 1,
376*4882a593Smuzhiyun 	RB_RBPERF_STARVE_CYCLES_BY_SP = 2,
377*4882a593Smuzhiyun 	RB_RBPERF_STARVE_CYCLES_BY_RAS = 3,
378*4882a593Smuzhiyun 	RB_RBPERF_STARVE_CYCLES_BY_MARB = 4,
379*4882a593Smuzhiyun 	RB_RBPERF_STALL_CYCLES_BY_MARB = 5,
380*4882a593Smuzhiyun 	RB_RBPERF_STALL_CYCLES_BY_HLSQ = 6,
381*4882a593Smuzhiyun 	RB_RBPERF_RB_MARB_DATA = 7,
382*4882a593Smuzhiyun 	RB_RBPERF_SP_RB_QUAD = 8,
383*4882a593Smuzhiyun 	RB_RBPERF_RAS_EARLY_Z_QUADS = 9,
384*4882a593Smuzhiyun 	RB_RBPERF_GMEM_CH0_READ = 10,
385*4882a593Smuzhiyun 	RB_RBPERF_GMEM_CH1_READ = 11,
386*4882a593Smuzhiyun 	RB_RBPERF_GMEM_CH0_WRITE = 12,
387*4882a593Smuzhiyun 	RB_RBPERF_GMEM_CH1_WRITE = 13,
388*4882a593Smuzhiyun 	RB_RBPERF_CP_CONTEXT_DONE = 14,
389*4882a593Smuzhiyun 	RB_RBPERF_CP_CACHE_FLUSH = 15,
390*4882a593Smuzhiyun 	RB_RBPERF_CP_ZPASS_DONE = 16,
391*4882a593Smuzhiyun };
392*4882a593Smuzhiyun 
393*4882a593Smuzhiyun enum a3xx_rbbm_perfcounter_select {
394*4882a593Smuzhiyun 	RBBM_ALAWYS_ON = 0,
395*4882a593Smuzhiyun 	RBBM_VBIF_BUSY = 1,
396*4882a593Smuzhiyun 	RBBM_TSE_BUSY = 2,
397*4882a593Smuzhiyun 	RBBM_RAS_BUSY = 3,
398*4882a593Smuzhiyun 	RBBM_PC_DCALL_BUSY = 4,
399*4882a593Smuzhiyun 	RBBM_PC_VSD_BUSY = 5,
400*4882a593Smuzhiyun 	RBBM_VFD_BUSY = 6,
401*4882a593Smuzhiyun 	RBBM_VPC_BUSY = 7,
402*4882a593Smuzhiyun 	RBBM_UCHE_BUSY = 8,
403*4882a593Smuzhiyun 	RBBM_VSC_BUSY = 9,
404*4882a593Smuzhiyun 	RBBM_HLSQ_BUSY = 10,
405*4882a593Smuzhiyun 	RBBM_ANY_RB_BUSY = 11,
406*4882a593Smuzhiyun 	RBBM_ANY_TEX_BUSY = 12,
407*4882a593Smuzhiyun 	RBBM_ANY_USP_BUSY = 13,
408*4882a593Smuzhiyun 	RBBM_ANY_MARB_BUSY = 14,
409*4882a593Smuzhiyun 	RBBM_ANY_ARB_BUSY = 15,
410*4882a593Smuzhiyun 	RBBM_AHB_STATUS_BUSY = 16,
411*4882a593Smuzhiyun 	RBBM_AHB_STATUS_STALLED = 17,
412*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR = 18,
413*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR_SPLIT = 19,
414*4882a593Smuzhiyun 	RBBM_AHB_STATUS_TXFR_ERROR = 20,
415*4882a593Smuzhiyun 	RBBM_AHB_STATUS_LONG_STALL = 21,
416*4882a593Smuzhiyun 	RBBM_RBBM_STATUS_MASKED = 22,
417*4882a593Smuzhiyun };
418*4882a593Smuzhiyun 
419*4882a593Smuzhiyun enum a3xx_sp_perfcounter_select {
420*4882a593Smuzhiyun 	SP_LM_LOAD_INSTRUCTIONS = 0,
421*4882a593Smuzhiyun 	SP_LM_STORE_INSTRUCTIONS = 1,
422*4882a593Smuzhiyun 	SP_LM_ATOMICS = 2,
423*4882a593Smuzhiyun 	SP_UCHE_LOAD_INSTRUCTIONS = 3,
424*4882a593Smuzhiyun 	SP_UCHE_STORE_INSTRUCTIONS = 4,
425*4882a593Smuzhiyun 	SP_UCHE_ATOMICS = 5,
426*4882a593Smuzhiyun 	SP_VS_TEX_INSTRUCTIONS = 6,
427*4882a593Smuzhiyun 	SP_VS_CFLOW_INSTRUCTIONS = 7,
428*4882a593Smuzhiyun 	SP_VS_EFU_INSTRUCTIONS = 8,
429*4882a593Smuzhiyun 	SP_VS_FULL_ALU_INSTRUCTIONS = 9,
430*4882a593Smuzhiyun 	SP_VS_HALF_ALU_INSTRUCTIONS = 10,
431*4882a593Smuzhiyun 	SP_FS_TEX_INSTRUCTIONS = 11,
432*4882a593Smuzhiyun 	SP_FS_CFLOW_INSTRUCTIONS = 12,
433*4882a593Smuzhiyun 	SP_FS_EFU_INSTRUCTIONS = 13,
434*4882a593Smuzhiyun 	SP_FS_FULL_ALU_INSTRUCTIONS = 14,
435*4882a593Smuzhiyun 	SP_FS_HALF_ALU_INSTRUCTIONS = 15,
436*4882a593Smuzhiyun 	SP_FS_BARY_INSTRUCTIONS = 16,
437*4882a593Smuzhiyun 	SP_VS_INSTRUCTIONS = 17,
438*4882a593Smuzhiyun 	SP_FS_INSTRUCTIONS = 18,
439*4882a593Smuzhiyun 	SP_ADDR_LOCK_COUNT = 19,
440*4882a593Smuzhiyun 	SP_UCHE_READ_TRANS = 20,
441*4882a593Smuzhiyun 	SP_UCHE_WRITE_TRANS = 21,
442*4882a593Smuzhiyun 	SP_EXPORT_VPC_TRANS = 22,
443*4882a593Smuzhiyun 	SP_EXPORT_RB_TRANS = 23,
444*4882a593Smuzhiyun 	SP_PIXELS_KILLED = 24,
445*4882a593Smuzhiyun 	SP_ICL1_REQUESTS = 25,
446*4882a593Smuzhiyun 	SP_ICL1_MISSES = 26,
447*4882a593Smuzhiyun 	SP_ICL0_REQUESTS = 27,
448*4882a593Smuzhiyun 	SP_ICL0_MISSES = 28,
449*4882a593Smuzhiyun 	SP_ALU_ACTIVE_CYCLES = 29,
450*4882a593Smuzhiyun 	SP_EFU_ACTIVE_CYCLES = 30,
451*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_VPC = 31,
452*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_TP = 32,
453*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_UCHE = 33,
454*4882a593Smuzhiyun 	SP_STALL_CYCLES_BY_RB = 34,
455*4882a593Smuzhiyun 	SP_ACTIVE_CYCLES_ANY = 35,
456*4882a593Smuzhiyun 	SP_ACTIVE_CYCLES_ALL = 36,
457*4882a593Smuzhiyun };
458*4882a593Smuzhiyun 
459*4882a593Smuzhiyun enum a3xx_tp_perfcounter_select {
460*4882a593Smuzhiyun 	TPL1_TPPERF_L1_REQUESTS = 0,
461*4882a593Smuzhiyun 	TPL1_TPPERF_TP0_L1_REQUESTS = 1,
462*4882a593Smuzhiyun 	TPL1_TPPERF_TP0_L1_MISSES = 2,
463*4882a593Smuzhiyun 	TPL1_TPPERF_TP1_L1_REQUESTS = 3,
464*4882a593Smuzhiyun 	TPL1_TPPERF_TP1_L1_MISSES = 4,
465*4882a593Smuzhiyun 	TPL1_TPPERF_TP2_L1_REQUESTS = 5,
466*4882a593Smuzhiyun 	TPL1_TPPERF_TP2_L1_MISSES = 6,
467*4882a593Smuzhiyun 	TPL1_TPPERF_TP3_L1_REQUESTS = 7,
468*4882a593Smuzhiyun 	TPL1_TPPERF_TP3_L1_MISSES = 8,
469*4882a593Smuzhiyun 	TPL1_TPPERF_OUTPUT_TEXELS_POINT = 9,
470*4882a593Smuzhiyun 	TPL1_TPPERF_OUTPUT_TEXELS_BILINEAR = 10,
471*4882a593Smuzhiyun 	TPL1_TPPERF_OUTPUT_TEXELS_MIP = 11,
472*4882a593Smuzhiyun 	TPL1_TPPERF_OUTPUT_TEXELS_ANISO = 12,
473*4882a593Smuzhiyun 	TPL1_TPPERF_BILINEAR_OPS = 13,
474*4882a593Smuzhiyun 	TPL1_TPPERF_QUADSQUADS_OFFSET = 14,
475*4882a593Smuzhiyun 	TPL1_TPPERF_QUADQUADS_SHADOW = 15,
476*4882a593Smuzhiyun 	TPL1_TPPERF_QUADS_ARRAY = 16,
477*4882a593Smuzhiyun 	TPL1_TPPERF_QUADS_PROJECTION = 17,
478*4882a593Smuzhiyun 	TPL1_TPPERF_QUADS_GRADIENT = 18,
479*4882a593Smuzhiyun 	TPL1_TPPERF_QUADS_1D2D = 19,
480*4882a593Smuzhiyun 	TPL1_TPPERF_QUADS_3DCUBE = 20,
481*4882a593Smuzhiyun 	TPL1_TPPERF_ZERO_LOD = 21,
482*4882a593Smuzhiyun 	TPL1_TPPERF_OUTPUT_TEXELS = 22,
483*4882a593Smuzhiyun 	TPL1_TPPERF_ACTIVE_CYCLES_ANY = 23,
484*4882a593Smuzhiyun 	TPL1_TPPERF_ACTIVE_CYCLES_ALL = 24,
485*4882a593Smuzhiyun 	TPL1_TPPERF_STALL_CYCLES_BY_ARB = 25,
486*4882a593Smuzhiyun 	TPL1_TPPERF_LATENCY = 26,
487*4882a593Smuzhiyun 	TPL1_TPPERF_LATENCY_TRANS = 27,
488*4882a593Smuzhiyun };
489*4882a593Smuzhiyun 
490*4882a593Smuzhiyun enum a3xx_vfd_perfcounter_select {
491*4882a593Smuzhiyun 	VFD_PERF_UCHE_BYTE_FETCHED = 0,
492*4882a593Smuzhiyun 	VFD_PERF_UCHE_TRANS = 1,
493*4882a593Smuzhiyun 	VFD_PERF_VPC_BYPASS_COMPONENTS = 2,
494*4882a593Smuzhiyun 	VFD_PERF_FETCH_INSTRUCTIONS = 3,
495*4882a593Smuzhiyun 	VFD_PERF_DECODE_INSTRUCTIONS = 4,
496*4882a593Smuzhiyun 	VFD_PERF_ACTIVE_CYCLES = 5,
497*4882a593Smuzhiyun 	VFD_PERF_STALL_CYCLES_UCHE = 6,
498*4882a593Smuzhiyun 	VFD_PERF_STALL_CYCLES_HLSQ = 7,
499*4882a593Smuzhiyun 	VFD_PERF_STALL_CYCLES_VPC_BYPASS = 8,
500*4882a593Smuzhiyun 	VFD_PERF_STALL_CYCLES_VPC_ALLOC = 9,
501*4882a593Smuzhiyun };
502*4882a593Smuzhiyun 
503*4882a593Smuzhiyun enum a3xx_vpc_perfcounter_select {
504*4882a593Smuzhiyun 	VPC_PERF_SP_LM_PRIMITIVES = 0,
505*4882a593Smuzhiyun 	VPC_PERF_COMPONENTS_FROM_SP = 1,
506*4882a593Smuzhiyun 	VPC_PERF_SP_LM_COMPONENTS = 2,
507*4882a593Smuzhiyun 	VPC_PERF_ACTIVE_CYCLES = 3,
508*4882a593Smuzhiyun 	VPC_PERF_STALL_CYCLES_LM = 4,
509*4882a593Smuzhiyun 	VPC_PERF_STALL_CYCLES_RAS = 5,
510*4882a593Smuzhiyun };
511*4882a593Smuzhiyun 
512*4882a593Smuzhiyun enum a3xx_uche_perfcounter_select {
513*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_READ_BEATS_TP = 0,
514*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_READ_BEATS_VFD = 1,
515*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_READ_BEATS_HLSQ = 2,
516*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_READ_BEATS_MARB = 3,
517*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_READ_BEATS_SP = 4,
518*4882a593Smuzhiyun 	UCHE_UCHEPERF_READ_REQUESTS_TP = 8,
519*4882a593Smuzhiyun 	UCHE_UCHEPERF_READ_REQUESTS_VFD = 9,
520*4882a593Smuzhiyun 	UCHE_UCHEPERF_READ_REQUESTS_HLSQ = 10,
521*4882a593Smuzhiyun 	UCHE_UCHEPERF_READ_REQUESTS_MARB = 11,
522*4882a593Smuzhiyun 	UCHE_UCHEPERF_READ_REQUESTS_SP = 12,
523*4882a593Smuzhiyun 	UCHE_UCHEPERF_WRITE_REQUESTS_MARB = 13,
524*4882a593Smuzhiyun 	UCHE_UCHEPERF_WRITE_REQUESTS_SP = 14,
525*4882a593Smuzhiyun 	UCHE_UCHEPERF_TAG_CHECK_FAILS = 15,
526*4882a593Smuzhiyun 	UCHE_UCHEPERF_EVICTS = 16,
527*4882a593Smuzhiyun 	UCHE_UCHEPERF_FLUSHES = 17,
528*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_LATENCY_CYCLES = 18,
529*4882a593Smuzhiyun 	UCHE_UCHEPERF_VBIF_LATENCY_SAMPLES = 19,
530*4882a593Smuzhiyun 	UCHE_UCHEPERF_ACTIVE_CYCLES = 20,
531*4882a593Smuzhiyun };
532*4882a593Smuzhiyun 
533*4882a593Smuzhiyun enum a3xx_intp_mode {
534*4882a593Smuzhiyun 	SMOOTH = 0,
535*4882a593Smuzhiyun 	FLAT = 1,
536*4882a593Smuzhiyun 	ZERO = 2,
537*4882a593Smuzhiyun 	ONE = 3,
538*4882a593Smuzhiyun };
539*4882a593Smuzhiyun 
540*4882a593Smuzhiyun enum a3xx_repl_mode {
541*4882a593Smuzhiyun 	S = 1,
542*4882a593Smuzhiyun 	T = 2,
543*4882a593Smuzhiyun 	ONE_T = 3,
544*4882a593Smuzhiyun };
545*4882a593Smuzhiyun 
546*4882a593Smuzhiyun enum a3xx_tex_filter {
547*4882a593Smuzhiyun 	A3XX_TEX_NEAREST = 0,
548*4882a593Smuzhiyun 	A3XX_TEX_LINEAR = 1,
549*4882a593Smuzhiyun 	A3XX_TEX_ANISO = 2,
550*4882a593Smuzhiyun };
551*4882a593Smuzhiyun 
552*4882a593Smuzhiyun enum a3xx_tex_clamp {
553*4882a593Smuzhiyun 	A3XX_TEX_REPEAT = 0,
554*4882a593Smuzhiyun 	A3XX_TEX_CLAMP_TO_EDGE = 1,
555*4882a593Smuzhiyun 	A3XX_TEX_MIRROR_REPEAT = 2,
556*4882a593Smuzhiyun 	A3XX_TEX_CLAMP_TO_BORDER = 3,
557*4882a593Smuzhiyun 	A3XX_TEX_MIRROR_CLAMP = 4,
558*4882a593Smuzhiyun };
559*4882a593Smuzhiyun 
560*4882a593Smuzhiyun enum a3xx_tex_aniso {
561*4882a593Smuzhiyun 	A3XX_TEX_ANISO_1 = 0,
562*4882a593Smuzhiyun 	A3XX_TEX_ANISO_2 = 1,
563*4882a593Smuzhiyun 	A3XX_TEX_ANISO_4 = 2,
564*4882a593Smuzhiyun 	A3XX_TEX_ANISO_8 = 3,
565*4882a593Smuzhiyun 	A3XX_TEX_ANISO_16 = 4,
566*4882a593Smuzhiyun };
567*4882a593Smuzhiyun 
568*4882a593Smuzhiyun enum a3xx_tex_swiz {
569*4882a593Smuzhiyun 	A3XX_TEX_X = 0,
570*4882a593Smuzhiyun 	A3XX_TEX_Y = 1,
571*4882a593Smuzhiyun 	A3XX_TEX_Z = 2,
572*4882a593Smuzhiyun 	A3XX_TEX_W = 3,
573*4882a593Smuzhiyun 	A3XX_TEX_ZERO = 4,
574*4882a593Smuzhiyun 	A3XX_TEX_ONE = 5,
575*4882a593Smuzhiyun };
576*4882a593Smuzhiyun 
577*4882a593Smuzhiyun enum a3xx_tex_type {
578*4882a593Smuzhiyun 	A3XX_TEX_1D = 0,
579*4882a593Smuzhiyun 	A3XX_TEX_2D = 1,
580*4882a593Smuzhiyun 	A3XX_TEX_CUBE = 2,
581*4882a593Smuzhiyun 	A3XX_TEX_3D = 3,
582*4882a593Smuzhiyun };
583*4882a593Smuzhiyun 
584*4882a593Smuzhiyun enum a3xx_tex_msaa {
585*4882a593Smuzhiyun 	A3XX_TPL1_MSAA1X = 0,
586*4882a593Smuzhiyun 	A3XX_TPL1_MSAA2X = 1,
587*4882a593Smuzhiyun 	A3XX_TPL1_MSAA4X = 2,
588*4882a593Smuzhiyun 	A3XX_TPL1_MSAA8X = 3,
589*4882a593Smuzhiyun };
590*4882a593Smuzhiyun 
591*4882a593Smuzhiyun #define A3XX_INT0_RBBM_GPU_IDLE					0x00000001
592*4882a593Smuzhiyun #define A3XX_INT0_RBBM_AHB_ERROR				0x00000002
593*4882a593Smuzhiyun #define A3XX_INT0_RBBM_REG_TIMEOUT				0x00000004
594*4882a593Smuzhiyun #define A3XX_INT0_RBBM_ME_MS_TIMEOUT				0x00000008
595*4882a593Smuzhiyun #define A3XX_INT0_RBBM_PFP_MS_TIMEOUT				0x00000010
596*4882a593Smuzhiyun #define A3XX_INT0_RBBM_ATB_BUS_OVERFLOW				0x00000020
597*4882a593Smuzhiyun #define A3XX_INT0_VFD_ERROR					0x00000040
598*4882a593Smuzhiyun #define A3XX_INT0_CP_SW_INT					0x00000080
599*4882a593Smuzhiyun #define A3XX_INT0_CP_T0_PACKET_IN_IB				0x00000100
600*4882a593Smuzhiyun #define A3XX_INT0_CP_OPCODE_ERROR				0x00000200
601*4882a593Smuzhiyun #define A3XX_INT0_CP_RESERVED_BIT_ERROR				0x00000400
602*4882a593Smuzhiyun #define A3XX_INT0_CP_HW_FAULT					0x00000800
603*4882a593Smuzhiyun #define A3XX_INT0_CP_DMA					0x00001000
604*4882a593Smuzhiyun #define A3XX_INT0_CP_IB2_INT					0x00002000
605*4882a593Smuzhiyun #define A3XX_INT0_CP_IB1_INT					0x00004000
606*4882a593Smuzhiyun #define A3XX_INT0_CP_RB_INT					0x00008000
607*4882a593Smuzhiyun #define A3XX_INT0_CP_REG_PROTECT_FAULT				0x00010000
608*4882a593Smuzhiyun #define A3XX_INT0_CP_RB_DONE_TS					0x00020000
609*4882a593Smuzhiyun #define A3XX_INT0_CP_VS_DONE_TS					0x00040000
610*4882a593Smuzhiyun #define A3XX_INT0_CP_PS_DONE_TS					0x00080000
611*4882a593Smuzhiyun #define A3XX_INT0_CACHE_FLUSH_TS				0x00100000
612*4882a593Smuzhiyun #define A3XX_INT0_CP_AHB_ERROR_HALT				0x00200000
613*4882a593Smuzhiyun #define A3XX_INT0_MISC_HANG_DETECT				0x01000000
614*4882a593Smuzhiyun #define A3XX_INT0_UCHE_OOB_ACCESS				0x02000000
615*4882a593Smuzhiyun #define REG_A3XX_RBBM_HW_VERSION				0x00000000
616*4882a593Smuzhiyun 
617*4882a593Smuzhiyun #define REG_A3XX_RBBM_HW_RELEASE				0x00000001
618*4882a593Smuzhiyun 
619*4882a593Smuzhiyun #define REG_A3XX_RBBM_HW_CONFIGURATION				0x00000002
620*4882a593Smuzhiyun 
621*4882a593Smuzhiyun #define REG_A3XX_RBBM_CLOCK_CTL					0x00000010
622*4882a593Smuzhiyun 
623*4882a593Smuzhiyun #define REG_A3XX_RBBM_SP_HYST_CNT				0x00000012
624*4882a593Smuzhiyun 
625*4882a593Smuzhiyun #define REG_A3XX_RBBM_SW_RESET_CMD				0x00000018
626*4882a593Smuzhiyun 
627*4882a593Smuzhiyun #define REG_A3XX_RBBM_AHB_CTL0					0x00000020
628*4882a593Smuzhiyun 
629*4882a593Smuzhiyun #define REG_A3XX_RBBM_AHB_CTL1					0x00000021
630*4882a593Smuzhiyun 
631*4882a593Smuzhiyun #define REG_A3XX_RBBM_AHB_CMD					0x00000022
632*4882a593Smuzhiyun 
633*4882a593Smuzhiyun #define REG_A3XX_RBBM_AHB_ERROR_STATUS				0x00000027
634*4882a593Smuzhiyun 
635*4882a593Smuzhiyun #define REG_A3XX_RBBM_GPR0_CTL					0x0000002e
636*4882a593Smuzhiyun 
637*4882a593Smuzhiyun #define REG_A3XX_RBBM_STATUS					0x00000030
638*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_HI_BUSY				0x00000001
639*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_CP_ME_BUSY				0x00000002
640*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_CP_PFP_BUSY				0x00000004
641*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_CP_NRT_BUSY				0x00004000
642*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_VBIF_BUSY				0x00008000
643*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_TSE_BUSY				0x00010000
644*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_RAS_BUSY				0x00020000
645*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_RB_BUSY				0x00040000
646*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_PC_DCALL_BUSY				0x00080000
647*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_PC_VSD_BUSY				0x00100000
648*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_VFD_BUSY				0x00200000
649*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_VPC_BUSY				0x00400000
650*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_UCHE_BUSY				0x00800000
651*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_SP_BUSY				0x01000000
652*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_TPL1_BUSY				0x02000000
653*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_MARB_BUSY				0x04000000
654*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_VSC_BUSY				0x08000000
655*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_ARB_BUSY				0x10000000
656*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_HLSQ_BUSY				0x20000000
657*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_GPU_BUSY_NOHC				0x40000000
658*4882a593Smuzhiyun #define A3XX_RBBM_STATUS_GPU_BUSY				0x80000000
659*4882a593Smuzhiyun 
660*4882a593Smuzhiyun #define REG_A3XX_RBBM_NQWAIT_UNTIL				0x00000040
661*4882a593Smuzhiyun 
662*4882a593Smuzhiyun #define REG_A3XX_RBBM_WAIT_IDLE_CLOCKS_CTL			0x00000033
663*4882a593Smuzhiyun 
664*4882a593Smuzhiyun #define REG_A3XX_RBBM_INTERFACE_HANG_INT_CTL			0x00000050
665*4882a593Smuzhiyun 
666*4882a593Smuzhiyun #define REG_A3XX_RBBM_INTERFACE_HANG_MASK_CTL0			0x00000051
667*4882a593Smuzhiyun 
668*4882a593Smuzhiyun #define REG_A3XX_RBBM_INTERFACE_HANG_MASK_CTL1			0x00000054
669*4882a593Smuzhiyun 
670*4882a593Smuzhiyun #define REG_A3XX_RBBM_INTERFACE_HANG_MASK_CTL2			0x00000057
671*4882a593Smuzhiyun 
672*4882a593Smuzhiyun #define REG_A3XX_RBBM_INTERFACE_HANG_MASK_CTL3			0x0000005a
673*4882a593Smuzhiyun 
674*4882a593Smuzhiyun #define REG_A3XX_RBBM_INT_SET_CMD				0x00000060
675*4882a593Smuzhiyun 
676*4882a593Smuzhiyun #define REG_A3XX_RBBM_INT_CLEAR_CMD				0x00000061
677*4882a593Smuzhiyun 
678*4882a593Smuzhiyun #define REG_A3XX_RBBM_INT_0_MASK				0x00000063
679*4882a593Smuzhiyun 
680*4882a593Smuzhiyun #define REG_A3XX_RBBM_INT_0_STATUS				0x00000064
681*4882a593Smuzhiyun 
682*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_CTL				0x00000080
683*4882a593Smuzhiyun #define A3XX_RBBM_PERFCTR_CTL_ENABLE				0x00000001
684*4882a593Smuzhiyun 
685*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_LOAD_CMD0				0x00000081
686*4882a593Smuzhiyun 
687*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_LOAD_CMD1				0x00000082
688*4882a593Smuzhiyun 
689*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_LOAD_VALUE_LO			0x00000084
690*4882a593Smuzhiyun 
691*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_LOAD_VALUE_HI			0x00000085
692*4882a593Smuzhiyun 
693*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCOUNTER0_SELECT			0x00000086
694*4882a593Smuzhiyun 
695*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCOUNTER1_SELECT			0x00000087
696*4882a593Smuzhiyun 
697*4882a593Smuzhiyun #define REG_A3XX_RBBM_GPU_BUSY_MASKED				0x00000088
698*4882a593Smuzhiyun 
699*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_CP_0_LO				0x00000090
700*4882a593Smuzhiyun 
701*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_CP_0_HI				0x00000091
702*4882a593Smuzhiyun 
703*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RBBM_0_LO				0x00000092
704*4882a593Smuzhiyun 
705*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RBBM_0_HI				0x00000093
706*4882a593Smuzhiyun 
707*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RBBM_1_LO				0x00000094
708*4882a593Smuzhiyun 
709*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RBBM_1_HI				0x00000095
710*4882a593Smuzhiyun 
711*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_0_LO				0x00000096
712*4882a593Smuzhiyun 
713*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_0_HI				0x00000097
714*4882a593Smuzhiyun 
715*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_1_LO				0x00000098
716*4882a593Smuzhiyun 
717*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_1_HI				0x00000099
718*4882a593Smuzhiyun 
719*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_2_LO				0x0000009a
720*4882a593Smuzhiyun 
721*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_2_HI				0x0000009b
722*4882a593Smuzhiyun 
723*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_3_LO				0x0000009c
724*4882a593Smuzhiyun 
725*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PC_3_HI				0x0000009d
726*4882a593Smuzhiyun 
727*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VFD_0_LO				0x0000009e
728*4882a593Smuzhiyun 
729*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VFD_0_HI				0x0000009f
730*4882a593Smuzhiyun 
731*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VFD_1_LO				0x000000a0
732*4882a593Smuzhiyun 
733*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VFD_1_HI				0x000000a1
734*4882a593Smuzhiyun 
735*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_0_LO				0x000000a2
736*4882a593Smuzhiyun 
737*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_0_HI				0x000000a3
738*4882a593Smuzhiyun 
739*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_1_LO				0x000000a4
740*4882a593Smuzhiyun 
741*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_1_HI				0x000000a5
742*4882a593Smuzhiyun 
743*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_2_LO				0x000000a6
744*4882a593Smuzhiyun 
745*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_2_HI				0x000000a7
746*4882a593Smuzhiyun 
747*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_3_LO				0x000000a8
748*4882a593Smuzhiyun 
749*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_3_HI				0x000000a9
750*4882a593Smuzhiyun 
751*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_4_LO				0x000000aa
752*4882a593Smuzhiyun 
753*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_4_HI				0x000000ab
754*4882a593Smuzhiyun 
755*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_5_LO				0x000000ac
756*4882a593Smuzhiyun 
757*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_HLSQ_5_HI				0x000000ad
758*4882a593Smuzhiyun 
759*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VPC_0_LO				0x000000ae
760*4882a593Smuzhiyun 
761*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VPC_0_HI				0x000000af
762*4882a593Smuzhiyun 
763*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VPC_1_LO				0x000000b0
764*4882a593Smuzhiyun 
765*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_VPC_1_HI				0x000000b1
766*4882a593Smuzhiyun 
767*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TSE_0_LO				0x000000b2
768*4882a593Smuzhiyun 
769*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TSE_0_HI				0x000000b3
770*4882a593Smuzhiyun 
771*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TSE_1_LO				0x000000b4
772*4882a593Smuzhiyun 
773*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TSE_1_HI				0x000000b5
774*4882a593Smuzhiyun 
775*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RAS_0_LO				0x000000b6
776*4882a593Smuzhiyun 
777*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RAS_0_HI				0x000000b7
778*4882a593Smuzhiyun 
779*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RAS_1_LO				0x000000b8
780*4882a593Smuzhiyun 
781*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RAS_1_HI				0x000000b9
782*4882a593Smuzhiyun 
783*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_0_LO				0x000000ba
784*4882a593Smuzhiyun 
785*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_0_HI				0x000000bb
786*4882a593Smuzhiyun 
787*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_1_LO				0x000000bc
788*4882a593Smuzhiyun 
789*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_1_HI				0x000000bd
790*4882a593Smuzhiyun 
791*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_2_LO				0x000000be
792*4882a593Smuzhiyun 
793*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_2_HI				0x000000bf
794*4882a593Smuzhiyun 
795*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_3_LO				0x000000c0
796*4882a593Smuzhiyun 
797*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_3_HI				0x000000c1
798*4882a593Smuzhiyun 
799*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_4_LO				0x000000c2
800*4882a593Smuzhiyun 
801*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_4_HI				0x000000c3
802*4882a593Smuzhiyun 
803*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_5_LO				0x000000c4
804*4882a593Smuzhiyun 
805*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_UCHE_5_HI				0x000000c5
806*4882a593Smuzhiyun 
807*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_0_LO				0x000000c6
808*4882a593Smuzhiyun 
809*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_0_HI				0x000000c7
810*4882a593Smuzhiyun 
811*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_1_LO				0x000000c8
812*4882a593Smuzhiyun 
813*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_1_HI				0x000000c9
814*4882a593Smuzhiyun 
815*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_2_LO				0x000000ca
816*4882a593Smuzhiyun 
817*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_2_HI				0x000000cb
818*4882a593Smuzhiyun 
819*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_3_LO				0x000000cc
820*4882a593Smuzhiyun 
821*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_3_HI				0x000000cd
822*4882a593Smuzhiyun 
823*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_4_LO				0x000000ce
824*4882a593Smuzhiyun 
825*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_4_HI				0x000000cf
826*4882a593Smuzhiyun 
827*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_5_LO				0x000000d0
828*4882a593Smuzhiyun 
829*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_TP_5_HI				0x000000d1
830*4882a593Smuzhiyun 
831*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_0_LO				0x000000d2
832*4882a593Smuzhiyun 
833*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_0_HI				0x000000d3
834*4882a593Smuzhiyun 
835*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_1_LO				0x000000d4
836*4882a593Smuzhiyun 
837*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_1_HI				0x000000d5
838*4882a593Smuzhiyun 
839*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_2_LO				0x000000d6
840*4882a593Smuzhiyun 
841*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_2_HI				0x000000d7
842*4882a593Smuzhiyun 
843*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_3_LO				0x000000d8
844*4882a593Smuzhiyun 
845*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_3_HI				0x000000d9
846*4882a593Smuzhiyun 
847*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_4_LO				0x000000da
848*4882a593Smuzhiyun 
849*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_4_HI				0x000000db
850*4882a593Smuzhiyun 
851*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_5_LO				0x000000dc
852*4882a593Smuzhiyun 
853*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_5_HI				0x000000dd
854*4882a593Smuzhiyun 
855*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_6_LO				0x000000de
856*4882a593Smuzhiyun 
857*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_6_HI				0x000000df
858*4882a593Smuzhiyun 
859*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_7_LO				0x000000e0
860*4882a593Smuzhiyun 
861*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_SP_7_HI				0x000000e1
862*4882a593Smuzhiyun 
863*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RB_0_LO				0x000000e2
864*4882a593Smuzhiyun 
865*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RB_0_HI				0x000000e3
866*4882a593Smuzhiyun 
867*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RB_1_LO				0x000000e4
868*4882a593Smuzhiyun 
869*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_RB_1_HI				0x000000e5
870*4882a593Smuzhiyun 
871*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PWR_0_LO				0x000000ea
872*4882a593Smuzhiyun 
873*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PWR_0_HI				0x000000eb
874*4882a593Smuzhiyun 
875*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PWR_1_LO				0x000000ec
876*4882a593Smuzhiyun 
877*4882a593Smuzhiyun #define REG_A3XX_RBBM_PERFCTR_PWR_1_HI				0x000000ed
878*4882a593Smuzhiyun 
879*4882a593Smuzhiyun #define REG_A3XX_RBBM_RBBM_CTL					0x00000100
880*4882a593Smuzhiyun 
881*4882a593Smuzhiyun #define REG_A3XX_RBBM_DEBUG_BUS_CTL				0x00000111
882*4882a593Smuzhiyun 
883*4882a593Smuzhiyun #define REG_A3XX_RBBM_DEBUG_BUS_DATA_STATUS			0x00000112
884*4882a593Smuzhiyun 
885*4882a593Smuzhiyun #define REG_A3XX_CP_PFP_UCODE_ADDR				0x000001c9
886*4882a593Smuzhiyun 
887*4882a593Smuzhiyun #define REG_A3XX_CP_PFP_UCODE_DATA				0x000001ca
888*4882a593Smuzhiyun 
889*4882a593Smuzhiyun #define REG_A3XX_CP_ROQ_ADDR					0x000001cc
890*4882a593Smuzhiyun 
891*4882a593Smuzhiyun #define REG_A3XX_CP_ROQ_DATA					0x000001cd
892*4882a593Smuzhiyun 
893*4882a593Smuzhiyun #define REG_A3XX_CP_MERCIU_ADDR					0x000001d1
894*4882a593Smuzhiyun 
895*4882a593Smuzhiyun #define REG_A3XX_CP_MERCIU_DATA					0x000001d2
896*4882a593Smuzhiyun 
897*4882a593Smuzhiyun #define REG_A3XX_CP_MERCIU_DATA2				0x000001d3
898*4882a593Smuzhiyun 
899*4882a593Smuzhiyun #define REG_A3XX_CP_MEQ_ADDR					0x000001da
900*4882a593Smuzhiyun 
901*4882a593Smuzhiyun #define REG_A3XX_CP_MEQ_DATA					0x000001db
902*4882a593Smuzhiyun 
903*4882a593Smuzhiyun #define REG_A3XX_CP_WFI_PEND_CTR				0x000001f5
904*4882a593Smuzhiyun 
905*4882a593Smuzhiyun #define REG_A3XX_RBBM_PM_OVERRIDE2				0x0000039d
906*4882a593Smuzhiyun 
907*4882a593Smuzhiyun #define REG_A3XX_CP_PERFCOUNTER_SELECT				0x00000445
908*4882a593Smuzhiyun 
909*4882a593Smuzhiyun #define REG_A3XX_CP_HW_FAULT					0x0000045c
910*4882a593Smuzhiyun 
911*4882a593Smuzhiyun #define REG_A3XX_CP_PROTECT_CTRL				0x0000045e
912*4882a593Smuzhiyun 
913*4882a593Smuzhiyun #define REG_A3XX_CP_PROTECT_STATUS				0x0000045f
914*4882a593Smuzhiyun 
REG_A3XX_CP_PROTECT(uint32_t i0)915*4882a593Smuzhiyun static inline uint32_t REG_A3XX_CP_PROTECT(uint32_t i0) { return 0x00000460 + 0x1*i0; }
916*4882a593Smuzhiyun 
REG_A3XX_CP_PROTECT_REG(uint32_t i0)917*4882a593Smuzhiyun static inline uint32_t REG_A3XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000460 + 0x1*i0; }
918*4882a593Smuzhiyun 
919*4882a593Smuzhiyun #define REG_A3XX_CP_AHB_FAULT					0x0000054d
920*4882a593Smuzhiyun 
921*4882a593Smuzhiyun #define REG_A3XX_SQ_GPR_MANAGEMENT				0x00000d00
922*4882a593Smuzhiyun 
923*4882a593Smuzhiyun #define REG_A3XX_SQ_INST_STORE_MANAGMENT			0x00000d02
924*4882a593Smuzhiyun 
925*4882a593Smuzhiyun #define REG_A3XX_TP0_CHICKEN					0x00000e1e
926*4882a593Smuzhiyun 
927*4882a593Smuzhiyun #define REG_A3XX_SP_GLOBAL_MEM_SIZE				0x00000e22
928*4882a593Smuzhiyun 
929*4882a593Smuzhiyun #define REG_A3XX_SP_GLOBAL_MEM_ADDR				0x00000e23
930*4882a593Smuzhiyun 
931*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_CLIP_CNTL				0x00002040
932*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTER			0x00001000
933*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_IJ_NON_PERSP_CENTER		0x00002000
934*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTROID		0x00004000
935*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_IJ_NON_PERSP_CENTROID		0x00008000
936*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE			0x00010000
937*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_ZFAR_CLIP_DISABLE		0x00020000
938*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_VP_CLIP_CODE_IGNORE		0x00080000
939*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_VP_XFORM_DISABLE			0x00100000
940*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_PERSP_DIVISION_DISABLE		0x00200000
941*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_ZERO_GB_SCALE_Z			0x00400000
942*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_ZCOORD				0x00800000
943*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_WCOORD				0x01000000
944*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_ZCLIP_DISABLE			0x02000000
945*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__MASK	0x1c000000
946*4882a593Smuzhiyun #define A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__SHIFT	26
A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES(uint32_t val)947*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES(uint32_t val)
948*4882a593Smuzhiyun {
949*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__SHIFT) & A3XX_GRAS_CL_CLIP_CNTL_NUM_USER_CLIP_PLANES__MASK;
950*4882a593Smuzhiyun }
951*4882a593Smuzhiyun 
952*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_GB_CLIP_ADJ				0x00002044
953*4882a593Smuzhiyun #define A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ__MASK			0x000003ff
954*4882a593Smuzhiyun #define A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ__SHIFT			0
A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ(uint32_t val)955*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ(uint32_t val)
956*4882a593Smuzhiyun {
957*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ__SHIFT) & A3XX_GRAS_CL_GB_CLIP_ADJ_HORZ__MASK;
958*4882a593Smuzhiyun }
959*4882a593Smuzhiyun #define A3XX_GRAS_CL_GB_CLIP_ADJ_VERT__MASK			0x000ffc00
960*4882a593Smuzhiyun #define A3XX_GRAS_CL_GB_CLIP_ADJ_VERT__SHIFT			10
A3XX_GRAS_CL_GB_CLIP_ADJ_VERT(uint32_t val)961*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_GB_CLIP_ADJ_VERT(uint32_t val)
962*4882a593Smuzhiyun {
963*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_CL_GB_CLIP_ADJ_VERT__SHIFT) & A3XX_GRAS_CL_GB_CLIP_ADJ_VERT__MASK;
964*4882a593Smuzhiyun }
965*4882a593Smuzhiyun 
966*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_XOFFSET				0x00002048
967*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_XOFFSET__MASK			0xffffffff
968*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_XOFFSET__SHIFT			0
A3XX_GRAS_CL_VPORT_XOFFSET(float val)969*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_XOFFSET(float val)
970*4882a593Smuzhiyun {
971*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_XOFFSET__SHIFT) & A3XX_GRAS_CL_VPORT_XOFFSET__MASK;
972*4882a593Smuzhiyun }
973*4882a593Smuzhiyun 
974*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_XSCALE				0x00002049
975*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_XSCALE__MASK				0xffffffff
976*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_XSCALE__SHIFT			0
A3XX_GRAS_CL_VPORT_XSCALE(float val)977*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_XSCALE(float val)
978*4882a593Smuzhiyun {
979*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_XSCALE__SHIFT) & A3XX_GRAS_CL_VPORT_XSCALE__MASK;
980*4882a593Smuzhiyun }
981*4882a593Smuzhiyun 
982*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_YOFFSET				0x0000204a
983*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_YOFFSET__MASK			0xffffffff
984*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_YOFFSET__SHIFT			0
A3XX_GRAS_CL_VPORT_YOFFSET(float val)985*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_YOFFSET(float val)
986*4882a593Smuzhiyun {
987*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_YOFFSET__SHIFT) & A3XX_GRAS_CL_VPORT_YOFFSET__MASK;
988*4882a593Smuzhiyun }
989*4882a593Smuzhiyun 
990*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_YSCALE				0x0000204b
991*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_YSCALE__MASK				0xffffffff
992*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_YSCALE__SHIFT			0
A3XX_GRAS_CL_VPORT_YSCALE(float val)993*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_YSCALE(float val)
994*4882a593Smuzhiyun {
995*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_YSCALE__SHIFT) & A3XX_GRAS_CL_VPORT_YSCALE__MASK;
996*4882a593Smuzhiyun }
997*4882a593Smuzhiyun 
998*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_ZOFFSET				0x0000204c
999*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_ZOFFSET__MASK			0xffffffff
1000*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_ZOFFSET__SHIFT			0
A3XX_GRAS_CL_VPORT_ZOFFSET(float val)1001*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_ZOFFSET(float val)
1002*4882a593Smuzhiyun {
1003*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_ZOFFSET__SHIFT) & A3XX_GRAS_CL_VPORT_ZOFFSET__MASK;
1004*4882a593Smuzhiyun }
1005*4882a593Smuzhiyun 
1006*4882a593Smuzhiyun #define REG_A3XX_GRAS_CL_VPORT_ZSCALE				0x0000204d
1007*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_ZSCALE__MASK				0xffffffff
1008*4882a593Smuzhiyun #define A3XX_GRAS_CL_VPORT_ZSCALE__SHIFT			0
A3XX_GRAS_CL_VPORT_ZSCALE(float val)1009*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_CL_VPORT_ZSCALE(float val)
1010*4882a593Smuzhiyun {
1011*4882a593Smuzhiyun 	return ((fui(val)) << A3XX_GRAS_CL_VPORT_ZSCALE__SHIFT) & A3XX_GRAS_CL_VPORT_ZSCALE__MASK;
1012*4882a593Smuzhiyun }
1013*4882a593Smuzhiyun 
1014*4882a593Smuzhiyun #define REG_A3XX_GRAS_SU_POINT_MINMAX				0x00002068
1015*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_MINMAX_MIN__MASK			0x0000ffff
1016*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT			0
A3XX_GRAS_SU_POINT_MINMAX_MIN(float val)1017*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_POINT_MINMAX_MIN(float val)
1018*4882a593Smuzhiyun {
1019*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A3XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A3XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
1020*4882a593Smuzhiyun }
1021*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_MINMAX_MAX__MASK			0xffff0000
1022*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT			16
A3XX_GRAS_SU_POINT_MINMAX_MAX(float val)1023*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_POINT_MINMAX_MAX(float val)
1024*4882a593Smuzhiyun {
1025*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A3XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A3XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
1026*4882a593Smuzhiyun }
1027*4882a593Smuzhiyun 
1028*4882a593Smuzhiyun #define REG_A3XX_GRAS_SU_POINT_SIZE				0x00002069
1029*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_SIZE__MASK				0xffffffff
1030*4882a593Smuzhiyun #define A3XX_GRAS_SU_POINT_SIZE__SHIFT				0
A3XX_GRAS_SU_POINT_SIZE(float val)1031*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_POINT_SIZE(float val)
1032*4882a593Smuzhiyun {
1033*4882a593Smuzhiyun 	return ((((int32_t)(val * 16.0))) << A3XX_GRAS_SU_POINT_SIZE__SHIFT) & A3XX_GRAS_SU_POINT_SIZE__MASK;
1034*4882a593Smuzhiyun }
1035*4882a593Smuzhiyun 
1036*4882a593Smuzhiyun #define REG_A3XX_GRAS_SU_POLY_OFFSET_SCALE			0x0000206c
1037*4882a593Smuzhiyun #define A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__MASK		0x00ffffff
1038*4882a593Smuzhiyun #define A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__SHIFT		0
A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL(float val)1039*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL(float val)
1040*4882a593Smuzhiyun {
1041*4882a593Smuzhiyun 	return ((((int32_t)(val * 1048576.0))) << A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL__MASK;
1042*4882a593Smuzhiyun }
1043*4882a593Smuzhiyun 
1044*4882a593Smuzhiyun #define REG_A3XX_GRAS_SU_POLY_OFFSET_OFFSET			0x0000206d
1045*4882a593Smuzhiyun #define A3XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK			0xffffffff
1046*4882a593Smuzhiyun #define A3XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT			0
A3XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)1047*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
1048*4882a593Smuzhiyun {
1049*4882a593Smuzhiyun 	return ((((int32_t)(val * 64.0))) << A3XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A3XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
1050*4882a593Smuzhiyun }
1051*4882a593Smuzhiyun 
1052*4882a593Smuzhiyun #define REG_A3XX_GRAS_SU_MODE_CONTROL				0x00002070
1053*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_CULL_FRONT			0x00000001
1054*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_CULL_BACK			0x00000002
1055*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_FRONT_CW			0x00000004
1056*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__MASK		0x000007f8
1057*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__SHIFT		3
A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH(float val)1058*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH(float val)
1059*4882a593Smuzhiyun {
1060*4882a593Smuzhiyun 	return ((((int32_t)(val * 4.0))) << A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__SHIFT) & A3XX_GRAS_SU_MODE_CONTROL_LINEHALFWIDTH__MASK;
1061*4882a593Smuzhiyun }
1062*4882a593Smuzhiyun #define A3XX_GRAS_SU_MODE_CONTROL_POLY_OFFSET			0x00000800
1063*4882a593Smuzhiyun 
1064*4882a593Smuzhiyun #define REG_A3XX_GRAS_SC_CONTROL				0x00002072
1065*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_RENDER_MODE__MASK			0x000000f0
1066*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_RENDER_MODE__SHIFT			4
A3XX_GRAS_SC_CONTROL_RENDER_MODE(enum a3xx_render_mode val)1067*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_CONTROL_RENDER_MODE(enum a3xx_render_mode val)
1068*4882a593Smuzhiyun {
1069*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_CONTROL_RENDER_MODE__SHIFT) & A3XX_GRAS_SC_CONTROL_RENDER_MODE__MASK;
1070*4882a593Smuzhiyun }
1071*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES__MASK			0x00000f00
1072*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES__SHIFT		8
A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES(enum a3xx_msaa_samples val)1073*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES(enum a3xx_msaa_samples val)
1074*4882a593Smuzhiyun {
1075*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES__SHIFT) & A3XX_GRAS_SC_CONTROL_MSAA_SAMPLES__MASK;
1076*4882a593Smuzhiyun }
1077*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_RASTER_MODE__MASK			0x0000f000
1078*4882a593Smuzhiyun #define A3XX_GRAS_SC_CONTROL_RASTER_MODE__SHIFT			12
A3XX_GRAS_SC_CONTROL_RASTER_MODE(uint32_t val)1079*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_CONTROL_RASTER_MODE(uint32_t val)
1080*4882a593Smuzhiyun {
1081*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_CONTROL_RASTER_MODE__SHIFT) & A3XX_GRAS_SC_CONTROL_RASTER_MODE__MASK;
1082*4882a593Smuzhiyun }
1083*4882a593Smuzhiyun 
1084*4882a593Smuzhiyun #define REG_A3XX_GRAS_SC_SCREEN_SCISSOR_TL			0x00002074
1085*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL_WINDOW_OFFSET_DISABLE	0x80000000
1086*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK			0x00007fff
1087*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT			0
A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)1088*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)
1089*4882a593Smuzhiyun {
1090*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT) & A3XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK;
1091*4882a593Smuzhiyun }
1092*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK			0x7fff0000
1093*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT			16
A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)1094*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)
1095*4882a593Smuzhiyun {
1096*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT) & A3XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK;
1097*4882a593Smuzhiyun }
1098*4882a593Smuzhiyun 
1099*4882a593Smuzhiyun #define REG_A3XX_GRAS_SC_SCREEN_SCISSOR_BR			0x00002075
1100*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR_WINDOW_OFFSET_DISABLE	0x80000000
1101*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK			0x00007fff
1102*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT			0
A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)1103*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)
1104*4882a593Smuzhiyun {
1105*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT) & A3XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK;
1106*4882a593Smuzhiyun }
1107*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK			0x7fff0000
1108*4882a593Smuzhiyun #define A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT			16
A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)1109*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)
1110*4882a593Smuzhiyun {
1111*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT) & A3XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK;
1112*4882a593Smuzhiyun }
1113*4882a593Smuzhiyun 
1114*4882a593Smuzhiyun #define REG_A3XX_GRAS_SC_WINDOW_SCISSOR_TL			0x00002079
1115*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL_WINDOW_OFFSET_DISABLE	0x80000000
1116*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK			0x00007fff
1117*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT			0
A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)1118*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
1119*4882a593Smuzhiyun {
1120*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A3XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
1121*4882a593Smuzhiyun }
1122*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK			0x7fff0000
1123*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT			16
A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)1124*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
1125*4882a593Smuzhiyun {
1126*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A3XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
1127*4882a593Smuzhiyun }
1128*4882a593Smuzhiyun 
1129*4882a593Smuzhiyun #define REG_A3XX_GRAS_SC_WINDOW_SCISSOR_BR			0x0000207a
1130*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR_WINDOW_OFFSET_DISABLE	0x80000000
1131*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK			0x00007fff
1132*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT			0
A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)1133*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
1134*4882a593Smuzhiyun {
1135*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A3XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
1136*4882a593Smuzhiyun }
1137*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK			0x7fff0000
1138*4882a593Smuzhiyun #define A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT			16
A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)1139*4882a593Smuzhiyun static inline uint32_t A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
1140*4882a593Smuzhiyun {
1141*4882a593Smuzhiyun 	return ((val) << A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A3XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
1142*4882a593Smuzhiyun }
1143*4882a593Smuzhiyun 
1144*4882a593Smuzhiyun #define REG_A3XX_RB_MODE_CONTROL				0x000020c0
1145*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_GMEM_BYPASS			0x00000080
1146*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_RENDER_MODE__MASK			0x00000700
1147*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_RENDER_MODE__SHIFT			8
A3XX_RB_MODE_CONTROL_RENDER_MODE(enum a3xx_render_mode val)1148*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MODE_CONTROL_RENDER_MODE(enum a3xx_render_mode val)
1149*4882a593Smuzhiyun {
1150*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MODE_CONTROL_RENDER_MODE__SHIFT) & A3XX_RB_MODE_CONTROL_RENDER_MODE__MASK;
1151*4882a593Smuzhiyun }
1152*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_MRT__MASK				0x00003000
1153*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_MRT__SHIFT				12
A3XX_RB_MODE_CONTROL_MRT(uint32_t val)1154*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MODE_CONTROL_MRT(uint32_t val)
1155*4882a593Smuzhiyun {
1156*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MODE_CONTROL_MRT__SHIFT) & A3XX_RB_MODE_CONTROL_MRT__MASK;
1157*4882a593Smuzhiyun }
1158*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_MARB_CACHE_SPLIT_MODE		0x00008000
1159*4882a593Smuzhiyun #define A3XX_RB_MODE_CONTROL_PACKER_TIMER_ENABLE		0x00010000
1160*4882a593Smuzhiyun 
1161*4882a593Smuzhiyun #define REG_A3XX_RB_RENDER_CONTROL				0x000020c1
1162*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_DUAL_COLOR_IN_ENABLE		0x00000001
1163*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_YUV_IN_ENABLE			0x00000002
1164*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_COV_VALUE_INPUT_ENABLE		0x00000004
1165*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_FACENESS				0x00000008
1166*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_BIN_WIDTH__MASK			0x00000ff0
1167*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_BIN_WIDTH__SHIFT			4
A3XX_RB_RENDER_CONTROL_BIN_WIDTH(uint32_t val)1168*4882a593Smuzhiyun static inline uint32_t A3XX_RB_RENDER_CONTROL_BIN_WIDTH(uint32_t val)
1169*4882a593Smuzhiyun {
1170*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_RB_RENDER_CONTROL_BIN_WIDTH__SHIFT) & A3XX_RB_RENDER_CONTROL_BIN_WIDTH__MASK;
1171*4882a593Smuzhiyun }
1172*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_DISABLE_COLOR_PIPE		0x00001000
1173*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ENABLE_GMEM			0x00002000
1174*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_COORD_MASK__MASK			0x0003c000
1175*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_COORD_MASK__SHIFT		14
A3XX_RB_RENDER_CONTROL_COORD_MASK(uint32_t val)1176*4882a593Smuzhiyun static inline uint32_t A3XX_RB_RENDER_CONTROL_COORD_MASK(uint32_t val)
1177*4882a593Smuzhiyun {
1178*4882a593Smuzhiyun 	return ((val) << A3XX_RB_RENDER_CONTROL_COORD_MASK__SHIFT) & A3XX_RB_RENDER_CONTROL_COORD_MASK__MASK;
1179*4882a593Smuzhiyun }
1180*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_I_CLAMP_ENABLE			0x00080000
1181*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_COV_VALUE_OUTPUT_ENABLE		0x00100000
1182*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST			0x00400000
1183*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__MASK		0x07000000
1184*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__SHIFT		24
A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)1185*4882a593Smuzhiyun static inline uint32_t A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
1186*4882a593Smuzhiyun {
1187*4882a593Smuzhiyun 	return ((val) << A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A3XX_RB_RENDER_CONTROL_ALPHA_TEST_FUNC__MASK;
1188*4882a593Smuzhiyun }
1189*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ALPHA_TO_COVERAGE		0x40000000
1190*4882a593Smuzhiyun #define A3XX_RB_RENDER_CONTROL_ALPHA_TO_ONE			0x80000000
1191*4882a593Smuzhiyun 
1192*4882a593Smuzhiyun #define REG_A3XX_RB_MSAA_CONTROL				0x000020c2
1193*4882a593Smuzhiyun #define A3XX_RB_MSAA_CONTROL_DISABLE				0x00000400
1194*4882a593Smuzhiyun #define A3XX_RB_MSAA_CONTROL_SAMPLES__MASK			0x0000f000
1195*4882a593Smuzhiyun #define A3XX_RB_MSAA_CONTROL_SAMPLES__SHIFT			12
A3XX_RB_MSAA_CONTROL_SAMPLES(enum a3xx_msaa_samples val)1196*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MSAA_CONTROL_SAMPLES(enum a3xx_msaa_samples val)
1197*4882a593Smuzhiyun {
1198*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MSAA_CONTROL_SAMPLES__SHIFT) & A3XX_RB_MSAA_CONTROL_SAMPLES__MASK;
1199*4882a593Smuzhiyun }
1200*4882a593Smuzhiyun #define A3XX_RB_MSAA_CONTROL_SAMPLE_MASK__MASK			0xffff0000
1201*4882a593Smuzhiyun #define A3XX_RB_MSAA_CONTROL_SAMPLE_MASK__SHIFT			16
A3XX_RB_MSAA_CONTROL_SAMPLE_MASK(uint32_t val)1202*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MSAA_CONTROL_SAMPLE_MASK(uint32_t val)
1203*4882a593Smuzhiyun {
1204*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MSAA_CONTROL_SAMPLE_MASK__SHIFT) & A3XX_RB_MSAA_CONTROL_SAMPLE_MASK__MASK;
1205*4882a593Smuzhiyun }
1206*4882a593Smuzhiyun 
1207*4882a593Smuzhiyun #define REG_A3XX_RB_ALPHA_REF					0x000020c3
1208*4882a593Smuzhiyun #define A3XX_RB_ALPHA_REF_UINT__MASK				0x0000ff00
1209*4882a593Smuzhiyun #define A3XX_RB_ALPHA_REF_UINT__SHIFT				8
A3XX_RB_ALPHA_REF_UINT(uint32_t val)1210*4882a593Smuzhiyun static inline uint32_t A3XX_RB_ALPHA_REF_UINT(uint32_t val)
1211*4882a593Smuzhiyun {
1212*4882a593Smuzhiyun 	return ((val) << A3XX_RB_ALPHA_REF_UINT__SHIFT) & A3XX_RB_ALPHA_REF_UINT__MASK;
1213*4882a593Smuzhiyun }
1214*4882a593Smuzhiyun #define A3XX_RB_ALPHA_REF_FLOAT__MASK				0xffff0000
1215*4882a593Smuzhiyun #define A3XX_RB_ALPHA_REF_FLOAT__SHIFT				16
A3XX_RB_ALPHA_REF_FLOAT(float val)1216*4882a593Smuzhiyun static inline uint32_t A3XX_RB_ALPHA_REF_FLOAT(float val)
1217*4882a593Smuzhiyun {
1218*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A3XX_RB_ALPHA_REF_FLOAT__SHIFT) & A3XX_RB_ALPHA_REF_FLOAT__MASK;
1219*4882a593Smuzhiyun }
1220*4882a593Smuzhiyun 
REG_A3XX_RB_MRT(uint32_t i0)1221*4882a593Smuzhiyun static inline uint32_t REG_A3XX_RB_MRT(uint32_t i0) { return 0x000020c4 + 0x4*i0; }
1222*4882a593Smuzhiyun 
REG_A3XX_RB_MRT_CONTROL(uint32_t i0)1223*4882a593Smuzhiyun static inline uint32_t REG_A3XX_RB_MRT_CONTROL(uint32_t i0) { return 0x000020c4 + 0x4*i0; }
1224*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_READ_DEST_ENABLE			0x00000008
1225*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_BLEND				0x00000010
1226*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_BLEND2				0x00000020
1227*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_ROP_CODE__MASK			0x00000f00
1228*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_ROP_CODE__SHIFT			8
A3XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)1229*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)
1230*4882a593Smuzhiyun {
1231*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_CONTROL_ROP_CODE__SHIFT) & A3XX_RB_MRT_CONTROL_ROP_CODE__MASK;
1232*4882a593Smuzhiyun }
1233*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_DITHER_MODE__MASK			0x00003000
1234*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_DITHER_MODE__SHIFT			12
A3XX_RB_MRT_CONTROL_DITHER_MODE(enum adreno_rb_dither_mode val)1235*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_CONTROL_DITHER_MODE(enum adreno_rb_dither_mode val)
1236*4882a593Smuzhiyun {
1237*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_CONTROL_DITHER_MODE__SHIFT) & A3XX_RB_MRT_CONTROL_DITHER_MODE__MASK;
1238*4882a593Smuzhiyun }
1239*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK		0x0f000000
1240*4882a593Smuzhiyun #define A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT		24
A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)1241*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
1242*4882a593Smuzhiyun {
1243*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A3XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
1244*4882a593Smuzhiyun }
1245*4882a593Smuzhiyun 
REG_A3XX_RB_MRT_BUF_INFO(uint32_t i0)1246*4882a593Smuzhiyun static inline uint32_t REG_A3XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x000020c5 + 0x4*i0; }
1247*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK			0x0000003f
1248*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT		0
A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a3xx_color_fmt val)1249*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a3xx_color_fmt val)
1250*4882a593Smuzhiyun {
1251*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A3XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
1252*4882a593Smuzhiyun }
1253*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK		0x000000c0
1254*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT		6
A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a3xx_tile_mode val)1255*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a3xx_tile_mode val)
1256*4882a593Smuzhiyun {
1257*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A3XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
1258*4882a593Smuzhiyun }
1259*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK			0x00000c00
1260*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT			10
A3XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)1261*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
1262*4882a593Smuzhiyun {
1263*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A3XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
1264*4882a593Smuzhiyun }
1265*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_SRGB				0x00004000
1266*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__MASK		0xfffe0000
1267*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT		17
A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH(uint32_t val)1268*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH(uint32_t val)
1269*4882a593Smuzhiyun {
1270*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__SHIFT) & A3XX_RB_MRT_BUF_INFO_COLOR_BUF_PITCH__MASK;
1271*4882a593Smuzhiyun }
1272*4882a593Smuzhiyun 
REG_A3XX_RB_MRT_BUF_BASE(uint32_t i0)1273*4882a593Smuzhiyun static inline uint32_t REG_A3XX_RB_MRT_BUF_BASE(uint32_t i0) { return 0x000020c6 + 0x4*i0; }
1274*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__MASK		0xfffffff0
1275*4882a593Smuzhiyun #define A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__SHIFT		4
A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE(uint32_t val)1276*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE(uint32_t val)
1277*4882a593Smuzhiyun {
1278*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__SHIFT) & A3XX_RB_MRT_BUF_BASE_COLOR_BUF_BASE__MASK;
1279*4882a593Smuzhiyun }
1280*4882a593Smuzhiyun 
REG_A3XX_RB_MRT_BLEND_CONTROL(uint32_t i0)1281*4882a593Smuzhiyun static inline uint32_t REG_A3XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x000020c7 + 0x4*i0; }
1282*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK		0x0000001f
1283*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT		0
A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)1284*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
1285*4882a593Smuzhiyun {
1286*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
1287*4882a593Smuzhiyun }
1288*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK	0x000000e0
1289*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT	5
A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)1290*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
1291*4882a593Smuzhiyun {
1292*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
1293*4882a593Smuzhiyun }
1294*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK		0x00001f00
1295*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT	8
A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)1296*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
1297*4882a593Smuzhiyun {
1298*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
1299*4882a593Smuzhiyun }
1300*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK	0x001f0000
1301*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT	16
A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)1302*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
1303*4882a593Smuzhiyun {
1304*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
1305*4882a593Smuzhiyun }
1306*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK	0x00e00000
1307*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT	21
A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)1308*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
1309*4882a593Smuzhiyun {
1310*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
1311*4882a593Smuzhiyun }
1312*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK	0x1f000000
1313*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT	24
A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)1314*4882a593Smuzhiyun static inline uint32_t A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
1315*4882a593Smuzhiyun {
1316*4882a593Smuzhiyun 	return ((val) << A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A3XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
1317*4882a593Smuzhiyun }
1318*4882a593Smuzhiyun #define A3XX_RB_MRT_BLEND_CONTROL_CLAMP_ENABLE			0x20000000
1319*4882a593Smuzhiyun 
1320*4882a593Smuzhiyun #define REG_A3XX_RB_BLEND_RED					0x000020e4
1321*4882a593Smuzhiyun #define A3XX_RB_BLEND_RED_UINT__MASK				0x000000ff
1322*4882a593Smuzhiyun #define A3XX_RB_BLEND_RED_UINT__SHIFT				0
A3XX_RB_BLEND_RED_UINT(uint32_t val)1323*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_RED_UINT(uint32_t val)
1324*4882a593Smuzhiyun {
1325*4882a593Smuzhiyun 	return ((val) << A3XX_RB_BLEND_RED_UINT__SHIFT) & A3XX_RB_BLEND_RED_UINT__MASK;
1326*4882a593Smuzhiyun }
1327*4882a593Smuzhiyun #define A3XX_RB_BLEND_RED_FLOAT__MASK				0xffff0000
1328*4882a593Smuzhiyun #define A3XX_RB_BLEND_RED_FLOAT__SHIFT				16
A3XX_RB_BLEND_RED_FLOAT(float val)1329*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_RED_FLOAT(float val)
1330*4882a593Smuzhiyun {
1331*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A3XX_RB_BLEND_RED_FLOAT__SHIFT) & A3XX_RB_BLEND_RED_FLOAT__MASK;
1332*4882a593Smuzhiyun }
1333*4882a593Smuzhiyun 
1334*4882a593Smuzhiyun #define REG_A3XX_RB_BLEND_GREEN					0x000020e5
1335*4882a593Smuzhiyun #define A3XX_RB_BLEND_GREEN_UINT__MASK				0x000000ff
1336*4882a593Smuzhiyun #define A3XX_RB_BLEND_GREEN_UINT__SHIFT				0
A3XX_RB_BLEND_GREEN_UINT(uint32_t val)1337*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_GREEN_UINT(uint32_t val)
1338*4882a593Smuzhiyun {
1339*4882a593Smuzhiyun 	return ((val) << A3XX_RB_BLEND_GREEN_UINT__SHIFT) & A3XX_RB_BLEND_GREEN_UINT__MASK;
1340*4882a593Smuzhiyun }
1341*4882a593Smuzhiyun #define A3XX_RB_BLEND_GREEN_FLOAT__MASK				0xffff0000
1342*4882a593Smuzhiyun #define A3XX_RB_BLEND_GREEN_FLOAT__SHIFT			16
A3XX_RB_BLEND_GREEN_FLOAT(float val)1343*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_GREEN_FLOAT(float val)
1344*4882a593Smuzhiyun {
1345*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A3XX_RB_BLEND_GREEN_FLOAT__SHIFT) & A3XX_RB_BLEND_GREEN_FLOAT__MASK;
1346*4882a593Smuzhiyun }
1347*4882a593Smuzhiyun 
1348*4882a593Smuzhiyun #define REG_A3XX_RB_BLEND_BLUE					0x000020e6
1349*4882a593Smuzhiyun #define A3XX_RB_BLEND_BLUE_UINT__MASK				0x000000ff
1350*4882a593Smuzhiyun #define A3XX_RB_BLEND_BLUE_UINT__SHIFT				0
A3XX_RB_BLEND_BLUE_UINT(uint32_t val)1351*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_BLUE_UINT(uint32_t val)
1352*4882a593Smuzhiyun {
1353*4882a593Smuzhiyun 	return ((val) << A3XX_RB_BLEND_BLUE_UINT__SHIFT) & A3XX_RB_BLEND_BLUE_UINT__MASK;
1354*4882a593Smuzhiyun }
1355*4882a593Smuzhiyun #define A3XX_RB_BLEND_BLUE_FLOAT__MASK				0xffff0000
1356*4882a593Smuzhiyun #define A3XX_RB_BLEND_BLUE_FLOAT__SHIFT				16
A3XX_RB_BLEND_BLUE_FLOAT(float val)1357*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_BLUE_FLOAT(float val)
1358*4882a593Smuzhiyun {
1359*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A3XX_RB_BLEND_BLUE_FLOAT__SHIFT) & A3XX_RB_BLEND_BLUE_FLOAT__MASK;
1360*4882a593Smuzhiyun }
1361*4882a593Smuzhiyun 
1362*4882a593Smuzhiyun #define REG_A3XX_RB_BLEND_ALPHA					0x000020e7
1363*4882a593Smuzhiyun #define A3XX_RB_BLEND_ALPHA_UINT__MASK				0x000000ff
1364*4882a593Smuzhiyun #define A3XX_RB_BLEND_ALPHA_UINT__SHIFT				0
A3XX_RB_BLEND_ALPHA_UINT(uint32_t val)1365*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_ALPHA_UINT(uint32_t val)
1366*4882a593Smuzhiyun {
1367*4882a593Smuzhiyun 	return ((val) << A3XX_RB_BLEND_ALPHA_UINT__SHIFT) & A3XX_RB_BLEND_ALPHA_UINT__MASK;
1368*4882a593Smuzhiyun }
1369*4882a593Smuzhiyun #define A3XX_RB_BLEND_ALPHA_FLOAT__MASK				0xffff0000
1370*4882a593Smuzhiyun #define A3XX_RB_BLEND_ALPHA_FLOAT__SHIFT			16
A3XX_RB_BLEND_ALPHA_FLOAT(float val)1371*4882a593Smuzhiyun static inline uint32_t A3XX_RB_BLEND_ALPHA_FLOAT(float val)
1372*4882a593Smuzhiyun {
1373*4882a593Smuzhiyun 	return ((util_float_to_half(val)) << A3XX_RB_BLEND_ALPHA_FLOAT__SHIFT) & A3XX_RB_BLEND_ALPHA_FLOAT__MASK;
1374*4882a593Smuzhiyun }
1375*4882a593Smuzhiyun 
1376*4882a593Smuzhiyun #define REG_A3XX_RB_CLEAR_COLOR_DW0				0x000020e8
1377*4882a593Smuzhiyun 
1378*4882a593Smuzhiyun #define REG_A3XX_RB_CLEAR_COLOR_DW1				0x000020e9
1379*4882a593Smuzhiyun 
1380*4882a593Smuzhiyun #define REG_A3XX_RB_CLEAR_COLOR_DW2				0x000020ea
1381*4882a593Smuzhiyun 
1382*4882a593Smuzhiyun #define REG_A3XX_RB_CLEAR_COLOR_DW3				0x000020eb
1383*4882a593Smuzhiyun 
1384*4882a593Smuzhiyun #define REG_A3XX_RB_COPY_CONTROL				0x000020ec
1385*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_MSAA_RESOLVE__MASK			0x00000003
1386*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_MSAA_RESOLVE__SHIFT		0
A3XX_RB_COPY_CONTROL_MSAA_RESOLVE(enum a3xx_msaa_samples val)1387*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_CONTROL_MSAA_RESOLVE(enum a3xx_msaa_samples val)
1388*4882a593Smuzhiyun {
1389*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_CONTROL_MSAA_RESOLVE__SHIFT) & A3XX_RB_COPY_CONTROL_MSAA_RESOLVE__MASK;
1390*4882a593Smuzhiyun }
1391*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_DEPTHCLEAR				0x00000008
1392*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_MODE__MASK				0x00000070
1393*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_MODE__SHIFT			4
A3XX_RB_COPY_CONTROL_MODE(enum adreno_rb_copy_control_mode val)1394*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_CONTROL_MODE(enum adreno_rb_copy_control_mode val)
1395*4882a593Smuzhiyun {
1396*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_CONTROL_MODE__SHIFT) & A3XX_RB_COPY_CONTROL_MODE__MASK;
1397*4882a593Smuzhiyun }
1398*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_MSAA_SRGB_DOWNSAMPLE		0x00000080
1399*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_FASTCLEAR__MASK			0x00000f00
1400*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT			8
A3XX_RB_COPY_CONTROL_FASTCLEAR(uint32_t val)1401*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_CONTROL_FASTCLEAR(uint32_t val)
1402*4882a593Smuzhiyun {
1403*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_CONTROL_FASTCLEAR__SHIFT) & A3XX_RB_COPY_CONTROL_FASTCLEAR__MASK;
1404*4882a593Smuzhiyun }
1405*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_DEPTH32_RESOLVE			0x00001000
1406*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_GMEM_BASE__MASK			0xffffc000
1407*4882a593Smuzhiyun #define A3XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT			14
A3XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)1408*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_CONTROL_GMEM_BASE(uint32_t val)
1409*4882a593Smuzhiyun {
1410*4882a593Smuzhiyun 	return ((val >> 14) << A3XX_RB_COPY_CONTROL_GMEM_BASE__SHIFT) & A3XX_RB_COPY_CONTROL_GMEM_BASE__MASK;
1411*4882a593Smuzhiyun }
1412*4882a593Smuzhiyun 
1413*4882a593Smuzhiyun #define REG_A3XX_RB_COPY_DEST_BASE				0x000020ed
1414*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_BASE_BASE__MASK			0xfffffff0
1415*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_BASE_BASE__SHIFT			4
A3XX_RB_COPY_DEST_BASE_BASE(uint32_t val)1416*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_BASE_BASE(uint32_t val)
1417*4882a593Smuzhiyun {
1418*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_RB_COPY_DEST_BASE_BASE__SHIFT) & A3XX_RB_COPY_DEST_BASE_BASE__MASK;
1419*4882a593Smuzhiyun }
1420*4882a593Smuzhiyun 
1421*4882a593Smuzhiyun #define REG_A3XX_RB_COPY_DEST_PITCH				0x000020ee
1422*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_PITCH_PITCH__MASK			0xffffffff
1423*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_PITCH_PITCH__SHIFT			0
A3XX_RB_COPY_DEST_PITCH_PITCH(uint32_t val)1424*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_PITCH_PITCH(uint32_t val)
1425*4882a593Smuzhiyun {
1426*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_RB_COPY_DEST_PITCH_PITCH__SHIFT) & A3XX_RB_COPY_DEST_PITCH_PITCH__MASK;
1427*4882a593Smuzhiyun }
1428*4882a593Smuzhiyun 
1429*4882a593Smuzhiyun #define REG_A3XX_RB_COPY_DEST_INFO				0x000020ef
1430*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_TILE__MASK			0x00000003
1431*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_TILE__SHIFT			0
A3XX_RB_COPY_DEST_INFO_TILE(enum a3xx_tile_mode val)1432*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_TILE(enum a3xx_tile_mode val)
1433*4882a593Smuzhiyun {
1434*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_TILE__SHIFT) & A3XX_RB_COPY_DEST_INFO_TILE__MASK;
1435*4882a593Smuzhiyun }
1436*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_FORMAT__MASK			0x000000fc
1437*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_FORMAT__SHIFT			2
A3XX_RB_COPY_DEST_INFO_FORMAT(enum a3xx_color_fmt val)1438*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_FORMAT(enum a3xx_color_fmt val)
1439*4882a593Smuzhiyun {
1440*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_FORMAT__SHIFT) & A3XX_RB_COPY_DEST_INFO_FORMAT__MASK;
1441*4882a593Smuzhiyun }
1442*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_SWAP__MASK			0x00000300
1443*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_SWAP__SHIFT			8
A3XX_RB_COPY_DEST_INFO_SWAP(enum a3xx_color_swap val)1444*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_SWAP(enum a3xx_color_swap val)
1445*4882a593Smuzhiyun {
1446*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_SWAP__SHIFT) & A3XX_RB_COPY_DEST_INFO_SWAP__MASK;
1447*4882a593Smuzhiyun }
1448*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_DITHER_MODE__MASK		0x00000c00
1449*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_DITHER_MODE__SHIFT		10
A3XX_RB_COPY_DEST_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)1450*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_DITHER_MODE(enum adreno_rb_dither_mode val)
1451*4882a593Smuzhiyun {
1452*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_DITHER_MODE__SHIFT) & A3XX_RB_COPY_DEST_INFO_DITHER_MODE__MASK;
1453*4882a593Smuzhiyun }
1454*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__MASK		0x0003c000
1455*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__SHIFT		14
A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE(uint32_t val)1456*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE(uint32_t val)
1457*4882a593Smuzhiyun {
1458*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__SHIFT) & A3XX_RB_COPY_DEST_INFO_COMPONENT_ENABLE__MASK;
1459*4882a593Smuzhiyun }
1460*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_ENDIAN__MASK			0x001c0000
1461*4882a593Smuzhiyun #define A3XX_RB_COPY_DEST_INFO_ENDIAN__SHIFT			18
A3XX_RB_COPY_DEST_INFO_ENDIAN(enum adreno_rb_surface_endian val)1462*4882a593Smuzhiyun static inline uint32_t A3XX_RB_COPY_DEST_INFO_ENDIAN(enum adreno_rb_surface_endian val)
1463*4882a593Smuzhiyun {
1464*4882a593Smuzhiyun 	return ((val) << A3XX_RB_COPY_DEST_INFO_ENDIAN__SHIFT) & A3XX_RB_COPY_DEST_INFO_ENDIAN__MASK;
1465*4882a593Smuzhiyun }
1466*4882a593Smuzhiyun 
1467*4882a593Smuzhiyun #define REG_A3XX_RB_DEPTH_CONTROL				0x00002100
1468*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_FRAG_WRITES_Z			0x00000001
1469*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_Z_ENABLE				0x00000002
1470*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_Z_WRITE_ENABLE			0x00000004
1471*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_EARLY_Z_DISABLE			0x00000008
1472*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_ZFUNC__MASK			0x00000070
1473*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_ZFUNC__SHIFT			4
A3XX_RB_DEPTH_CONTROL_ZFUNC(enum adreno_compare_func val)1474*4882a593Smuzhiyun static inline uint32_t A3XX_RB_DEPTH_CONTROL_ZFUNC(enum adreno_compare_func val)
1475*4882a593Smuzhiyun {
1476*4882a593Smuzhiyun 	return ((val) << A3XX_RB_DEPTH_CONTROL_ZFUNC__SHIFT) & A3XX_RB_DEPTH_CONTROL_ZFUNC__MASK;
1477*4882a593Smuzhiyun }
1478*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_Z_CLAMP_ENABLE			0x00000080
1479*4882a593Smuzhiyun #define A3XX_RB_DEPTH_CONTROL_Z_TEST_ENABLE			0x80000000
1480*4882a593Smuzhiyun 
1481*4882a593Smuzhiyun #define REG_A3XX_RB_DEPTH_CLEAR					0x00002101
1482*4882a593Smuzhiyun 
1483*4882a593Smuzhiyun #define REG_A3XX_RB_DEPTH_INFO					0x00002102
1484*4882a593Smuzhiyun #define A3XX_RB_DEPTH_INFO_DEPTH_FORMAT__MASK			0x00000003
1485*4882a593Smuzhiyun #define A3XX_RB_DEPTH_INFO_DEPTH_FORMAT__SHIFT			0
A3XX_RB_DEPTH_INFO_DEPTH_FORMAT(enum adreno_rb_depth_format val)1486*4882a593Smuzhiyun static inline uint32_t A3XX_RB_DEPTH_INFO_DEPTH_FORMAT(enum adreno_rb_depth_format val)
1487*4882a593Smuzhiyun {
1488*4882a593Smuzhiyun 	return ((val) << A3XX_RB_DEPTH_INFO_DEPTH_FORMAT__SHIFT) & A3XX_RB_DEPTH_INFO_DEPTH_FORMAT__MASK;
1489*4882a593Smuzhiyun }
1490*4882a593Smuzhiyun #define A3XX_RB_DEPTH_INFO_DEPTH_BASE__MASK			0xfffff800
1491*4882a593Smuzhiyun #define A3XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT			11
A3XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)1492*4882a593Smuzhiyun static inline uint32_t A3XX_RB_DEPTH_INFO_DEPTH_BASE(uint32_t val)
1493*4882a593Smuzhiyun {
1494*4882a593Smuzhiyun 	return ((val >> 12) << A3XX_RB_DEPTH_INFO_DEPTH_BASE__SHIFT) & A3XX_RB_DEPTH_INFO_DEPTH_BASE__MASK;
1495*4882a593Smuzhiyun }
1496*4882a593Smuzhiyun 
1497*4882a593Smuzhiyun #define REG_A3XX_RB_DEPTH_PITCH					0x00002103
1498*4882a593Smuzhiyun #define A3XX_RB_DEPTH_PITCH__MASK				0xffffffff
1499*4882a593Smuzhiyun #define A3XX_RB_DEPTH_PITCH__SHIFT				0
A3XX_RB_DEPTH_PITCH(uint32_t val)1500*4882a593Smuzhiyun static inline uint32_t A3XX_RB_DEPTH_PITCH(uint32_t val)
1501*4882a593Smuzhiyun {
1502*4882a593Smuzhiyun 	return ((val >> 3) << A3XX_RB_DEPTH_PITCH__SHIFT) & A3XX_RB_DEPTH_PITCH__MASK;
1503*4882a593Smuzhiyun }
1504*4882a593Smuzhiyun 
1505*4882a593Smuzhiyun #define REG_A3XX_RB_STENCIL_CONTROL				0x00002104
1506*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_STENCIL_ENABLE			0x00000001
1507*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF		0x00000002
1508*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_STENCIL_READ			0x00000004
1509*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FUNC__MASK			0x00000700
1510*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FUNC__SHIFT			8
A3XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)1511*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
1512*4882a593Smuzhiyun {
1513*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A3XX_RB_STENCIL_CONTROL_FUNC__MASK;
1514*4882a593Smuzhiyun }
1515*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FAIL__MASK			0x00003800
1516*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FAIL__SHIFT			11
A3XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)1517*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
1518*4882a593Smuzhiyun {
1519*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A3XX_RB_STENCIL_CONTROL_FAIL__MASK;
1520*4882a593Smuzhiyun }
1521*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZPASS__MASK			0x0001c000
1522*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZPASS__SHIFT			14
A3XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)1523*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
1524*4882a593Smuzhiyun {
1525*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A3XX_RB_STENCIL_CONTROL_ZPASS__MASK;
1526*4882a593Smuzhiyun }
1527*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZFAIL__MASK			0x000e0000
1528*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT			17
A3XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)1529*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
1530*4882a593Smuzhiyun {
1531*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A3XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
1532*4882a593Smuzhiyun }
1533*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FUNC_BF__MASK			0x00700000
1534*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT			20
A3XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)1535*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
1536*4882a593Smuzhiyun {
1537*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A3XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
1538*4882a593Smuzhiyun }
1539*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FAIL_BF__MASK			0x03800000
1540*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT			23
A3XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)1541*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
1542*4882a593Smuzhiyun {
1543*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A3XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
1544*4882a593Smuzhiyun }
1545*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK			0x1c000000
1546*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT			26
A3XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)1547*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
1548*4882a593Smuzhiyun {
1549*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A3XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
1550*4882a593Smuzhiyun }
1551*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK			0xe0000000
1552*4882a593Smuzhiyun #define A3XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT			29
A3XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)1553*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
1554*4882a593Smuzhiyun {
1555*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A3XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
1556*4882a593Smuzhiyun }
1557*4882a593Smuzhiyun 
1558*4882a593Smuzhiyun #define REG_A3XX_RB_STENCIL_CLEAR				0x00002105
1559*4882a593Smuzhiyun 
1560*4882a593Smuzhiyun #define REG_A3XX_RB_STENCIL_INFO				0x00002106
1561*4882a593Smuzhiyun #define A3XX_RB_STENCIL_INFO_STENCIL_BASE__MASK			0xfffff800
1562*4882a593Smuzhiyun #define A3XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT		11
A3XX_RB_STENCIL_INFO_STENCIL_BASE(uint32_t val)1563*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_INFO_STENCIL_BASE(uint32_t val)
1564*4882a593Smuzhiyun {
1565*4882a593Smuzhiyun 	return ((val >> 12) << A3XX_RB_STENCIL_INFO_STENCIL_BASE__SHIFT) & A3XX_RB_STENCIL_INFO_STENCIL_BASE__MASK;
1566*4882a593Smuzhiyun }
1567*4882a593Smuzhiyun 
1568*4882a593Smuzhiyun #define REG_A3XX_RB_STENCIL_PITCH				0x00002107
1569*4882a593Smuzhiyun #define A3XX_RB_STENCIL_PITCH__MASK				0xffffffff
1570*4882a593Smuzhiyun #define A3XX_RB_STENCIL_PITCH__SHIFT				0
A3XX_RB_STENCIL_PITCH(uint32_t val)1571*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCIL_PITCH(uint32_t val)
1572*4882a593Smuzhiyun {
1573*4882a593Smuzhiyun 	return ((val >> 3) << A3XX_RB_STENCIL_PITCH__SHIFT) & A3XX_RB_STENCIL_PITCH__MASK;
1574*4882a593Smuzhiyun }
1575*4882a593Smuzhiyun 
1576*4882a593Smuzhiyun #define REG_A3XX_RB_STENCILREFMASK				0x00002108
1577*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILREF__MASK			0x000000ff
1578*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILREF__SHIFT		0
A3XX_RB_STENCILREFMASK_STENCILREF(uint32_t val)1579*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_STENCILREF(uint32_t val)
1580*4882a593Smuzhiyun {
1581*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_STENCILREF__SHIFT) & A3XX_RB_STENCILREFMASK_STENCILREF__MASK;
1582*4882a593Smuzhiyun }
1583*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILMASK__MASK		0x0000ff00
1584*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILMASK__SHIFT		8
A3XX_RB_STENCILREFMASK_STENCILMASK(uint32_t val)1585*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_STENCILMASK(uint32_t val)
1586*4882a593Smuzhiyun {
1587*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_STENCILMASK__SHIFT) & A3XX_RB_STENCILREFMASK_STENCILMASK__MASK;
1588*4882a593Smuzhiyun }
1589*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK		0x00ff0000
1590*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT		16
A3XX_RB_STENCILREFMASK_STENCILWRITEMASK(uint32_t val)1591*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_STENCILWRITEMASK(uint32_t val)
1592*4882a593Smuzhiyun {
1593*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_STENCILWRITEMASK__SHIFT) & A3XX_RB_STENCILREFMASK_STENCILWRITEMASK__MASK;
1594*4882a593Smuzhiyun }
1595*4882a593Smuzhiyun 
1596*4882a593Smuzhiyun #define REG_A3XX_RB_STENCILREFMASK_BF				0x00002109
1597*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILREF__MASK		0x000000ff
1598*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILREF__SHIFT		0
A3XX_RB_STENCILREFMASK_BF_STENCILREF(uint32_t val)1599*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_BF_STENCILREF(uint32_t val)
1600*4882a593Smuzhiyun {
1601*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_BF_STENCILREF__SHIFT) & A3XX_RB_STENCILREFMASK_BF_STENCILREF__MASK;
1602*4882a593Smuzhiyun }
1603*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILMASK__MASK		0x0000ff00
1604*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILMASK__SHIFT		8
A3XX_RB_STENCILREFMASK_BF_STENCILMASK(uint32_t val)1605*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_BF_STENCILMASK(uint32_t val)
1606*4882a593Smuzhiyun {
1607*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_BF_STENCILMASK__SHIFT) & A3XX_RB_STENCILREFMASK_BF_STENCILMASK__MASK;
1608*4882a593Smuzhiyun }
1609*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__MASK	0x00ff0000
1610*4882a593Smuzhiyun #define A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__SHIFT	16
A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK(uint32_t val)1611*4882a593Smuzhiyun static inline uint32_t A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK(uint32_t val)
1612*4882a593Smuzhiyun {
1613*4882a593Smuzhiyun 	return ((val) << A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__SHIFT) & A3XX_RB_STENCILREFMASK_BF_STENCILWRITEMASK__MASK;
1614*4882a593Smuzhiyun }
1615*4882a593Smuzhiyun 
1616*4882a593Smuzhiyun #define REG_A3XX_RB_LRZ_VSC_CONTROL				0x0000210c
1617*4882a593Smuzhiyun #define A3XX_RB_LRZ_VSC_CONTROL_BINNING_ENABLE			0x00000002
1618*4882a593Smuzhiyun 
1619*4882a593Smuzhiyun #define REG_A3XX_RB_WINDOW_OFFSET				0x0000210e
1620*4882a593Smuzhiyun #define A3XX_RB_WINDOW_OFFSET_X__MASK				0x0000ffff
1621*4882a593Smuzhiyun #define A3XX_RB_WINDOW_OFFSET_X__SHIFT				0
A3XX_RB_WINDOW_OFFSET_X(uint32_t val)1622*4882a593Smuzhiyun static inline uint32_t A3XX_RB_WINDOW_OFFSET_X(uint32_t val)
1623*4882a593Smuzhiyun {
1624*4882a593Smuzhiyun 	return ((val) << A3XX_RB_WINDOW_OFFSET_X__SHIFT) & A3XX_RB_WINDOW_OFFSET_X__MASK;
1625*4882a593Smuzhiyun }
1626*4882a593Smuzhiyun #define A3XX_RB_WINDOW_OFFSET_Y__MASK				0xffff0000
1627*4882a593Smuzhiyun #define A3XX_RB_WINDOW_OFFSET_Y__SHIFT				16
A3XX_RB_WINDOW_OFFSET_Y(uint32_t val)1628*4882a593Smuzhiyun static inline uint32_t A3XX_RB_WINDOW_OFFSET_Y(uint32_t val)
1629*4882a593Smuzhiyun {
1630*4882a593Smuzhiyun 	return ((val) << A3XX_RB_WINDOW_OFFSET_Y__SHIFT) & A3XX_RB_WINDOW_OFFSET_Y__MASK;
1631*4882a593Smuzhiyun }
1632*4882a593Smuzhiyun 
1633*4882a593Smuzhiyun #define REG_A3XX_RB_SAMPLE_COUNT_CONTROL			0x00002110
1634*4882a593Smuzhiyun #define A3XX_RB_SAMPLE_COUNT_CONTROL_RESET			0x00000001
1635*4882a593Smuzhiyun #define A3XX_RB_SAMPLE_COUNT_CONTROL_COPY			0x00000002
1636*4882a593Smuzhiyun 
1637*4882a593Smuzhiyun #define REG_A3XX_RB_SAMPLE_COUNT_ADDR				0x00002111
1638*4882a593Smuzhiyun 
1639*4882a593Smuzhiyun #define REG_A3XX_RB_Z_CLAMP_MIN					0x00002114
1640*4882a593Smuzhiyun 
1641*4882a593Smuzhiyun #define REG_A3XX_RB_Z_CLAMP_MAX					0x00002115
1642*4882a593Smuzhiyun 
1643*4882a593Smuzhiyun #define REG_A3XX_VGT_BIN_BASE					0x000021e1
1644*4882a593Smuzhiyun 
1645*4882a593Smuzhiyun #define REG_A3XX_VGT_BIN_SIZE					0x000021e2
1646*4882a593Smuzhiyun 
1647*4882a593Smuzhiyun #define REG_A3XX_PC_VSTREAM_CONTROL				0x000021e4
1648*4882a593Smuzhiyun #define A3XX_PC_VSTREAM_CONTROL_SIZE__MASK			0x003f0000
1649*4882a593Smuzhiyun #define A3XX_PC_VSTREAM_CONTROL_SIZE__SHIFT			16
A3XX_PC_VSTREAM_CONTROL_SIZE(uint32_t val)1650*4882a593Smuzhiyun static inline uint32_t A3XX_PC_VSTREAM_CONTROL_SIZE(uint32_t val)
1651*4882a593Smuzhiyun {
1652*4882a593Smuzhiyun 	return ((val) << A3XX_PC_VSTREAM_CONTROL_SIZE__SHIFT) & A3XX_PC_VSTREAM_CONTROL_SIZE__MASK;
1653*4882a593Smuzhiyun }
1654*4882a593Smuzhiyun #define A3XX_PC_VSTREAM_CONTROL_N__MASK				0x07c00000
1655*4882a593Smuzhiyun #define A3XX_PC_VSTREAM_CONTROL_N__SHIFT			22
A3XX_PC_VSTREAM_CONTROL_N(uint32_t val)1656*4882a593Smuzhiyun static inline uint32_t A3XX_PC_VSTREAM_CONTROL_N(uint32_t val)
1657*4882a593Smuzhiyun {
1658*4882a593Smuzhiyun 	return ((val) << A3XX_PC_VSTREAM_CONTROL_N__SHIFT) & A3XX_PC_VSTREAM_CONTROL_N__MASK;
1659*4882a593Smuzhiyun }
1660*4882a593Smuzhiyun 
1661*4882a593Smuzhiyun #define REG_A3XX_PC_VERTEX_REUSE_BLOCK_CNTL			0x000021ea
1662*4882a593Smuzhiyun 
1663*4882a593Smuzhiyun #define REG_A3XX_PC_PRIM_VTX_CNTL				0x000021ec
1664*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC__MASK		0x0000001f
1665*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC__SHIFT		0
A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC(uint32_t val)1666*4882a593Smuzhiyun static inline uint32_t A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC(uint32_t val)
1667*4882a593Smuzhiyun {
1668*4882a593Smuzhiyun 	return ((val) << A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC__SHIFT) & A3XX_PC_PRIM_VTX_CNTL_STRIDE_IN_VPC__MASK;
1669*4882a593Smuzhiyun }
1670*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE__MASK	0x000000e0
1671*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE__SHIFT	5
A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE(enum adreno_pa_su_sc_draw val)1672*4882a593Smuzhiyun static inline uint32_t A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE(enum adreno_pa_su_sc_draw val)
1673*4882a593Smuzhiyun {
1674*4882a593Smuzhiyun 	return ((val) << A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE__SHIFT) & A3XX_PC_PRIM_VTX_CNTL_POLYMODE_FRONT_PTYPE__MASK;
1675*4882a593Smuzhiyun }
1676*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__MASK		0x00000700
1677*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__SHIFT	8
A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE(enum adreno_pa_su_sc_draw val)1678*4882a593Smuzhiyun static inline uint32_t A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE(enum adreno_pa_su_sc_draw val)
1679*4882a593Smuzhiyun {
1680*4882a593Smuzhiyun 	return ((val) << A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__SHIFT) & A3XX_PC_PRIM_VTX_CNTL_POLYMODE_BACK_PTYPE__MASK;
1681*4882a593Smuzhiyun }
1682*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_POLYMODE_ENABLE			0x00001000
1683*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_PRIMITIVE_RESTART			0x00100000
1684*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_PROVOKING_VTX_LAST		0x02000000
1685*4882a593Smuzhiyun #define A3XX_PC_PRIM_VTX_CNTL_PSIZE				0x04000000
1686*4882a593Smuzhiyun 
1687*4882a593Smuzhiyun #define REG_A3XX_PC_RESTART_INDEX				0x000021ed
1688*4882a593Smuzhiyun 
1689*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONTROL_0_REG				0x00002200
1690*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK		0x00000030
1691*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT		4
A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)1692*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE(enum a3xx_threadsize val)
1693*4882a593Smuzhiyun {
1694*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__SHIFT) & A3XX_HLSQ_CONTROL_0_REG_FSTHREADSIZE__MASK;
1695*4882a593Smuzhiyun }
1696*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_FSSUPERTHREADENABLE		0x00000040
1697*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_COMPUTEMODE			0x00000100
1698*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_SPSHADERRESTART			0x00000200
1699*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_RESERVED2			0x00000400
1700*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__MASK	0x00fff000
1701*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__SHIFT	12
A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC(uint32_t val)1702*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC(uint32_t val)
1703*4882a593Smuzhiyun {
1704*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__SHIFT) & A3XX_HLSQ_CONTROL_0_REG_CYCLETIMEOUTLIMITVPC__MASK;
1705*4882a593Smuzhiyun }
1706*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_FSONLYTEX			0x02000000
1707*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_CHUNKDISABLE			0x04000000
1708*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__MASK			0x08000000
1709*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__SHIFT		27
A3XX_HLSQ_CONTROL_0_REG_CONSTMODE(uint32_t val)1710*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_0_REG_CONSTMODE(uint32_t val)
1711*4882a593Smuzhiyun {
1712*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__SHIFT) & A3XX_HLSQ_CONTROL_0_REG_CONSTMODE__MASK;
1713*4882a593Smuzhiyun }
1714*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_LAZYUPDATEDISABLE		0x10000000
1715*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_SPCONSTFULLUPDATE		0x20000000
1716*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_TPFULLUPDATE			0x40000000
1717*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_0_REG_SINGLECONTEXT			0x80000000
1718*4882a593Smuzhiyun 
1719*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONTROL_1_REG				0x00002201
1720*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK		0x000000c0
1721*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT		6
A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE(enum a3xx_threadsize val)1722*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE(enum a3xx_threadsize val)
1723*4882a593Smuzhiyun {
1724*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_VSTHREADSIZE__MASK;
1725*4882a593Smuzhiyun }
1726*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_VSSUPERTHREADENABLE		0x00000100
1727*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__MASK		0x00ff0000
1728*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__SHIFT		16
A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID(uint32_t val)1729*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID(uint32_t val)
1730*4882a593Smuzhiyun {
1731*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDXYREGID__MASK;
1732*4882a593Smuzhiyun }
1733*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__MASK		0xff000000
1734*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__SHIFT		24
A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID(uint32_t val)1735*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID(uint32_t val)
1736*4882a593Smuzhiyun {
1737*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__SHIFT) & A3XX_HLSQ_CONTROL_1_REG_FRAGCOORDZWREGID__MASK;
1738*4882a593Smuzhiyun }
1739*4882a593Smuzhiyun 
1740*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONTROL_2_REG				0x00002202
1741*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__MASK		0x000003fc
1742*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__SHIFT		2
A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID(uint32_t val)1743*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID(uint32_t val)
1744*4882a593Smuzhiyun {
1745*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__SHIFT) & A3XX_HLSQ_CONTROL_2_REG_FACENESSREGID__MASK;
1746*4882a593Smuzhiyun }
1747*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__MASK		0x03fc0000
1748*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__SHIFT		18
A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID(uint32_t val)1749*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID(uint32_t val)
1750*4882a593Smuzhiyun {
1751*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__SHIFT) & A3XX_HLSQ_CONTROL_2_REG_COVVALUEREGID__MASK;
1752*4882a593Smuzhiyun }
1753*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__MASK	0xfc000000
1754*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__SHIFT	26
A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val)1755*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD(uint32_t val)
1756*4882a593Smuzhiyun {
1757*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__SHIFT) & A3XX_HLSQ_CONTROL_2_REG_PRIMALLOCTHRESHOLD__MASK;
1758*4882a593Smuzhiyun }
1759*4882a593Smuzhiyun 
1760*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONTROL_3_REG				0x00002203
1761*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__MASK	0x000000ff
1762*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__SHIFT	0
A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID(uint32_t val)1763*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID(uint32_t val)
1764*4882a593Smuzhiyun {
1765*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTERREGID__MASK;
1766*4882a593Smuzhiyun }
1767*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__MASK	0x0000ff00
1768*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__SHIFT	8
A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID(uint32_t val)1769*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID(uint32_t val)
1770*4882a593Smuzhiyun {
1771*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTERREGID__MASK;
1772*4882a593Smuzhiyun }
1773*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__MASK	0x00ff0000
1774*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__SHIFT	16
A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID(uint32_t val)1775*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID(uint32_t val)
1776*4882a593Smuzhiyun {
1777*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJPERSPCENTROIDREGID__MASK;
1778*4882a593Smuzhiyun }
1779*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__MASK	0xff000000
1780*4882a593Smuzhiyun #define A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__SHIFT	24
A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID(uint32_t val)1781*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID(uint32_t val)
1782*4882a593Smuzhiyun {
1783*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__SHIFT) & A3XX_HLSQ_CONTROL_3_REG_IJNONPERSPCENTROIDREGID__MASK;
1784*4882a593Smuzhiyun }
1785*4882a593Smuzhiyun 
1786*4882a593Smuzhiyun #define REG_A3XX_HLSQ_VS_CONTROL_REG				0x00002204
1787*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK		0x000003ff
1788*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH(uint32_t val)1789*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH(uint32_t val)
1790*4882a593Smuzhiyun {
1791*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__SHIFT) & A3XX_HLSQ_VS_CONTROL_REG_CONSTLENGTH__MASK;
1792*4882a593Smuzhiyun }
1793*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__MASK		0x001ff000
1794*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT	12
A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)1795*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)
1796*4882a593Smuzhiyun {
1797*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT) & A3XX_HLSQ_VS_CONTROL_REG_CONSTSTARTOFFSET__MASK;
1798*4882a593Smuzhiyun }
1799*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
1800*4882a593Smuzhiyun #define A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH(uint32_t val)1801*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH(uint32_t val)
1802*4882a593Smuzhiyun {
1803*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__SHIFT) & A3XX_HLSQ_VS_CONTROL_REG_INSTRLENGTH__MASK;
1804*4882a593Smuzhiyun }
1805*4882a593Smuzhiyun 
1806*4882a593Smuzhiyun #define REG_A3XX_HLSQ_FS_CONTROL_REG				0x00002205
1807*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK		0x000003ff
1808*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT		0
A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH(uint32_t val)1809*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH(uint32_t val)
1810*4882a593Smuzhiyun {
1811*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__SHIFT) & A3XX_HLSQ_FS_CONTROL_REG_CONSTLENGTH__MASK;
1812*4882a593Smuzhiyun }
1813*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__MASK		0x001ff000
1814*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT	12
A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)1815*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET(uint32_t val)
1816*4882a593Smuzhiyun {
1817*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__SHIFT) & A3XX_HLSQ_FS_CONTROL_REG_CONSTSTARTOFFSET__MASK;
1818*4882a593Smuzhiyun }
1819*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__MASK		0xff000000
1820*4882a593Smuzhiyun #define A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__SHIFT		24
A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH(uint32_t val)1821*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH(uint32_t val)
1822*4882a593Smuzhiyun {
1823*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__SHIFT) & A3XX_HLSQ_FS_CONTROL_REG_INSTRLENGTH__MASK;
1824*4882a593Smuzhiyun }
1825*4882a593Smuzhiyun 
1826*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONST_VSPRESV_RANGE_REG			0x00002206
1827*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__MASK	0x000001ff
1828*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__SHIFT	0
A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY(uint32_t val)1829*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY(uint32_t val)
1830*4882a593Smuzhiyun {
1831*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__SHIFT) & A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_STARTENTRY__MASK;
1832*4882a593Smuzhiyun }
1833*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__MASK	0x01ff0000
1834*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__SHIFT	16
A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY(uint32_t val)1835*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY(uint32_t val)
1836*4882a593Smuzhiyun {
1837*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__SHIFT) & A3XX_HLSQ_CONST_VSPRESV_RANGE_REG_ENDENTRY__MASK;
1838*4882a593Smuzhiyun }
1839*4882a593Smuzhiyun 
1840*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CONST_FSPRESV_RANGE_REG			0x00002207
1841*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__MASK	0x000001ff
1842*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__SHIFT	0
A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY(uint32_t val)1843*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY(uint32_t val)
1844*4882a593Smuzhiyun {
1845*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__SHIFT) & A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_STARTENTRY__MASK;
1846*4882a593Smuzhiyun }
1847*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__MASK	0x01ff0000
1848*4882a593Smuzhiyun #define A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__SHIFT	16
A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY(uint32_t val)1849*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY(uint32_t val)
1850*4882a593Smuzhiyun {
1851*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__SHIFT) & A3XX_HLSQ_CONST_FSPRESV_RANGE_REG_ENDENTRY__MASK;
1852*4882a593Smuzhiyun }
1853*4882a593Smuzhiyun 
1854*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_NDRANGE_0_REG				0x0000220a
1855*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM__MASK		0x00000003
1856*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM__SHIFT		0
A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM(uint32_t val)1857*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM(uint32_t val)
1858*4882a593Smuzhiyun {
1859*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM__SHIFT) & A3XX_HLSQ_CL_NDRANGE_0_REG_WORKDIM__MASK;
1860*4882a593Smuzhiyun }
1861*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0__MASK		0x00000ffc
1862*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0__SHIFT		2
A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0(uint32_t val)1863*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0(uint32_t val)
1864*4882a593Smuzhiyun {
1865*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0__SHIFT) & A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE0__MASK;
1866*4882a593Smuzhiyun }
1867*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1__MASK		0x003ff000
1868*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1__SHIFT		12
A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1(uint32_t val)1869*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1(uint32_t val)
1870*4882a593Smuzhiyun {
1871*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1__SHIFT) & A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE1__MASK;
1872*4882a593Smuzhiyun }
1873*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2__MASK		0xffc00000
1874*4882a593Smuzhiyun #define A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2__SHIFT		22
A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2(uint32_t val)1875*4882a593Smuzhiyun static inline uint32_t A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2(uint32_t val)
1876*4882a593Smuzhiyun {
1877*4882a593Smuzhiyun 	return ((val) << A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2__SHIFT) & A3XX_HLSQ_CL_NDRANGE_0_REG_LOCALSIZE2__MASK;
1878*4882a593Smuzhiyun }
1879*4882a593Smuzhiyun 
REG_A3XX_HLSQ_CL_GLOBAL_WORK(uint32_t i0)1880*4882a593Smuzhiyun static inline uint32_t REG_A3XX_HLSQ_CL_GLOBAL_WORK(uint32_t i0) { return 0x0000220b + 0x2*i0; }
1881*4882a593Smuzhiyun 
REG_A3XX_HLSQ_CL_GLOBAL_WORK_SIZE(uint32_t i0)1882*4882a593Smuzhiyun static inline uint32_t REG_A3XX_HLSQ_CL_GLOBAL_WORK_SIZE(uint32_t i0) { return 0x0000220b + 0x2*i0; }
1883*4882a593Smuzhiyun 
REG_A3XX_HLSQ_CL_GLOBAL_WORK_OFFSET(uint32_t i0)1884*4882a593Smuzhiyun static inline uint32_t REG_A3XX_HLSQ_CL_GLOBAL_WORK_OFFSET(uint32_t i0) { return 0x0000220c + 0x2*i0; }
1885*4882a593Smuzhiyun 
1886*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_CONTROL_0_REG				0x00002211
1887*4882a593Smuzhiyun 
1888*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_CONTROL_1_REG				0x00002212
1889*4882a593Smuzhiyun 
1890*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_KERNEL_CONST_REG			0x00002214
1891*4882a593Smuzhiyun 
REG_A3XX_HLSQ_CL_KERNEL_GROUP(uint32_t i0)1892*4882a593Smuzhiyun static inline uint32_t REG_A3XX_HLSQ_CL_KERNEL_GROUP(uint32_t i0) { return 0x00002215 + 0x1*i0; }
1893*4882a593Smuzhiyun 
REG_A3XX_HLSQ_CL_KERNEL_GROUP_RATIO(uint32_t i0)1894*4882a593Smuzhiyun static inline uint32_t REG_A3XX_HLSQ_CL_KERNEL_GROUP_RATIO(uint32_t i0) { return 0x00002215 + 0x1*i0; }
1895*4882a593Smuzhiyun 
1896*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_KERNEL_GROUP_Y_REG			0x00002216
1897*4882a593Smuzhiyun 
1898*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_KERNEL_GROUP_Z_REG			0x00002217
1899*4882a593Smuzhiyun 
1900*4882a593Smuzhiyun #define REG_A3XX_HLSQ_CL_WG_OFFSET_REG				0x0000221a
1901*4882a593Smuzhiyun 
1902*4882a593Smuzhiyun #define REG_A3XX_VFD_CONTROL_0					0x00002240
1903*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_TOTALATTRTOVS__MASK			0x0003ffff
1904*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_TOTALATTRTOVS__SHIFT			0
A3XX_VFD_CONTROL_0_TOTALATTRTOVS(uint32_t val)1905*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_0_TOTALATTRTOVS(uint32_t val)
1906*4882a593Smuzhiyun {
1907*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_0_TOTALATTRTOVS__SHIFT) & A3XX_VFD_CONTROL_0_TOTALATTRTOVS__MASK;
1908*4882a593Smuzhiyun }
1909*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_PACKETSIZE__MASK			0x003c0000
1910*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_PACKETSIZE__SHIFT			18
A3XX_VFD_CONTROL_0_PACKETSIZE(uint32_t val)1911*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_0_PACKETSIZE(uint32_t val)
1912*4882a593Smuzhiyun {
1913*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_0_PACKETSIZE__SHIFT) & A3XX_VFD_CONTROL_0_PACKETSIZE__MASK;
1914*4882a593Smuzhiyun }
1915*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_STRMDECINSTRCNT__MASK		0x07c00000
1916*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_STRMDECINSTRCNT__SHIFT		22
A3XX_VFD_CONTROL_0_STRMDECINSTRCNT(uint32_t val)1917*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_0_STRMDECINSTRCNT(uint32_t val)
1918*4882a593Smuzhiyun {
1919*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_0_STRMDECINSTRCNT__SHIFT) & A3XX_VFD_CONTROL_0_STRMDECINSTRCNT__MASK;
1920*4882a593Smuzhiyun }
1921*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__MASK		0xf8000000
1922*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__SHIFT		27
A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT(uint32_t val)1923*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT(uint32_t val)
1924*4882a593Smuzhiyun {
1925*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__SHIFT) & A3XX_VFD_CONTROL_0_STRMFETCHINSTRCNT__MASK;
1926*4882a593Smuzhiyun }
1927*4882a593Smuzhiyun 
1928*4882a593Smuzhiyun #define REG_A3XX_VFD_CONTROL_1					0x00002241
1929*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MAXSTORAGE__MASK			0x0000000f
1930*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT			0
A3XX_VFD_CONTROL_1_MAXSTORAGE(uint32_t val)1931*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_1_MAXSTORAGE(uint32_t val)
1932*4882a593Smuzhiyun {
1933*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_1_MAXSTORAGE__SHIFT) & A3XX_VFD_CONTROL_1_MAXSTORAGE__MASK;
1934*4882a593Smuzhiyun }
1935*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MAXTHRESHOLD__MASK			0x000000f0
1936*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MAXTHRESHOLD__SHIFT			4
A3XX_VFD_CONTROL_1_MAXTHRESHOLD(uint32_t val)1937*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_1_MAXTHRESHOLD(uint32_t val)
1938*4882a593Smuzhiyun {
1939*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_1_MAXTHRESHOLD__SHIFT) & A3XX_VFD_CONTROL_1_MAXTHRESHOLD__MASK;
1940*4882a593Smuzhiyun }
1941*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MINTHRESHOLD__MASK			0x00000f00
1942*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_MINTHRESHOLD__SHIFT			8
A3XX_VFD_CONTROL_1_MINTHRESHOLD(uint32_t val)1943*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_1_MINTHRESHOLD(uint32_t val)
1944*4882a593Smuzhiyun {
1945*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_1_MINTHRESHOLD__SHIFT) & A3XX_VFD_CONTROL_1_MINTHRESHOLD__MASK;
1946*4882a593Smuzhiyun }
1947*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_REGID4VTX__MASK			0x00ff0000
1948*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_REGID4VTX__SHIFT			16
A3XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)1949*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
1950*4882a593Smuzhiyun {
1951*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A3XX_VFD_CONTROL_1_REGID4VTX__MASK;
1952*4882a593Smuzhiyun }
1953*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_REGID4INST__MASK			0xff000000
1954*4882a593Smuzhiyun #define A3XX_VFD_CONTROL_1_REGID4INST__SHIFT			24
A3XX_VFD_CONTROL_1_REGID4INST(uint32_t val)1955*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
1956*4882a593Smuzhiyun {
1957*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A3XX_VFD_CONTROL_1_REGID4INST__MASK;
1958*4882a593Smuzhiyun }
1959*4882a593Smuzhiyun 
1960*4882a593Smuzhiyun #define REG_A3XX_VFD_INDEX_MIN					0x00002242
1961*4882a593Smuzhiyun 
1962*4882a593Smuzhiyun #define REG_A3XX_VFD_INDEX_MAX					0x00002243
1963*4882a593Smuzhiyun 
1964*4882a593Smuzhiyun #define REG_A3XX_VFD_INSTANCEID_OFFSET				0x00002244
1965*4882a593Smuzhiyun 
1966*4882a593Smuzhiyun #define REG_A3XX_VFD_INDEX_OFFSET				0x00002245
1967*4882a593Smuzhiyun 
REG_A3XX_VFD_FETCH(uint32_t i0)1968*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VFD_FETCH(uint32_t i0) { return 0x00002246 + 0x2*i0; }
1969*4882a593Smuzhiyun 
REG_A3XX_VFD_FETCH_INSTR_0(uint32_t i0)1970*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VFD_FETCH_INSTR_0(uint32_t i0) { return 0x00002246 + 0x2*i0; }
1971*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__MASK			0x0000007f
1972*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__SHIFT			0
A3XX_VFD_FETCH_INSTR_0_FETCHSIZE(uint32_t val)1973*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_FETCH_INSTR_0_FETCHSIZE(uint32_t val)
1974*4882a593Smuzhiyun {
1975*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_FETCHSIZE__MASK;
1976*4882a593Smuzhiyun }
1977*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK			0x0000ff80
1978*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT			7
A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE(uint32_t val)1979*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE(uint32_t val)
1980*4882a593Smuzhiyun {
1981*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_BUFSTRIDE__MASK;
1982*4882a593Smuzhiyun }
1983*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_INSTANCED			0x00010000
1984*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_SWITCHNEXT			0x00020000
1985*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_INDEXCODE__MASK			0x00fc0000
1986*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_INDEXCODE__SHIFT			18
A3XX_VFD_FETCH_INSTR_0_INDEXCODE(uint32_t val)1987*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_FETCH_INSTR_0_INDEXCODE(uint32_t val)
1988*4882a593Smuzhiyun {
1989*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_FETCH_INSTR_0_INDEXCODE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_INDEXCODE__MASK;
1990*4882a593Smuzhiyun }
1991*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_STEPRATE__MASK			0xff000000
1992*4882a593Smuzhiyun #define A3XX_VFD_FETCH_INSTR_0_STEPRATE__SHIFT			24
A3XX_VFD_FETCH_INSTR_0_STEPRATE(uint32_t val)1993*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_FETCH_INSTR_0_STEPRATE(uint32_t val)
1994*4882a593Smuzhiyun {
1995*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_FETCH_INSTR_0_STEPRATE__SHIFT) & A3XX_VFD_FETCH_INSTR_0_STEPRATE__MASK;
1996*4882a593Smuzhiyun }
1997*4882a593Smuzhiyun 
REG_A3XX_VFD_FETCH_INSTR_1(uint32_t i0)1998*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VFD_FETCH_INSTR_1(uint32_t i0) { return 0x00002247 + 0x2*i0; }
1999*4882a593Smuzhiyun 
REG_A3XX_VFD_DECODE(uint32_t i0)2000*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VFD_DECODE(uint32_t i0) { return 0x00002266 + 0x1*i0; }
2001*4882a593Smuzhiyun 
REG_A3XX_VFD_DECODE_INSTR(uint32_t i0)2002*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x00002266 + 0x1*i0; }
2003*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_WRITEMASK__MASK			0x0000000f
2004*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_WRITEMASK__SHIFT			0
A3XX_VFD_DECODE_INSTR_WRITEMASK(uint32_t val)2005*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_DECODE_INSTR_WRITEMASK(uint32_t val)
2006*4882a593Smuzhiyun {
2007*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_DECODE_INSTR_WRITEMASK__SHIFT) & A3XX_VFD_DECODE_INSTR_WRITEMASK__MASK;
2008*4882a593Smuzhiyun }
2009*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_CONSTFILL				0x00000010
2010*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_FORMAT__MASK			0x00000fc0
2011*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_FORMAT__SHIFT			6
A3XX_VFD_DECODE_INSTR_FORMAT(enum a3xx_vtx_fmt val)2012*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_DECODE_INSTR_FORMAT(enum a3xx_vtx_fmt val)
2013*4882a593Smuzhiyun {
2014*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A3XX_VFD_DECODE_INSTR_FORMAT__MASK;
2015*4882a593Smuzhiyun }
2016*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_REGID__MASK			0x000ff000
2017*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_REGID__SHIFT			12
A3XX_VFD_DECODE_INSTR_REGID(uint32_t val)2018*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_DECODE_INSTR_REGID(uint32_t val)
2019*4882a593Smuzhiyun {
2020*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_DECODE_INSTR_REGID__SHIFT) & A3XX_VFD_DECODE_INSTR_REGID__MASK;
2021*4882a593Smuzhiyun }
2022*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_INT				0x00100000
2023*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_SWAP__MASK			0x00c00000
2024*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_SWAP__SHIFT			22
A3XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)2025*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)
2026*4882a593Smuzhiyun {
2027*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_DECODE_INSTR_SWAP__SHIFT) & A3XX_VFD_DECODE_INSTR_SWAP__MASK;
2028*4882a593Smuzhiyun }
2029*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_SHIFTCNT__MASK			0x1f000000
2030*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_SHIFTCNT__SHIFT			24
A3XX_VFD_DECODE_INSTR_SHIFTCNT(uint32_t val)2031*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_DECODE_INSTR_SHIFTCNT(uint32_t val)
2032*4882a593Smuzhiyun {
2033*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_DECODE_INSTR_SHIFTCNT__SHIFT) & A3XX_VFD_DECODE_INSTR_SHIFTCNT__MASK;
2034*4882a593Smuzhiyun }
2035*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_LASTCOMPVALID			0x20000000
2036*4882a593Smuzhiyun #define A3XX_VFD_DECODE_INSTR_SWITCHNEXT			0x40000000
2037*4882a593Smuzhiyun 
2038*4882a593Smuzhiyun #define REG_A3XX_VFD_VS_THREADING_THRESHOLD			0x0000227e
2039*4882a593Smuzhiyun #define A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD__MASK	0x0000000f
2040*4882a593Smuzhiyun #define A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD__SHIFT	0
A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD(uint32_t val)2041*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD(uint32_t val)
2042*4882a593Smuzhiyun {
2043*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD__SHIFT) & A3XX_VFD_VS_THREADING_THRESHOLD_REGID_THRESHOLD__MASK;
2044*4882a593Smuzhiyun }
2045*4882a593Smuzhiyun #define A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT__MASK	0x0000ff00
2046*4882a593Smuzhiyun #define A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT__SHIFT	8
A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT(uint32_t val)2047*4882a593Smuzhiyun static inline uint32_t A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT(uint32_t val)
2048*4882a593Smuzhiyun {
2049*4882a593Smuzhiyun 	return ((val) << A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT__SHIFT) & A3XX_VFD_VS_THREADING_THRESHOLD_REGID_VTXCNT__MASK;
2050*4882a593Smuzhiyun }
2051*4882a593Smuzhiyun 
2052*4882a593Smuzhiyun #define REG_A3XX_VPC_ATTR					0x00002280
2053*4882a593Smuzhiyun #define A3XX_VPC_ATTR_TOTALATTR__MASK				0x000001ff
2054*4882a593Smuzhiyun #define A3XX_VPC_ATTR_TOTALATTR__SHIFT				0
A3XX_VPC_ATTR_TOTALATTR(uint32_t val)2055*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_ATTR_TOTALATTR(uint32_t val)
2056*4882a593Smuzhiyun {
2057*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_ATTR_TOTALATTR__SHIFT) & A3XX_VPC_ATTR_TOTALATTR__MASK;
2058*4882a593Smuzhiyun }
2059*4882a593Smuzhiyun #define A3XX_VPC_ATTR_PSIZE					0x00000200
2060*4882a593Smuzhiyun #define A3XX_VPC_ATTR_THRDASSIGN__MASK				0x0ffff000
2061*4882a593Smuzhiyun #define A3XX_VPC_ATTR_THRDASSIGN__SHIFT				12
A3XX_VPC_ATTR_THRDASSIGN(uint32_t val)2062*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_ATTR_THRDASSIGN(uint32_t val)
2063*4882a593Smuzhiyun {
2064*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_ATTR_THRDASSIGN__SHIFT) & A3XX_VPC_ATTR_THRDASSIGN__MASK;
2065*4882a593Smuzhiyun }
2066*4882a593Smuzhiyun #define A3XX_VPC_ATTR_LMSIZE__MASK				0xf0000000
2067*4882a593Smuzhiyun #define A3XX_VPC_ATTR_LMSIZE__SHIFT				28
A3XX_VPC_ATTR_LMSIZE(uint32_t val)2068*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_ATTR_LMSIZE(uint32_t val)
2069*4882a593Smuzhiyun {
2070*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_ATTR_LMSIZE__SHIFT) & A3XX_VPC_ATTR_LMSIZE__MASK;
2071*4882a593Smuzhiyun }
2072*4882a593Smuzhiyun 
2073*4882a593Smuzhiyun #define REG_A3XX_VPC_PACK					0x00002281
2074*4882a593Smuzhiyun #define A3XX_VPC_PACK_NUMFPNONPOSVAR__MASK			0x0000ff00
2075*4882a593Smuzhiyun #define A3XX_VPC_PACK_NUMFPNONPOSVAR__SHIFT			8
A3XX_VPC_PACK_NUMFPNONPOSVAR(uint32_t val)2076*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_PACK_NUMFPNONPOSVAR(uint32_t val)
2077*4882a593Smuzhiyun {
2078*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_PACK_NUMFPNONPOSVAR__SHIFT) & A3XX_VPC_PACK_NUMFPNONPOSVAR__MASK;
2079*4882a593Smuzhiyun }
2080*4882a593Smuzhiyun #define A3XX_VPC_PACK_NUMNONPOSVSVAR__MASK			0x00ff0000
2081*4882a593Smuzhiyun #define A3XX_VPC_PACK_NUMNONPOSVSVAR__SHIFT			16
A3XX_VPC_PACK_NUMNONPOSVSVAR(uint32_t val)2082*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_PACK_NUMNONPOSVSVAR(uint32_t val)
2083*4882a593Smuzhiyun {
2084*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_PACK_NUMNONPOSVSVAR__SHIFT) & A3XX_VPC_PACK_NUMNONPOSVSVAR__MASK;
2085*4882a593Smuzhiyun }
2086*4882a593Smuzhiyun 
REG_A3XX_VPC_VARYING_INTERP(uint32_t i0)2087*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00002282 + 0x1*i0; }
2088*4882a593Smuzhiyun 
REG_A3XX_VPC_VARYING_INTERP_MODE(uint32_t i0)2089*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x00002282 + 0x1*i0; }
2090*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C0__MASK			0x00000003
2091*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C0__SHIFT			0
A3XX_VPC_VARYING_INTERP_MODE_C0(enum a3xx_intp_mode val)2092*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C0(enum a3xx_intp_mode val)
2093*4882a593Smuzhiyun {
2094*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C0__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C0__MASK;
2095*4882a593Smuzhiyun }
2096*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C1__MASK			0x0000000c
2097*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C1__SHIFT			2
A3XX_VPC_VARYING_INTERP_MODE_C1(enum a3xx_intp_mode val)2098*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C1(enum a3xx_intp_mode val)
2099*4882a593Smuzhiyun {
2100*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C1__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C1__MASK;
2101*4882a593Smuzhiyun }
2102*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C2__MASK			0x00000030
2103*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C2__SHIFT			4
A3XX_VPC_VARYING_INTERP_MODE_C2(enum a3xx_intp_mode val)2104*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C2(enum a3xx_intp_mode val)
2105*4882a593Smuzhiyun {
2106*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C2__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C2__MASK;
2107*4882a593Smuzhiyun }
2108*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C3__MASK			0x000000c0
2109*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C3__SHIFT			6
A3XX_VPC_VARYING_INTERP_MODE_C3(enum a3xx_intp_mode val)2110*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C3(enum a3xx_intp_mode val)
2111*4882a593Smuzhiyun {
2112*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C3__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C3__MASK;
2113*4882a593Smuzhiyun }
2114*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C4__MASK			0x00000300
2115*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C4__SHIFT			8
A3XX_VPC_VARYING_INTERP_MODE_C4(enum a3xx_intp_mode val)2116*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C4(enum a3xx_intp_mode val)
2117*4882a593Smuzhiyun {
2118*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C4__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C4__MASK;
2119*4882a593Smuzhiyun }
2120*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C5__MASK			0x00000c00
2121*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C5__SHIFT			10
A3XX_VPC_VARYING_INTERP_MODE_C5(enum a3xx_intp_mode val)2122*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C5(enum a3xx_intp_mode val)
2123*4882a593Smuzhiyun {
2124*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C5__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C5__MASK;
2125*4882a593Smuzhiyun }
2126*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C6__MASK			0x00003000
2127*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C6__SHIFT			12
A3XX_VPC_VARYING_INTERP_MODE_C6(enum a3xx_intp_mode val)2128*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C6(enum a3xx_intp_mode val)
2129*4882a593Smuzhiyun {
2130*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C6__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C6__MASK;
2131*4882a593Smuzhiyun }
2132*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C7__MASK			0x0000c000
2133*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C7__SHIFT			14
A3XX_VPC_VARYING_INTERP_MODE_C7(enum a3xx_intp_mode val)2134*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C7(enum a3xx_intp_mode val)
2135*4882a593Smuzhiyun {
2136*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C7__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C7__MASK;
2137*4882a593Smuzhiyun }
2138*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C8__MASK			0x00030000
2139*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C8__SHIFT			16
A3XX_VPC_VARYING_INTERP_MODE_C8(enum a3xx_intp_mode val)2140*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C8(enum a3xx_intp_mode val)
2141*4882a593Smuzhiyun {
2142*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C8__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C8__MASK;
2143*4882a593Smuzhiyun }
2144*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C9__MASK			0x000c0000
2145*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_C9__SHIFT			18
A3XX_VPC_VARYING_INTERP_MODE_C9(enum a3xx_intp_mode val)2146*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_C9(enum a3xx_intp_mode val)
2147*4882a593Smuzhiyun {
2148*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_C9__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_C9__MASK;
2149*4882a593Smuzhiyun }
2150*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CA__MASK			0x00300000
2151*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CA__SHIFT			20
A3XX_VPC_VARYING_INTERP_MODE_CA(enum a3xx_intp_mode val)2152*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CA(enum a3xx_intp_mode val)
2153*4882a593Smuzhiyun {
2154*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CA__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CA__MASK;
2155*4882a593Smuzhiyun }
2156*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CB__MASK			0x00c00000
2157*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CB__SHIFT			22
A3XX_VPC_VARYING_INTERP_MODE_CB(enum a3xx_intp_mode val)2158*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CB(enum a3xx_intp_mode val)
2159*4882a593Smuzhiyun {
2160*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CB__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CB__MASK;
2161*4882a593Smuzhiyun }
2162*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CC__MASK			0x03000000
2163*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CC__SHIFT			24
A3XX_VPC_VARYING_INTERP_MODE_CC(enum a3xx_intp_mode val)2164*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CC(enum a3xx_intp_mode val)
2165*4882a593Smuzhiyun {
2166*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CC__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CC__MASK;
2167*4882a593Smuzhiyun }
2168*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CD__MASK			0x0c000000
2169*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CD__SHIFT			26
A3XX_VPC_VARYING_INTERP_MODE_CD(enum a3xx_intp_mode val)2170*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CD(enum a3xx_intp_mode val)
2171*4882a593Smuzhiyun {
2172*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CD__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CD__MASK;
2173*4882a593Smuzhiyun }
2174*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CE__MASK			0x30000000
2175*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CE__SHIFT			28
A3XX_VPC_VARYING_INTERP_MODE_CE(enum a3xx_intp_mode val)2176*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CE(enum a3xx_intp_mode val)
2177*4882a593Smuzhiyun {
2178*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CE__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CE__MASK;
2179*4882a593Smuzhiyun }
2180*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CF__MASK			0xc0000000
2181*4882a593Smuzhiyun #define A3XX_VPC_VARYING_INTERP_MODE_CF__SHIFT			30
A3XX_VPC_VARYING_INTERP_MODE_CF(enum a3xx_intp_mode val)2182*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_INTERP_MODE_CF(enum a3xx_intp_mode val)
2183*4882a593Smuzhiyun {
2184*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_INTERP_MODE_CF__SHIFT) & A3XX_VPC_VARYING_INTERP_MODE_CF__MASK;
2185*4882a593Smuzhiyun }
2186*4882a593Smuzhiyun 
REG_A3XX_VPC_VARYING_PS_REPL(uint32_t i0)2187*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x00002286 + 0x1*i0; }
2188*4882a593Smuzhiyun 
REG_A3XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0)2189*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x00002286 + 0x1*i0; }
2190*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C0__MASK			0x00000003
2191*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C0__SHIFT			0
A3XX_VPC_VARYING_PS_REPL_MODE_C0(enum a3xx_repl_mode val)2192*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C0(enum a3xx_repl_mode val)
2193*4882a593Smuzhiyun {
2194*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C0__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C0__MASK;
2195*4882a593Smuzhiyun }
2196*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C1__MASK			0x0000000c
2197*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C1__SHIFT			2
A3XX_VPC_VARYING_PS_REPL_MODE_C1(enum a3xx_repl_mode val)2198*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C1(enum a3xx_repl_mode val)
2199*4882a593Smuzhiyun {
2200*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C1__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C1__MASK;
2201*4882a593Smuzhiyun }
2202*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C2__MASK			0x00000030
2203*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C2__SHIFT			4
A3XX_VPC_VARYING_PS_REPL_MODE_C2(enum a3xx_repl_mode val)2204*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C2(enum a3xx_repl_mode val)
2205*4882a593Smuzhiyun {
2206*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C2__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C2__MASK;
2207*4882a593Smuzhiyun }
2208*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C3__MASK			0x000000c0
2209*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C3__SHIFT			6
A3XX_VPC_VARYING_PS_REPL_MODE_C3(enum a3xx_repl_mode val)2210*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C3(enum a3xx_repl_mode val)
2211*4882a593Smuzhiyun {
2212*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C3__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C3__MASK;
2213*4882a593Smuzhiyun }
2214*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C4__MASK			0x00000300
2215*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C4__SHIFT			8
A3XX_VPC_VARYING_PS_REPL_MODE_C4(enum a3xx_repl_mode val)2216*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C4(enum a3xx_repl_mode val)
2217*4882a593Smuzhiyun {
2218*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C4__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C4__MASK;
2219*4882a593Smuzhiyun }
2220*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C5__MASK			0x00000c00
2221*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C5__SHIFT			10
A3XX_VPC_VARYING_PS_REPL_MODE_C5(enum a3xx_repl_mode val)2222*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C5(enum a3xx_repl_mode val)
2223*4882a593Smuzhiyun {
2224*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C5__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C5__MASK;
2225*4882a593Smuzhiyun }
2226*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C6__MASK			0x00003000
2227*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C6__SHIFT			12
A3XX_VPC_VARYING_PS_REPL_MODE_C6(enum a3xx_repl_mode val)2228*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C6(enum a3xx_repl_mode val)
2229*4882a593Smuzhiyun {
2230*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C6__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C6__MASK;
2231*4882a593Smuzhiyun }
2232*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C7__MASK			0x0000c000
2233*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C7__SHIFT			14
A3XX_VPC_VARYING_PS_REPL_MODE_C7(enum a3xx_repl_mode val)2234*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C7(enum a3xx_repl_mode val)
2235*4882a593Smuzhiyun {
2236*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C7__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C7__MASK;
2237*4882a593Smuzhiyun }
2238*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C8__MASK			0x00030000
2239*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C8__SHIFT			16
A3XX_VPC_VARYING_PS_REPL_MODE_C8(enum a3xx_repl_mode val)2240*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C8(enum a3xx_repl_mode val)
2241*4882a593Smuzhiyun {
2242*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C8__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C8__MASK;
2243*4882a593Smuzhiyun }
2244*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C9__MASK			0x000c0000
2245*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_C9__SHIFT			18
A3XX_VPC_VARYING_PS_REPL_MODE_C9(enum a3xx_repl_mode val)2246*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_C9(enum a3xx_repl_mode val)
2247*4882a593Smuzhiyun {
2248*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_C9__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_C9__MASK;
2249*4882a593Smuzhiyun }
2250*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CA__MASK			0x00300000
2251*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CA__SHIFT			20
A3XX_VPC_VARYING_PS_REPL_MODE_CA(enum a3xx_repl_mode val)2252*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CA(enum a3xx_repl_mode val)
2253*4882a593Smuzhiyun {
2254*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CA__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CA__MASK;
2255*4882a593Smuzhiyun }
2256*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CB__MASK			0x00c00000
2257*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CB__SHIFT			22
A3XX_VPC_VARYING_PS_REPL_MODE_CB(enum a3xx_repl_mode val)2258*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CB(enum a3xx_repl_mode val)
2259*4882a593Smuzhiyun {
2260*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CB__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CB__MASK;
2261*4882a593Smuzhiyun }
2262*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CC__MASK			0x03000000
2263*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CC__SHIFT			24
A3XX_VPC_VARYING_PS_REPL_MODE_CC(enum a3xx_repl_mode val)2264*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CC(enum a3xx_repl_mode val)
2265*4882a593Smuzhiyun {
2266*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CC__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CC__MASK;
2267*4882a593Smuzhiyun }
2268*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CD__MASK			0x0c000000
2269*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CD__SHIFT			26
A3XX_VPC_VARYING_PS_REPL_MODE_CD(enum a3xx_repl_mode val)2270*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CD(enum a3xx_repl_mode val)
2271*4882a593Smuzhiyun {
2272*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CD__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CD__MASK;
2273*4882a593Smuzhiyun }
2274*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CE__MASK			0x30000000
2275*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CE__SHIFT			28
A3XX_VPC_VARYING_PS_REPL_MODE_CE(enum a3xx_repl_mode val)2276*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CE(enum a3xx_repl_mode val)
2277*4882a593Smuzhiyun {
2278*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CE__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CE__MASK;
2279*4882a593Smuzhiyun }
2280*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CF__MASK			0xc0000000
2281*4882a593Smuzhiyun #define A3XX_VPC_VARYING_PS_REPL_MODE_CF__SHIFT			30
A3XX_VPC_VARYING_PS_REPL_MODE_CF(enum a3xx_repl_mode val)2282*4882a593Smuzhiyun static inline uint32_t A3XX_VPC_VARYING_PS_REPL_MODE_CF(enum a3xx_repl_mode val)
2283*4882a593Smuzhiyun {
2284*4882a593Smuzhiyun 	return ((val) << A3XX_VPC_VARYING_PS_REPL_MODE_CF__SHIFT) & A3XX_VPC_VARYING_PS_REPL_MODE_CF__MASK;
2285*4882a593Smuzhiyun }
2286*4882a593Smuzhiyun 
2287*4882a593Smuzhiyun #define REG_A3XX_VPC_VARY_CYLWRAP_ENABLE_0			0x0000228a
2288*4882a593Smuzhiyun 
2289*4882a593Smuzhiyun #define REG_A3XX_VPC_VARY_CYLWRAP_ENABLE_1			0x0000228b
2290*4882a593Smuzhiyun 
2291*4882a593Smuzhiyun #define REG_A3XX_SP_SP_CTRL_REG					0x000022c0
2292*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_RESOLVE				0x00010000
2293*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_CONSTMODE__MASK			0x00040000
2294*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_CONSTMODE__SHIFT			18
A3XX_SP_SP_CTRL_REG_CONSTMODE(uint32_t val)2295*4882a593Smuzhiyun static inline uint32_t A3XX_SP_SP_CTRL_REG_CONSTMODE(uint32_t val)
2296*4882a593Smuzhiyun {
2297*4882a593Smuzhiyun 	return ((val) << A3XX_SP_SP_CTRL_REG_CONSTMODE__SHIFT) & A3XX_SP_SP_CTRL_REG_CONSTMODE__MASK;
2298*4882a593Smuzhiyun }
2299*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_BINNING				0x00080000
2300*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_SLEEPMODE__MASK			0x00300000
2301*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_SLEEPMODE__SHIFT			20
A3XX_SP_SP_CTRL_REG_SLEEPMODE(uint32_t val)2302*4882a593Smuzhiyun static inline uint32_t A3XX_SP_SP_CTRL_REG_SLEEPMODE(uint32_t val)
2303*4882a593Smuzhiyun {
2304*4882a593Smuzhiyun 	return ((val) << A3XX_SP_SP_CTRL_REG_SLEEPMODE__SHIFT) & A3XX_SP_SP_CTRL_REG_SLEEPMODE__MASK;
2305*4882a593Smuzhiyun }
2306*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_L0MODE__MASK			0x00c00000
2307*4882a593Smuzhiyun #define A3XX_SP_SP_CTRL_REG_L0MODE__SHIFT			22
A3XX_SP_SP_CTRL_REG_L0MODE(uint32_t val)2308*4882a593Smuzhiyun static inline uint32_t A3XX_SP_SP_CTRL_REG_L0MODE(uint32_t val)
2309*4882a593Smuzhiyun {
2310*4882a593Smuzhiyun 	return ((val) << A3XX_SP_SP_CTRL_REG_L0MODE__SHIFT) & A3XX_SP_SP_CTRL_REG_L0MODE__MASK;
2311*4882a593Smuzhiyun }
2312*4882a593Smuzhiyun 
2313*4882a593Smuzhiyun #define REG_A3XX_SP_VS_CTRL_REG0				0x000022c4
2314*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_THREADMODE__MASK			0x00000001
2315*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT			0
A3XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)2316*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
2317*4882a593Smuzhiyun {
2318*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT) & A3XX_SP_VS_CTRL_REG0_THREADMODE__MASK;
2319*4882a593Smuzhiyun }
2320*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__MASK		0x00000002
2321*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__SHIFT		1
A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffermode val)2322*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffermode val)
2323*4882a593Smuzhiyun {
2324*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__SHIFT) & A3XX_SP_VS_CTRL_REG0_INSTRBUFFERMODE__MASK;
2325*4882a593Smuzhiyun }
2326*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_CACHEINVALID			0x00000004
2327*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_ALUSCHMODE				0x00000008
2328*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
2329*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)2330*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
2331*4882a593Smuzhiyun {
2332*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A3XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
2333*4882a593Smuzhiyun }
2334*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
2335*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)2336*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
2337*4882a593Smuzhiyun {
2338*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A3XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
2339*4882a593Smuzhiyun }
2340*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_THREADSIZE__MASK			0x00100000
2341*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT			20
A3XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)2342*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
2343*4882a593Smuzhiyun {
2344*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A3XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
2345*4882a593Smuzhiyun }
2346*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_SUPERTHREADMODE			0x00200000
2347*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_LENGTH__MASK			0xff000000
2348*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG0_LENGTH__SHIFT			24
A3XX_SP_VS_CTRL_REG0_LENGTH(uint32_t val)2349*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG0_LENGTH(uint32_t val)
2350*4882a593Smuzhiyun {
2351*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG0_LENGTH__SHIFT) & A3XX_SP_VS_CTRL_REG0_LENGTH__MASK;
2352*4882a593Smuzhiyun }
2353*4882a593Smuzhiyun 
2354*4882a593Smuzhiyun #define REG_A3XX_SP_VS_CTRL_REG1				0x000022c5
2355*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_CONSTLENGTH__MASK			0x000003ff
2356*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_CONSTLENGTH__SHIFT			0
A3XX_SP_VS_CTRL_REG1_CONSTLENGTH(uint32_t val)2357*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG1_CONSTLENGTH(uint32_t val)
2358*4882a593Smuzhiyun {
2359*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG1_CONSTLENGTH__SHIFT) & A3XX_SP_VS_CTRL_REG1_CONSTLENGTH__MASK;
2360*4882a593Smuzhiyun }
2361*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT__MASK		0x000ffc00
2362*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT__SHIFT		10
A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT(uint32_t val)2363*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT(uint32_t val)
2364*4882a593Smuzhiyun {
2365*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT__SHIFT) & A3XX_SP_VS_CTRL_REG1_CONSTFOOTPRINT__MASK;
2366*4882a593Smuzhiyun }
2367*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__MASK		0x7f000000
2368*4882a593Smuzhiyun #define A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__SHIFT		24
A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)2369*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)
2370*4882a593Smuzhiyun {
2371*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__SHIFT) & A3XX_SP_VS_CTRL_REG1_INITIALOUTSTANDING__MASK;
2372*4882a593Smuzhiyun }
2373*4882a593Smuzhiyun 
2374*4882a593Smuzhiyun #define REG_A3XX_SP_VS_PARAM_REG				0x000022c6
2375*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_POSREGID__MASK			0x000000ff
2376*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_POSREGID__SHIFT			0
A3XX_SP_VS_PARAM_REG_POSREGID(uint32_t val)2377*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PARAM_REG_POSREGID(uint32_t val)
2378*4882a593Smuzhiyun {
2379*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PARAM_REG_POSREGID__SHIFT) & A3XX_SP_VS_PARAM_REG_POSREGID__MASK;
2380*4882a593Smuzhiyun }
2381*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_PSIZEREGID__MASK			0x0000ff00
2382*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_PSIZEREGID__SHIFT			8
A3XX_SP_VS_PARAM_REG_PSIZEREGID(uint32_t val)2383*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PARAM_REG_PSIZEREGID(uint32_t val)
2384*4882a593Smuzhiyun {
2385*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PARAM_REG_PSIZEREGID__SHIFT) & A3XX_SP_VS_PARAM_REG_PSIZEREGID__MASK;
2386*4882a593Smuzhiyun }
2387*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_POS2DMODE				0x00010000
2388*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK		0x01f00000
2389*4882a593Smuzhiyun #define A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__SHIFT		20
A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)2390*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR(uint32_t val)
2391*4882a593Smuzhiyun {
2392*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__SHIFT) & A3XX_SP_VS_PARAM_REG_TOTALVSOUTVAR__MASK;
2393*4882a593Smuzhiyun }
2394*4882a593Smuzhiyun 
REG_A3XX_SP_VS_OUT(uint32_t i0)2395*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_VS_OUT(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
2396*4882a593Smuzhiyun 
REG_A3XX_SP_VS_OUT_REG(uint32_t i0)2397*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_VS_OUT_REG(uint32_t i0) { return 0x000022c7 + 0x1*i0; }
2398*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_A_REGID__MASK			0x000000ff
2399*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_A_REGID__SHIFT			0
A3XX_SP_VS_OUT_REG_A_REGID(uint32_t val)2400*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
2401*4882a593Smuzhiyun {
2402*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A3XX_SP_VS_OUT_REG_A_REGID__MASK;
2403*4882a593Smuzhiyun }
2404*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_A_HALF				0x00000100
2405*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_A_COMPMASK__MASK			0x00001e00
2406*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT			9
A3XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)2407*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
2408*4882a593Smuzhiyun {
2409*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A3XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
2410*4882a593Smuzhiyun }
2411*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_B_REGID__MASK			0x00ff0000
2412*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_B_REGID__SHIFT			16
A3XX_SP_VS_OUT_REG_B_REGID(uint32_t val)2413*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
2414*4882a593Smuzhiyun {
2415*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A3XX_SP_VS_OUT_REG_B_REGID__MASK;
2416*4882a593Smuzhiyun }
2417*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_B_HALF				0x01000000
2418*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_B_COMPMASK__MASK			0x1e000000
2419*4882a593Smuzhiyun #define A3XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT			25
A3XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)2420*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
2421*4882a593Smuzhiyun {
2422*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A3XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
2423*4882a593Smuzhiyun }
2424*4882a593Smuzhiyun 
REG_A3XX_SP_VS_VPC_DST(uint32_t i0)2425*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_VS_VPC_DST(uint32_t i0) { return 0x000022d0 + 0x1*i0; }
2426*4882a593Smuzhiyun 
REG_A3XX_SP_VS_VPC_DST_REG(uint32_t i0)2427*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x000022d0 + 0x1*i0; }
2428*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK			0x0000007f
2429*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT			0
A3XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)2430*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
2431*4882a593Smuzhiyun {
2432*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
2433*4882a593Smuzhiyun }
2434*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK			0x00007f00
2435*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT			8
A3XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)2436*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
2437*4882a593Smuzhiyun {
2438*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
2439*4882a593Smuzhiyun }
2440*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK			0x007f0000
2441*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT			16
A3XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)2442*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
2443*4882a593Smuzhiyun {
2444*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
2445*4882a593Smuzhiyun }
2446*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK			0x7f000000
2447*4882a593Smuzhiyun #define A3XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT			24
A3XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)2448*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
2449*4882a593Smuzhiyun {
2450*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A3XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
2451*4882a593Smuzhiyun }
2452*4882a593Smuzhiyun 
2453*4882a593Smuzhiyun #define REG_A3XX_SP_VS_OBJ_OFFSET_REG				0x000022d4
2454*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK	0x0000ffff
2455*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT	0
A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)2456*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)
2457*4882a593Smuzhiyun {
2458*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT) & A3XX_SP_VS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK;
2459*4882a593Smuzhiyun }
2460*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2461*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2462*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2463*4882a593Smuzhiyun {
2464*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A3XX_SP_VS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2465*4882a593Smuzhiyun }
2466*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2467*4882a593Smuzhiyun #define A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2468*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2469*4882a593Smuzhiyun {
2470*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A3XX_SP_VS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2471*4882a593Smuzhiyun }
2472*4882a593Smuzhiyun 
2473*4882a593Smuzhiyun #define REG_A3XX_SP_VS_OBJ_START_REG				0x000022d5
2474*4882a593Smuzhiyun 
2475*4882a593Smuzhiyun #define REG_A3XX_SP_VS_PVT_MEM_PARAM_REG			0x000022d6
2476*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK	0x000000ff
2477*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT	0
A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)2478*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)
2479*4882a593Smuzhiyun {
2480*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK;
2481*4882a593Smuzhiyun }
2482*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK	0x00ffff00
2483*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT	8
A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)2484*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)
2485*4882a593Smuzhiyun {
2486*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK;
2487*4882a593Smuzhiyun }
2488*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK	0xff000000
2489*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT	24
A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)2490*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)
2491*4882a593Smuzhiyun {
2492*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT) & A3XX_SP_VS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK;
2493*4882a593Smuzhiyun }
2494*4882a593Smuzhiyun 
2495*4882a593Smuzhiyun #define REG_A3XX_SP_VS_PVT_MEM_ADDR_REG				0x000022d7
2496*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__MASK		0x0000001f
2497*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT		0
A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)2498*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)
2499*4882a593Smuzhiyun {
2500*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT) & A3XX_SP_VS_PVT_MEM_ADDR_REG_BURSTLEN__MASK;
2501*4882a593Smuzhiyun }
2502*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK	0xffffffe0
2503*4882a593Smuzhiyun #define A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT	5
A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)2504*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)
2505*4882a593Smuzhiyun {
2506*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT) & A3XX_SP_VS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK;
2507*4882a593Smuzhiyun }
2508*4882a593Smuzhiyun 
2509*4882a593Smuzhiyun #define REG_A3XX_SP_VS_PVT_MEM_SIZE_REG				0x000022d8
2510*4882a593Smuzhiyun 
2511*4882a593Smuzhiyun #define REG_A3XX_SP_VS_LENGTH_REG				0x000022df
2512*4882a593Smuzhiyun #define A3XX_SP_VS_LENGTH_REG_SHADERLENGTH__MASK		0xffffffff
2513*4882a593Smuzhiyun #define A3XX_SP_VS_LENGTH_REG_SHADERLENGTH__SHIFT		0
A3XX_SP_VS_LENGTH_REG_SHADERLENGTH(uint32_t val)2514*4882a593Smuzhiyun static inline uint32_t A3XX_SP_VS_LENGTH_REG_SHADERLENGTH(uint32_t val)
2515*4882a593Smuzhiyun {
2516*4882a593Smuzhiyun 	return ((val) << A3XX_SP_VS_LENGTH_REG_SHADERLENGTH__SHIFT) & A3XX_SP_VS_LENGTH_REG_SHADERLENGTH__MASK;
2517*4882a593Smuzhiyun }
2518*4882a593Smuzhiyun 
2519*4882a593Smuzhiyun #define REG_A3XX_SP_FS_CTRL_REG0				0x000022e0
2520*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_THREADMODE__MASK			0x00000001
2521*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT			0
A3XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)2522*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
2523*4882a593Smuzhiyun {
2524*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT) & A3XX_SP_FS_CTRL_REG0_THREADMODE__MASK;
2525*4882a593Smuzhiyun }
2526*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__MASK		0x00000002
2527*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__SHIFT		1
A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffermode val)2528*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE(enum a3xx_instrbuffermode val)
2529*4882a593Smuzhiyun {
2530*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__SHIFT) & A3XX_SP_FS_CTRL_REG0_INSTRBUFFERMODE__MASK;
2531*4882a593Smuzhiyun }
2532*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_CACHEINVALID			0x00000004
2533*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_ALUSCHMODE				0x00000008
2534*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x000003f0
2535*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		4
A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)2536*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
2537*4882a593Smuzhiyun {
2538*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A3XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
2539*4882a593Smuzhiyun }
2540*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x0000fc00
2541*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		10
A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)2542*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
2543*4882a593Smuzhiyun {
2544*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A3XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
2545*4882a593Smuzhiyun }
2546*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_FSBYPASSENABLE			0x00020000
2547*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_INOUTREGOVERLAP			0x00040000
2548*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_OUTORDERED				0x00080000
2549*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_THREADSIZE__MASK			0x00100000
2550*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT			20
A3XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)2551*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
2552*4882a593Smuzhiyun {
2553*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A3XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
2554*4882a593Smuzhiyun }
2555*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_SUPERTHREADMODE			0x00200000
2556*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_PIXLODENABLE			0x00400000
2557*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_COMPUTEMODE			0x00800000
2558*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_LENGTH__MASK			0xff000000
2559*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG0_LENGTH__SHIFT			24
A3XX_SP_FS_CTRL_REG0_LENGTH(uint32_t val)2560*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG0_LENGTH(uint32_t val)
2561*4882a593Smuzhiyun {
2562*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG0_LENGTH__SHIFT) & A3XX_SP_FS_CTRL_REG0_LENGTH__MASK;
2563*4882a593Smuzhiyun }
2564*4882a593Smuzhiyun 
2565*4882a593Smuzhiyun #define REG_A3XX_SP_FS_CTRL_REG1				0x000022e1
2566*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_CONSTLENGTH__MASK			0x000003ff
2567*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_CONSTLENGTH__SHIFT			0
A3XX_SP_FS_CTRL_REG1_CONSTLENGTH(uint32_t val)2568*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG1_CONSTLENGTH(uint32_t val)
2569*4882a593Smuzhiyun {
2570*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG1_CONSTLENGTH__SHIFT) & A3XX_SP_FS_CTRL_REG1_CONSTLENGTH__MASK;
2571*4882a593Smuzhiyun }
2572*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT__MASK		0x000ffc00
2573*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT__SHIFT		10
A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT(uint32_t val)2574*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT(uint32_t val)
2575*4882a593Smuzhiyun {
2576*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT__SHIFT) & A3XX_SP_FS_CTRL_REG1_CONSTFOOTPRINT__MASK;
2577*4882a593Smuzhiyun }
2578*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__MASK		0x00f00000
2579*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__SHIFT		20
A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)2580*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING(uint32_t val)
2581*4882a593Smuzhiyun {
2582*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__SHIFT) & A3XX_SP_FS_CTRL_REG1_INITIALOUTSTANDING__MASK;
2583*4882a593Smuzhiyun }
2584*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__MASK		0x7f000000
2585*4882a593Smuzhiyun #define A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__SHIFT		24
A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET(uint32_t val)2586*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET(uint32_t val)
2587*4882a593Smuzhiyun {
2588*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__SHIFT) & A3XX_SP_FS_CTRL_REG1_HALFPRECVAROFFSET__MASK;
2589*4882a593Smuzhiyun }
2590*4882a593Smuzhiyun 
2591*4882a593Smuzhiyun #define REG_A3XX_SP_FS_OBJ_OFFSET_REG				0x000022e2
2592*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK	0x0000ffff
2593*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT	0
A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)2594*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET(uint32_t val)
2595*4882a593Smuzhiyun {
2596*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__SHIFT) & A3XX_SP_FS_OBJ_OFFSET_REG_FIRSTEXECINSTROFFSET__MASK;
2597*4882a593Smuzhiyun }
2598*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK	0x01ff0000
2599*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT	16
A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)2600*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET(uint32_t val)
2601*4882a593Smuzhiyun {
2602*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__SHIFT) & A3XX_SP_FS_OBJ_OFFSET_REG_CONSTOBJECTOFFSET__MASK;
2603*4882a593Smuzhiyun }
2604*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK		0xfe000000
2605*4882a593Smuzhiyun #define A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT	25
A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)2606*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET(uint32_t val)
2607*4882a593Smuzhiyun {
2608*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__SHIFT) & A3XX_SP_FS_OBJ_OFFSET_REG_SHADEROBJOFFSET__MASK;
2609*4882a593Smuzhiyun }
2610*4882a593Smuzhiyun 
2611*4882a593Smuzhiyun #define REG_A3XX_SP_FS_OBJ_START_REG				0x000022e3
2612*4882a593Smuzhiyun 
2613*4882a593Smuzhiyun #define REG_A3XX_SP_FS_PVT_MEM_PARAM_REG			0x000022e4
2614*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK	0x000000ff
2615*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT	0
A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)2616*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM(uint32_t val)
2617*4882a593Smuzhiyun {
2618*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_MEMSIZEPERITEM__MASK;
2619*4882a593Smuzhiyun }
2620*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK	0x00ffff00
2621*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT	8
A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)2622*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET(uint32_t val)
2623*4882a593Smuzhiyun {
2624*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKOFFSET__MASK;
2625*4882a593Smuzhiyun }
2626*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK	0xff000000
2627*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT	24
A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)2628*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD(uint32_t val)
2629*4882a593Smuzhiyun {
2630*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__SHIFT) & A3XX_SP_FS_PVT_MEM_PARAM_REG_HWSTACKSIZEPERTHREAD__MASK;
2631*4882a593Smuzhiyun }
2632*4882a593Smuzhiyun 
2633*4882a593Smuzhiyun #define REG_A3XX_SP_FS_PVT_MEM_ADDR_REG				0x000022e5
2634*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__MASK		0x0000001f
2635*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT		0
A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)2636*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN(uint32_t val)
2637*4882a593Smuzhiyun {
2638*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__SHIFT) & A3XX_SP_FS_PVT_MEM_ADDR_REG_BURSTLEN__MASK;
2639*4882a593Smuzhiyun }
2640*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK	0xffffffe0
2641*4882a593Smuzhiyun #define A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT	5
A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)2642*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS(uint32_t val)
2643*4882a593Smuzhiyun {
2644*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__SHIFT) & A3XX_SP_FS_PVT_MEM_ADDR_REG_SHADERSTARTADDRESS__MASK;
2645*4882a593Smuzhiyun }
2646*4882a593Smuzhiyun 
2647*4882a593Smuzhiyun #define REG_A3XX_SP_FS_PVT_MEM_SIZE_REG				0x000022e6
2648*4882a593Smuzhiyun 
2649*4882a593Smuzhiyun #define REG_A3XX_SP_FS_FLAT_SHAD_MODE_REG_0			0x000022e8
2650*4882a593Smuzhiyun 
2651*4882a593Smuzhiyun #define REG_A3XX_SP_FS_FLAT_SHAD_MODE_REG_1			0x000022e9
2652*4882a593Smuzhiyun 
2653*4882a593Smuzhiyun #define REG_A3XX_SP_FS_OUTPUT_REG				0x000022ec
2654*4882a593Smuzhiyun #define A3XX_SP_FS_OUTPUT_REG_MRT__MASK				0x00000003
2655*4882a593Smuzhiyun #define A3XX_SP_FS_OUTPUT_REG_MRT__SHIFT			0
A3XX_SP_FS_OUTPUT_REG_MRT(uint32_t val)2656*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_OUTPUT_REG_MRT(uint32_t val)
2657*4882a593Smuzhiyun {
2658*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_OUTPUT_REG_MRT__SHIFT) & A3XX_SP_FS_OUTPUT_REG_MRT__MASK;
2659*4882a593Smuzhiyun }
2660*4882a593Smuzhiyun #define A3XX_SP_FS_OUTPUT_REG_DEPTH_ENABLE			0x00000080
2661*4882a593Smuzhiyun #define A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__MASK			0x0000ff00
2662*4882a593Smuzhiyun #define A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__SHIFT		8
A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID(uint32_t val)2663*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID(uint32_t val)
2664*4882a593Smuzhiyun {
2665*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__SHIFT) & A3XX_SP_FS_OUTPUT_REG_DEPTH_REGID__MASK;
2666*4882a593Smuzhiyun }
2667*4882a593Smuzhiyun 
REG_A3XX_SP_FS_MRT(uint32_t i0)2668*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_FS_MRT(uint32_t i0) { return 0x000022f0 + 0x1*i0; }
2669*4882a593Smuzhiyun 
REG_A3XX_SP_FS_MRT_REG(uint32_t i0)2670*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_FS_MRT_REG(uint32_t i0) { return 0x000022f0 + 0x1*i0; }
2671*4882a593Smuzhiyun #define A3XX_SP_FS_MRT_REG_REGID__MASK				0x000000ff
2672*4882a593Smuzhiyun #define A3XX_SP_FS_MRT_REG_REGID__SHIFT				0
A3XX_SP_FS_MRT_REG_REGID(uint32_t val)2673*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_MRT_REG_REGID(uint32_t val)
2674*4882a593Smuzhiyun {
2675*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_MRT_REG_REGID__SHIFT) & A3XX_SP_FS_MRT_REG_REGID__MASK;
2676*4882a593Smuzhiyun }
2677*4882a593Smuzhiyun #define A3XX_SP_FS_MRT_REG_HALF_PRECISION			0x00000100
2678*4882a593Smuzhiyun #define A3XX_SP_FS_MRT_REG_SINT					0x00000400
2679*4882a593Smuzhiyun #define A3XX_SP_FS_MRT_REG_UINT					0x00000800
2680*4882a593Smuzhiyun 
REG_A3XX_SP_FS_IMAGE_OUTPUT(uint32_t i0)2681*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_FS_IMAGE_OUTPUT(uint32_t i0) { return 0x000022f4 + 0x1*i0; }
2682*4882a593Smuzhiyun 
REG_A3XX_SP_FS_IMAGE_OUTPUT_REG(uint32_t i0)2683*4882a593Smuzhiyun static inline uint32_t REG_A3XX_SP_FS_IMAGE_OUTPUT_REG(uint32_t i0) { return 0x000022f4 + 0x1*i0; }
2684*4882a593Smuzhiyun #define A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT__MASK		0x0000003f
2685*4882a593Smuzhiyun #define A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT__SHIFT		0
A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT(enum a3xx_color_fmt val)2686*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT(enum a3xx_color_fmt val)
2687*4882a593Smuzhiyun {
2688*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT__SHIFT) & A3XX_SP_FS_IMAGE_OUTPUT_REG_MRTFORMAT__MASK;
2689*4882a593Smuzhiyun }
2690*4882a593Smuzhiyun 
2691*4882a593Smuzhiyun #define REG_A3XX_SP_FS_LENGTH_REG				0x000022ff
2692*4882a593Smuzhiyun #define A3XX_SP_FS_LENGTH_REG_SHADERLENGTH__MASK		0xffffffff
2693*4882a593Smuzhiyun #define A3XX_SP_FS_LENGTH_REG_SHADERLENGTH__SHIFT		0
A3XX_SP_FS_LENGTH_REG_SHADERLENGTH(uint32_t val)2694*4882a593Smuzhiyun static inline uint32_t A3XX_SP_FS_LENGTH_REG_SHADERLENGTH(uint32_t val)
2695*4882a593Smuzhiyun {
2696*4882a593Smuzhiyun 	return ((val) << A3XX_SP_FS_LENGTH_REG_SHADERLENGTH__SHIFT) & A3XX_SP_FS_LENGTH_REG_SHADERLENGTH__MASK;
2697*4882a593Smuzhiyun }
2698*4882a593Smuzhiyun 
2699*4882a593Smuzhiyun #define REG_A3XX_PA_SC_AA_CONFIG				0x00002301
2700*4882a593Smuzhiyun 
2701*4882a593Smuzhiyun #define REG_A3XX_TPL1_TP_VS_TEX_OFFSET				0x00002340
2702*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET__MASK		0x000000ff
2703*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET__SHIFT		0
A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET(uint32_t val)2704*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET(uint32_t val)
2705*4882a593Smuzhiyun {
2706*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET__SHIFT) & A3XX_TPL1_TP_VS_TEX_OFFSET_SAMPLEROFFSET__MASK;
2707*4882a593Smuzhiyun }
2708*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET__MASK		0x0000ff00
2709*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET__SHIFT		8
A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET(uint32_t val)2710*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET(uint32_t val)
2711*4882a593Smuzhiyun {
2712*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET__SHIFT) & A3XX_TPL1_TP_VS_TEX_OFFSET_MEMOBJOFFSET__MASK;
2713*4882a593Smuzhiyun }
2714*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR__MASK		0xffff0000
2715*4882a593Smuzhiyun #define A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR__SHIFT		16
A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR(uint32_t val)2716*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR(uint32_t val)
2717*4882a593Smuzhiyun {
2718*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR__SHIFT) & A3XX_TPL1_TP_VS_TEX_OFFSET_BASETABLEPTR__MASK;
2719*4882a593Smuzhiyun }
2720*4882a593Smuzhiyun 
2721*4882a593Smuzhiyun #define REG_A3XX_TPL1_TP_VS_BORDER_COLOR_BASE_ADDR		0x00002341
2722*4882a593Smuzhiyun 
2723*4882a593Smuzhiyun #define REG_A3XX_TPL1_TP_FS_TEX_OFFSET				0x00002342
2724*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET__MASK		0x000000ff
2725*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET__SHIFT		0
A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET(uint32_t val)2726*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET(uint32_t val)
2727*4882a593Smuzhiyun {
2728*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET__SHIFT) & A3XX_TPL1_TP_FS_TEX_OFFSET_SAMPLEROFFSET__MASK;
2729*4882a593Smuzhiyun }
2730*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET__MASK		0x0000ff00
2731*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET__SHIFT		8
A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET(uint32_t val)2732*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET(uint32_t val)
2733*4882a593Smuzhiyun {
2734*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET__SHIFT) & A3XX_TPL1_TP_FS_TEX_OFFSET_MEMOBJOFFSET__MASK;
2735*4882a593Smuzhiyun }
2736*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR__MASK		0xffff0000
2737*4882a593Smuzhiyun #define A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR__SHIFT		16
A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR(uint32_t val)2738*4882a593Smuzhiyun static inline uint32_t A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR(uint32_t val)
2739*4882a593Smuzhiyun {
2740*4882a593Smuzhiyun 	return ((val) << A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR__SHIFT) & A3XX_TPL1_TP_FS_TEX_OFFSET_BASETABLEPTR__MASK;
2741*4882a593Smuzhiyun }
2742*4882a593Smuzhiyun 
2743*4882a593Smuzhiyun #define REG_A3XX_TPL1_TP_FS_BORDER_COLOR_BASE_ADDR		0x00002343
2744*4882a593Smuzhiyun 
2745*4882a593Smuzhiyun #define REG_A3XX_VBIF_CLKON					0x00003001
2746*4882a593Smuzhiyun 
2747*4882a593Smuzhiyun #define REG_A3XX_VBIF_FIXED_SORT_EN				0x0000300c
2748*4882a593Smuzhiyun 
2749*4882a593Smuzhiyun #define REG_A3XX_VBIF_FIXED_SORT_SEL0				0x0000300d
2750*4882a593Smuzhiyun 
2751*4882a593Smuzhiyun #define REG_A3XX_VBIF_FIXED_SORT_SEL1				0x0000300e
2752*4882a593Smuzhiyun 
2753*4882a593Smuzhiyun #define REG_A3XX_VBIF_ABIT_SORT					0x0000301c
2754*4882a593Smuzhiyun 
2755*4882a593Smuzhiyun #define REG_A3XX_VBIF_ABIT_SORT_CONF				0x0000301d
2756*4882a593Smuzhiyun 
2757*4882a593Smuzhiyun #define REG_A3XX_VBIF_GATE_OFF_WRREQ_EN				0x0000302a
2758*4882a593Smuzhiyun 
2759*4882a593Smuzhiyun #define REG_A3XX_VBIF_IN_RD_LIM_CONF0				0x0000302c
2760*4882a593Smuzhiyun 
2761*4882a593Smuzhiyun #define REG_A3XX_VBIF_IN_RD_LIM_CONF1				0x0000302d
2762*4882a593Smuzhiyun 
2763*4882a593Smuzhiyun #define REG_A3XX_VBIF_IN_WR_LIM_CONF0				0x00003030
2764*4882a593Smuzhiyun 
2765*4882a593Smuzhiyun #define REG_A3XX_VBIF_IN_WR_LIM_CONF1				0x00003031
2766*4882a593Smuzhiyun 
2767*4882a593Smuzhiyun #define REG_A3XX_VBIF_OUT_RD_LIM_CONF0				0x00003034
2768*4882a593Smuzhiyun 
2769*4882a593Smuzhiyun #define REG_A3XX_VBIF_OUT_WR_LIM_CONF0				0x00003035
2770*4882a593Smuzhiyun 
2771*4882a593Smuzhiyun #define REG_A3XX_VBIF_DDR_OUT_MAX_BURST				0x00003036
2772*4882a593Smuzhiyun 
2773*4882a593Smuzhiyun #define REG_A3XX_VBIF_ARB_CTL					0x0000303c
2774*4882a593Smuzhiyun 
2775*4882a593Smuzhiyun #define REG_A3XX_VBIF_ROUND_ROBIN_QOS_ARB			0x00003049
2776*4882a593Smuzhiyun 
2777*4882a593Smuzhiyun #define REG_A3XX_VBIF_OUT_AXI_AMEMTYPE_CONF0			0x00003058
2778*4882a593Smuzhiyun 
2779*4882a593Smuzhiyun #define REG_A3XX_VBIF_OUT_AXI_AOOO_EN				0x0000305e
2780*4882a593Smuzhiyun 
2781*4882a593Smuzhiyun #define REG_A3XX_VBIF_OUT_AXI_AOOO				0x0000305f
2782*4882a593Smuzhiyun 
2783*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT_EN				0x00003070
2784*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_EN_CNT0				0x00000001
2785*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_EN_CNT1				0x00000002
2786*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_EN_PWRCNT0				0x00000004
2787*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_EN_PWRCNT1				0x00000008
2788*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_EN_PWRCNT2				0x00000010
2789*4882a593Smuzhiyun 
2790*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT_CLR				0x00003071
2791*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_CLR_CNT0				0x00000001
2792*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_CLR_CNT1				0x00000002
2793*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_CLR_PWRCNT0				0x00000004
2794*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_CLR_PWRCNT1				0x00000008
2795*4882a593Smuzhiyun #define A3XX_VBIF_PERF_CNT_CLR_PWRCNT2				0x00000010
2796*4882a593Smuzhiyun 
2797*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT_SEL				0x00003072
2798*4882a593Smuzhiyun 
2799*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT0_LO				0x00003073
2800*4882a593Smuzhiyun 
2801*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT0_HI				0x00003074
2802*4882a593Smuzhiyun 
2803*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT1_LO				0x00003075
2804*4882a593Smuzhiyun 
2805*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_CNT1_HI				0x00003076
2806*4882a593Smuzhiyun 
2807*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT0_LO				0x00003077
2808*4882a593Smuzhiyun 
2809*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT0_HI				0x00003078
2810*4882a593Smuzhiyun 
2811*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT1_LO				0x00003079
2812*4882a593Smuzhiyun 
2813*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT1_HI				0x0000307a
2814*4882a593Smuzhiyun 
2815*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT2_LO				0x0000307b
2816*4882a593Smuzhiyun 
2817*4882a593Smuzhiyun #define REG_A3XX_VBIF_PERF_PWR_CNT2_HI				0x0000307c
2818*4882a593Smuzhiyun 
2819*4882a593Smuzhiyun #define REG_A3XX_VSC_BIN_SIZE					0x00000c01
2820*4882a593Smuzhiyun #define A3XX_VSC_BIN_SIZE_WIDTH__MASK				0x0000001f
2821*4882a593Smuzhiyun #define A3XX_VSC_BIN_SIZE_WIDTH__SHIFT				0
A3XX_VSC_BIN_SIZE_WIDTH(uint32_t val)2822*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
2823*4882a593Smuzhiyun {
2824*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A3XX_VSC_BIN_SIZE_WIDTH__MASK;
2825*4882a593Smuzhiyun }
2826*4882a593Smuzhiyun #define A3XX_VSC_BIN_SIZE_HEIGHT__MASK				0x000003e0
2827*4882a593Smuzhiyun #define A3XX_VSC_BIN_SIZE_HEIGHT__SHIFT				5
A3XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)2828*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
2829*4882a593Smuzhiyun {
2830*4882a593Smuzhiyun 	return ((val >> 5) << A3XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A3XX_VSC_BIN_SIZE_HEIGHT__MASK;
2831*4882a593Smuzhiyun }
2832*4882a593Smuzhiyun 
2833*4882a593Smuzhiyun #define REG_A3XX_VSC_SIZE_ADDRESS				0x00000c02
2834*4882a593Smuzhiyun 
REG_A3XX_VSC_PIPE(uint32_t i0)2835*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VSC_PIPE(uint32_t i0) { return 0x00000c06 + 0x3*i0; }
2836*4882a593Smuzhiyun 
REG_A3XX_VSC_PIPE_CONFIG(uint32_t i0)2837*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000c06 + 0x3*i0; }
2838*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_X__MASK				0x000003ff
2839*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_X__SHIFT				0
A3XX_VSC_PIPE_CONFIG_X(uint32_t val)2840*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_PIPE_CONFIG_X(uint32_t val)
2841*4882a593Smuzhiyun {
2842*4882a593Smuzhiyun 	return ((val) << A3XX_VSC_PIPE_CONFIG_X__SHIFT) & A3XX_VSC_PIPE_CONFIG_X__MASK;
2843*4882a593Smuzhiyun }
2844*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_Y__MASK				0x000ffc00
2845*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_Y__SHIFT				10
A3XX_VSC_PIPE_CONFIG_Y(uint32_t val)2846*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_PIPE_CONFIG_Y(uint32_t val)
2847*4882a593Smuzhiyun {
2848*4882a593Smuzhiyun 	return ((val) << A3XX_VSC_PIPE_CONFIG_Y__SHIFT) & A3XX_VSC_PIPE_CONFIG_Y__MASK;
2849*4882a593Smuzhiyun }
2850*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_W__MASK				0x00f00000
2851*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_W__SHIFT				20
A3XX_VSC_PIPE_CONFIG_W(uint32_t val)2852*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_PIPE_CONFIG_W(uint32_t val)
2853*4882a593Smuzhiyun {
2854*4882a593Smuzhiyun 	return ((val) << A3XX_VSC_PIPE_CONFIG_W__SHIFT) & A3XX_VSC_PIPE_CONFIG_W__MASK;
2855*4882a593Smuzhiyun }
2856*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_H__MASK				0x0f000000
2857*4882a593Smuzhiyun #define A3XX_VSC_PIPE_CONFIG_H__SHIFT				24
A3XX_VSC_PIPE_CONFIG_H(uint32_t val)2858*4882a593Smuzhiyun static inline uint32_t A3XX_VSC_PIPE_CONFIG_H(uint32_t val)
2859*4882a593Smuzhiyun {
2860*4882a593Smuzhiyun 	return ((val) << A3XX_VSC_PIPE_CONFIG_H__SHIFT) & A3XX_VSC_PIPE_CONFIG_H__MASK;
2861*4882a593Smuzhiyun }
2862*4882a593Smuzhiyun 
REG_A3XX_VSC_PIPE_DATA_ADDRESS(uint32_t i0)2863*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VSC_PIPE_DATA_ADDRESS(uint32_t i0) { return 0x00000c07 + 0x3*i0; }
2864*4882a593Smuzhiyun 
REG_A3XX_VSC_PIPE_DATA_LENGTH(uint32_t i0)2865*4882a593Smuzhiyun static inline uint32_t REG_A3XX_VSC_PIPE_DATA_LENGTH(uint32_t i0) { return 0x00000c08 + 0x3*i0; }
2866*4882a593Smuzhiyun 
2867*4882a593Smuzhiyun #define REG_A3XX_VSC_BIN_CONTROL				0x00000c3c
2868*4882a593Smuzhiyun #define A3XX_VSC_BIN_CONTROL_BINNING_ENABLE			0x00000001
2869*4882a593Smuzhiyun 
2870*4882a593Smuzhiyun #define REG_A3XX_UNKNOWN_0C3D					0x00000c3d
2871*4882a593Smuzhiyun 
2872*4882a593Smuzhiyun #define REG_A3XX_PC_PERFCOUNTER0_SELECT				0x00000c48
2873*4882a593Smuzhiyun 
2874*4882a593Smuzhiyun #define REG_A3XX_PC_PERFCOUNTER1_SELECT				0x00000c49
2875*4882a593Smuzhiyun 
2876*4882a593Smuzhiyun #define REG_A3XX_PC_PERFCOUNTER2_SELECT				0x00000c4a
2877*4882a593Smuzhiyun 
2878*4882a593Smuzhiyun #define REG_A3XX_PC_PERFCOUNTER3_SELECT				0x00000c4b
2879*4882a593Smuzhiyun 
2880*4882a593Smuzhiyun #define REG_A3XX_GRAS_TSE_DEBUG_ECO				0x00000c81
2881*4882a593Smuzhiyun 
2882*4882a593Smuzhiyun #define REG_A3XX_GRAS_PERFCOUNTER0_SELECT			0x00000c88
2883*4882a593Smuzhiyun 
2884*4882a593Smuzhiyun #define REG_A3XX_GRAS_PERFCOUNTER1_SELECT			0x00000c89
2885*4882a593Smuzhiyun 
2886*4882a593Smuzhiyun #define REG_A3XX_GRAS_PERFCOUNTER2_SELECT			0x00000c8a
2887*4882a593Smuzhiyun 
2888*4882a593Smuzhiyun #define REG_A3XX_GRAS_PERFCOUNTER3_SELECT			0x00000c8b
2889*4882a593Smuzhiyun 
REG_A3XX_GRAS_CL_USER_PLANE(uint32_t i0)2890*4882a593Smuzhiyun static inline uint32_t REG_A3XX_GRAS_CL_USER_PLANE(uint32_t i0) { return 0x00000ca0 + 0x4*i0; }
2891*4882a593Smuzhiyun 
REG_A3XX_GRAS_CL_USER_PLANE_X(uint32_t i0)2892*4882a593Smuzhiyun static inline uint32_t REG_A3XX_GRAS_CL_USER_PLANE_X(uint32_t i0) { return 0x00000ca0 + 0x4*i0; }
2893*4882a593Smuzhiyun 
REG_A3XX_GRAS_CL_USER_PLANE_Y(uint32_t i0)2894*4882a593Smuzhiyun static inline uint32_t REG_A3XX_GRAS_CL_USER_PLANE_Y(uint32_t i0) { return 0x00000ca1 + 0x4*i0; }
2895*4882a593Smuzhiyun 
REG_A3XX_GRAS_CL_USER_PLANE_Z(uint32_t i0)2896*4882a593Smuzhiyun static inline uint32_t REG_A3XX_GRAS_CL_USER_PLANE_Z(uint32_t i0) { return 0x00000ca2 + 0x4*i0; }
2897*4882a593Smuzhiyun 
REG_A3XX_GRAS_CL_USER_PLANE_W(uint32_t i0)2898*4882a593Smuzhiyun static inline uint32_t REG_A3XX_GRAS_CL_USER_PLANE_W(uint32_t i0) { return 0x00000ca3 + 0x4*i0; }
2899*4882a593Smuzhiyun 
2900*4882a593Smuzhiyun #define REG_A3XX_RB_GMEM_BASE_ADDR				0x00000cc0
2901*4882a593Smuzhiyun 
2902*4882a593Smuzhiyun #define REG_A3XX_RB_DEBUG_ECO_CONTROLS_ADDR			0x00000cc1
2903*4882a593Smuzhiyun 
2904*4882a593Smuzhiyun #define REG_A3XX_RB_PERFCOUNTER0_SELECT				0x00000cc6
2905*4882a593Smuzhiyun 
2906*4882a593Smuzhiyun #define REG_A3XX_RB_PERFCOUNTER1_SELECT				0x00000cc7
2907*4882a593Smuzhiyun 
2908*4882a593Smuzhiyun #define REG_A3XX_RB_FRAME_BUFFER_DIMENSION			0x00000ce0
2909*4882a593Smuzhiyun #define A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__MASK		0x00003fff
2910*4882a593Smuzhiyun #define A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__SHIFT		0
A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH(uint32_t val)2911*4882a593Smuzhiyun static inline uint32_t A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH(uint32_t val)
2912*4882a593Smuzhiyun {
2913*4882a593Smuzhiyun 	return ((val) << A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__SHIFT) & A3XX_RB_FRAME_BUFFER_DIMENSION_WIDTH__MASK;
2914*4882a593Smuzhiyun }
2915*4882a593Smuzhiyun #define A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__MASK		0x0fffc000
2916*4882a593Smuzhiyun #define A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__SHIFT		14
A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT(uint32_t val)2917*4882a593Smuzhiyun static inline uint32_t A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT(uint32_t val)
2918*4882a593Smuzhiyun {
2919*4882a593Smuzhiyun 	return ((val) << A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__SHIFT) & A3XX_RB_FRAME_BUFFER_DIMENSION_HEIGHT__MASK;
2920*4882a593Smuzhiyun }
2921*4882a593Smuzhiyun 
2922*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER0_SELECT			0x00000e00
2923*4882a593Smuzhiyun 
2924*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER1_SELECT			0x00000e01
2925*4882a593Smuzhiyun 
2926*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER2_SELECT			0x00000e02
2927*4882a593Smuzhiyun 
2928*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER3_SELECT			0x00000e03
2929*4882a593Smuzhiyun 
2930*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER4_SELECT			0x00000e04
2931*4882a593Smuzhiyun 
2932*4882a593Smuzhiyun #define REG_A3XX_HLSQ_PERFCOUNTER5_SELECT			0x00000e05
2933*4882a593Smuzhiyun 
2934*4882a593Smuzhiyun #define REG_A3XX_UNKNOWN_0E43					0x00000e43
2935*4882a593Smuzhiyun 
2936*4882a593Smuzhiyun #define REG_A3XX_VFD_PERFCOUNTER0_SELECT			0x00000e44
2937*4882a593Smuzhiyun 
2938*4882a593Smuzhiyun #define REG_A3XX_VFD_PERFCOUNTER1_SELECT			0x00000e45
2939*4882a593Smuzhiyun 
2940*4882a593Smuzhiyun #define REG_A3XX_VPC_VPC_DEBUG_RAM_SEL				0x00000e61
2941*4882a593Smuzhiyun 
2942*4882a593Smuzhiyun #define REG_A3XX_VPC_VPC_DEBUG_RAM_READ				0x00000e62
2943*4882a593Smuzhiyun 
2944*4882a593Smuzhiyun #define REG_A3XX_VPC_PERFCOUNTER0_SELECT			0x00000e64
2945*4882a593Smuzhiyun 
2946*4882a593Smuzhiyun #define REG_A3XX_VPC_PERFCOUNTER1_SELECT			0x00000e65
2947*4882a593Smuzhiyun 
2948*4882a593Smuzhiyun #define REG_A3XX_UCHE_CACHE_MODE_CONTROL_REG			0x00000e82
2949*4882a593Smuzhiyun 
2950*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER0_SELECT			0x00000e84
2951*4882a593Smuzhiyun 
2952*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER1_SELECT			0x00000e85
2953*4882a593Smuzhiyun 
2954*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER2_SELECT			0x00000e86
2955*4882a593Smuzhiyun 
2956*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER3_SELECT			0x00000e87
2957*4882a593Smuzhiyun 
2958*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER4_SELECT			0x00000e88
2959*4882a593Smuzhiyun 
2960*4882a593Smuzhiyun #define REG_A3XX_UCHE_PERFCOUNTER5_SELECT			0x00000e89
2961*4882a593Smuzhiyun 
2962*4882a593Smuzhiyun #define REG_A3XX_UCHE_CACHE_INVALIDATE0_REG			0x00000ea0
2963*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR__MASK		0x0fffffff
2964*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR__SHIFT		0
A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR(uint32_t val)2965*4882a593Smuzhiyun static inline uint32_t A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR(uint32_t val)
2966*4882a593Smuzhiyun {
2967*4882a593Smuzhiyun 	return ((val) << A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR__SHIFT) & A3XX_UCHE_CACHE_INVALIDATE0_REG_ADDR__MASK;
2968*4882a593Smuzhiyun }
2969*4882a593Smuzhiyun 
2970*4882a593Smuzhiyun #define REG_A3XX_UCHE_CACHE_INVALIDATE1_REG			0x00000ea1
2971*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR__MASK		0x0fffffff
2972*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR__SHIFT		0
A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR(uint32_t val)2973*4882a593Smuzhiyun static inline uint32_t A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR(uint32_t val)
2974*4882a593Smuzhiyun {
2975*4882a593Smuzhiyun 	return ((val) << A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR__SHIFT) & A3XX_UCHE_CACHE_INVALIDATE1_REG_ADDR__MASK;
2976*4882a593Smuzhiyun }
2977*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE__MASK		0x30000000
2978*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE__SHIFT		28
A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE(enum a3xx_cache_opcode val)2979*4882a593Smuzhiyun static inline uint32_t A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE(enum a3xx_cache_opcode val)
2980*4882a593Smuzhiyun {
2981*4882a593Smuzhiyun 	return ((val) << A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE__SHIFT) & A3XX_UCHE_CACHE_INVALIDATE1_REG_OPCODE__MASK;
2982*4882a593Smuzhiyun }
2983*4882a593Smuzhiyun #define A3XX_UCHE_CACHE_INVALIDATE1_REG_ENTIRE_CACHE		0x80000000
2984*4882a593Smuzhiyun 
2985*4882a593Smuzhiyun #define REG_A3XX_UNKNOWN_0EA6					0x00000ea6
2986*4882a593Smuzhiyun 
2987*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER0_SELECT				0x00000ec4
2988*4882a593Smuzhiyun 
2989*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER1_SELECT				0x00000ec5
2990*4882a593Smuzhiyun 
2991*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER2_SELECT				0x00000ec6
2992*4882a593Smuzhiyun 
2993*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER3_SELECT				0x00000ec7
2994*4882a593Smuzhiyun 
2995*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER4_SELECT				0x00000ec8
2996*4882a593Smuzhiyun 
2997*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER5_SELECT				0x00000ec9
2998*4882a593Smuzhiyun 
2999*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER6_SELECT				0x00000eca
3000*4882a593Smuzhiyun 
3001*4882a593Smuzhiyun #define REG_A3XX_SP_PERFCOUNTER7_SELECT				0x00000ecb
3002*4882a593Smuzhiyun 
3003*4882a593Smuzhiyun #define REG_A3XX_UNKNOWN_0EE0					0x00000ee0
3004*4882a593Smuzhiyun 
3005*4882a593Smuzhiyun #define REG_A3XX_UNKNOWN_0F03					0x00000f03
3006*4882a593Smuzhiyun 
3007*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER0_SELECT				0x00000f04
3008*4882a593Smuzhiyun 
3009*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER1_SELECT				0x00000f05
3010*4882a593Smuzhiyun 
3011*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER2_SELECT				0x00000f06
3012*4882a593Smuzhiyun 
3013*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER3_SELECT				0x00000f07
3014*4882a593Smuzhiyun 
3015*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER4_SELECT				0x00000f08
3016*4882a593Smuzhiyun 
3017*4882a593Smuzhiyun #define REG_A3XX_TP_PERFCOUNTER5_SELECT				0x00000f09
3018*4882a593Smuzhiyun 
3019*4882a593Smuzhiyun #define REG_A3XX_VGT_CL_INITIATOR				0x000021f0
3020*4882a593Smuzhiyun 
3021*4882a593Smuzhiyun #define REG_A3XX_VGT_EVENT_INITIATOR				0x000021f9
3022*4882a593Smuzhiyun 
3023*4882a593Smuzhiyun #define REG_A3XX_VGT_DRAW_INITIATOR				0x000021fc
3024*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE__MASK			0x0000003f
3025*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE__SHIFT		0
A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE(enum pc_di_primtype val)3026*4882a593Smuzhiyun static inline uint32_t A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE(enum pc_di_primtype val)
3027*4882a593Smuzhiyun {
3028*4882a593Smuzhiyun 	return ((val) << A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE__SHIFT) & A3XX_VGT_DRAW_INITIATOR_PRIM_TYPE__MASK;
3029*4882a593Smuzhiyun }
3030*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT__MASK		0x000000c0
3031*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT__SHIFT		6
A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT(enum pc_di_src_sel val)3032*4882a593Smuzhiyun static inline uint32_t A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT(enum pc_di_src_sel val)
3033*4882a593Smuzhiyun {
3034*4882a593Smuzhiyun 	return ((val) << A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT__SHIFT) & A3XX_VGT_DRAW_INITIATOR_SOURCE_SELECT__MASK;
3035*4882a593Smuzhiyun }
3036*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_VIS_CULL__MASK			0x00000600
3037*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_VIS_CULL__SHIFT			9
A3XX_VGT_DRAW_INITIATOR_VIS_CULL(enum pc_di_vis_cull_mode val)3038*4882a593Smuzhiyun static inline uint32_t A3XX_VGT_DRAW_INITIATOR_VIS_CULL(enum pc_di_vis_cull_mode val)
3039*4882a593Smuzhiyun {
3040*4882a593Smuzhiyun 	return ((val) << A3XX_VGT_DRAW_INITIATOR_VIS_CULL__SHIFT) & A3XX_VGT_DRAW_INITIATOR_VIS_CULL__MASK;
3041*4882a593Smuzhiyun }
3042*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE__MASK		0x00000800
3043*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE__SHIFT		11
A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE(enum pc_di_index_size val)3044*4882a593Smuzhiyun static inline uint32_t A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE(enum pc_di_index_size val)
3045*4882a593Smuzhiyun {
3046*4882a593Smuzhiyun 	return ((val) << A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE__SHIFT) & A3XX_VGT_DRAW_INITIATOR_INDEX_SIZE__MASK;
3047*4882a593Smuzhiyun }
3048*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_NOT_EOP				0x00001000
3049*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_SMALL_INDEX			0x00002000
3050*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_PRE_DRAW_INITIATOR_ENABLE	0x00004000
3051*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES__MASK		0xff000000
3052*4882a593Smuzhiyun #define A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES__SHIFT		24
A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES(uint32_t val)3053*4882a593Smuzhiyun static inline uint32_t A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES(uint32_t val)
3054*4882a593Smuzhiyun {
3055*4882a593Smuzhiyun 	return ((val) << A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES__SHIFT) & A3XX_VGT_DRAW_INITIATOR_NUM_INSTANCES__MASK;
3056*4882a593Smuzhiyun }
3057*4882a593Smuzhiyun 
3058*4882a593Smuzhiyun #define REG_A3XX_VGT_IMMED_DATA					0x000021fd
3059*4882a593Smuzhiyun 
3060*4882a593Smuzhiyun #define REG_A3XX_TEX_SAMP_0					0x00000000
3061*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_CLAMPENABLE				0x00000001
3062*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_MIPFILTER_LINEAR			0x00000002
3063*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_XY_MAG__MASK				0x0000000c
3064*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_XY_MAG__SHIFT				2
A3XX_TEX_SAMP_0_XY_MAG(enum a3xx_tex_filter val)3065*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_XY_MAG(enum a3xx_tex_filter val)
3066*4882a593Smuzhiyun {
3067*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_XY_MAG__SHIFT) & A3XX_TEX_SAMP_0_XY_MAG__MASK;
3068*4882a593Smuzhiyun }
3069*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_XY_MIN__MASK				0x00000030
3070*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_XY_MIN__SHIFT				4
A3XX_TEX_SAMP_0_XY_MIN(enum a3xx_tex_filter val)3071*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_XY_MIN(enum a3xx_tex_filter val)
3072*4882a593Smuzhiyun {
3073*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_XY_MIN__SHIFT) & A3XX_TEX_SAMP_0_XY_MIN__MASK;
3074*4882a593Smuzhiyun }
3075*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_S__MASK				0x000001c0
3076*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_S__SHIFT				6
A3XX_TEX_SAMP_0_WRAP_S(enum a3xx_tex_clamp val)3077*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_WRAP_S(enum a3xx_tex_clamp val)
3078*4882a593Smuzhiyun {
3079*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_WRAP_S__SHIFT) & A3XX_TEX_SAMP_0_WRAP_S__MASK;
3080*4882a593Smuzhiyun }
3081*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_T__MASK				0x00000e00
3082*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_T__SHIFT				9
A3XX_TEX_SAMP_0_WRAP_T(enum a3xx_tex_clamp val)3083*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_WRAP_T(enum a3xx_tex_clamp val)
3084*4882a593Smuzhiyun {
3085*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_WRAP_T__SHIFT) & A3XX_TEX_SAMP_0_WRAP_T__MASK;
3086*4882a593Smuzhiyun }
3087*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_R__MASK				0x00007000
3088*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_WRAP_R__SHIFT				12
A3XX_TEX_SAMP_0_WRAP_R(enum a3xx_tex_clamp val)3089*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_WRAP_R(enum a3xx_tex_clamp val)
3090*4882a593Smuzhiyun {
3091*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_WRAP_R__SHIFT) & A3XX_TEX_SAMP_0_WRAP_R__MASK;
3092*4882a593Smuzhiyun }
3093*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_ANISO__MASK				0x00038000
3094*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_ANISO__SHIFT				15
A3XX_TEX_SAMP_0_ANISO(enum a3xx_tex_aniso val)3095*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_ANISO(enum a3xx_tex_aniso val)
3096*4882a593Smuzhiyun {
3097*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_ANISO__SHIFT) & A3XX_TEX_SAMP_0_ANISO__MASK;
3098*4882a593Smuzhiyun }
3099*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_COMPARE_FUNC__MASK			0x00700000
3100*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_COMPARE_FUNC__SHIFT			20
A3XX_TEX_SAMP_0_COMPARE_FUNC(enum adreno_compare_func val)3101*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_0_COMPARE_FUNC(enum adreno_compare_func val)
3102*4882a593Smuzhiyun {
3103*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_SAMP_0_COMPARE_FUNC__SHIFT) & A3XX_TEX_SAMP_0_COMPARE_FUNC__MASK;
3104*4882a593Smuzhiyun }
3105*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_CUBEMAPSEAMLESSFILTOFF			0x01000000
3106*4882a593Smuzhiyun #define A3XX_TEX_SAMP_0_UNNORM_COORDS				0x80000000
3107*4882a593Smuzhiyun 
3108*4882a593Smuzhiyun #define REG_A3XX_TEX_SAMP_1					0x00000001
3109*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_LOD_BIAS__MASK				0x000007ff
3110*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_LOD_BIAS__SHIFT				0
A3XX_TEX_SAMP_1_LOD_BIAS(float val)3111*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_1_LOD_BIAS(float val)
3112*4882a593Smuzhiyun {
3113*4882a593Smuzhiyun 	return ((((int32_t)(val * 64.0))) << A3XX_TEX_SAMP_1_LOD_BIAS__SHIFT) & A3XX_TEX_SAMP_1_LOD_BIAS__MASK;
3114*4882a593Smuzhiyun }
3115*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_MAX_LOD__MASK				0x003ff000
3116*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_MAX_LOD__SHIFT				12
A3XX_TEX_SAMP_1_MAX_LOD(float val)3117*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_1_MAX_LOD(float val)
3118*4882a593Smuzhiyun {
3119*4882a593Smuzhiyun 	return ((((uint32_t)(val * 64.0))) << A3XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A3XX_TEX_SAMP_1_MAX_LOD__MASK;
3120*4882a593Smuzhiyun }
3121*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_MIN_LOD__MASK				0xffc00000
3122*4882a593Smuzhiyun #define A3XX_TEX_SAMP_1_MIN_LOD__SHIFT				22
A3XX_TEX_SAMP_1_MIN_LOD(float val)3123*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_SAMP_1_MIN_LOD(float val)
3124*4882a593Smuzhiyun {
3125*4882a593Smuzhiyun 	return ((((uint32_t)(val * 64.0))) << A3XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A3XX_TEX_SAMP_1_MIN_LOD__MASK;
3126*4882a593Smuzhiyun }
3127*4882a593Smuzhiyun 
3128*4882a593Smuzhiyun #define REG_A3XX_TEX_CONST_0					0x00000000
3129*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_TILE_MODE__MASK			0x00000003
3130*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_TILE_MODE__SHIFT			0
A3XX_TEX_CONST_0_TILE_MODE(enum a3xx_tile_mode val)3131*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_TILE_MODE(enum a3xx_tile_mode val)
3132*4882a593Smuzhiyun {
3133*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_TILE_MODE__SHIFT) & A3XX_TEX_CONST_0_TILE_MODE__MASK;
3134*4882a593Smuzhiyun }
3135*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SRGB					0x00000004
3136*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_X__MASK				0x00000070
3137*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_X__SHIFT				4
A3XX_TEX_CONST_0_SWIZ_X(enum a3xx_tex_swiz val)3138*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_SWIZ_X(enum a3xx_tex_swiz val)
3139*4882a593Smuzhiyun {
3140*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_SWIZ_X__SHIFT) & A3XX_TEX_CONST_0_SWIZ_X__MASK;
3141*4882a593Smuzhiyun }
3142*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_Y__MASK				0x00000380
3143*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_Y__SHIFT				7
A3XX_TEX_CONST_0_SWIZ_Y(enum a3xx_tex_swiz val)3144*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_SWIZ_Y(enum a3xx_tex_swiz val)
3145*4882a593Smuzhiyun {
3146*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A3XX_TEX_CONST_0_SWIZ_Y__MASK;
3147*4882a593Smuzhiyun }
3148*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_Z__MASK				0x00001c00
3149*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_Z__SHIFT				10
A3XX_TEX_CONST_0_SWIZ_Z(enum a3xx_tex_swiz val)3150*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_SWIZ_Z(enum a3xx_tex_swiz val)
3151*4882a593Smuzhiyun {
3152*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A3XX_TEX_CONST_0_SWIZ_Z__MASK;
3153*4882a593Smuzhiyun }
3154*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_W__MASK				0x0000e000
3155*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_SWIZ_W__SHIFT				13
A3XX_TEX_CONST_0_SWIZ_W(enum a3xx_tex_swiz val)3156*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_SWIZ_W(enum a3xx_tex_swiz val)
3157*4882a593Smuzhiyun {
3158*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_SWIZ_W__SHIFT) & A3XX_TEX_CONST_0_SWIZ_W__MASK;
3159*4882a593Smuzhiyun }
3160*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_MIPLVLS__MASK				0x000f0000
3161*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_MIPLVLS__SHIFT				16
A3XX_TEX_CONST_0_MIPLVLS(uint32_t val)3162*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_MIPLVLS(uint32_t val)
3163*4882a593Smuzhiyun {
3164*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_MIPLVLS__SHIFT) & A3XX_TEX_CONST_0_MIPLVLS__MASK;
3165*4882a593Smuzhiyun }
3166*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_MSAATEX__MASK				0x00300000
3167*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_MSAATEX__SHIFT				20
A3XX_TEX_CONST_0_MSAATEX(enum a3xx_tex_msaa val)3168*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_MSAATEX(enum a3xx_tex_msaa val)
3169*4882a593Smuzhiyun {
3170*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_MSAATEX__SHIFT) & A3XX_TEX_CONST_0_MSAATEX__MASK;
3171*4882a593Smuzhiyun }
3172*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_FMT__MASK				0x1fc00000
3173*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_FMT__SHIFT				22
A3XX_TEX_CONST_0_FMT(enum a3xx_tex_fmt val)3174*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_FMT(enum a3xx_tex_fmt val)
3175*4882a593Smuzhiyun {
3176*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_FMT__SHIFT) & A3XX_TEX_CONST_0_FMT__MASK;
3177*4882a593Smuzhiyun }
3178*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_NOCONVERT				0x20000000
3179*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_TYPE__MASK				0xc0000000
3180*4882a593Smuzhiyun #define A3XX_TEX_CONST_0_TYPE__SHIFT				30
A3XX_TEX_CONST_0_TYPE(enum a3xx_tex_type val)3181*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_0_TYPE(enum a3xx_tex_type val)
3182*4882a593Smuzhiyun {
3183*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_0_TYPE__SHIFT) & A3XX_TEX_CONST_0_TYPE__MASK;
3184*4882a593Smuzhiyun }
3185*4882a593Smuzhiyun 
3186*4882a593Smuzhiyun #define REG_A3XX_TEX_CONST_1					0x00000001
3187*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_HEIGHT__MASK				0x00003fff
3188*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_HEIGHT__SHIFT				0
A3XX_TEX_CONST_1_HEIGHT(uint32_t val)3189*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_1_HEIGHT(uint32_t val)
3190*4882a593Smuzhiyun {
3191*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_1_HEIGHT__SHIFT) & A3XX_TEX_CONST_1_HEIGHT__MASK;
3192*4882a593Smuzhiyun }
3193*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_WIDTH__MASK				0x0fffc000
3194*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_WIDTH__SHIFT				14
A3XX_TEX_CONST_1_WIDTH(uint32_t val)3195*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_1_WIDTH(uint32_t val)
3196*4882a593Smuzhiyun {
3197*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_1_WIDTH__SHIFT) & A3XX_TEX_CONST_1_WIDTH__MASK;
3198*4882a593Smuzhiyun }
3199*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_PITCHALIGN__MASK			0xf0000000
3200*4882a593Smuzhiyun #define A3XX_TEX_CONST_1_PITCHALIGN__SHIFT			28
A3XX_TEX_CONST_1_PITCHALIGN(uint32_t val)3201*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_1_PITCHALIGN(uint32_t val)
3202*4882a593Smuzhiyun {
3203*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_1_PITCHALIGN__SHIFT) & A3XX_TEX_CONST_1_PITCHALIGN__MASK;
3204*4882a593Smuzhiyun }
3205*4882a593Smuzhiyun 
3206*4882a593Smuzhiyun #define REG_A3XX_TEX_CONST_2					0x00000002
3207*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_INDX__MASK				0x000001ff
3208*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_INDX__SHIFT				0
A3XX_TEX_CONST_2_INDX(uint32_t val)3209*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_2_INDX(uint32_t val)
3210*4882a593Smuzhiyun {
3211*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_2_INDX__SHIFT) & A3XX_TEX_CONST_2_INDX__MASK;
3212*4882a593Smuzhiyun }
3213*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_PITCH__MASK				0x3ffff000
3214*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_PITCH__SHIFT				12
A3XX_TEX_CONST_2_PITCH(uint32_t val)3215*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_2_PITCH(uint32_t val)
3216*4882a593Smuzhiyun {
3217*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_2_PITCH__SHIFT) & A3XX_TEX_CONST_2_PITCH__MASK;
3218*4882a593Smuzhiyun }
3219*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_SWAP__MASK				0xc0000000
3220*4882a593Smuzhiyun #define A3XX_TEX_CONST_2_SWAP__SHIFT				30
A3XX_TEX_CONST_2_SWAP(enum a3xx_color_swap val)3221*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_2_SWAP(enum a3xx_color_swap val)
3222*4882a593Smuzhiyun {
3223*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_2_SWAP__SHIFT) & A3XX_TEX_CONST_2_SWAP__MASK;
3224*4882a593Smuzhiyun }
3225*4882a593Smuzhiyun 
3226*4882a593Smuzhiyun #define REG_A3XX_TEX_CONST_3					0x00000003
3227*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_LAYERSZ1__MASK				0x0001ffff
3228*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_LAYERSZ1__SHIFT			0
A3XX_TEX_CONST_3_LAYERSZ1(uint32_t val)3229*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_3_LAYERSZ1(uint32_t val)
3230*4882a593Smuzhiyun {
3231*4882a593Smuzhiyun 	return ((val >> 12) << A3XX_TEX_CONST_3_LAYERSZ1__SHIFT) & A3XX_TEX_CONST_3_LAYERSZ1__MASK;
3232*4882a593Smuzhiyun }
3233*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_DEPTH__MASK				0x0ffe0000
3234*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_DEPTH__SHIFT				17
A3XX_TEX_CONST_3_DEPTH(uint32_t val)3235*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_3_DEPTH(uint32_t val)
3236*4882a593Smuzhiyun {
3237*4882a593Smuzhiyun 	return ((val) << A3XX_TEX_CONST_3_DEPTH__SHIFT) & A3XX_TEX_CONST_3_DEPTH__MASK;
3238*4882a593Smuzhiyun }
3239*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_LAYERSZ2__MASK				0xf0000000
3240*4882a593Smuzhiyun #define A3XX_TEX_CONST_3_LAYERSZ2__SHIFT			28
A3XX_TEX_CONST_3_LAYERSZ2(uint32_t val)3241*4882a593Smuzhiyun static inline uint32_t A3XX_TEX_CONST_3_LAYERSZ2(uint32_t val)
3242*4882a593Smuzhiyun {
3243*4882a593Smuzhiyun 	return ((val >> 12) << A3XX_TEX_CONST_3_LAYERSZ2__SHIFT) & A3XX_TEX_CONST_3_LAYERSZ2__MASK;
3244*4882a593Smuzhiyun }
3245*4882a593Smuzhiyun 
3246*4882a593Smuzhiyun 
3247*4882a593Smuzhiyun #endif /* A3XX_XML */
3248