xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/msm/adreno/a6xx.xml.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #ifndef A6XX_XML
2*4882a593Smuzhiyun #define A6XX_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 a6xx_tile_mode {
52*4882a593Smuzhiyun 	TILE6_LINEAR = 0,
53*4882a593Smuzhiyun 	TILE6_2 = 2,
54*4882a593Smuzhiyun 	TILE6_3 = 3,
55*4882a593Smuzhiyun };
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun enum a6xx_format {
58*4882a593Smuzhiyun 	FMT6_A8_UNORM = 2,
59*4882a593Smuzhiyun 	FMT6_8_UNORM = 3,
60*4882a593Smuzhiyun 	FMT6_8_SNORM = 4,
61*4882a593Smuzhiyun 	FMT6_8_UINT = 5,
62*4882a593Smuzhiyun 	FMT6_8_SINT = 6,
63*4882a593Smuzhiyun 	FMT6_4_4_4_4_UNORM = 8,
64*4882a593Smuzhiyun 	FMT6_5_5_5_1_UNORM = 10,
65*4882a593Smuzhiyun 	FMT6_1_5_5_5_UNORM = 12,
66*4882a593Smuzhiyun 	FMT6_5_6_5_UNORM = 14,
67*4882a593Smuzhiyun 	FMT6_8_8_UNORM = 15,
68*4882a593Smuzhiyun 	FMT6_8_8_SNORM = 16,
69*4882a593Smuzhiyun 	FMT6_8_8_UINT = 17,
70*4882a593Smuzhiyun 	FMT6_8_8_SINT = 18,
71*4882a593Smuzhiyun 	FMT6_L8_A8_UNORM = 19,
72*4882a593Smuzhiyun 	FMT6_16_UNORM = 21,
73*4882a593Smuzhiyun 	FMT6_16_SNORM = 22,
74*4882a593Smuzhiyun 	FMT6_16_FLOAT = 23,
75*4882a593Smuzhiyun 	FMT6_16_UINT = 24,
76*4882a593Smuzhiyun 	FMT6_16_SINT = 25,
77*4882a593Smuzhiyun 	FMT6_8_8_8_UNORM = 33,
78*4882a593Smuzhiyun 	FMT6_8_8_8_SNORM = 34,
79*4882a593Smuzhiyun 	FMT6_8_8_8_UINT = 35,
80*4882a593Smuzhiyun 	FMT6_8_8_8_SINT = 36,
81*4882a593Smuzhiyun 	FMT6_8_8_8_8_UNORM = 48,
82*4882a593Smuzhiyun 	FMT6_8_8_8_X8_UNORM = 49,
83*4882a593Smuzhiyun 	FMT6_8_8_8_8_SNORM = 50,
84*4882a593Smuzhiyun 	FMT6_8_8_8_8_UINT = 51,
85*4882a593Smuzhiyun 	FMT6_8_8_8_8_SINT = 52,
86*4882a593Smuzhiyun 	FMT6_9_9_9_E5_FLOAT = 53,
87*4882a593Smuzhiyun 	FMT6_10_10_10_2_UNORM = 54,
88*4882a593Smuzhiyun 	FMT6_10_10_10_2_UNORM_DEST = 55,
89*4882a593Smuzhiyun 	FMT6_10_10_10_2_SNORM = 57,
90*4882a593Smuzhiyun 	FMT6_10_10_10_2_UINT = 58,
91*4882a593Smuzhiyun 	FMT6_10_10_10_2_SINT = 59,
92*4882a593Smuzhiyun 	FMT6_11_11_10_FLOAT = 66,
93*4882a593Smuzhiyun 	FMT6_16_16_UNORM = 67,
94*4882a593Smuzhiyun 	FMT6_16_16_SNORM = 68,
95*4882a593Smuzhiyun 	FMT6_16_16_FLOAT = 69,
96*4882a593Smuzhiyun 	FMT6_16_16_UINT = 70,
97*4882a593Smuzhiyun 	FMT6_16_16_SINT = 71,
98*4882a593Smuzhiyun 	FMT6_32_UNORM = 72,
99*4882a593Smuzhiyun 	FMT6_32_SNORM = 73,
100*4882a593Smuzhiyun 	FMT6_32_FLOAT = 74,
101*4882a593Smuzhiyun 	FMT6_32_UINT = 75,
102*4882a593Smuzhiyun 	FMT6_32_SINT = 76,
103*4882a593Smuzhiyun 	FMT6_32_FIXED = 77,
104*4882a593Smuzhiyun 	FMT6_16_16_16_UNORM = 88,
105*4882a593Smuzhiyun 	FMT6_16_16_16_SNORM = 89,
106*4882a593Smuzhiyun 	FMT6_16_16_16_FLOAT = 90,
107*4882a593Smuzhiyun 	FMT6_16_16_16_UINT = 91,
108*4882a593Smuzhiyun 	FMT6_16_16_16_SINT = 92,
109*4882a593Smuzhiyun 	FMT6_16_16_16_16_UNORM = 96,
110*4882a593Smuzhiyun 	FMT6_16_16_16_16_SNORM = 97,
111*4882a593Smuzhiyun 	FMT6_16_16_16_16_FLOAT = 98,
112*4882a593Smuzhiyun 	FMT6_16_16_16_16_UINT = 99,
113*4882a593Smuzhiyun 	FMT6_16_16_16_16_SINT = 100,
114*4882a593Smuzhiyun 	FMT6_32_32_UNORM = 101,
115*4882a593Smuzhiyun 	FMT6_32_32_SNORM = 102,
116*4882a593Smuzhiyun 	FMT6_32_32_FLOAT = 103,
117*4882a593Smuzhiyun 	FMT6_32_32_UINT = 104,
118*4882a593Smuzhiyun 	FMT6_32_32_SINT = 105,
119*4882a593Smuzhiyun 	FMT6_32_32_FIXED = 106,
120*4882a593Smuzhiyun 	FMT6_32_32_32_UNORM = 112,
121*4882a593Smuzhiyun 	FMT6_32_32_32_SNORM = 113,
122*4882a593Smuzhiyun 	FMT6_32_32_32_UINT = 114,
123*4882a593Smuzhiyun 	FMT6_32_32_32_SINT = 115,
124*4882a593Smuzhiyun 	FMT6_32_32_32_FLOAT = 116,
125*4882a593Smuzhiyun 	FMT6_32_32_32_FIXED = 117,
126*4882a593Smuzhiyun 	FMT6_32_32_32_32_UNORM = 128,
127*4882a593Smuzhiyun 	FMT6_32_32_32_32_SNORM = 129,
128*4882a593Smuzhiyun 	FMT6_32_32_32_32_FLOAT = 130,
129*4882a593Smuzhiyun 	FMT6_32_32_32_32_UINT = 131,
130*4882a593Smuzhiyun 	FMT6_32_32_32_32_SINT = 132,
131*4882a593Smuzhiyun 	FMT6_32_32_32_32_FIXED = 133,
132*4882a593Smuzhiyun 	FMT6_G8R8B8R8_422_UNORM = 140,
133*4882a593Smuzhiyun 	FMT6_R8G8R8B8_422_UNORM = 141,
134*4882a593Smuzhiyun 	FMT6_R8_G8B8_2PLANE_420_UNORM = 142,
135*4882a593Smuzhiyun 	FMT6_R8_G8_B8_3PLANE_420_UNORM = 144,
136*4882a593Smuzhiyun 	FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8 = 145,
137*4882a593Smuzhiyun 	FMT6_8_PLANE_UNORM = 148,
138*4882a593Smuzhiyun 	FMT6_Z24_UNORM_S8_UINT = 160,
139*4882a593Smuzhiyun 	FMT6_ETC2_RG11_UNORM = 171,
140*4882a593Smuzhiyun 	FMT6_ETC2_RG11_SNORM = 172,
141*4882a593Smuzhiyun 	FMT6_ETC2_R11_UNORM = 173,
142*4882a593Smuzhiyun 	FMT6_ETC2_R11_SNORM = 174,
143*4882a593Smuzhiyun 	FMT6_ETC1 = 175,
144*4882a593Smuzhiyun 	FMT6_ETC2_RGB8 = 176,
145*4882a593Smuzhiyun 	FMT6_ETC2_RGBA8 = 177,
146*4882a593Smuzhiyun 	FMT6_ETC2_RGB8A1 = 178,
147*4882a593Smuzhiyun 	FMT6_DXT1 = 179,
148*4882a593Smuzhiyun 	FMT6_DXT3 = 180,
149*4882a593Smuzhiyun 	FMT6_DXT5 = 181,
150*4882a593Smuzhiyun 	FMT6_RGTC1_UNORM = 183,
151*4882a593Smuzhiyun 	FMT6_RGTC1_SNORM = 184,
152*4882a593Smuzhiyun 	FMT6_RGTC2_UNORM = 187,
153*4882a593Smuzhiyun 	FMT6_RGTC2_SNORM = 188,
154*4882a593Smuzhiyun 	FMT6_BPTC_UFLOAT = 190,
155*4882a593Smuzhiyun 	FMT6_BPTC_FLOAT = 191,
156*4882a593Smuzhiyun 	FMT6_BPTC = 192,
157*4882a593Smuzhiyun 	FMT6_ASTC_4x4 = 193,
158*4882a593Smuzhiyun 	FMT6_ASTC_5x4 = 194,
159*4882a593Smuzhiyun 	FMT6_ASTC_5x5 = 195,
160*4882a593Smuzhiyun 	FMT6_ASTC_6x5 = 196,
161*4882a593Smuzhiyun 	FMT6_ASTC_6x6 = 197,
162*4882a593Smuzhiyun 	FMT6_ASTC_8x5 = 198,
163*4882a593Smuzhiyun 	FMT6_ASTC_8x6 = 199,
164*4882a593Smuzhiyun 	FMT6_ASTC_8x8 = 200,
165*4882a593Smuzhiyun 	FMT6_ASTC_10x5 = 201,
166*4882a593Smuzhiyun 	FMT6_ASTC_10x6 = 202,
167*4882a593Smuzhiyun 	FMT6_ASTC_10x8 = 203,
168*4882a593Smuzhiyun 	FMT6_ASTC_10x10 = 204,
169*4882a593Smuzhiyun 	FMT6_ASTC_12x10 = 205,
170*4882a593Smuzhiyun 	FMT6_ASTC_12x12 = 206,
171*4882a593Smuzhiyun 	FMT6_S8Z24_UINT = 234,
172*4882a593Smuzhiyun 	FMT6_NONE = 255,
173*4882a593Smuzhiyun };
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun enum a6xx_polygon_mode {
176*4882a593Smuzhiyun 	POLYMODE6_POINTS = 1,
177*4882a593Smuzhiyun 	POLYMODE6_LINES = 2,
178*4882a593Smuzhiyun 	POLYMODE6_TRIANGLES = 3,
179*4882a593Smuzhiyun };
180*4882a593Smuzhiyun 
181*4882a593Smuzhiyun enum a6xx_depth_format {
182*4882a593Smuzhiyun 	DEPTH6_NONE = 0,
183*4882a593Smuzhiyun 	DEPTH6_16 = 1,
184*4882a593Smuzhiyun 	DEPTH6_24_8 = 2,
185*4882a593Smuzhiyun 	DEPTH6_32 = 4,
186*4882a593Smuzhiyun };
187*4882a593Smuzhiyun 
188*4882a593Smuzhiyun enum a6xx_shader_id {
189*4882a593Smuzhiyun 	A6XX_TP0_TMO_DATA = 9,
190*4882a593Smuzhiyun 	A6XX_TP0_SMO_DATA = 10,
191*4882a593Smuzhiyun 	A6XX_TP0_MIPMAP_BASE_DATA = 11,
192*4882a593Smuzhiyun 	A6XX_TP1_TMO_DATA = 25,
193*4882a593Smuzhiyun 	A6XX_TP1_SMO_DATA = 26,
194*4882a593Smuzhiyun 	A6XX_TP1_MIPMAP_BASE_DATA = 27,
195*4882a593Smuzhiyun 	A6XX_SP_INST_DATA = 41,
196*4882a593Smuzhiyun 	A6XX_SP_LB_0_DATA = 42,
197*4882a593Smuzhiyun 	A6XX_SP_LB_1_DATA = 43,
198*4882a593Smuzhiyun 	A6XX_SP_LB_2_DATA = 44,
199*4882a593Smuzhiyun 	A6XX_SP_LB_3_DATA = 45,
200*4882a593Smuzhiyun 	A6XX_SP_LB_4_DATA = 46,
201*4882a593Smuzhiyun 	A6XX_SP_LB_5_DATA = 47,
202*4882a593Smuzhiyun 	A6XX_SP_CB_BINDLESS_DATA = 48,
203*4882a593Smuzhiyun 	A6XX_SP_CB_LEGACY_DATA = 49,
204*4882a593Smuzhiyun 	A6XX_SP_UAV_DATA = 50,
205*4882a593Smuzhiyun 	A6XX_SP_INST_TAG = 51,
206*4882a593Smuzhiyun 	A6XX_SP_CB_BINDLESS_TAG = 52,
207*4882a593Smuzhiyun 	A6XX_SP_TMO_UMO_TAG = 53,
208*4882a593Smuzhiyun 	A6XX_SP_SMO_TAG = 54,
209*4882a593Smuzhiyun 	A6XX_SP_STATE_DATA = 55,
210*4882a593Smuzhiyun 	A6XX_HLSQ_CHUNK_CVS_RAM = 73,
211*4882a593Smuzhiyun 	A6XX_HLSQ_CHUNK_CPS_RAM = 74,
212*4882a593Smuzhiyun 	A6XX_HLSQ_CHUNK_CVS_RAM_TAG = 75,
213*4882a593Smuzhiyun 	A6XX_HLSQ_CHUNK_CPS_RAM_TAG = 76,
214*4882a593Smuzhiyun 	A6XX_HLSQ_ICB_CVS_CB_BASE_TAG = 77,
215*4882a593Smuzhiyun 	A6XX_HLSQ_ICB_CPS_CB_BASE_TAG = 78,
216*4882a593Smuzhiyun 	A6XX_HLSQ_CVS_MISC_RAM = 80,
217*4882a593Smuzhiyun 	A6XX_HLSQ_CPS_MISC_RAM = 81,
218*4882a593Smuzhiyun 	A6XX_HLSQ_INST_RAM = 82,
219*4882a593Smuzhiyun 	A6XX_HLSQ_GFX_CVS_CONST_RAM = 83,
220*4882a593Smuzhiyun 	A6XX_HLSQ_GFX_CPS_CONST_RAM = 84,
221*4882a593Smuzhiyun 	A6XX_HLSQ_CVS_MISC_RAM_TAG = 85,
222*4882a593Smuzhiyun 	A6XX_HLSQ_CPS_MISC_RAM_TAG = 86,
223*4882a593Smuzhiyun 	A6XX_HLSQ_INST_RAM_TAG = 87,
224*4882a593Smuzhiyun 	A6XX_HLSQ_GFX_CVS_CONST_RAM_TAG = 88,
225*4882a593Smuzhiyun 	A6XX_HLSQ_GFX_CPS_CONST_RAM_TAG = 89,
226*4882a593Smuzhiyun 	A6XX_HLSQ_PWR_REST_RAM = 90,
227*4882a593Smuzhiyun 	A6XX_HLSQ_PWR_REST_TAG = 91,
228*4882a593Smuzhiyun 	A6XX_HLSQ_DATAPATH_META = 96,
229*4882a593Smuzhiyun 	A6XX_HLSQ_FRONTEND_META = 97,
230*4882a593Smuzhiyun 	A6XX_HLSQ_INDIRECT_META = 98,
231*4882a593Smuzhiyun 	A6XX_HLSQ_BACKEND_META = 99,
232*4882a593Smuzhiyun };
233*4882a593Smuzhiyun 
234*4882a593Smuzhiyun enum a6xx_debugbus_id {
235*4882a593Smuzhiyun 	A6XX_DBGBUS_CP = 1,
236*4882a593Smuzhiyun 	A6XX_DBGBUS_RBBM = 2,
237*4882a593Smuzhiyun 	A6XX_DBGBUS_VBIF = 3,
238*4882a593Smuzhiyun 	A6XX_DBGBUS_HLSQ = 4,
239*4882a593Smuzhiyun 	A6XX_DBGBUS_UCHE = 5,
240*4882a593Smuzhiyun 	A6XX_DBGBUS_DPM = 6,
241*4882a593Smuzhiyun 	A6XX_DBGBUS_TESS = 7,
242*4882a593Smuzhiyun 	A6XX_DBGBUS_PC = 8,
243*4882a593Smuzhiyun 	A6XX_DBGBUS_VFDP = 9,
244*4882a593Smuzhiyun 	A6XX_DBGBUS_VPC = 10,
245*4882a593Smuzhiyun 	A6XX_DBGBUS_TSE = 11,
246*4882a593Smuzhiyun 	A6XX_DBGBUS_RAS = 12,
247*4882a593Smuzhiyun 	A6XX_DBGBUS_VSC = 13,
248*4882a593Smuzhiyun 	A6XX_DBGBUS_COM = 14,
249*4882a593Smuzhiyun 	A6XX_DBGBUS_LRZ = 16,
250*4882a593Smuzhiyun 	A6XX_DBGBUS_A2D = 17,
251*4882a593Smuzhiyun 	A6XX_DBGBUS_CCUFCHE = 18,
252*4882a593Smuzhiyun 	A6XX_DBGBUS_GMU_CX = 19,
253*4882a593Smuzhiyun 	A6XX_DBGBUS_RBP = 20,
254*4882a593Smuzhiyun 	A6XX_DBGBUS_DCS = 21,
255*4882a593Smuzhiyun 	A6XX_DBGBUS_DBGC = 22,
256*4882a593Smuzhiyun 	A6XX_DBGBUS_CX = 23,
257*4882a593Smuzhiyun 	A6XX_DBGBUS_GMU_GX = 24,
258*4882a593Smuzhiyun 	A6XX_DBGBUS_TPFCHE = 25,
259*4882a593Smuzhiyun 	A6XX_DBGBUS_GBIF_GX = 26,
260*4882a593Smuzhiyun 	A6XX_DBGBUS_GPC = 29,
261*4882a593Smuzhiyun 	A6XX_DBGBUS_LARC = 30,
262*4882a593Smuzhiyun 	A6XX_DBGBUS_HLSQ_SPTP = 31,
263*4882a593Smuzhiyun 	A6XX_DBGBUS_RB_0 = 32,
264*4882a593Smuzhiyun 	A6XX_DBGBUS_RB_1 = 33,
265*4882a593Smuzhiyun 	A6XX_DBGBUS_UCHE_WRAPPER = 36,
266*4882a593Smuzhiyun 	A6XX_DBGBUS_CCU_0 = 40,
267*4882a593Smuzhiyun 	A6XX_DBGBUS_CCU_1 = 41,
268*4882a593Smuzhiyun 	A6XX_DBGBUS_VFD_0 = 56,
269*4882a593Smuzhiyun 	A6XX_DBGBUS_VFD_1 = 57,
270*4882a593Smuzhiyun 	A6XX_DBGBUS_VFD_2 = 58,
271*4882a593Smuzhiyun 	A6XX_DBGBUS_VFD_3 = 59,
272*4882a593Smuzhiyun 	A6XX_DBGBUS_SP_0 = 64,
273*4882a593Smuzhiyun 	A6XX_DBGBUS_SP_1 = 65,
274*4882a593Smuzhiyun 	A6XX_DBGBUS_TPL1_0 = 72,
275*4882a593Smuzhiyun 	A6XX_DBGBUS_TPL1_1 = 73,
276*4882a593Smuzhiyun 	A6XX_DBGBUS_TPL1_2 = 74,
277*4882a593Smuzhiyun 	A6XX_DBGBUS_TPL1_3 = 75,
278*4882a593Smuzhiyun };
279*4882a593Smuzhiyun 
280*4882a593Smuzhiyun enum a6xx_cp_perfcounter_select {
281*4882a593Smuzhiyun 	PERF_CP_ALWAYS_COUNT = 0,
282*4882a593Smuzhiyun 	PERF_CP_BUSY_GFX_CORE_IDLE = 1,
283*4882a593Smuzhiyun 	PERF_CP_BUSY_CYCLES = 2,
284*4882a593Smuzhiyun 	PERF_CP_NUM_PREEMPTIONS = 3,
285*4882a593Smuzhiyun 	PERF_CP_PREEMPTION_REACTION_DELAY = 4,
286*4882a593Smuzhiyun 	PERF_CP_PREEMPTION_SWITCH_OUT_TIME = 5,
287*4882a593Smuzhiyun 	PERF_CP_PREEMPTION_SWITCH_IN_TIME = 6,
288*4882a593Smuzhiyun 	PERF_CP_DEAD_DRAWS_IN_BIN_RENDER = 7,
289*4882a593Smuzhiyun 	PERF_CP_PREDICATED_DRAWS_KILLED = 8,
290*4882a593Smuzhiyun 	PERF_CP_MODE_SWITCH = 9,
291*4882a593Smuzhiyun 	PERF_CP_ZPASS_DONE = 10,
292*4882a593Smuzhiyun 	PERF_CP_CONTEXT_DONE = 11,
293*4882a593Smuzhiyun 	PERF_CP_CACHE_FLUSH = 12,
294*4882a593Smuzhiyun 	PERF_CP_LONG_PREEMPTIONS = 13,
295*4882a593Smuzhiyun 	PERF_CP_SQE_I_CACHE_STARVE = 14,
296*4882a593Smuzhiyun 	PERF_CP_SQE_IDLE = 15,
297*4882a593Smuzhiyun 	PERF_CP_SQE_PM4_STARVE_RB_IB = 16,
298*4882a593Smuzhiyun 	PERF_CP_SQE_PM4_STARVE_SDS = 17,
299*4882a593Smuzhiyun 	PERF_CP_SQE_MRB_STARVE = 18,
300*4882a593Smuzhiyun 	PERF_CP_SQE_RRB_STARVE = 19,
301*4882a593Smuzhiyun 	PERF_CP_SQE_VSD_STARVE = 20,
302*4882a593Smuzhiyun 	PERF_CP_VSD_DECODE_STARVE = 21,
303*4882a593Smuzhiyun 	PERF_CP_SQE_PIPE_OUT_STALL = 22,
304*4882a593Smuzhiyun 	PERF_CP_SQE_SYNC_STALL = 23,
305*4882a593Smuzhiyun 	PERF_CP_SQE_PM4_WFI_STALL = 24,
306*4882a593Smuzhiyun 	PERF_CP_SQE_SYS_WFI_STALL = 25,
307*4882a593Smuzhiyun 	PERF_CP_SQE_T4_EXEC = 26,
308*4882a593Smuzhiyun 	PERF_CP_SQE_LOAD_STATE_EXEC = 27,
309*4882a593Smuzhiyun 	PERF_CP_SQE_SAVE_SDS_STATE = 28,
310*4882a593Smuzhiyun 	PERF_CP_SQE_DRAW_EXEC = 29,
311*4882a593Smuzhiyun 	PERF_CP_SQE_CTXT_REG_BUNCH_EXEC = 30,
312*4882a593Smuzhiyun 	PERF_CP_SQE_EXEC_PROFILED = 31,
313*4882a593Smuzhiyun 	PERF_CP_MEMORY_POOL_EMPTY = 32,
314*4882a593Smuzhiyun 	PERF_CP_MEMORY_POOL_SYNC_STALL = 33,
315*4882a593Smuzhiyun 	PERF_CP_MEMORY_POOL_ABOVE_THRESH = 34,
316*4882a593Smuzhiyun 	PERF_CP_AHB_WR_STALL_PRE_DRAWS = 35,
317*4882a593Smuzhiyun 	PERF_CP_AHB_STALL_SQE_GMU = 36,
318*4882a593Smuzhiyun 	PERF_CP_AHB_STALL_SQE_WR_OTHER = 37,
319*4882a593Smuzhiyun 	PERF_CP_AHB_STALL_SQE_RD_OTHER = 38,
320*4882a593Smuzhiyun 	PERF_CP_CLUSTER0_EMPTY = 39,
321*4882a593Smuzhiyun 	PERF_CP_CLUSTER1_EMPTY = 40,
322*4882a593Smuzhiyun 	PERF_CP_CLUSTER2_EMPTY = 41,
323*4882a593Smuzhiyun 	PERF_CP_CLUSTER3_EMPTY = 42,
324*4882a593Smuzhiyun 	PERF_CP_CLUSTER4_EMPTY = 43,
325*4882a593Smuzhiyun 	PERF_CP_CLUSTER5_EMPTY = 44,
326*4882a593Smuzhiyun 	PERF_CP_PM4_DATA = 45,
327*4882a593Smuzhiyun 	PERF_CP_PM4_HEADERS = 46,
328*4882a593Smuzhiyun 	PERF_CP_VBIF_READ_BEATS = 47,
329*4882a593Smuzhiyun 	PERF_CP_VBIF_WRITE_BEATS = 48,
330*4882a593Smuzhiyun 	PERF_CP_SQE_INSTR_COUNTER = 49,
331*4882a593Smuzhiyun };
332*4882a593Smuzhiyun 
333*4882a593Smuzhiyun enum a6xx_rbbm_perfcounter_select {
334*4882a593Smuzhiyun 	PERF_RBBM_ALWAYS_COUNT = 0,
335*4882a593Smuzhiyun 	PERF_RBBM_ALWAYS_ON = 1,
336*4882a593Smuzhiyun 	PERF_RBBM_TSE_BUSY = 2,
337*4882a593Smuzhiyun 	PERF_RBBM_RAS_BUSY = 3,
338*4882a593Smuzhiyun 	PERF_RBBM_PC_DCALL_BUSY = 4,
339*4882a593Smuzhiyun 	PERF_RBBM_PC_VSD_BUSY = 5,
340*4882a593Smuzhiyun 	PERF_RBBM_STATUS_MASKED = 6,
341*4882a593Smuzhiyun 	PERF_RBBM_COM_BUSY = 7,
342*4882a593Smuzhiyun 	PERF_RBBM_DCOM_BUSY = 8,
343*4882a593Smuzhiyun 	PERF_RBBM_VBIF_BUSY = 9,
344*4882a593Smuzhiyun 	PERF_RBBM_VSC_BUSY = 10,
345*4882a593Smuzhiyun 	PERF_RBBM_TESS_BUSY = 11,
346*4882a593Smuzhiyun 	PERF_RBBM_UCHE_BUSY = 12,
347*4882a593Smuzhiyun 	PERF_RBBM_HLSQ_BUSY = 13,
348*4882a593Smuzhiyun };
349*4882a593Smuzhiyun 
350*4882a593Smuzhiyun enum a6xx_pc_perfcounter_select {
351*4882a593Smuzhiyun 	PERF_PC_BUSY_CYCLES = 0,
352*4882a593Smuzhiyun 	PERF_PC_WORKING_CYCLES = 1,
353*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_VFD = 2,
354*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_TSE = 3,
355*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_VPC = 4,
356*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_UCHE = 5,
357*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_TESS = 6,
358*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_TSE_ONLY = 7,
359*4882a593Smuzhiyun 	PERF_PC_STALL_CYCLES_VPC_ONLY = 8,
360*4882a593Smuzhiyun 	PERF_PC_PASS1_TF_STALL_CYCLES = 9,
361*4882a593Smuzhiyun 	PERF_PC_STARVE_CYCLES_FOR_INDEX = 10,
362*4882a593Smuzhiyun 	PERF_PC_STARVE_CYCLES_FOR_TESS_FACTOR = 11,
363*4882a593Smuzhiyun 	PERF_PC_STARVE_CYCLES_FOR_VIZ_STREAM = 12,
364*4882a593Smuzhiyun 	PERF_PC_STARVE_CYCLES_FOR_POSITION = 13,
365*4882a593Smuzhiyun 	PERF_PC_STARVE_CYCLES_DI = 14,
366*4882a593Smuzhiyun 	PERF_PC_VIS_STREAMS_LOADED = 15,
367*4882a593Smuzhiyun 	PERF_PC_INSTANCES = 16,
368*4882a593Smuzhiyun 	PERF_PC_VPC_PRIMITIVES = 17,
369*4882a593Smuzhiyun 	PERF_PC_DEAD_PRIM = 18,
370*4882a593Smuzhiyun 	PERF_PC_LIVE_PRIM = 19,
371*4882a593Smuzhiyun 	PERF_PC_VERTEX_HITS = 20,
372*4882a593Smuzhiyun 	PERF_PC_IA_VERTICES = 21,
373*4882a593Smuzhiyun 	PERF_PC_IA_PRIMITIVES = 22,
374*4882a593Smuzhiyun 	PERF_PC_GS_PRIMITIVES = 23,
375*4882a593Smuzhiyun 	PERF_PC_HS_INVOCATIONS = 24,
376*4882a593Smuzhiyun 	PERF_PC_DS_INVOCATIONS = 25,
377*4882a593Smuzhiyun 	PERF_PC_VS_INVOCATIONS = 26,
378*4882a593Smuzhiyun 	PERF_PC_GS_INVOCATIONS = 27,
379*4882a593Smuzhiyun 	PERF_PC_DS_PRIMITIVES = 28,
380*4882a593Smuzhiyun 	PERF_PC_VPC_POS_DATA_TRANSACTION = 29,
381*4882a593Smuzhiyun 	PERF_PC_3D_DRAWCALLS = 30,
382*4882a593Smuzhiyun 	PERF_PC_2D_DRAWCALLS = 31,
383*4882a593Smuzhiyun 	PERF_PC_NON_DRAWCALL_GLOBAL_EVENTS = 32,
384*4882a593Smuzhiyun 	PERF_TESS_BUSY_CYCLES = 33,
385*4882a593Smuzhiyun 	PERF_TESS_WORKING_CYCLES = 34,
386*4882a593Smuzhiyun 	PERF_TESS_STALL_CYCLES_PC = 35,
387*4882a593Smuzhiyun 	PERF_TESS_STARVE_CYCLES_PC = 36,
388*4882a593Smuzhiyun 	PERF_PC_TSE_TRANSACTION = 37,
389*4882a593Smuzhiyun 	PERF_PC_TSE_VERTEX = 38,
390*4882a593Smuzhiyun 	PERF_PC_TESS_PC_UV_TRANS = 39,
391*4882a593Smuzhiyun 	PERF_PC_TESS_PC_UV_PATCHES = 40,
392*4882a593Smuzhiyun 	PERF_PC_TESS_FACTOR_TRANS = 41,
393*4882a593Smuzhiyun };
394*4882a593Smuzhiyun 
395*4882a593Smuzhiyun enum a6xx_vfd_perfcounter_select {
396*4882a593Smuzhiyun 	PERF_VFD_BUSY_CYCLES = 0,
397*4882a593Smuzhiyun 	PERF_VFD_STALL_CYCLES_UCHE = 1,
398*4882a593Smuzhiyun 	PERF_VFD_STALL_CYCLES_VPC_ALLOC = 2,
399*4882a593Smuzhiyun 	PERF_VFD_STALL_CYCLES_SP_INFO = 3,
400*4882a593Smuzhiyun 	PERF_VFD_STALL_CYCLES_SP_ATTR = 4,
401*4882a593Smuzhiyun 	PERF_VFD_STARVE_CYCLES_UCHE = 5,
402*4882a593Smuzhiyun 	PERF_VFD_RBUFFER_FULL = 6,
403*4882a593Smuzhiyun 	PERF_VFD_ATTR_INFO_FIFO_FULL = 7,
404*4882a593Smuzhiyun 	PERF_VFD_DECODED_ATTRIBUTE_BYTES = 8,
405*4882a593Smuzhiyun 	PERF_VFD_NUM_ATTRIBUTES = 9,
406*4882a593Smuzhiyun 	PERF_VFD_UPPER_SHADER_FIBERS = 10,
407*4882a593Smuzhiyun 	PERF_VFD_LOWER_SHADER_FIBERS = 11,
408*4882a593Smuzhiyun 	PERF_VFD_MODE_0_FIBERS = 12,
409*4882a593Smuzhiyun 	PERF_VFD_MODE_1_FIBERS = 13,
410*4882a593Smuzhiyun 	PERF_VFD_MODE_2_FIBERS = 14,
411*4882a593Smuzhiyun 	PERF_VFD_MODE_3_FIBERS = 15,
412*4882a593Smuzhiyun 	PERF_VFD_MODE_4_FIBERS = 16,
413*4882a593Smuzhiyun 	PERF_VFD_TOTAL_VERTICES = 17,
414*4882a593Smuzhiyun 	PERF_VFDP_STALL_CYCLES_VFD = 18,
415*4882a593Smuzhiyun 	PERF_VFDP_STALL_CYCLES_VFD_INDEX = 19,
416*4882a593Smuzhiyun 	PERF_VFDP_STALL_CYCLES_VFD_PROG = 20,
417*4882a593Smuzhiyun 	PERF_VFDP_STARVE_CYCLES_PC = 21,
418*4882a593Smuzhiyun 	PERF_VFDP_VS_STAGE_WAVES = 22,
419*4882a593Smuzhiyun };
420*4882a593Smuzhiyun 
421*4882a593Smuzhiyun enum a6xx_hlsq_perfcounter_select {
422*4882a593Smuzhiyun 	PERF_HLSQ_BUSY_CYCLES = 0,
423*4882a593Smuzhiyun 	PERF_HLSQ_STALL_CYCLES_UCHE = 1,
424*4882a593Smuzhiyun 	PERF_HLSQ_STALL_CYCLES_SP_STATE = 2,
425*4882a593Smuzhiyun 	PERF_HLSQ_STALL_CYCLES_SP_FS_STAGE = 3,
426*4882a593Smuzhiyun 	PERF_HLSQ_UCHE_LATENCY_CYCLES = 4,
427*4882a593Smuzhiyun 	PERF_HLSQ_UCHE_LATENCY_COUNT = 5,
428*4882a593Smuzhiyun 	PERF_HLSQ_FS_STAGE_1X_WAVES = 6,
429*4882a593Smuzhiyun 	PERF_HLSQ_FS_STAGE_2X_WAVES = 7,
430*4882a593Smuzhiyun 	PERF_HLSQ_QUADS = 8,
431*4882a593Smuzhiyun 	PERF_HLSQ_CS_INVOCATIONS = 9,
432*4882a593Smuzhiyun 	PERF_HLSQ_COMPUTE_DRAWCALLS = 10,
433*4882a593Smuzhiyun 	PERF_HLSQ_FS_DATA_WAIT_PROGRAMMING = 11,
434*4882a593Smuzhiyun 	PERF_HLSQ_DUAL_FS_PROG_ACTIVE = 12,
435*4882a593Smuzhiyun 	PERF_HLSQ_DUAL_VS_PROG_ACTIVE = 13,
436*4882a593Smuzhiyun 	PERF_HLSQ_FS_BATCH_COUNT_ZERO = 14,
437*4882a593Smuzhiyun 	PERF_HLSQ_VS_BATCH_COUNT_ZERO = 15,
438*4882a593Smuzhiyun 	PERF_HLSQ_WAVE_PENDING_NO_QUAD = 16,
439*4882a593Smuzhiyun 	PERF_HLSQ_WAVE_PENDING_NO_PRIM_BASE = 17,
440*4882a593Smuzhiyun 	PERF_HLSQ_STALL_CYCLES_VPC = 18,
441*4882a593Smuzhiyun 	PERF_HLSQ_PIXELS = 19,
442*4882a593Smuzhiyun 	PERF_HLSQ_DRAW_MODE_SWITCH_VSFS_SYNC = 20,
443*4882a593Smuzhiyun };
444*4882a593Smuzhiyun 
445*4882a593Smuzhiyun enum a6xx_vpc_perfcounter_select {
446*4882a593Smuzhiyun 	PERF_VPC_BUSY_CYCLES = 0,
447*4882a593Smuzhiyun 	PERF_VPC_WORKING_CYCLES = 1,
448*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_UCHE = 2,
449*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_VFD_WACK = 3,
450*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_HLSQ_PRIM_ALLOC = 4,
451*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_PC = 5,
452*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_SP_LM = 6,
453*4882a593Smuzhiyun 	PERF_VPC_STARVE_CYCLES_SP = 7,
454*4882a593Smuzhiyun 	PERF_VPC_STARVE_CYCLES_LRZ = 8,
455*4882a593Smuzhiyun 	PERF_VPC_PC_PRIMITIVES = 9,
456*4882a593Smuzhiyun 	PERF_VPC_SP_COMPONENTS = 10,
457*4882a593Smuzhiyun 	PERF_VPC_STALL_CYCLES_VPCRAM_POS = 11,
458*4882a593Smuzhiyun 	PERF_VPC_LRZ_ASSIGN_PRIMITIVES = 12,
459*4882a593Smuzhiyun 	PERF_VPC_RB_VISIBLE_PRIMITIVES = 13,
460*4882a593Smuzhiyun 	PERF_VPC_LM_TRANSACTION = 14,
461*4882a593Smuzhiyun 	PERF_VPC_STREAMOUT_TRANSACTION = 15,
462*4882a593Smuzhiyun 	PERF_VPC_VS_BUSY_CYCLES = 16,
463*4882a593Smuzhiyun 	PERF_VPC_PS_BUSY_CYCLES = 17,
464*4882a593Smuzhiyun 	PERF_VPC_VS_WORKING_CYCLES = 18,
465*4882a593Smuzhiyun 	PERF_VPC_PS_WORKING_CYCLES = 19,
466*4882a593Smuzhiyun 	PERF_VPC_STARVE_CYCLES_RB = 20,
467*4882a593Smuzhiyun 	PERF_VPC_NUM_VPCRAM_READ_POS = 21,
468*4882a593Smuzhiyun 	PERF_VPC_WIT_FULL_CYCLES = 22,
469*4882a593Smuzhiyun 	PERF_VPC_VPCRAM_FULL_CYCLES = 23,
470*4882a593Smuzhiyun 	PERF_VPC_LM_FULL_WAIT_FOR_INTP_END = 24,
471*4882a593Smuzhiyun 	PERF_VPC_NUM_VPCRAM_WRITE = 25,
472*4882a593Smuzhiyun 	PERF_VPC_NUM_VPCRAM_READ_SO = 26,
473*4882a593Smuzhiyun 	PERF_VPC_NUM_ATTR_REQ_LM = 27,
474*4882a593Smuzhiyun };
475*4882a593Smuzhiyun 
476*4882a593Smuzhiyun enum a6xx_tse_perfcounter_select {
477*4882a593Smuzhiyun 	PERF_TSE_BUSY_CYCLES = 0,
478*4882a593Smuzhiyun 	PERF_TSE_CLIPPING_CYCLES = 1,
479*4882a593Smuzhiyun 	PERF_TSE_STALL_CYCLES_RAS = 2,
480*4882a593Smuzhiyun 	PERF_TSE_STALL_CYCLES_LRZ_BARYPLANE = 3,
481*4882a593Smuzhiyun 	PERF_TSE_STALL_CYCLES_LRZ_ZPLANE = 4,
482*4882a593Smuzhiyun 	PERF_TSE_STARVE_CYCLES_PC = 5,
483*4882a593Smuzhiyun 	PERF_TSE_INPUT_PRIM = 6,
484*4882a593Smuzhiyun 	PERF_TSE_INPUT_NULL_PRIM = 7,
485*4882a593Smuzhiyun 	PERF_TSE_TRIVAL_REJ_PRIM = 8,
486*4882a593Smuzhiyun 	PERF_TSE_CLIPPED_PRIM = 9,
487*4882a593Smuzhiyun 	PERF_TSE_ZERO_AREA_PRIM = 10,
488*4882a593Smuzhiyun 	PERF_TSE_FACENESS_CULLED_PRIM = 11,
489*4882a593Smuzhiyun 	PERF_TSE_ZERO_PIXEL_PRIM = 12,
490*4882a593Smuzhiyun 	PERF_TSE_OUTPUT_NULL_PRIM = 13,
491*4882a593Smuzhiyun 	PERF_TSE_OUTPUT_VISIBLE_PRIM = 14,
492*4882a593Smuzhiyun 	PERF_TSE_CINVOCATION = 15,
493*4882a593Smuzhiyun 	PERF_TSE_CPRIMITIVES = 16,
494*4882a593Smuzhiyun 	PERF_TSE_2D_INPUT_PRIM = 17,
495*4882a593Smuzhiyun 	PERF_TSE_2D_ALIVE_CYCLES = 18,
496*4882a593Smuzhiyun 	PERF_TSE_CLIP_PLANES = 19,
497*4882a593Smuzhiyun };
498*4882a593Smuzhiyun 
499*4882a593Smuzhiyun enum a6xx_ras_perfcounter_select {
500*4882a593Smuzhiyun 	PERF_RAS_BUSY_CYCLES = 0,
501*4882a593Smuzhiyun 	PERF_RAS_SUPERTILE_ACTIVE_CYCLES = 1,
502*4882a593Smuzhiyun 	PERF_RAS_STALL_CYCLES_LRZ = 2,
503*4882a593Smuzhiyun 	PERF_RAS_STARVE_CYCLES_TSE = 3,
504*4882a593Smuzhiyun 	PERF_RAS_SUPER_TILES = 4,
505*4882a593Smuzhiyun 	PERF_RAS_8X4_TILES = 5,
506*4882a593Smuzhiyun 	PERF_RAS_MASKGEN_ACTIVE = 6,
507*4882a593Smuzhiyun 	PERF_RAS_FULLY_COVERED_SUPER_TILES = 7,
508*4882a593Smuzhiyun 	PERF_RAS_FULLY_COVERED_8X4_TILES = 8,
509*4882a593Smuzhiyun 	PERF_RAS_PRIM_KILLED_INVISILBE = 9,
510*4882a593Smuzhiyun 	PERF_RAS_SUPERTILE_GEN_ACTIVE_CYCLES = 10,
511*4882a593Smuzhiyun 	PERF_RAS_LRZ_INTF_WORKING_CYCLES = 11,
512*4882a593Smuzhiyun 	PERF_RAS_BLOCKS = 12,
513*4882a593Smuzhiyun };
514*4882a593Smuzhiyun 
515*4882a593Smuzhiyun enum a6xx_uche_perfcounter_select {
516*4882a593Smuzhiyun 	PERF_UCHE_BUSY_CYCLES = 0,
517*4882a593Smuzhiyun 	PERF_UCHE_STALL_CYCLES_ARBITER = 1,
518*4882a593Smuzhiyun 	PERF_UCHE_VBIF_LATENCY_CYCLES = 2,
519*4882a593Smuzhiyun 	PERF_UCHE_VBIF_LATENCY_SAMPLES = 3,
520*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_TP = 4,
521*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_VFD = 5,
522*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_HLSQ = 6,
523*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_LRZ = 7,
524*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_SP = 8,
525*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_TP = 9,
526*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_VFD = 10,
527*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_HLSQ = 11,
528*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_LRZ = 12,
529*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_SP = 13,
530*4882a593Smuzhiyun 	PERF_UCHE_WRITE_REQUESTS_LRZ = 14,
531*4882a593Smuzhiyun 	PERF_UCHE_WRITE_REQUESTS_SP = 15,
532*4882a593Smuzhiyun 	PERF_UCHE_WRITE_REQUESTS_VPC = 16,
533*4882a593Smuzhiyun 	PERF_UCHE_WRITE_REQUESTS_VSC = 17,
534*4882a593Smuzhiyun 	PERF_UCHE_EVICTS = 18,
535*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ0 = 19,
536*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ1 = 20,
537*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ2 = 21,
538*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ3 = 22,
539*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ4 = 23,
540*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ5 = 24,
541*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ6 = 25,
542*4882a593Smuzhiyun 	PERF_UCHE_BANK_REQ7 = 26,
543*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_CH0 = 27,
544*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_CH1 = 28,
545*4882a593Smuzhiyun 	PERF_UCHE_GMEM_READ_BEATS = 29,
546*4882a593Smuzhiyun 	PERF_UCHE_TPH_REF_FULL = 30,
547*4882a593Smuzhiyun 	PERF_UCHE_TPH_VICTIM_FULL = 31,
548*4882a593Smuzhiyun 	PERF_UCHE_TPH_EXT_FULL = 32,
549*4882a593Smuzhiyun 	PERF_UCHE_VBIF_STALL_WRITE_DATA = 33,
550*4882a593Smuzhiyun 	PERF_UCHE_DCMP_LATENCY_SAMPLES = 34,
551*4882a593Smuzhiyun 	PERF_UCHE_DCMP_LATENCY_CYCLES = 35,
552*4882a593Smuzhiyun 	PERF_UCHE_VBIF_READ_BEATS_PC = 36,
553*4882a593Smuzhiyun 	PERF_UCHE_READ_REQUESTS_PC = 37,
554*4882a593Smuzhiyun 	PERF_UCHE_RAM_READ_REQ = 38,
555*4882a593Smuzhiyun 	PERF_UCHE_RAM_WRITE_REQ = 39,
556*4882a593Smuzhiyun };
557*4882a593Smuzhiyun 
558*4882a593Smuzhiyun enum a6xx_tp_perfcounter_select {
559*4882a593Smuzhiyun 	PERF_TP_BUSY_CYCLES = 0,
560*4882a593Smuzhiyun 	PERF_TP_STALL_CYCLES_UCHE = 1,
561*4882a593Smuzhiyun 	PERF_TP_LATENCY_CYCLES = 2,
562*4882a593Smuzhiyun 	PERF_TP_LATENCY_TRANS = 3,
563*4882a593Smuzhiyun 	PERF_TP_FLAG_CACHE_REQUEST_SAMPLES = 4,
564*4882a593Smuzhiyun 	PERF_TP_FLAG_CACHE_REQUEST_LATENCY = 5,
565*4882a593Smuzhiyun 	PERF_TP_L1_CACHELINE_REQUESTS = 6,
566*4882a593Smuzhiyun 	PERF_TP_L1_CACHELINE_MISSES = 7,
567*4882a593Smuzhiyun 	PERF_TP_SP_TP_TRANS = 8,
568*4882a593Smuzhiyun 	PERF_TP_TP_SP_TRANS = 9,
569*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS = 10,
570*4882a593Smuzhiyun 	PERF_TP_FILTER_WORKLOAD_16BIT = 11,
571*4882a593Smuzhiyun 	PERF_TP_FILTER_WORKLOAD_32BIT = 12,
572*4882a593Smuzhiyun 	PERF_TP_QUADS_RECEIVED = 13,
573*4882a593Smuzhiyun 	PERF_TP_QUADS_OFFSET = 14,
574*4882a593Smuzhiyun 	PERF_TP_QUADS_SHADOW = 15,
575*4882a593Smuzhiyun 	PERF_TP_QUADS_ARRAY = 16,
576*4882a593Smuzhiyun 	PERF_TP_QUADS_GRADIENT = 17,
577*4882a593Smuzhiyun 	PERF_TP_QUADS_1D = 18,
578*4882a593Smuzhiyun 	PERF_TP_QUADS_2D = 19,
579*4882a593Smuzhiyun 	PERF_TP_QUADS_BUFFER = 20,
580*4882a593Smuzhiyun 	PERF_TP_QUADS_3D = 21,
581*4882a593Smuzhiyun 	PERF_TP_QUADS_CUBE = 22,
582*4882a593Smuzhiyun 	PERF_TP_DIVERGENT_QUADS_RECEIVED = 23,
583*4882a593Smuzhiyun 	PERF_TP_PRT_NON_RESIDENT_EVENTS = 24,
584*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS_POINT = 25,
585*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS_BILINEAR = 26,
586*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS_MIP = 27,
587*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS_ANISO = 28,
588*4882a593Smuzhiyun 	PERF_TP_OUTPUT_PIXELS_ZERO_LOD = 29,
589*4882a593Smuzhiyun 	PERF_TP_FLAG_CACHE_REQUESTS = 30,
590*4882a593Smuzhiyun 	PERF_TP_FLAG_CACHE_MISSES = 31,
591*4882a593Smuzhiyun 	PERF_TP_L1_5_L2_REQUESTS = 32,
592*4882a593Smuzhiyun 	PERF_TP_2D_OUTPUT_PIXELS = 33,
593*4882a593Smuzhiyun 	PERF_TP_2D_OUTPUT_PIXELS_POINT = 34,
594*4882a593Smuzhiyun 	PERF_TP_2D_OUTPUT_PIXELS_BILINEAR = 35,
595*4882a593Smuzhiyun 	PERF_TP_2D_FILTER_WORKLOAD_16BIT = 36,
596*4882a593Smuzhiyun 	PERF_TP_2D_FILTER_WORKLOAD_32BIT = 37,
597*4882a593Smuzhiyun 	PERF_TP_TPA2TPC_TRANS = 38,
598*4882a593Smuzhiyun 	PERF_TP_L1_MISSES_ASTC_1TILE = 39,
599*4882a593Smuzhiyun 	PERF_TP_L1_MISSES_ASTC_2TILE = 40,
600*4882a593Smuzhiyun 	PERF_TP_L1_MISSES_ASTC_4TILE = 41,
601*4882a593Smuzhiyun 	PERF_TP_L1_5_L2_COMPRESS_REQS = 42,
602*4882a593Smuzhiyun 	PERF_TP_L1_5_L2_COMPRESS_MISS = 43,
603*4882a593Smuzhiyun 	PERF_TP_L1_BANK_CONFLICT = 44,
604*4882a593Smuzhiyun 	PERF_TP_L1_5_MISS_LATENCY_CYCLES = 45,
605*4882a593Smuzhiyun 	PERF_TP_L1_5_MISS_LATENCY_TRANS = 46,
606*4882a593Smuzhiyun 	PERF_TP_QUADS_CONSTANT_MULTIPLIED = 47,
607*4882a593Smuzhiyun 	PERF_TP_FRONTEND_WORKING_CYCLES = 48,
608*4882a593Smuzhiyun 	PERF_TP_L1_TAG_WORKING_CYCLES = 49,
609*4882a593Smuzhiyun 	PERF_TP_L1_DATA_WRITE_WORKING_CYCLES = 50,
610*4882a593Smuzhiyun 	PERF_TP_PRE_L1_DECOM_WORKING_CYCLES = 51,
611*4882a593Smuzhiyun 	PERF_TP_BACKEND_WORKING_CYCLES = 52,
612*4882a593Smuzhiyun 	PERF_TP_FLAG_CACHE_WORKING_CYCLES = 53,
613*4882a593Smuzhiyun 	PERF_TP_L1_5_CACHE_WORKING_CYCLES = 54,
614*4882a593Smuzhiyun 	PERF_TP_STARVE_CYCLES_SP = 55,
615*4882a593Smuzhiyun 	PERF_TP_STARVE_CYCLES_UCHE = 56,
616*4882a593Smuzhiyun };
617*4882a593Smuzhiyun 
618*4882a593Smuzhiyun enum a6xx_sp_perfcounter_select {
619*4882a593Smuzhiyun 	PERF_SP_BUSY_CYCLES = 0,
620*4882a593Smuzhiyun 	PERF_SP_ALU_WORKING_CYCLES = 1,
621*4882a593Smuzhiyun 	PERF_SP_EFU_WORKING_CYCLES = 2,
622*4882a593Smuzhiyun 	PERF_SP_STALL_CYCLES_VPC = 3,
623*4882a593Smuzhiyun 	PERF_SP_STALL_CYCLES_TP = 4,
624*4882a593Smuzhiyun 	PERF_SP_STALL_CYCLES_UCHE = 5,
625*4882a593Smuzhiyun 	PERF_SP_STALL_CYCLES_RB = 6,
626*4882a593Smuzhiyun 	PERF_SP_NON_EXECUTION_CYCLES = 7,
627*4882a593Smuzhiyun 	PERF_SP_WAVE_CONTEXTS = 8,
628*4882a593Smuzhiyun 	PERF_SP_WAVE_CONTEXT_CYCLES = 9,
629*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_WAVE_CYCLES = 10,
630*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_WAVE_SAMPLES = 11,
631*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_WAVE_CYCLES = 12,
632*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_WAVE_SAMPLES = 13,
633*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_DURATION_CYCLES = 14,
634*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_DURATION_CYCLES = 15,
635*4882a593Smuzhiyun 	PERF_SP_WAVE_CTRL_CYCLES = 16,
636*4882a593Smuzhiyun 	PERF_SP_WAVE_LOAD_CYCLES = 17,
637*4882a593Smuzhiyun 	PERF_SP_WAVE_EMIT_CYCLES = 18,
638*4882a593Smuzhiyun 	PERF_SP_WAVE_NOP_CYCLES = 19,
639*4882a593Smuzhiyun 	PERF_SP_WAVE_WAIT_CYCLES = 20,
640*4882a593Smuzhiyun 	PERF_SP_WAVE_FETCH_CYCLES = 21,
641*4882a593Smuzhiyun 	PERF_SP_WAVE_IDLE_CYCLES = 22,
642*4882a593Smuzhiyun 	PERF_SP_WAVE_END_CYCLES = 23,
643*4882a593Smuzhiyun 	PERF_SP_WAVE_LONG_SYNC_CYCLES = 24,
644*4882a593Smuzhiyun 	PERF_SP_WAVE_SHORT_SYNC_CYCLES = 25,
645*4882a593Smuzhiyun 	PERF_SP_WAVE_JOIN_CYCLES = 26,
646*4882a593Smuzhiyun 	PERF_SP_LM_LOAD_INSTRUCTIONS = 27,
647*4882a593Smuzhiyun 	PERF_SP_LM_STORE_INSTRUCTIONS = 28,
648*4882a593Smuzhiyun 	PERF_SP_LM_ATOMICS = 29,
649*4882a593Smuzhiyun 	PERF_SP_GM_LOAD_INSTRUCTIONS = 30,
650*4882a593Smuzhiyun 	PERF_SP_GM_STORE_INSTRUCTIONS = 31,
651*4882a593Smuzhiyun 	PERF_SP_GM_ATOMICS = 32,
652*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_TEX_INSTRUCTIONS = 33,
653*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_EFU_INSTRUCTIONS = 34,
654*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_FULL_ALU_INSTRUCTIONS = 35,
655*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_HALF_ALU_INSTRUCTIONS = 36,
656*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_TEX_INSTRUCTIONS = 37,
657*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_CFLOW_INSTRUCTIONS = 38,
658*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_EFU_INSTRUCTIONS = 39,
659*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_FULL_ALU_INSTRUCTIONS = 40,
660*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_HALF_ALU_INSTRUCTIONS = 41,
661*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_BARY_INSTRUCTIONS = 42,
662*4882a593Smuzhiyun 	PERF_SP_VS_INSTRUCTIONS = 43,
663*4882a593Smuzhiyun 	PERF_SP_FS_INSTRUCTIONS = 44,
664*4882a593Smuzhiyun 	PERF_SP_ADDR_LOCK_COUNT = 45,
665*4882a593Smuzhiyun 	PERF_SP_UCHE_READ_TRANS = 46,
666*4882a593Smuzhiyun 	PERF_SP_UCHE_WRITE_TRANS = 47,
667*4882a593Smuzhiyun 	PERF_SP_EXPORT_VPC_TRANS = 48,
668*4882a593Smuzhiyun 	PERF_SP_EXPORT_RB_TRANS = 49,
669*4882a593Smuzhiyun 	PERF_SP_PIXELS_KILLED = 50,
670*4882a593Smuzhiyun 	PERF_SP_ICL1_REQUESTS = 51,
671*4882a593Smuzhiyun 	PERF_SP_ICL1_MISSES = 52,
672*4882a593Smuzhiyun 	PERF_SP_HS_INSTRUCTIONS = 53,
673*4882a593Smuzhiyun 	PERF_SP_DS_INSTRUCTIONS = 54,
674*4882a593Smuzhiyun 	PERF_SP_GS_INSTRUCTIONS = 55,
675*4882a593Smuzhiyun 	PERF_SP_CS_INSTRUCTIONS = 56,
676*4882a593Smuzhiyun 	PERF_SP_GPR_READ = 57,
677*4882a593Smuzhiyun 	PERF_SP_GPR_WRITE = 58,
678*4882a593Smuzhiyun 	PERF_SP_FS_STAGE_HALF_EFU_INSTRUCTIONS = 59,
679*4882a593Smuzhiyun 	PERF_SP_VS_STAGE_HALF_EFU_INSTRUCTIONS = 60,
680*4882a593Smuzhiyun 	PERF_SP_LM_BANK_CONFLICTS = 61,
681*4882a593Smuzhiyun 	PERF_SP_TEX_CONTROL_WORKING_CYCLES = 62,
682*4882a593Smuzhiyun 	PERF_SP_LOAD_CONTROL_WORKING_CYCLES = 63,
683*4882a593Smuzhiyun 	PERF_SP_FLOW_CONTROL_WORKING_CYCLES = 64,
684*4882a593Smuzhiyun 	PERF_SP_LM_WORKING_CYCLES = 65,
685*4882a593Smuzhiyun 	PERF_SP_DISPATCHER_WORKING_CYCLES = 66,
686*4882a593Smuzhiyun 	PERF_SP_SEQUENCER_WORKING_CYCLES = 67,
687*4882a593Smuzhiyun 	PERF_SP_LOW_EFFICIENCY_STARVED_BY_TP = 68,
688*4882a593Smuzhiyun 	PERF_SP_STARVE_CYCLES_HLSQ = 69,
689*4882a593Smuzhiyun 	PERF_SP_NON_EXECUTION_LS_CYCLES = 70,
690*4882a593Smuzhiyun 	PERF_SP_WORKING_EU = 71,
691*4882a593Smuzhiyun 	PERF_SP_ANY_EU_WORKING = 72,
692*4882a593Smuzhiyun 	PERF_SP_WORKING_EU_FS_STAGE = 73,
693*4882a593Smuzhiyun 	PERF_SP_ANY_EU_WORKING_FS_STAGE = 74,
694*4882a593Smuzhiyun 	PERF_SP_WORKING_EU_VS_STAGE = 75,
695*4882a593Smuzhiyun 	PERF_SP_ANY_EU_WORKING_VS_STAGE = 76,
696*4882a593Smuzhiyun 	PERF_SP_WORKING_EU_CS_STAGE = 77,
697*4882a593Smuzhiyun 	PERF_SP_ANY_EU_WORKING_CS_STAGE = 78,
698*4882a593Smuzhiyun 	PERF_SP_GPR_READ_PREFETCH = 79,
699*4882a593Smuzhiyun 	PERF_SP_GPR_READ_CONFLICT = 80,
700*4882a593Smuzhiyun 	PERF_SP_GPR_WRITE_CONFLICT = 81,
701*4882a593Smuzhiyun 	PERF_SP_GM_LOAD_LATENCY_CYCLES = 82,
702*4882a593Smuzhiyun 	PERF_SP_GM_LOAD_LATENCY_SAMPLES = 83,
703*4882a593Smuzhiyun 	PERF_SP_EXECUTABLE_WAVES = 84,
704*4882a593Smuzhiyun };
705*4882a593Smuzhiyun 
706*4882a593Smuzhiyun enum a6xx_rb_perfcounter_select {
707*4882a593Smuzhiyun 	PERF_RB_BUSY_CYCLES = 0,
708*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_HLSQ = 1,
709*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_FIFO0_FULL = 2,
710*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_FIFO1_FULL = 3,
711*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_FIFO2_FULL = 4,
712*4882a593Smuzhiyun 	PERF_RB_STARVE_CYCLES_SP = 5,
713*4882a593Smuzhiyun 	PERF_RB_STARVE_CYCLES_LRZ_TILE = 6,
714*4882a593Smuzhiyun 	PERF_RB_STARVE_CYCLES_CCU = 7,
715*4882a593Smuzhiyun 	PERF_RB_STARVE_CYCLES_Z_PLANE = 8,
716*4882a593Smuzhiyun 	PERF_RB_STARVE_CYCLES_BARY_PLANE = 9,
717*4882a593Smuzhiyun 	PERF_RB_Z_WORKLOAD = 10,
718*4882a593Smuzhiyun 	PERF_RB_HLSQ_ACTIVE = 11,
719*4882a593Smuzhiyun 	PERF_RB_Z_READ = 12,
720*4882a593Smuzhiyun 	PERF_RB_Z_WRITE = 13,
721*4882a593Smuzhiyun 	PERF_RB_C_READ = 14,
722*4882a593Smuzhiyun 	PERF_RB_C_WRITE = 15,
723*4882a593Smuzhiyun 	PERF_RB_TOTAL_PASS = 16,
724*4882a593Smuzhiyun 	PERF_RB_Z_PASS = 17,
725*4882a593Smuzhiyun 	PERF_RB_Z_FAIL = 18,
726*4882a593Smuzhiyun 	PERF_RB_S_FAIL = 19,
727*4882a593Smuzhiyun 	PERF_RB_BLENDED_FXP_COMPONENTS = 20,
728*4882a593Smuzhiyun 	PERF_RB_BLENDED_FP16_COMPONENTS = 21,
729*4882a593Smuzhiyun 	PERF_RB_PS_INVOCATIONS = 22,
730*4882a593Smuzhiyun 	PERF_RB_2D_ALIVE_CYCLES = 23,
731*4882a593Smuzhiyun 	PERF_RB_2D_STALL_CYCLES_A2D = 24,
732*4882a593Smuzhiyun 	PERF_RB_2D_STARVE_CYCLES_SRC = 25,
733*4882a593Smuzhiyun 	PERF_RB_2D_STARVE_CYCLES_SP = 26,
734*4882a593Smuzhiyun 	PERF_RB_2D_STARVE_CYCLES_DST = 27,
735*4882a593Smuzhiyun 	PERF_RB_2D_VALID_PIXELS = 28,
736*4882a593Smuzhiyun 	PERF_RB_3D_PIXELS = 29,
737*4882a593Smuzhiyun 	PERF_RB_BLENDER_WORKING_CYCLES = 30,
738*4882a593Smuzhiyun 	PERF_RB_ZPROC_WORKING_CYCLES = 31,
739*4882a593Smuzhiyun 	PERF_RB_CPROC_WORKING_CYCLES = 32,
740*4882a593Smuzhiyun 	PERF_RB_SAMPLER_WORKING_CYCLES = 33,
741*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_CCU_COLOR_READ = 34,
742*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_CCU_COLOR_WRITE = 35,
743*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_CCU_DEPTH_READ = 36,
744*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_CCU_DEPTH_WRITE = 37,
745*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_VPC = 38,
746*4882a593Smuzhiyun 	PERF_RB_2D_INPUT_TRANS = 39,
747*4882a593Smuzhiyun 	PERF_RB_2D_OUTPUT_RB_DST_TRANS = 40,
748*4882a593Smuzhiyun 	PERF_RB_2D_OUTPUT_RB_SRC_TRANS = 41,
749*4882a593Smuzhiyun 	PERF_RB_BLENDED_FP32_COMPONENTS = 42,
750*4882a593Smuzhiyun 	PERF_RB_COLOR_PIX_TILES = 43,
751*4882a593Smuzhiyun 	PERF_RB_STALL_CYCLES_CCU = 44,
752*4882a593Smuzhiyun 	PERF_RB_EARLY_Z_ARB3_GRANT = 45,
753*4882a593Smuzhiyun 	PERF_RB_LATE_Z_ARB3_GRANT = 46,
754*4882a593Smuzhiyun 	PERF_RB_EARLY_Z_SKIP_GRANT = 47,
755*4882a593Smuzhiyun };
756*4882a593Smuzhiyun 
757*4882a593Smuzhiyun enum a6xx_vsc_perfcounter_select {
758*4882a593Smuzhiyun 	PERF_VSC_BUSY_CYCLES = 0,
759*4882a593Smuzhiyun 	PERF_VSC_WORKING_CYCLES = 1,
760*4882a593Smuzhiyun 	PERF_VSC_STALL_CYCLES_UCHE = 2,
761*4882a593Smuzhiyun 	PERF_VSC_EOT_NUM = 3,
762*4882a593Smuzhiyun 	PERF_VSC_INPUT_TILES = 4,
763*4882a593Smuzhiyun };
764*4882a593Smuzhiyun 
765*4882a593Smuzhiyun enum a6xx_ccu_perfcounter_select {
766*4882a593Smuzhiyun 	PERF_CCU_BUSY_CYCLES = 0,
767*4882a593Smuzhiyun 	PERF_CCU_STALL_CYCLES_RB_DEPTH_RETURN = 1,
768*4882a593Smuzhiyun 	PERF_CCU_STALL_CYCLES_RB_COLOR_RETURN = 2,
769*4882a593Smuzhiyun 	PERF_CCU_STARVE_CYCLES_FLAG_RETURN = 3,
770*4882a593Smuzhiyun 	PERF_CCU_DEPTH_BLOCKS = 4,
771*4882a593Smuzhiyun 	PERF_CCU_COLOR_BLOCKS = 5,
772*4882a593Smuzhiyun 	PERF_CCU_DEPTH_BLOCK_HIT = 6,
773*4882a593Smuzhiyun 	PERF_CCU_COLOR_BLOCK_HIT = 7,
774*4882a593Smuzhiyun 	PERF_CCU_PARTIAL_BLOCK_READ = 8,
775*4882a593Smuzhiyun 	PERF_CCU_GMEM_READ = 9,
776*4882a593Smuzhiyun 	PERF_CCU_GMEM_WRITE = 10,
777*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG0_COUNT = 11,
778*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG1_COUNT = 12,
779*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG2_COUNT = 13,
780*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG3_COUNT = 14,
781*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG4_COUNT = 15,
782*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG5_COUNT = 16,
783*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG6_COUNT = 17,
784*4882a593Smuzhiyun 	PERF_CCU_DEPTH_READ_FLAG8_COUNT = 18,
785*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG0_COUNT = 19,
786*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG1_COUNT = 20,
787*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG2_COUNT = 21,
788*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG3_COUNT = 22,
789*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG4_COUNT = 23,
790*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG5_COUNT = 24,
791*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG6_COUNT = 25,
792*4882a593Smuzhiyun 	PERF_CCU_COLOR_READ_FLAG8_COUNT = 26,
793*4882a593Smuzhiyun 	PERF_CCU_2D_RD_REQ = 27,
794*4882a593Smuzhiyun 	PERF_CCU_2D_WR_REQ = 28,
795*4882a593Smuzhiyun };
796*4882a593Smuzhiyun 
797*4882a593Smuzhiyun enum a6xx_lrz_perfcounter_select {
798*4882a593Smuzhiyun 	PERF_LRZ_BUSY_CYCLES = 0,
799*4882a593Smuzhiyun 	PERF_LRZ_STARVE_CYCLES_RAS = 1,
800*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_RB = 2,
801*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_VSC = 3,
802*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_VPC = 4,
803*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_FLAG_PREFETCH = 5,
804*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_UCHE = 6,
805*4882a593Smuzhiyun 	PERF_LRZ_LRZ_READ = 7,
806*4882a593Smuzhiyun 	PERF_LRZ_LRZ_WRITE = 8,
807*4882a593Smuzhiyun 	PERF_LRZ_READ_LATENCY = 9,
808*4882a593Smuzhiyun 	PERF_LRZ_MERGE_CACHE_UPDATING = 10,
809*4882a593Smuzhiyun 	PERF_LRZ_PRIM_KILLED_BY_MASKGEN = 11,
810*4882a593Smuzhiyun 	PERF_LRZ_PRIM_KILLED_BY_LRZ = 12,
811*4882a593Smuzhiyun 	PERF_LRZ_VISIBLE_PRIM_AFTER_LRZ = 13,
812*4882a593Smuzhiyun 	PERF_LRZ_FULL_8X8_TILES = 14,
813*4882a593Smuzhiyun 	PERF_LRZ_PARTIAL_8X8_TILES = 15,
814*4882a593Smuzhiyun 	PERF_LRZ_TILE_KILLED = 16,
815*4882a593Smuzhiyun 	PERF_LRZ_TOTAL_PIXEL = 17,
816*4882a593Smuzhiyun 	PERF_LRZ_VISIBLE_PIXEL_AFTER_LRZ = 18,
817*4882a593Smuzhiyun 	PERF_LRZ_FULLY_COVERED_TILES = 19,
818*4882a593Smuzhiyun 	PERF_LRZ_PARTIAL_COVERED_TILES = 20,
819*4882a593Smuzhiyun 	PERF_LRZ_FEEDBACK_ACCEPT = 21,
820*4882a593Smuzhiyun 	PERF_LRZ_FEEDBACK_DISCARD = 22,
821*4882a593Smuzhiyun 	PERF_LRZ_FEEDBACK_STALL = 23,
822*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_RB_ZPLANE = 24,
823*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_RB_BPLANE = 25,
824*4882a593Smuzhiyun 	PERF_LRZ_STALL_CYCLES_VC = 26,
825*4882a593Smuzhiyun 	PERF_LRZ_RAS_MASK_TRANS = 27,
826*4882a593Smuzhiyun };
827*4882a593Smuzhiyun 
828*4882a593Smuzhiyun enum a6xx_cmp_perfcounter_select {
829*4882a593Smuzhiyun 	PERF_CMPDECMP_STALL_CYCLES_ARB = 0,
830*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_LATENCY_CYCLES = 1,
831*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_LATENCY_SAMPLES = 2,
832*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_READ_DATA_CCU = 3,
833*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_WRITE_DATA_CCU = 4,
834*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_READ_REQUEST = 5,
835*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_WRITE_REQUEST = 6,
836*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_READ_DATA = 7,
837*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_WRITE_DATA = 8,
838*4882a593Smuzhiyun 	PERF_CMPDECMP_FLAG_FETCH_CYCLES = 9,
839*4882a593Smuzhiyun 	PERF_CMPDECMP_FLAG_FETCH_SAMPLES = 10,
840*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG1_COUNT = 11,
841*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG2_COUNT = 12,
842*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG3_COUNT = 13,
843*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG4_COUNT = 14,
844*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG5_COUNT = 15,
845*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG6_COUNT = 16,
846*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG8_COUNT = 17,
847*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG1_COUNT = 18,
848*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG2_COUNT = 19,
849*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG3_COUNT = 20,
850*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG4_COUNT = 21,
851*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG5_COUNT = 22,
852*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG6_COUNT = 23,
853*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG8_COUNT = 24,
854*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_REQ = 25,
855*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_WR = 26,
856*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_RETURN = 27,
857*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_RD_DATA = 28,
858*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_WR_DATA = 29,
859*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_READ_DATA_UCHE_CH0 = 30,
860*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_READ_DATA_UCHE_CH1 = 31,
861*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_OUTPUT_TRANS = 32,
862*4882a593Smuzhiyun 	PERF_CMPDECMP_VBIF_WRITE_DATA_UCHE = 33,
863*4882a593Smuzhiyun 	PERF_CMPDECMP_DEPTH_WRITE_FLAG0_COUNT = 34,
864*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAG0_COUNT = 35,
865*4882a593Smuzhiyun 	PERF_CMPDECMP_COLOR_WRITE_FLAGALPHA_COUNT = 36,
866*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_BUSY_CYCLES = 37,
867*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_REORDER_STARVE_CYCLES = 38,
868*4882a593Smuzhiyun 	PERF_CMPDECMP_2D_PIXELS = 39,
869*4882a593Smuzhiyun };
870*4882a593Smuzhiyun 
871*4882a593Smuzhiyun enum a6xx_2d_ifmt {
872*4882a593Smuzhiyun 	R2D_UNORM8 = 16,
873*4882a593Smuzhiyun 	R2D_INT32 = 7,
874*4882a593Smuzhiyun 	R2D_INT16 = 6,
875*4882a593Smuzhiyun 	R2D_INT8 = 5,
876*4882a593Smuzhiyun 	R2D_FLOAT32 = 4,
877*4882a593Smuzhiyun 	R2D_FLOAT16 = 3,
878*4882a593Smuzhiyun 	R2D_UNORM8_SRGB = 1,
879*4882a593Smuzhiyun 	R2D_RAW = 0,
880*4882a593Smuzhiyun };
881*4882a593Smuzhiyun 
882*4882a593Smuzhiyun enum a6xx_ztest_mode {
883*4882a593Smuzhiyun 	A6XX_EARLY_Z = 0,
884*4882a593Smuzhiyun 	A6XX_LATE_Z = 1,
885*4882a593Smuzhiyun 	A6XX_EARLY_LRZ_LATE_Z = 2,
886*4882a593Smuzhiyun };
887*4882a593Smuzhiyun 
888*4882a593Smuzhiyun enum a6xx_rotation {
889*4882a593Smuzhiyun 	ROTATE_0 = 0,
890*4882a593Smuzhiyun 	ROTATE_90 = 1,
891*4882a593Smuzhiyun 	ROTATE_180 = 2,
892*4882a593Smuzhiyun 	ROTATE_270 = 3,
893*4882a593Smuzhiyun 	ROTATE_HFLIP = 4,
894*4882a593Smuzhiyun 	ROTATE_VFLIP = 5,
895*4882a593Smuzhiyun };
896*4882a593Smuzhiyun 
897*4882a593Smuzhiyun enum a6xx_tess_spacing {
898*4882a593Smuzhiyun 	TESS_EQUAL = 0,
899*4882a593Smuzhiyun 	TESS_FRACTIONAL_ODD = 2,
900*4882a593Smuzhiyun 	TESS_FRACTIONAL_EVEN = 3,
901*4882a593Smuzhiyun };
902*4882a593Smuzhiyun 
903*4882a593Smuzhiyun enum a6xx_tess_output {
904*4882a593Smuzhiyun 	TESS_POINTS = 0,
905*4882a593Smuzhiyun 	TESS_LINES = 1,
906*4882a593Smuzhiyun 	TESS_CW_TRIS = 2,
907*4882a593Smuzhiyun 	TESS_CCW_TRIS = 3,
908*4882a593Smuzhiyun };
909*4882a593Smuzhiyun 
910*4882a593Smuzhiyun enum a6xx_tex_filter {
911*4882a593Smuzhiyun 	A6XX_TEX_NEAREST = 0,
912*4882a593Smuzhiyun 	A6XX_TEX_LINEAR = 1,
913*4882a593Smuzhiyun 	A6XX_TEX_ANISO = 2,
914*4882a593Smuzhiyun 	A6XX_TEX_CUBIC = 3,
915*4882a593Smuzhiyun };
916*4882a593Smuzhiyun 
917*4882a593Smuzhiyun enum a6xx_tex_clamp {
918*4882a593Smuzhiyun 	A6XX_TEX_REPEAT = 0,
919*4882a593Smuzhiyun 	A6XX_TEX_CLAMP_TO_EDGE = 1,
920*4882a593Smuzhiyun 	A6XX_TEX_MIRROR_REPEAT = 2,
921*4882a593Smuzhiyun 	A6XX_TEX_CLAMP_TO_BORDER = 3,
922*4882a593Smuzhiyun 	A6XX_TEX_MIRROR_CLAMP = 4,
923*4882a593Smuzhiyun };
924*4882a593Smuzhiyun 
925*4882a593Smuzhiyun enum a6xx_tex_aniso {
926*4882a593Smuzhiyun 	A6XX_TEX_ANISO_1 = 0,
927*4882a593Smuzhiyun 	A6XX_TEX_ANISO_2 = 1,
928*4882a593Smuzhiyun 	A6XX_TEX_ANISO_4 = 2,
929*4882a593Smuzhiyun 	A6XX_TEX_ANISO_8 = 3,
930*4882a593Smuzhiyun 	A6XX_TEX_ANISO_16 = 4,
931*4882a593Smuzhiyun };
932*4882a593Smuzhiyun 
933*4882a593Smuzhiyun enum a6xx_reduction_mode {
934*4882a593Smuzhiyun 	A6XX_REDUCTION_MODE_AVERAGE = 0,
935*4882a593Smuzhiyun 	A6XX_REDUCTION_MODE_MIN = 1,
936*4882a593Smuzhiyun 	A6XX_REDUCTION_MODE_MAX = 2,
937*4882a593Smuzhiyun };
938*4882a593Smuzhiyun 
939*4882a593Smuzhiyun enum a6xx_tex_swiz {
940*4882a593Smuzhiyun 	A6XX_TEX_X = 0,
941*4882a593Smuzhiyun 	A6XX_TEX_Y = 1,
942*4882a593Smuzhiyun 	A6XX_TEX_Z = 2,
943*4882a593Smuzhiyun 	A6XX_TEX_W = 3,
944*4882a593Smuzhiyun 	A6XX_TEX_ZERO = 4,
945*4882a593Smuzhiyun 	A6XX_TEX_ONE = 5,
946*4882a593Smuzhiyun };
947*4882a593Smuzhiyun 
948*4882a593Smuzhiyun enum a6xx_tex_type {
949*4882a593Smuzhiyun 	A6XX_TEX_1D = 0,
950*4882a593Smuzhiyun 	A6XX_TEX_2D = 1,
951*4882a593Smuzhiyun 	A6XX_TEX_CUBE = 2,
952*4882a593Smuzhiyun 	A6XX_TEX_3D = 3,
953*4882a593Smuzhiyun };
954*4882a593Smuzhiyun 
955*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_RBBM_GPU_IDLE			0x00000001
956*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_AHB_ERROR			0x00000002
957*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_RBBM_ATB_ASYNCFIFO_OVERFLOW	0x00000040
958*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_RBBM_GPC_ERROR			0x00000080
959*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_SW				0x00000100
960*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_HW_ERROR			0x00000200
961*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_DEPTH_TS		0x00000400
962*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_COLOR_TS		0x00000800
963*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_CCU_RESOLVE_TS			0x00001000
964*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_IB2				0x00002000
965*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_IB1				0x00004000
966*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_RB				0x00008000
967*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_RB_DONE_TS			0x00020000
968*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_WT_DONE_TS			0x00040000
969*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS			0x00100000
970*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_RBBM_ATB_BUS_OVERFLOW		0x00400000
971*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_RBBM_HANG_DETECT			0x00800000
972*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_UCHE_OOB_ACCESS			0x01000000
973*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_UCHE_TRAP_INTR			0x02000000
974*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_0			0x04000000
975*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_1			0x08000000
976*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_ISDB_CPU_IRQ			0x40000000
977*4882a593Smuzhiyun #define A6XX_RBBM_INT_0_MASK_ISDB_UNDER_DEBUG			0x80000000
978*4882a593Smuzhiyun #define A6XX_CP_INT_CP_OPCODE_ERROR				0x00000001
979*4882a593Smuzhiyun #define A6XX_CP_INT_CP_UCODE_ERROR				0x00000002
980*4882a593Smuzhiyun #define A6XX_CP_INT_CP_HW_FAULT_ERROR				0x00000004
981*4882a593Smuzhiyun #define A6XX_CP_INT_CP_REGISTER_PROTECTION_ERROR		0x00000010
982*4882a593Smuzhiyun #define A6XX_CP_INT_CP_AHB_ERROR				0x00000020
983*4882a593Smuzhiyun #define A6XX_CP_INT_CP_VSD_PARITY_ERROR				0x00000040
984*4882a593Smuzhiyun #define A6XX_CP_INT_CP_ILLEGAL_INSTR_ERROR			0x00000080
985*4882a593Smuzhiyun #define REG_A6XX_CP_RB_BASE					0x00000800
986*4882a593Smuzhiyun 
987*4882a593Smuzhiyun #define REG_A6XX_CP_RB_BASE_HI					0x00000801
988*4882a593Smuzhiyun 
989*4882a593Smuzhiyun #define REG_A6XX_CP_RB_CNTL					0x00000802
990*4882a593Smuzhiyun 
991*4882a593Smuzhiyun #define REG_A6XX_CP_RB_RPTR_ADDR_LO				0x00000804
992*4882a593Smuzhiyun 
993*4882a593Smuzhiyun #define REG_A6XX_CP_RB_RPTR_ADDR_HI				0x00000805
994*4882a593Smuzhiyun 
995*4882a593Smuzhiyun #define REG_A6XX_CP_RB_RPTR					0x00000806
996*4882a593Smuzhiyun 
997*4882a593Smuzhiyun #define REG_A6XX_CP_RB_WPTR					0x00000807
998*4882a593Smuzhiyun 
999*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_CNTL					0x00000808
1000*4882a593Smuzhiyun 
1001*4882a593Smuzhiyun #define REG_A6XX_CP_CP2GMU_STATUS				0x00000812
1002*4882a593Smuzhiyun #define A6XX_CP_CP2GMU_STATUS_IFPC				0x00000001
1003*4882a593Smuzhiyun 
1004*4882a593Smuzhiyun #define REG_A6XX_CP_HW_FAULT					0x00000821
1005*4882a593Smuzhiyun 
1006*4882a593Smuzhiyun #define REG_A6XX_CP_INTERRUPT_STATUS				0x00000823
1007*4882a593Smuzhiyun 
1008*4882a593Smuzhiyun #define REG_A6XX_CP_PROTECT_STATUS				0x00000824
1009*4882a593Smuzhiyun 
1010*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_INSTR_BASE_LO				0x00000830
1011*4882a593Smuzhiyun 
1012*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_INSTR_BASE_HI				0x00000831
1013*4882a593Smuzhiyun 
1014*4882a593Smuzhiyun #define REG_A6XX_CP_MISC_CNTL					0x00000840
1015*4882a593Smuzhiyun 
1016*4882a593Smuzhiyun #define REG_A6XX_CP_APRIV_CNTL					0x00000844
1017*4882a593Smuzhiyun 
1018*4882a593Smuzhiyun #define REG_A6XX_CP_ROQ_THRESHOLDS_1				0x000008c1
1019*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__MASK			0x000000ff
1020*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__SHIFT			0
A6XX_CP_ROQ_THRESHOLDS_1_RB_LO(uint32_t val)1021*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_RB_LO(uint32_t val)
1022*4882a593Smuzhiyun {
1023*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_RB_LO__MASK;
1024*4882a593Smuzhiyun }
1025*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__MASK			0x0000ff00
1026*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__SHIFT			8
A6XX_CP_ROQ_THRESHOLDS_1_RB_HI(uint32_t val)1027*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_RB_HI(uint32_t val)
1028*4882a593Smuzhiyun {
1029*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_RB_HI__MASK;
1030*4882a593Smuzhiyun }
1031*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK		0x00ff0000
1032*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT		16
A6XX_CP_ROQ_THRESHOLDS_1_IB1_START(uint32_t val)1033*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB1_START(uint32_t val)
1034*4882a593Smuzhiyun {
1035*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK;
1036*4882a593Smuzhiyun }
1037*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK		0xff000000
1038*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT		24
A6XX_CP_ROQ_THRESHOLDS_1_IB2_START(uint32_t val)1039*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB2_START(uint32_t val)
1040*4882a593Smuzhiyun {
1041*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK;
1042*4882a593Smuzhiyun }
1043*4882a593Smuzhiyun 
1044*4882a593Smuzhiyun #define REG_A6XX_CP_ROQ_THRESHOLDS_2				0x000008c2
1045*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK		0x000001ff
1046*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT		0
A6XX_CP_ROQ_THRESHOLDS_2_SDS_START(uint32_t val)1047*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_SDS_START(uint32_t val)
1048*4882a593Smuzhiyun {
1049*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK;
1050*4882a593Smuzhiyun }
1051*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK			0xffff0000
1052*4882a593Smuzhiyun #define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT		16
A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE(uint32_t val)1053*4882a593Smuzhiyun static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE(uint32_t val)
1054*4882a593Smuzhiyun {
1055*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK;
1056*4882a593Smuzhiyun }
1057*4882a593Smuzhiyun 
1058*4882a593Smuzhiyun #define REG_A6XX_CP_MEM_POOL_SIZE				0x000008c3
1059*4882a593Smuzhiyun 
1060*4882a593Smuzhiyun #define REG_A6XX_CP_CHICKEN_DBG					0x00000841
1061*4882a593Smuzhiyun 
1062*4882a593Smuzhiyun #define REG_A6XX_CP_ADDR_MODE_CNTL				0x00000842
1063*4882a593Smuzhiyun 
1064*4882a593Smuzhiyun #define REG_A6XX_CP_DBG_ECO_CNTL				0x00000843
1065*4882a593Smuzhiyun 
1066*4882a593Smuzhiyun #define REG_A6XX_CP_PROTECT_CNTL				0x0000084f
1067*4882a593Smuzhiyun 
REG_A6XX_CP_SCRATCH(uint32_t i0)1068*4882a593Smuzhiyun static inline uint32_t REG_A6XX_CP_SCRATCH(uint32_t i0) { return 0x00000883 + 0x1*i0; }
1069*4882a593Smuzhiyun 
REG_A6XX_CP_SCRATCH_REG(uint32_t i0)1070*4882a593Smuzhiyun static inline uint32_t REG_A6XX_CP_SCRATCH_REG(uint32_t i0) { return 0x00000883 + 0x1*i0; }
1071*4882a593Smuzhiyun 
REG_A6XX_CP_PROTECT(uint32_t i0)1072*4882a593Smuzhiyun static inline uint32_t REG_A6XX_CP_PROTECT(uint32_t i0) { return 0x00000850 + 0x1*i0; }
1073*4882a593Smuzhiyun 
REG_A6XX_CP_PROTECT_REG(uint32_t i0)1074*4882a593Smuzhiyun static inline uint32_t REG_A6XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000850 + 0x1*i0; }
1075*4882a593Smuzhiyun #define A6XX_CP_PROTECT_REG_BASE_ADDR__MASK			0x0003ffff
1076*4882a593Smuzhiyun #define A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT			0
A6XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)1077*4882a593Smuzhiyun static inline uint32_t A6XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)
1078*4882a593Smuzhiyun {
1079*4882a593Smuzhiyun 	return ((val) << A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT) & A6XX_CP_PROTECT_REG_BASE_ADDR__MASK;
1080*4882a593Smuzhiyun }
1081*4882a593Smuzhiyun #define A6XX_CP_PROTECT_REG_MASK_LEN__MASK			0x7ffc0000
1082*4882a593Smuzhiyun #define A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT			18
A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)1083*4882a593Smuzhiyun static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)
1084*4882a593Smuzhiyun {
1085*4882a593Smuzhiyun 	return ((val) << A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT) & A6XX_CP_PROTECT_REG_MASK_LEN__MASK;
1086*4882a593Smuzhiyun }
1087*4882a593Smuzhiyun #define A6XX_CP_PROTECT_REG_READ				0x80000000
1088*4882a593Smuzhiyun 
1089*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_CNTL				0x000008a0
1090*4882a593Smuzhiyun 
1091*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_LO			0x000008a1
1092*4882a593Smuzhiyun 
1093*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_SMMU_INFO_HI			0x000008a2
1094*4882a593Smuzhiyun 
1095*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_LO	0x000008a3
1096*4882a593Smuzhiyun 
1097*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR_HI	0x000008a4
1098*4882a593Smuzhiyun 
1099*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_LO	0x000008a5
1100*4882a593Smuzhiyun 
1101*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR_HI	0x000008a6
1102*4882a593Smuzhiyun 
1103*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_LO	0x000008a7
1104*4882a593Smuzhiyun 
1105*4882a593Smuzhiyun #define REG_A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR_HI	0x000008a8
1106*4882a593Smuzhiyun 
1107*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_0				0x000008d0
1108*4882a593Smuzhiyun 
1109*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_1				0x000008d1
1110*4882a593Smuzhiyun 
1111*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_2				0x000008d2
1112*4882a593Smuzhiyun 
1113*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_3				0x000008d3
1114*4882a593Smuzhiyun 
1115*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_4				0x000008d4
1116*4882a593Smuzhiyun 
1117*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_5				0x000008d5
1118*4882a593Smuzhiyun 
1119*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_6				0x000008d6
1120*4882a593Smuzhiyun 
1121*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_7				0x000008d7
1122*4882a593Smuzhiyun 
1123*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_8				0x000008d8
1124*4882a593Smuzhiyun 
1125*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_9				0x000008d9
1126*4882a593Smuzhiyun 
1127*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_10				0x000008da
1128*4882a593Smuzhiyun 
1129*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_11				0x000008db
1130*4882a593Smuzhiyun 
1131*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_12				0x000008dc
1132*4882a593Smuzhiyun 
1133*4882a593Smuzhiyun #define REG_A6XX_CP_PERFCTR_CP_SEL_13				0x000008dd
1134*4882a593Smuzhiyun 
1135*4882a593Smuzhiyun #define REG_A6XX_CP_CRASH_SCRIPT_BASE_LO			0x00000900
1136*4882a593Smuzhiyun 
1137*4882a593Smuzhiyun #define REG_A6XX_CP_CRASH_SCRIPT_BASE_HI			0x00000901
1138*4882a593Smuzhiyun 
1139*4882a593Smuzhiyun #define REG_A6XX_CP_CRASH_DUMP_CNTL				0x00000902
1140*4882a593Smuzhiyun 
1141*4882a593Smuzhiyun #define REG_A6XX_CP_CRASH_DUMP_STATUS				0x00000903
1142*4882a593Smuzhiyun 
1143*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_STAT_ADDR				0x00000908
1144*4882a593Smuzhiyun 
1145*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_STAT_DATA				0x00000909
1146*4882a593Smuzhiyun 
1147*4882a593Smuzhiyun #define REG_A6XX_CP_DRAW_STATE_ADDR				0x0000090a
1148*4882a593Smuzhiyun 
1149*4882a593Smuzhiyun #define REG_A6XX_CP_DRAW_STATE_DATA				0x0000090b
1150*4882a593Smuzhiyun 
1151*4882a593Smuzhiyun #define REG_A6XX_CP_ROQ_DBG_ADDR				0x0000090c
1152*4882a593Smuzhiyun 
1153*4882a593Smuzhiyun #define REG_A6XX_CP_ROQ_DBG_DATA				0x0000090d
1154*4882a593Smuzhiyun 
1155*4882a593Smuzhiyun #define REG_A6XX_CP_MEM_POOL_DBG_ADDR				0x0000090e
1156*4882a593Smuzhiyun 
1157*4882a593Smuzhiyun #define REG_A6XX_CP_MEM_POOL_DBG_DATA				0x0000090f
1158*4882a593Smuzhiyun 
1159*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_UCODE_DBG_ADDR				0x00000910
1160*4882a593Smuzhiyun 
1161*4882a593Smuzhiyun #define REG_A6XX_CP_SQE_UCODE_DBG_DATA				0x00000911
1162*4882a593Smuzhiyun 
1163*4882a593Smuzhiyun #define REG_A6XX_CP_IB1_BASE					0x00000928
1164*4882a593Smuzhiyun 
1165*4882a593Smuzhiyun #define REG_A6XX_CP_IB1_BASE_HI					0x00000929
1166*4882a593Smuzhiyun 
1167*4882a593Smuzhiyun #define REG_A6XX_CP_IB1_REM_SIZE				0x0000092a
1168*4882a593Smuzhiyun 
1169*4882a593Smuzhiyun #define REG_A6XX_CP_IB2_BASE					0x0000092b
1170*4882a593Smuzhiyun 
1171*4882a593Smuzhiyun #define REG_A6XX_CP_IB2_BASE_HI					0x0000092c
1172*4882a593Smuzhiyun 
1173*4882a593Smuzhiyun #define REG_A6XX_CP_IB2_REM_SIZE				0x0000092d
1174*4882a593Smuzhiyun 
1175*4882a593Smuzhiyun #define REG_A6XX_CP_SDS_BASE					0x0000092e
1176*4882a593Smuzhiyun 
1177*4882a593Smuzhiyun #define REG_A6XX_CP_SDS_BASE_HI					0x0000092f
1178*4882a593Smuzhiyun 
1179*4882a593Smuzhiyun #define REG_A6XX_CP_SDS_REM_SIZE				0x0000092e
1180*4882a593Smuzhiyun 
1181*4882a593Smuzhiyun #define REG_A6XX_CP_BIN_SIZE_ADDRESS				0x00000931
1182*4882a593Smuzhiyun 
1183*4882a593Smuzhiyun #define REG_A6XX_CP_BIN_SIZE_ADDRESS_HI				0x00000932
1184*4882a593Smuzhiyun 
1185*4882a593Smuzhiyun #define REG_A6XX_CP_BIN_DATA_ADDR				0x00000934
1186*4882a593Smuzhiyun 
1187*4882a593Smuzhiyun #define REG_A6XX_CP_BIN_DATA_ADDR_HI				0x00000935
1188*4882a593Smuzhiyun 
1189*4882a593Smuzhiyun #define REG_A6XX_CP_CSQ_IB1_STAT				0x00000949
1190*4882a593Smuzhiyun #define A6XX_CP_CSQ_IB1_STAT_REM__MASK				0xffff0000
1191*4882a593Smuzhiyun #define A6XX_CP_CSQ_IB1_STAT_REM__SHIFT				16
A6XX_CP_CSQ_IB1_STAT_REM(uint32_t val)1192*4882a593Smuzhiyun static inline uint32_t A6XX_CP_CSQ_IB1_STAT_REM(uint32_t val)
1193*4882a593Smuzhiyun {
1194*4882a593Smuzhiyun 	return ((val) << A6XX_CP_CSQ_IB1_STAT_REM__SHIFT) & A6XX_CP_CSQ_IB1_STAT_REM__MASK;
1195*4882a593Smuzhiyun }
1196*4882a593Smuzhiyun 
1197*4882a593Smuzhiyun #define REG_A6XX_CP_CSQ_IB2_STAT				0x0000094a
1198*4882a593Smuzhiyun #define A6XX_CP_CSQ_IB2_STAT_REM__MASK				0xffff0000
1199*4882a593Smuzhiyun #define A6XX_CP_CSQ_IB2_STAT_REM__SHIFT				16
A6XX_CP_CSQ_IB2_STAT_REM(uint32_t val)1200*4882a593Smuzhiyun static inline uint32_t A6XX_CP_CSQ_IB2_STAT_REM(uint32_t val)
1201*4882a593Smuzhiyun {
1202*4882a593Smuzhiyun 	return ((val) << A6XX_CP_CSQ_IB2_STAT_REM__SHIFT) & A6XX_CP_CSQ_IB2_STAT_REM__MASK;
1203*4882a593Smuzhiyun }
1204*4882a593Smuzhiyun 
1205*4882a593Smuzhiyun #define REG_A6XX_CP_ALWAYS_ON_COUNTER_LO			0x00000980
1206*4882a593Smuzhiyun 
1207*4882a593Smuzhiyun #define REG_A6XX_CP_ALWAYS_ON_COUNTER_HI			0x00000981
1208*4882a593Smuzhiyun 
1209*4882a593Smuzhiyun #define REG_A6XX_CP_AHB_CNTL					0x0000098d
1210*4882a593Smuzhiyun 
1211*4882a593Smuzhiyun #define REG_A6XX_CP_APERTURE_CNTL_HOST				0x00000a00
1212*4882a593Smuzhiyun 
1213*4882a593Smuzhiyun #define REG_A6XX_CP_APERTURE_CNTL_CD				0x00000a03
1214*4882a593Smuzhiyun 
1215*4882a593Smuzhiyun #define REG_A6XX_VSC_ADDR_MODE_CNTL				0x00000c01
1216*4882a593Smuzhiyun 
1217*4882a593Smuzhiyun #define REG_A6XX_RBBM_INT_0_STATUS				0x00000201
1218*4882a593Smuzhiyun 
1219*4882a593Smuzhiyun #define REG_A6XX_RBBM_STATUS					0x00000210
1220*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB			0x00800000
1221*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB_CP			0x00400000
1222*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_HLSQ_BUSY				0x00200000
1223*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_VSC_BUSY				0x00100000
1224*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_TPL1_BUSY				0x00080000
1225*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_SP_BUSY				0x00040000
1226*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_UCHE_BUSY				0x00020000
1227*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_VPC_BUSY				0x00010000
1228*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_VFD_BUSY				0x00008000
1229*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_TESS_BUSY				0x00004000
1230*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_PC_VSD_BUSY				0x00002000
1231*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_PC_DCALL_BUSY				0x00001000
1232*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_COM_DCOM_BUSY				0x00000800
1233*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_LRZ_BUSY				0x00000400
1234*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_A2D_BUSY				0x00000200
1235*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_CCU_BUSY				0x00000100
1236*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_RB_BUSY				0x00000080
1237*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_RAS_BUSY				0x00000040
1238*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_TSE_BUSY				0x00000020
1239*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_VBIF_BUSY				0x00000010
1240*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_GFX_DBGC_BUSY				0x00000008
1241*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_CP_BUSY				0x00000004
1242*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_CP_AHB_BUSY_CP_MASTER			0x00000002
1243*4882a593Smuzhiyun #define A6XX_RBBM_STATUS_CP_AHB_BUSY_CX_MASTER			0x00000001
1244*4882a593Smuzhiyun 
1245*4882a593Smuzhiyun #define REG_A6XX_RBBM_STATUS3					0x00000213
1246*4882a593Smuzhiyun #define A6XX_RBBM_STATUS3_SMMU_STALLED_ON_FAULT			0x01000000
1247*4882a593Smuzhiyun 
1248*4882a593Smuzhiyun #define REG_A6XX_RBBM_VBIF_GX_RESET_STATUS			0x00000215
1249*4882a593Smuzhiyun 
1250*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_0_LO				0x00000400
1251*4882a593Smuzhiyun 
1252*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_0_HI				0x00000401
1253*4882a593Smuzhiyun 
1254*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_1_LO				0x00000402
1255*4882a593Smuzhiyun 
1256*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_1_HI				0x00000403
1257*4882a593Smuzhiyun 
1258*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_2_LO				0x00000404
1259*4882a593Smuzhiyun 
1260*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_2_HI				0x00000405
1261*4882a593Smuzhiyun 
1262*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_3_LO				0x00000406
1263*4882a593Smuzhiyun 
1264*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_3_HI				0x00000407
1265*4882a593Smuzhiyun 
1266*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_4_LO				0x00000408
1267*4882a593Smuzhiyun 
1268*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_4_HI				0x00000409
1269*4882a593Smuzhiyun 
1270*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_5_LO				0x0000040a
1271*4882a593Smuzhiyun 
1272*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_5_HI				0x0000040b
1273*4882a593Smuzhiyun 
1274*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_6_LO				0x0000040c
1275*4882a593Smuzhiyun 
1276*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_6_HI				0x0000040d
1277*4882a593Smuzhiyun 
1278*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_7_LO				0x0000040e
1279*4882a593Smuzhiyun 
1280*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_7_HI				0x0000040f
1281*4882a593Smuzhiyun 
1282*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_8_LO				0x00000410
1283*4882a593Smuzhiyun 
1284*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_8_HI				0x00000411
1285*4882a593Smuzhiyun 
1286*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_9_LO				0x00000412
1287*4882a593Smuzhiyun 
1288*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_9_HI				0x00000413
1289*4882a593Smuzhiyun 
1290*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_10_LO				0x00000414
1291*4882a593Smuzhiyun 
1292*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_10_HI				0x00000415
1293*4882a593Smuzhiyun 
1294*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_11_LO				0x00000416
1295*4882a593Smuzhiyun 
1296*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_11_HI				0x00000417
1297*4882a593Smuzhiyun 
1298*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_12_LO				0x00000418
1299*4882a593Smuzhiyun 
1300*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_12_HI				0x00000419
1301*4882a593Smuzhiyun 
1302*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_13_LO				0x0000041a
1303*4882a593Smuzhiyun 
1304*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CP_13_HI				0x0000041b
1305*4882a593Smuzhiyun 
1306*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_0_LO				0x0000041c
1307*4882a593Smuzhiyun 
1308*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_0_HI				0x0000041d
1309*4882a593Smuzhiyun 
1310*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_1_LO				0x0000041e
1311*4882a593Smuzhiyun 
1312*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_1_HI				0x0000041f
1313*4882a593Smuzhiyun 
1314*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_2_LO				0x00000420
1315*4882a593Smuzhiyun 
1316*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_2_HI				0x00000421
1317*4882a593Smuzhiyun 
1318*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_3_LO				0x00000422
1319*4882a593Smuzhiyun 
1320*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_3_HI				0x00000423
1321*4882a593Smuzhiyun 
1322*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_0_LO				0x00000424
1323*4882a593Smuzhiyun 
1324*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_0_HI				0x00000425
1325*4882a593Smuzhiyun 
1326*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_1_LO				0x00000426
1327*4882a593Smuzhiyun 
1328*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_1_HI				0x00000427
1329*4882a593Smuzhiyun 
1330*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_2_LO				0x00000428
1331*4882a593Smuzhiyun 
1332*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_2_HI				0x00000429
1333*4882a593Smuzhiyun 
1334*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_3_LO				0x0000042a
1335*4882a593Smuzhiyun 
1336*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_3_HI				0x0000042b
1337*4882a593Smuzhiyun 
1338*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_4_LO				0x0000042c
1339*4882a593Smuzhiyun 
1340*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_4_HI				0x0000042d
1341*4882a593Smuzhiyun 
1342*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_5_LO				0x0000042e
1343*4882a593Smuzhiyun 
1344*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_5_HI				0x0000042f
1345*4882a593Smuzhiyun 
1346*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_6_LO				0x00000430
1347*4882a593Smuzhiyun 
1348*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_6_HI				0x00000431
1349*4882a593Smuzhiyun 
1350*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_7_LO				0x00000432
1351*4882a593Smuzhiyun 
1352*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_PC_7_HI				0x00000433
1353*4882a593Smuzhiyun 
1354*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_0_LO				0x00000434
1355*4882a593Smuzhiyun 
1356*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_0_HI				0x00000435
1357*4882a593Smuzhiyun 
1358*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_1_LO				0x00000436
1359*4882a593Smuzhiyun 
1360*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_1_HI				0x00000437
1361*4882a593Smuzhiyun 
1362*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_2_LO				0x00000438
1363*4882a593Smuzhiyun 
1364*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_2_HI				0x00000439
1365*4882a593Smuzhiyun 
1366*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_3_LO				0x0000043a
1367*4882a593Smuzhiyun 
1368*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_3_HI				0x0000043b
1369*4882a593Smuzhiyun 
1370*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_4_LO				0x0000043c
1371*4882a593Smuzhiyun 
1372*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_4_HI				0x0000043d
1373*4882a593Smuzhiyun 
1374*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_5_LO				0x0000043e
1375*4882a593Smuzhiyun 
1376*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_5_HI				0x0000043f
1377*4882a593Smuzhiyun 
1378*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_6_LO				0x00000440
1379*4882a593Smuzhiyun 
1380*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_6_HI				0x00000441
1381*4882a593Smuzhiyun 
1382*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_7_LO				0x00000442
1383*4882a593Smuzhiyun 
1384*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VFD_7_HI				0x00000443
1385*4882a593Smuzhiyun 
1386*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_0_LO				0x00000444
1387*4882a593Smuzhiyun 
1388*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_0_HI				0x00000445
1389*4882a593Smuzhiyun 
1390*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_1_LO				0x00000446
1391*4882a593Smuzhiyun 
1392*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_1_HI				0x00000447
1393*4882a593Smuzhiyun 
1394*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_2_LO				0x00000448
1395*4882a593Smuzhiyun 
1396*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_2_HI				0x00000449
1397*4882a593Smuzhiyun 
1398*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_3_LO				0x0000044a
1399*4882a593Smuzhiyun 
1400*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_3_HI				0x0000044b
1401*4882a593Smuzhiyun 
1402*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_4_LO				0x0000044c
1403*4882a593Smuzhiyun 
1404*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_4_HI				0x0000044d
1405*4882a593Smuzhiyun 
1406*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_5_LO				0x0000044e
1407*4882a593Smuzhiyun 
1408*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_HLSQ_5_HI				0x0000044f
1409*4882a593Smuzhiyun 
1410*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_0_LO				0x00000450
1411*4882a593Smuzhiyun 
1412*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_0_HI				0x00000451
1413*4882a593Smuzhiyun 
1414*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_1_LO				0x00000452
1415*4882a593Smuzhiyun 
1416*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_1_HI				0x00000453
1417*4882a593Smuzhiyun 
1418*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_2_LO				0x00000454
1419*4882a593Smuzhiyun 
1420*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_2_HI				0x00000455
1421*4882a593Smuzhiyun 
1422*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_3_LO				0x00000456
1423*4882a593Smuzhiyun 
1424*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_3_HI				0x00000457
1425*4882a593Smuzhiyun 
1426*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_4_LO				0x00000458
1427*4882a593Smuzhiyun 
1428*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_4_HI				0x00000459
1429*4882a593Smuzhiyun 
1430*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_5_LO				0x0000045a
1431*4882a593Smuzhiyun 
1432*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VPC_5_HI				0x0000045b
1433*4882a593Smuzhiyun 
1434*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_0_LO				0x0000045c
1435*4882a593Smuzhiyun 
1436*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_0_HI				0x0000045d
1437*4882a593Smuzhiyun 
1438*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_1_LO				0x0000045e
1439*4882a593Smuzhiyun 
1440*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_1_HI				0x0000045f
1441*4882a593Smuzhiyun 
1442*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_2_LO				0x00000460
1443*4882a593Smuzhiyun 
1444*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_2_HI				0x00000461
1445*4882a593Smuzhiyun 
1446*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_3_LO				0x00000462
1447*4882a593Smuzhiyun 
1448*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_3_HI				0x00000463
1449*4882a593Smuzhiyun 
1450*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_4_LO				0x00000464
1451*4882a593Smuzhiyun 
1452*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CCU_4_HI				0x00000465
1453*4882a593Smuzhiyun 
1454*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_0_LO				0x00000466
1455*4882a593Smuzhiyun 
1456*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_0_HI				0x00000467
1457*4882a593Smuzhiyun 
1458*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_1_LO				0x00000468
1459*4882a593Smuzhiyun 
1460*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_1_HI				0x00000469
1461*4882a593Smuzhiyun 
1462*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_2_LO				0x0000046a
1463*4882a593Smuzhiyun 
1464*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_2_HI				0x0000046b
1465*4882a593Smuzhiyun 
1466*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_3_LO				0x0000046c
1467*4882a593Smuzhiyun 
1468*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TSE_3_HI				0x0000046d
1469*4882a593Smuzhiyun 
1470*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_0_LO				0x0000046e
1471*4882a593Smuzhiyun 
1472*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_0_HI				0x0000046f
1473*4882a593Smuzhiyun 
1474*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_1_LO				0x00000470
1475*4882a593Smuzhiyun 
1476*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_1_HI				0x00000471
1477*4882a593Smuzhiyun 
1478*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_2_LO				0x00000472
1479*4882a593Smuzhiyun 
1480*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_2_HI				0x00000473
1481*4882a593Smuzhiyun 
1482*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_3_LO				0x00000474
1483*4882a593Smuzhiyun 
1484*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RAS_3_HI				0x00000475
1485*4882a593Smuzhiyun 
1486*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_0_LO				0x00000476
1487*4882a593Smuzhiyun 
1488*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_0_HI				0x00000477
1489*4882a593Smuzhiyun 
1490*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_1_LO				0x00000478
1491*4882a593Smuzhiyun 
1492*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_1_HI				0x00000479
1493*4882a593Smuzhiyun 
1494*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_2_LO				0x0000047a
1495*4882a593Smuzhiyun 
1496*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_2_HI				0x0000047b
1497*4882a593Smuzhiyun 
1498*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_3_LO				0x0000047c
1499*4882a593Smuzhiyun 
1500*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_3_HI				0x0000047d
1501*4882a593Smuzhiyun 
1502*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_4_LO				0x0000047e
1503*4882a593Smuzhiyun 
1504*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_4_HI				0x0000047f
1505*4882a593Smuzhiyun 
1506*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_5_LO				0x00000480
1507*4882a593Smuzhiyun 
1508*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_5_HI				0x00000481
1509*4882a593Smuzhiyun 
1510*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_6_LO				0x00000482
1511*4882a593Smuzhiyun 
1512*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_6_HI				0x00000483
1513*4882a593Smuzhiyun 
1514*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_7_LO				0x00000484
1515*4882a593Smuzhiyun 
1516*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_7_HI				0x00000485
1517*4882a593Smuzhiyun 
1518*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_8_LO				0x00000486
1519*4882a593Smuzhiyun 
1520*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_8_HI				0x00000487
1521*4882a593Smuzhiyun 
1522*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_9_LO				0x00000488
1523*4882a593Smuzhiyun 
1524*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_9_HI				0x00000489
1525*4882a593Smuzhiyun 
1526*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_10_LO			0x0000048a
1527*4882a593Smuzhiyun 
1528*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_10_HI			0x0000048b
1529*4882a593Smuzhiyun 
1530*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_11_LO			0x0000048c
1531*4882a593Smuzhiyun 
1532*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_UCHE_11_HI			0x0000048d
1533*4882a593Smuzhiyun 
1534*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_0_LO				0x0000048e
1535*4882a593Smuzhiyun 
1536*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_0_HI				0x0000048f
1537*4882a593Smuzhiyun 
1538*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_1_LO				0x00000490
1539*4882a593Smuzhiyun 
1540*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_1_HI				0x00000491
1541*4882a593Smuzhiyun 
1542*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_2_LO				0x00000492
1543*4882a593Smuzhiyun 
1544*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_2_HI				0x00000493
1545*4882a593Smuzhiyun 
1546*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_3_LO				0x00000494
1547*4882a593Smuzhiyun 
1548*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_3_HI				0x00000495
1549*4882a593Smuzhiyun 
1550*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_4_LO				0x00000496
1551*4882a593Smuzhiyun 
1552*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_4_HI				0x00000497
1553*4882a593Smuzhiyun 
1554*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_5_LO				0x00000498
1555*4882a593Smuzhiyun 
1556*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_5_HI				0x00000499
1557*4882a593Smuzhiyun 
1558*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_6_LO				0x0000049a
1559*4882a593Smuzhiyun 
1560*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_6_HI				0x0000049b
1561*4882a593Smuzhiyun 
1562*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_7_LO				0x0000049c
1563*4882a593Smuzhiyun 
1564*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_7_HI				0x0000049d
1565*4882a593Smuzhiyun 
1566*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_8_LO				0x0000049e
1567*4882a593Smuzhiyun 
1568*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_8_HI				0x0000049f
1569*4882a593Smuzhiyun 
1570*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_9_LO				0x000004a0
1571*4882a593Smuzhiyun 
1572*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_9_HI				0x000004a1
1573*4882a593Smuzhiyun 
1574*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_10_LO				0x000004a2
1575*4882a593Smuzhiyun 
1576*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_10_HI				0x000004a3
1577*4882a593Smuzhiyun 
1578*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_11_LO				0x000004a4
1579*4882a593Smuzhiyun 
1580*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_TP_11_HI				0x000004a5
1581*4882a593Smuzhiyun 
1582*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_0_LO				0x000004a6
1583*4882a593Smuzhiyun 
1584*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_0_HI				0x000004a7
1585*4882a593Smuzhiyun 
1586*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_1_LO				0x000004a8
1587*4882a593Smuzhiyun 
1588*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_1_HI				0x000004a9
1589*4882a593Smuzhiyun 
1590*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_2_LO				0x000004aa
1591*4882a593Smuzhiyun 
1592*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_2_HI				0x000004ab
1593*4882a593Smuzhiyun 
1594*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_3_LO				0x000004ac
1595*4882a593Smuzhiyun 
1596*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_3_HI				0x000004ad
1597*4882a593Smuzhiyun 
1598*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_4_LO				0x000004ae
1599*4882a593Smuzhiyun 
1600*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_4_HI				0x000004af
1601*4882a593Smuzhiyun 
1602*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_5_LO				0x000004b0
1603*4882a593Smuzhiyun 
1604*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_5_HI				0x000004b1
1605*4882a593Smuzhiyun 
1606*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_6_LO				0x000004b2
1607*4882a593Smuzhiyun 
1608*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_6_HI				0x000004b3
1609*4882a593Smuzhiyun 
1610*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_7_LO				0x000004b4
1611*4882a593Smuzhiyun 
1612*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_7_HI				0x000004b5
1613*4882a593Smuzhiyun 
1614*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_8_LO				0x000004b6
1615*4882a593Smuzhiyun 
1616*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_8_HI				0x000004b7
1617*4882a593Smuzhiyun 
1618*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_9_LO				0x000004b8
1619*4882a593Smuzhiyun 
1620*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_9_HI				0x000004b9
1621*4882a593Smuzhiyun 
1622*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_10_LO				0x000004ba
1623*4882a593Smuzhiyun 
1624*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_10_HI				0x000004bb
1625*4882a593Smuzhiyun 
1626*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_11_LO				0x000004bc
1627*4882a593Smuzhiyun 
1628*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_11_HI				0x000004bd
1629*4882a593Smuzhiyun 
1630*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_12_LO				0x000004be
1631*4882a593Smuzhiyun 
1632*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_12_HI				0x000004bf
1633*4882a593Smuzhiyun 
1634*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_13_LO				0x000004c0
1635*4882a593Smuzhiyun 
1636*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_13_HI				0x000004c1
1637*4882a593Smuzhiyun 
1638*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_14_LO				0x000004c2
1639*4882a593Smuzhiyun 
1640*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_14_HI				0x000004c3
1641*4882a593Smuzhiyun 
1642*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_15_LO				0x000004c4
1643*4882a593Smuzhiyun 
1644*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_15_HI				0x000004c5
1645*4882a593Smuzhiyun 
1646*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_16_LO				0x000004c6
1647*4882a593Smuzhiyun 
1648*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_16_HI				0x000004c7
1649*4882a593Smuzhiyun 
1650*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_17_LO				0x000004c8
1651*4882a593Smuzhiyun 
1652*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_17_HI				0x000004c9
1653*4882a593Smuzhiyun 
1654*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_18_LO				0x000004ca
1655*4882a593Smuzhiyun 
1656*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_18_HI				0x000004cb
1657*4882a593Smuzhiyun 
1658*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_19_LO				0x000004cc
1659*4882a593Smuzhiyun 
1660*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_19_HI				0x000004cd
1661*4882a593Smuzhiyun 
1662*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_20_LO				0x000004ce
1663*4882a593Smuzhiyun 
1664*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_20_HI				0x000004cf
1665*4882a593Smuzhiyun 
1666*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_21_LO				0x000004d0
1667*4882a593Smuzhiyun 
1668*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_21_HI				0x000004d1
1669*4882a593Smuzhiyun 
1670*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_22_LO				0x000004d2
1671*4882a593Smuzhiyun 
1672*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_22_HI				0x000004d3
1673*4882a593Smuzhiyun 
1674*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_23_LO				0x000004d4
1675*4882a593Smuzhiyun 
1676*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_SP_23_HI				0x000004d5
1677*4882a593Smuzhiyun 
1678*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_0_LO				0x000004d6
1679*4882a593Smuzhiyun 
1680*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_0_HI				0x000004d7
1681*4882a593Smuzhiyun 
1682*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_1_LO				0x000004d8
1683*4882a593Smuzhiyun 
1684*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_1_HI				0x000004d9
1685*4882a593Smuzhiyun 
1686*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_2_LO				0x000004da
1687*4882a593Smuzhiyun 
1688*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_2_HI				0x000004db
1689*4882a593Smuzhiyun 
1690*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_3_LO				0x000004dc
1691*4882a593Smuzhiyun 
1692*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_3_HI				0x000004dd
1693*4882a593Smuzhiyun 
1694*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_4_LO				0x000004de
1695*4882a593Smuzhiyun 
1696*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_4_HI				0x000004df
1697*4882a593Smuzhiyun 
1698*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_5_LO				0x000004e0
1699*4882a593Smuzhiyun 
1700*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_5_HI				0x000004e1
1701*4882a593Smuzhiyun 
1702*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_6_LO				0x000004e2
1703*4882a593Smuzhiyun 
1704*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_6_HI				0x000004e3
1705*4882a593Smuzhiyun 
1706*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_7_LO				0x000004e4
1707*4882a593Smuzhiyun 
1708*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RB_7_HI				0x000004e5
1709*4882a593Smuzhiyun 
1710*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VSC_0_LO				0x000004e6
1711*4882a593Smuzhiyun 
1712*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VSC_0_HI				0x000004e7
1713*4882a593Smuzhiyun 
1714*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VSC_1_LO				0x000004e8
1715*4882a593Smuzhiyun 
1716*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_VSC_1_HI				0x000004e9
1717*4882a593Smuzhiyun 
1718*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_0_LO				0x000004ea
1719*4882a593Smuzhiyun 
1720*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_0_HI				0x000004eb
1721*4882a593Smuzhiyun 
1722*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_1_LO				0x000004ec
1723*4882a593Smuzhiyun 
1724*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_1_HI				0x000004ed
1725*4882a593Smuzhiyun 
1726*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_2_LO				0x000004ee
1727*4882a593Smuzhiyun 
1728*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_2_HI				0x000004ef
1729*4882a593Smuzhiyun 
1730*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_3_LO				0x000004f0
1731*4882a593Smuzhiyun 
1732*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LRZ_3_HI				0x000004f1
1733*4882a593Smuzhiyun 
1734*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_0_LO				0x000004f2
1735*4882a593Smuzhiyun 
1736*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_0_HI				0x000004f3
1737*4882a593Smuzhiyun 
1738*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_1_LO				0x000004f4
1739*4882a593Smuzhiyun 
1740*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_1_HI				0x000004f5
1741*4882a593Smuzhiyun 
1742*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_2_LO				0x000004f6
1743*4882a593Smuzhiyun 
1744*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_2_HI				0x000004f7
1745*4882a593Smuzhiyun 
1746*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_3_LO				0x000004f8
1747*4882a593Smuzhiyun 
1748*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CMP_3_HI				0x000004f9
1749*4882a593Smuzhiyun 
1750*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_CNTL				0x00000500
1751*4882a593Smuzhiyun 
1752*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD0				0x00000501
1753*4882a593Smuzhiyun 
1754*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD1				0x00000502
1755*4882a593Smuzhiyun 
1756*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD2				0x00000503
1757*4882a593Smuzhiyun 
1758*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD3				0x00000504
1759*4882a593Smuzhiyun 
1760*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_LO			0x00000505
1761*4882a593Smuzhiyun 
1762*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_HI			0x00000506
1763*4882a593Smuzhiyun 
1764*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_0			0x00000507
1765*4882a593Smuzhiyun 
1766*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_1			0x00000508
1767*4882a593Smuzhiyun 
1768*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_2			0x00000509
1769*4882a593Smuzhiyun 
1770*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_RBBM_SEL_3			0x0000050a
1771*4882a593Smuzhiyun 
1772*4882a593Smuzhiyun #define REG_A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED			0x0000050b
1773*4882a593Smuzhiyun 
1774*4882a593Smuzhiyun #define REG_A6XX_RBBM_ISDB_CNT					0x00000533
1775*4882a593Smuzhiyun 
1776*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_0_LO				0x00000540
1777*4882a593Smuzhiyun 
1778*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_0_HI				0x00000541
1779*4882a593Smuzhiyun 
1780*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_1_LO				0x00000542
1781*4882a593Smuzhiyun 
1782*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_1_HI				0x00000543
1783*4882a593Smuzhiyun 
1784*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_2_LO				0x00000544
1785*4882a593Smuzhiyun 
1786*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_2_HI				0x00000545
1787*4882a593Smuzhiyun 
1788*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_3_LO				0x00000546
1789*4882a593Smuzhiyun 
1790*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_3_HI				0x00000547
1791*4882a593Smuzhiyun 
1792*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_4_LO				0x00000548
1793*4882a593Smuzhiyun 
1794*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_4_HI				0x00000549
1795*4882a593Smuzhiyun 
1796*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_5_LO				0x0000054a
1797*4882a593Smuzhiyun 
1798*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_5_HI				0x0000054b
1799*4882a593Smuzhiyun 
1800*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_6_LO				0x0000054c
1801*4882a593Smuzhiyun 
1802*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_6_HI				0x0000054d
1803*4882a593Smuzhiyun 
1804*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_7_LO				0x0000054e
1805*4882a593Smuzhiyun 
1806*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_7_HI				0x0000054f
1807*4882a593Smuzhiyun 
1808*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_8_LO				0x00000550
1809*4882a593Smuzhiyun 
1810*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_8_HI				0x00000551
1811*4882a593Smuzhiyun 
1812*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_9_LO				0x00000552
1813*4882a593Smuzhiyun 
1814*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_9_HI				0x00000553
1815*4882a593Smuzhiyun 
1816*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_10_LO				0x00000554
1817*4882a593Smuzhiyun 
1818*4882a593Smuzhiyun #define REG_A6XX_RBBM_PRIMCTR_10_HI				0x00000555
1819*4882a593Smuzhiyun 
1820*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TRUST_CNTL				0x0000f400
1821*4882a593Smuzhiyun 
1822*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_LO		0x0000f800
1823*4882a593Smuzhiyun 
1824*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE_HI		0x0000f801
1825*4882a593Smuzhiyun 
1826*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_SIZE			0x0000f802
1827*4882a593Smuzhiyun 
1828*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TSB_CNTL				0x0000f803
1829*4882a593Smuzhiyun 
1830*4882a593Smuzhiyun #define REG_A6XX_RBBM_SECVID_TSB_ADDR_MODE_CNTL			0x0000f810
1831*4882a593Smuzhiyun 
1832*4882a593Smuzhiyun #define REG_A6XX_RBBM_VBIF_CLIENT_QOS_CNTL			0x00000010
1833*4882a593Smuzhiyun 
1834*4882a593Smuzhiyun #define REG_A6XX_RBBM_GBIF_CLIENT_QOS_CNTL			0x00000011
1835*4882a593Smuzhiyun 
1836*4882a593Smuzhiyun #define REG_A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD			0x0000001c
1837*4882a593Smuzhiyun #define A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD_WAIT_GPU_IDLE		0x00000001
1838*4882a593Smuzhiyun 
1839*4882a593Smuzhiyun #define REG_A6XX_RBBM_INTERFACE_HANG_INT_CNTL			0x0000001f
1840*4882a593Smuzhiyun 
1841*4882a593Smuzhiyun #define REG_A6XX_RBBM_INT_CLEAR_CMD				0x00000037
1842*4882a593Smuzhiyun 
1843*4882a593Smuzhiyun #define REG_A6XX_RBBM_INT_0_MASK				0x00000038
1844*4882a593Smuzhiyun 
1845*4882a593Smuzhiyun #define REG_A6XX_RBBM_SP_HYST_CNT				0x00000042
1846*4882a593Smuzhiyun 
1847*4882a593Smuzhiyun #define REG_A6XX_RBBM_SW_RESET_CMD				0x00000043
1848*4882a593Smuzhiyun 
1849*4882a593Smuzhiyun #define REG_A6XX_RBBM_RAC_THRESHOLD_CNT				0x00000044
1850*4882a593Smuzhiyun 
1851*4882a593Smuzhiyun #define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD			0x00000045
1852*4882a593Smuzhiyun 
1853*4882a593Smuzhiyun #define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD2			0x00000046
1854*4882a593Smuzhiyun 
1855*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL				0x000000ae
1856*4882a593Smuzhiyun 
1857*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_SP0				0x000000b0
1858*4882a593Smuzhiyun 
1859*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_SP1				0x000000b1
1860*4882a593Smuzhiyun 
1861*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_SP2				0x000000b2
1862*4882a593Smuzhiyun 
1863*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_SP3				0x000000b3
1864*4882a593Smuzhiyun 
1865*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_SP0				0x000000b4
1866*4882a593Smuzhiyun 
1867*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_SP1				0x000000b5
1868*4882a593Smuzhiyun 
1869*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_SP2				0x000000b6
1870*4882a593Smuzhiyun 
1871*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_SP3				0x000000b7
1872*4882a593Smuzhiyun 
1873*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_SP0				0x000000b8
1874*4882a593Smuzhiyun 
1875*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_SP1				0x000000b9
1876*4882a593Smuzhiyun 
1877*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_SP2				0x000000ba
1878*4882a593Smuzhiyun 
1879*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_SP3				0x000000bb
1880*4882a593Smuzhiyun 
1881*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_SP0				0x000000bc
1882*4882a593Smuzhiyun 
1883*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_SP1				0x000000bd
1884*4882a593Smuzhiyun 
1885*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_SP2				0x000000be
1886*4882a593Smuzhiyun 
1887*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_SP3				0x000000bf
1888*4882a593Smuzhiyun 
1889*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TP0				0x000000c0
1890*4882a593Smuzhiyun 
1891*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TP1				0x000000c1
1892*4882a593Smuzhiyun 
1893*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TP2				0x000000c2
1894*4882a593Smuzhiyun 
1895*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TP3				0x000000c3
1896*4882a593Smuzhiyun 
1897*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_TP0				0x000000c4
1898*4882a593Smuzhiyun 
1899*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_TP1				0x000000c5
1900*4882a593Smuzhiyun 
1901*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_TP2				0x000000c6
1902*4882a593Smuzhiyun 
1903*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_TP3				0x000000c7
1904*4882a593Smuzhiyun 
1905*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL3_TP0				0x000000c8
1906*4882a593Smuzhiyun 
1907*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL3_TP1				0x000000c9
1908*4882a593Smuzhiyun 
1909*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL3_TP2				0x000000ca
1910*4882a593Smuzhiyun 
1911*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL3_TP3				0x000000cb
1912*4882a593Smuzhiyun 
1913*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL4_TP0				0x000000cc
1914*4882a593Smuzhiyun 
1915*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL4_TP1				0x000000cd
1916*4882a593Smuzhiyun 
1917*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL4_TP2				0x000000ce
1918*4882a593Smuzhiyun 
1919*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL4_TP3				0x000000cf
1920*4882a593Smuzhiyun 
1921*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TP0				0x000000d0
1922*4882a593Smuzhiyun 
1923*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TP1				0x000000d1
1924*4882a593Smuzhiyun 
1925*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TP2				0x000000d2
1926*4882a593Smuzhiyun 
1927*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TP3				0x000000d3
1928*4882a593Smuzhiyun 
1929*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY2_TP0				0x000000d4
1930*4882a593Smuzhiyun 
1931*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY2_TP1				0x000000d5
1932*4882a593Smuzhiyun 
1933*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY2_TP2				0x000000d6
1934*4882a593Smuzhiyun 
1935*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY2_TP3				0x000000d7
1936*4882a593Smuzhiyun 
1937*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY3_TP0				0x000000d8
1938*4882a593Smuzhiyun 
1939*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY3_TP1				0x000000d9
1940*4882a593Smuzhiyun 
1941*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY3_TP2				0x000000da
1942*4882a593Smuzhiyun 
1943*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY3_TP3				0x000000db
1944*4882a593Smuzhiyun 
1945*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY4_TP0				0x000000dc
1946*4882a593Smuzhiyun 
1947*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY4_TP1				0x000000dd
1948*4882a593Smuzhiyun 
1949*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY4_TP2				0x000000de
1950*4882a593Smuzhiyun 
1951*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY4_TP3				0x000000df
1952*4882a593Smuzhiyun 
1953*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TP0				0x000000e0
1954*4882a593Smuzhiyun 
1955*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TP1				0x000000e1
1956*4882a593Smuzhiyun 
1957*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TP2				0x000000e2
1958*4882a593Smuzhiyun 
1959*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TP3				0x000000e3
1960*4882a593Smuzhiyun 
1961*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST2_TP0				0x000000e4
1962*4882a593Smuzhiyun 
1963*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST2_TP1				0x000000e5
1964*4882a593Smuzhiyun 
1965*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST2_TP2				0x000000e6
1966*4882a593Smuzhiyun 
1967*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST2_TP3				0x000000e7
1968*4882a593Smuzhiyun 
1969*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST3_TP0				0x000000e8
1970*4882a593Smuzhiyun 
1971*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST3_TP1				0x000000e9
1972*4882a593Smuzhiyun 
1973*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST3_TP2				0x000000ea
1974*4882a593Smuzhiyun 
1975*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST3_TP3				0x000000eb
1976*4882a593Smuzhiyun 
1977*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST4_TP0				0x000000ec
1978*4882a593Smuzhiyun 
1979*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST4_TP1				0x000000ed
1980*4882a593Smuzhiyun 
1981*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST4_TP2				0x000000ee
1982*4882a593Smuzhiyun 
1983*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST4_TP3				0x000000ef
1984*4882a593Smuzhiyun 
1985*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_RB0				0x000000f0
1986*4882a593Smuzhiyun 
1987*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_RB1				0x000000f1
1988*4882a593Smuzhiyun 
1989*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_RB2				0x000000f2
1990*4882a593Smuzhiyun 
1991*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_RB3				0x000000f3
1992*4882a593Smuzhiyun 
1993*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_RB0				0x000000f4
1994*4882a593Smuzhiyun 
1995*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_RB1				0x000000f5
1996*4882a593Smuzhiyun 
1997*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_RB2				0x000000f6
1998*4882a593Smuzhiyun 
1999*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_RB3				0x000000f7
2000*4882a593Smuzhiyun 
2001*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_CCU0				0x000000f8
2002*4882a593Smuzhiyun 
2003*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_CCU1				0x000000f9
2004*4882a593Smuzhiyun 
2005*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_CCU2				0x000000fa
2006*4882a593Smuzhiyun 
2007*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_CCU3				0x000000fb
2008*4882a593Smuzhiyun 
2009*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU0			0x00000100
2010*4882a593Smuzhiyun 
2011*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU1			0x00000101
2012*4882a593Smuzhiyun 
2013*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU2			0x00000102
2014*4882a593Smuzhiyun 
2015*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU3			0x00000103
2016*4882a593Smuzhiyun 
2017*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_RAC				0x00000104
2018*4882a593Smuzhiyun 
2019*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_RAC				0x00000105
2020*4882a593Smuzhiyun 
2021*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_RAC				0x00000106
2022*4882a593Smuzhiyun 
2023*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_RAC				0x00000107
2024*4882a593Smuzhiyun 
2025*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM			0x00000108
2026*4882a593Smuzhiyun 
2027*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x00000109
2028*4882a593Smuzhiyun 
2029*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x0000010a
2030*4882a593Smuzhiyun 
2031*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_UCHE				0x0000010b
2032*4882a593Smuzhiyun 
2033*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL2_UCHE				0x0000010c
2034*4882a593Smuzhiyun 
2035*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL3_UCHE				0x0000010d
2036*4882a593Smuzhiyun 
2037*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL4_UCHE				0x0000010e
2038*4882a593Smuzhiyun 
2039*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_UCHE				0x0000010f
2040*4882a593Smuzhiyun 
2041*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_UCHE				0x00000110
2042*4882a593Smuzhiyun 
2043*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_MODE_VFD				0x00000111
2044*4882a593Smuzhiyun 
2045*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_VFD				0x00000112
2046*4882a593Smuzhiyun 
2047*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_VFD				0x00000113
2048*4882a593Smuzhiyun 
2049*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_MODE_GPC				0x00000114
2050*4882a593Smuzhiyun 
2051*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_GPC				0x00000115
2052*4882a593Smuzhiyun 
2053*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_GPC				0x00000116
2054*4882a593Smuzhiyun 
2055*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ_2			0x00000117
2056*4882a593Smuzhiyun 
2057*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_GMU_GX				0x00000118
2058*4882a593Smuzhiyun 
2059*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_GMU_GX			0x00000119
2060*4882a593Smuzhiyun 
2061*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_GMU_GX				0x0000011a
2062*4882a593Smuzhiyun 
2063*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_MODE_HLSQ				0x0000011b
2064*4882a593Smuzhiyun 
2065*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ				0x0000011c
2066*4882a593Smuzhiyun 
2067*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_HLSQ				0x0000011d
2068*4882a593Smuzhiyun 
2069*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_CNTL_TEX_FCHE			0x00000120
2070*4882a593Smuzhiyun 
2071*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_DELAY_TEX_FCHE			0x00000121
2072*4882a593Smuzhiyun 
2073*4882a593Smuzhiyun #define REG_A6XX_RBBM_CLOCK_HYST_TEX_FCHE			0x00000122
2074*4882a593Smuzhiyun 
2075*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_A				0x00000600
2076*4882a593Smuzhiyun 
2077*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_B				0x00000601
2078*4882a593Smuzhiyun 
2079*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_C				0x00000602
2080*4882a593Smuzhiyun 
2081*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_D				0x00000603
2082*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK		0x000000ff
2083*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)2084*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)
2085*4882a593Smuzhiyun {
2086*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK;
2087*4882a593Smuzhiyun }
2088*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK		0x0000ff00
2089*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)2090*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)
2091*4882a593Smuzhiyun {
2092*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK;
2093*4882a593Smuzhiyun }
2094*4882a593Smuzhiyun 
2095*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_CNTLT				0x00000604
2096*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK		0x0000003f
2097*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)2098*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
2099*4882a593Smuzhiyun {
2100*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
2101*4882a593Smuzhiyun }
2102*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK			0x00007000
2103*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT			12
A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)2104*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
2105*4882a593Smuzhiyun {
2106*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
2107*4882a593Smuzhiyun }
2108*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK			0xf0000000
2109*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT			28
A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)2110*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
2111*4882a593Smuzhiyun {
2112*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
2113*4882a593Smuzhiyun }
2114*4882a593Smuzhiyun 
2115*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_CNTLM				0x00000605
2116*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK			0x0f000000
2117*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)2118*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
2119*4882a593Smuzhiyun {
2120*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
2121*4882a593Smuzhiyun }
2122*4882a593Smuzhiyun 
2123*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_0				0x00000608
2124*4882a593Smuzhiyun 
2125*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_1				0x00000609
2126*4882a593Smuzhiyun 
2127*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_2				0x0000060a
2128*4882a593Smuzhiyun 
2129*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_3				0x0000060b
2130*4882a593Smuzhiyun 
2131*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_0			0x0000060c
2132*4882a593Smuzhiyun 
2133*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_1			0x0000060d
2134*4882a593Smuzhiyun 
2135*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_2			0x0000060e
2136*4882a593Smuzhiyun 
2137*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_3			0x0000060f
2138*4882a593Smuzhiyun 
2139*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_0			0x00000610
2140*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK		0x0000000f
2141*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)2142*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
2143*4882a593Smuzhiyun {
2144*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
2145*4882a593Smuzhiyun }
2146*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK		0x000000f0
2147*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT		4
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)2148*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
2149*4882a593Smuzhiyun {
2150*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
2151*4882a593Smuzhiyun }
2152*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK		0x00000f00
2153*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)2154*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
2155*4882a593Smuzhiyun {
2156*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
2157*4882a593Smuzhiyun }
2158*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK		0x0000f000
2159*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT		12
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)2160*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
2161*4882a593Smuzhiyun {
2162*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
2163*4882a593Smuzhiyun }
2164*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK		0x000f0000
2165*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT		16
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)2166*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
2167*4882a593Smuzhiyun {
2168*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
2169*4882a593Smuzhiyun }
2170*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK		0x00f00000
2171*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT		20
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)2172*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
2173*4882a593Smuzhiyun {
2174*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
2175*4882a593Smuzhiyun }
2176*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK		0x0f000000
2177*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)2178*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
2179*4882a593Smuzhiyun {
2180*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
2181*4882a593Smuzhiyun }
2182*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK		0xf0000000
2183*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT		28
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)2184*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
2185*4882a593Smuzhiyun {
2186*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
2187*4882a593Smuzhiyun }
2188*4882a593Smuzhiyun 
2189*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_1			0x00000611
2190*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK		0x0000000f
2191*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)2192*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
2193*4882a593Smuzhiyun {
2194*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
2195*4882a593Smuzhiyun }
2196*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK		0x000000f0
2197*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT		4
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)2198*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
2199*4882a593Smuzhiyun {
2200*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
2201*4882a593Smuzhiyun }
2202*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK		0x00000f00
2203*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)2204*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
2205*4882a593Smuzhiyun {
2206*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
2207*4882a593Smuzhiyun }
2208*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK		0x0000f000
2209*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT		12
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)2210*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
2211*4882a593Smuzhiyun {
2212*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
2213*4882a593Smuzhiyun }
2214*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK		0x000f0000
2215*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT		16
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)2216*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
2217*4882a593Smuzhiyun {
2218*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
2219*4882a593Smuzhiyun }
2220*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK		0x00f00000
2221*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT		20
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)2222*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
2223*4882a593Smuzhiyun {
2224*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
2225*4882a593Smuzhiyun }
2226*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK		0x0f000000
2227*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)2228*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
2229*4882a593Smuzhiyun {
2230*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
2231*4882a593Smuzhiyun }
2232*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK		0xf0000000
2233*4882a593Smuzhiyun #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT		28
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)2234*4882a593Smuzhiyun static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
2235*4882a593Smuzhiyun {
2236*4882a593Smuzhiyun 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
2237*4882a593Smuzhiyun }
2238*4882a593Smuzhiyun 
2239*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF1			0x0000062f
2240*4882a593Smuzhiyun 
2241*4882a593Smuzhiyun #define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF2			0x00000630
2242*4882a593Smuzhiyun 
2243*4882a593Smuzhiyun #define REG_A6XX_VSC_PERFCTR_VSC_SEL_0				0x00000cd8
2244*4882a593Smuzhiyun 
2245*4882a593Smuzhiyun #define REG_A6XX_VSC_PERFCTR_VSC_SEL_1				0x00000cd9
2246*4882a593Smuzhiyun 
2247*4882a593Smuzhiyun #define REG_A6XX_HLSQ_ADDR_MODE_CNTL				0x0000be05
2248*4882a593Smuzhiyun 
2249*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_0			0x0000be10
2250*4882a593Smuzhiyun 
2251*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_1			0x0000be11
2252*4882a593Smuzhiyun 
2253*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_2			0x0000be12
2254*4882a593Smuzhiyun 
2255*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_3			0x0000be13
2256*4882a593Smuzhiyun 
2257*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_4			0x0000be14
2258*4882a593Smuzhiyun 
2259*4882a593Smuzhiyun #define REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL_5			0x0000be15
2260*4882a593Smuzhiyun 
2261*4882a593Smuzhiyun #define REG_A6XX_HLSQ_DBG_AHB_READ_APERTURE			0x0000c800
2262*4882a593Smuzhiyun 
2263*4882a593Smuzhiyun #define REG_A6XX_HLSQ_DBG_READ_SEL				0x0000d000
2264*4882a593Smuzhiyun 
2265*4882a593Smuzhiyun #define REG_A6XX_VFD_ADDR_MODE_CNTL				0x0000a601
2266*4882a593Smuzhiyun 
2267*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_0				0x0000a610
2268*4882a593Smuzhiyun 
2269*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_1				0x0000a611
2270*4882a593Smuzhiyun 
2271*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_2				0x0000a612
2272*4882a593Smuzhiyun 
2273*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_3				0x0000a613
2274*4882a593Smuzhiyun 
2275*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_4				0x0000a614
2276*4882a593Smuzhiyun 
2277*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_5				0x0000a615
2278*4882a593Smuzhiyun 
2279*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_6				0x0000a616
2280*4882a593Smuzhiyun 
2281*4882a593Smuzhiyun #define REG_A6XX_VFD_PERFCTR_VFD_SEL_7				0x0000a617
2282*4882a593Smuzhiyun 
2283*4882a593Smuzhiyun #define REG_A6XX_UCHE_ADDR_MODE_CNTL				0x00000e00
2284*4882a593Smuzhiyun 
2285*4882a593Smuzhiyun #define REG_A6XX_UCHE_MODE_CNTL					0x00000e01
2286*4882a593Smuzhiyun 
2287*4882a593Smuzhiyun #define REG_A6XX_UCHE_WRITE_RANGE_MAX_LO			0x00000e05
2288*4882a593Smuzhiyun 
2289*4882a593Smuzhiyun #define REG_A6XX_UCHE_WRITE_RANGE_MAX_HI			0x00000e06
2290*4882a593Smuzhiyun 
2291*4882a593Smuzhiyun #define REG_A6XX_UCHE_WRITE_THRU_BASE_LO			0x00000e07
2292*4882a593Smuzhiyun 
2293*4882a593Smuzhiyun #define REG_A6XX_UCHE_WRITE_THRU_BASE_HI			0x00000e08
2294*4882a593Smuzhiyun 
2295*4882a593Smuzhiyun #define REG_A6XX_UCHE_TRAP_BASE_LO				0x00000e09
2296*4882a593Smuzhiyun 
2297*4882a593Smuzhiyun #define REG_A6XX_UCHE_TRAP_BASE_HI				0x00000e0a
2298*4882a593Smuzhiyun 
2299*4882a593Smuzhiyun #define REG_A6XX_UCHE_GMEM_RANGE_MIN_LO				0x00000e0b
2300*4882a593Smuzhiyun 
2301*4882a593Smuzhiyun #define REG_A6XX_UCHE_GMEM_RANGE_MIN_HI				0x00000e0c
2302*4882a593Smuzhiyun 
2303*4882a593Smuzhiyun #define REG_A6XX_UCHE_GMEM_RANGE_MAX_LO				0x00000e0d
2304*4882a593Smuzhiyun 
2305*4882a593Smuzhiyun #define REG_A6XX_UCHE_GMEM_RANGE_MAX_HI				0x00000e0e
2306*4882a593Smuzhiyun 
2307*4882a593Smuzhiyun #define REG_A6XX_UCHE_CACHE_WAYS				0x00000e17
2308*4882a593Smuzhiyun 
2309*4882a593Smuzhiyun #define REG_A6XX_UCHE_FILTER_CNTL				0x00000e18
2310*4882a593Smuzhiyun 
2311*4882a593Smuzhiyun #define REG_A6XX_UCHE_CLIENT_PF					0x00000e19
2312*4882a593Smuzhiyun #define A6XX_UCHE_CLIENT_PF_PERFSEL__MASK			0x000000ff
2313*4882a593Smuzhiyun #define A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT			0
A6XX_UCHE_CLIENT_PF_PERFSEL(uint32_t val)2314*4882a593Smuzhiyun static inline uint32_t A6XX_UCHE_CLIENT_PF_PERFSEL(uint32_t val)
2315*4882a593Smuzhiyun {
2316*4882a593Smuzhiyun 	return ((val) << A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT) & A6XX_UCHE_CLIENT_PF_PERFSEL__MASK;
2317*4882a593Smuzhiyun }
2318*4882a593Smuzhiyun 
2319*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_0			0x00000e1c
2320*4882a593Smuzhiyun 
2321*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_1			0x00000e1d
2322*4882a593Smuzhiyun 
2323*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_2			0x00000e1e
2324*4882a593Smuzhiyun 
2325*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_3			0x00000e1f
2326*4882a593Smuzhiyun 
2327*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_4			0x00000e20
2328*4882a593Smuzhiyun 
2329*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_5			0x00000e21
2330*4882a593Smuzhiyun 
2331*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_6			0x00000e22
2332*4882a593Smuzhiyun 
2333*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_7			0x00000e23
2334*4882a593Smuzhiyun 
2335*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_8			0x00000e24
2336*4882a593Smuzhiyun 
2337*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_9			0x00000e25
2338*4882a593Smuzhiyun 
2339*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_10			0x00000e26
2340*4882a593Smuzhiyun 
2341*4882a593Smuzhiyun #define REG_A6XX_UCHE_PERFCTR_UCHE_SEL_11			0x00000e27
2342*4882a593Smuzhiyun 
2343*4882a593Smuzhiyun #define REG_A6XX_SP_ADDR_MODE_CNTL				0x0000ae01
2344*4882a593Smuzhiyun 
2345*4882a593Smuzhiyun #define REG_A6XX_SP_NC_MODE_CNTL				0x0000ae02
2346*4882a593Smuzhiyun 
2347*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_0				0x0000ae10
2348*4882a593Smuzhiyun 
2349*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_1				0x0000ae11
2350*4882a593Smuzhiyun 
2351*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_2				0x0000ae12
2352*4882a593Smuzhiyun 
2353*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_3				0x0000ae13
2354*4882a593Smuzhiyun 
2355*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_4				0x0000ae14
2356*4882a593Smuzhiyun 
2357*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_5				0x0000ae15
2358*4882a593Smuzhiyun 
2359*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_6				0x0000ae16
2360*4882a593Smuzhiyun 
2361*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_7				0x0000ae17
2362*4882a593Smuzhiyun 
2363*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_8				0x0000ae18
2364*4882a593Smuzhiyun 
2365*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_9				0x0000ae19
2366*4882a593Smuzhiyun 
2367*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_10				0x0000ae1a
2368*4882a593Smuzhiyun 
2369*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_11				0x0000ae1b
2370*4882a593Smuzhiyun 
2371*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_12				0x0000ae1c
2372*4882a593Smuzhiyun 
2373*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_13				0x0000ae1d
2374*4882a593Smuzhiyun 
2375*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_14				0x0000ae1e
2376*4882a593Smuzhiyun 
2377*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_15				0x0000ae1f
2378*4882a593Smuzhiyun 
2379*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_16				0x0000ae20
2380*4882a593Smuzhiyun 
2381*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_17				0x0000ae21
2382*4882a593Smuzhiyun 
2383*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_18				0x0000ae22
2384*4882a593Smuzhiyun 
2385*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_19				0x0000ae23
2386*4882a593Smuzhiyun 
2387*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_20				0x0000ae24
2388*4882a593Smuzhiyun 
2389*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_21				0x0000ae25
2390*4882a593Smuzhiyun 
2391*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_22				0x0000ae26
2392*4882a593Smuzhiyun 
2393*4882a593Smuzhiyun #define REG_A6XX_SP_PERFCTR_SP_SEL_23				0x0000ae27
2394*4882a593Smuzhiyun 
2395*4882a593Smuzhiyun #define REG_A6XX_TPL1_ADDR_MODE_CNTL				0x0000b601
2396*4882a593Smuzhiyun 
2397*4882a593Smuzhiyun #define REG_A6XX_TPL1_NC_MODE_CNTL				0x0000b604
2398*4882a593Smuzhiyun 
2399*4882a593Smuzhiyun #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0			0x0000b608
2400*4882a593Smuzhiyun 
2401*4882a593Smuzhiyun #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1			0x0000b609
2402*4882a593Smuzhiyun 
2403*4882a593Smuzhiyun #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_2			0x0000b60a
2404*4882a593Smuzhiyun 
2405*4882a593Smuzhiyun #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_3			0x0000b60b
2406*4882a593Smuzhiyun 
2407*4882a593Smuzhiyun #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_4			0x0000b60c
2408*4882a593Smuzhiyun 
2409*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_0				0x0000b610
2410*4882a593Smuzhiyun 
2411*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_1				0x0000b611
2412*4882a593Smuzhiyun 
2413*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_2				0x0000b612
2414*4882a593Smuzhiyun 
2415*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_3				0x0000b613
2416*4882a593Smuzhiyun 
2417*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_4				0x0000b614
2418*4882a593Smuzhiyun 
2419*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_5				0x0000b615
2420*4882a593Smuzhiyun 
2421*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_6				0x0000b616
2422*4882a593Smuzhiyun 
2423*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_7				0x0000b617
2424*4882a593Smuzhiyun 
2425*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_8				0x0000b618
2426*4882a593Smuzhiyun 
2427*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_9				0x0000b619
2428*4882a593Smuzhiyun 
2429*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_10				0x0000b61a
2430*4882a593Smuzhiyun 
2431*4882a593Smuzhiyun #define REG_A6XX_TPL1_PERFCTR_TP_SEL_11				0x0000b61b
2432*4882a593Smuzhiyun 
2433*4882a593Smuzhiyun #define REG_A6XX_VBIF_VERSION					0x00003000
2434*4882a593Smuzhiyun 
2435*4882a593Smuzhiyun #define REG_A6XX_VBIF_CLKON					0x00003001
2436*4882a593Smuzhiyun #define A6XX_VBIF_CLKON_FORCE_ON_TESTBUS			0x00000002
2437*4882a593Smuzhiyun 
2438*4882a593Smuzhiyun #define REG_A6XX_VBIF_GATE_OFF_WRREQ_EN				0x0000302a
2439*4882a593Smuzhiyun 
2440*4882a593Smuzhiyun #define REG_A6XX_VBIF_XIN_HALT_CTRL0				0x00003080
2441*4882a593Smuzhiyun 
2442*4882a593Smuzhiyun #define REG_A6XX_VBIF_XIN_HALT_CTRL1				0x00003081
2443*4882a593Smuzhiyun 
2444*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS_OUT_CTRL				0x00003084
2445*4882a593Smuzhiyun 
2446*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS1_CTRL0				0x00003085
2447*4882a593Smuzhiyun 
2448*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS1_CTRL1				0x00003086
2449*4882a593Smuzhiyun #define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__MASK		0x0000000f
2450*4882a593Smuzhiyun #define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__SHIFT		0
A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL(uint32_t val)2451*4882a593Smuzhiyun static inline uint32_t A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL(uint32_t val)
2452*4882a593Smuzhiyun {
2453*4882a593Smuzhiyun 	return ((val) << A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__SHIFT) & A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__MASK;
2454*4882a593Smuzhiyun }
2455*4882a593Smuzhiyun 
2456*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS2_CTRL0				0x00003087
2457*4882a593Smuzhiyun 
2458*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS2_CTRL1				0x00003088
2459*4882a593Smuzhiyun #define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__MASK		0x000001ff
2460*4882a593Smuzhiyun #define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__SHIFT		0
A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL(uint32_t val)2461*4882a593Smuzhiyun static inline uint32_t A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL(uint32_t val)
2462*4882a593Smuzhiyun {
2463*4882a593Smuzhiyun 	return ((val) << A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__SHIFT) & A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__MASK;
2464*4882a593Smuzhiyun }
2465*4882a593Smuzhiyun 
2466*4882a593Smuzhiyun #define REG_A6XX_VBIF_TEST_BUS_OUT				0x0000308c
2467*4882a593Smuzhiyun 
2468*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_SEL0				0x000030d0
2469*4882a593Smuzhiyun 
2470*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_SEL1				0x000030d1
2471*4882a593Smuzhiyun 
2472*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_SEL2				0x000030d2
2473*4882a593Smuzhiyun 
2474*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_SEL3				0x000030d3
2475*4882a593Smuzhiyun 
2476*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_LOW0				0x000030d8
2477*4882a593Smuzhiyun 
2478*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_LOW1				0x000030d9
2479*4882a593Smuzhiyun 
2480*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_LOW2				0x000030da
2481*4882a593Smuzhiyun 
2482*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_LOW3				0x000030db
2483*4882a593Smuzhiyun 
2484*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_HIGH0				0x000030e0
2485*4882a593Smuzhiyun 
2486*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_HIGH1				0x000030e1
2487*4882a593Smuzhiyun 
2488*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_HIGH2				0x000030e2
2489*4882a593Smuzhiyun 
2490*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_CNT_HIGH3				0x000030e3
2491*4882a593Smuzhiyun 
2492*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
2493*4882a593Smuzhiyun 
2494*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
2495*4882a593Smuzhiyun 
2496*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
2497*4882a593Smuzhiyun 
2498*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW0				0x00003110
2499*4882a593Smuzhiyun 
2500*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW1				0x00003111
2501*4882a593Smuzhiyun 
2502*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW2				0x00003112
2503*4882a593Smuzhiyun 
2504*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH0			0x00003118
2505*4882a593Smuzhiyun 
2506*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH1			0x00003119
2507*4882a593Smuzhiyun 
2508*4882a593Smuzhiyun #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH2			0x0000311a
2509*4882a593Smuzhiyun 
2510*4882a593Smuzhiyun #define REG_A6XX_GBIF_SCACHE_CNTL1				0x00003c02
2511*4882a593Smuzhiyun 
2512*4882a593Smuzhiyun #define REG_A6XX_GBIF_QSB_SIDE0					0x00003c03
2513*4882a593Smuzhiyun 
2514*4882a593Smuzhiyun #define REG_A6XX_GBIF_QSB_SIDE1					0x00003c04
2515*4882a593Smuzhiyun 
2516*4882a593Smuzhiyun #define REG_A6XX_GBIF_QSB_SIDE2					0x00003c05
2517*4882a593Smuzhiyun 
2518*4882a593Smuzhiyun #define REG_A6XX_GBIF_QSB_SIDE3					0x00003c06
2519*4882a593Smuzhiyun 
2520*4882a593Smuzhiyun #define REG_A6XX_GBIF_HALT					0x00003c45
2521*4882a593Smuzhiyun 
2522*4882a593Smuzhiyun #define REG_A6XX_GBIF_HALT_ACK					0x00003c46
2523*4882a593Smuzhiyun 
2524*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_PWR_CNT_EN				0x00003cc0
2525*4882a593Smuzhiyun 
2526*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_SEL				0x00003cc2
2527*4882a593Smuzhiyun 
2528*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_PWR_CNT_SEL				0x00003cc3
2529*4882a593Smuzhiyun 
2530*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_LOW0				0x00003cc4
2531*4882a593Smuzhiyun 
2532*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_LOW1				0x00003cc5
2533*4882a593Smuzhiyun 
2534*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_LOW2				0x00003cc6
2535*4882a593Smuzhiyun 
2536*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_LOW3				0x00003cc7
2537*4882a593Smuzhiyun 
2538*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_HIGH0				0x00003cc8
2539*4882a593Smuzhiyun 
2540*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_HIGH1				0x00003cc9
2541*4882a593Smuzhiyun 
2542*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_HIGH2				0x00003cca
2543*4882a593Smuzhiyun 
2544*4882a593Smuzhiyun #define REG_A6XX_GBIF_PERF_CNT_HIGH3				0x00003ccb
2545*4882a593Smuzhiyun 
2546*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_LOW0				0x00003ccc
2547*4882a593Smuzhiyun 
2548*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_LOW1				0x00003ccd
2549*4882a593Smuzhiyun 
2550*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_LOW2				0x00003cce
2551*4882a593Smuzhiyun 
2552*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_HIGH0				0x00003ccf
2553*4882a593Smuzhiyun 
2554*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_HIGH1				0x00003cd0
2555*4882a593Smuzhiyun 
2556*4882a593Smuzhiyun #define REG_A6XX_GBIF_PWR_CNT_HIGH2				0x00003cd1
2557*4882a593Smuzhiyun 
2558*4882a593Smuzhiyun #define REG_A6XX_SP_WINDOW_OFFSET				0x0000b4d1
2559*4882a593Smuzhiyun #define A6XX_SP_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE		0x80000000
2560*4882a593Smuzhiyun #define A6XX_SP_WINDOW_OFFSET_X__MASK				0x00007fff
2561*4882a593Smuzhiyun #define A6XX_SP_WINDOW_OFFSET_X__SHIFT				0
A6XX_SP_WINDOW_OFFSET_X(uint32_t val)2562*4882a593Smuzhiyun static inline uint32_t A6XX_SP_WINDOW_OFFSET_X(uint32_t val)
2563*4882a593Smuzhiyun {
2564*4882a593Smuzhiyun 	return ((val) << A6XX_SP_WINDOW_OFFSET_X__SHIFT) & A6XX_SP_WINDOW_OFFSET_X__MASK;
2565*4882a593Smuzhiyun }
2566*4882a593Smuzhiyun #define A6XX_SP_WINDOW_OFFSET_Y__MASK				0x7fff0000
2567*4882a593Smuzhiyun #define A6XX_SP_WINDOW_OFFSET_Y__SHIFT				16
A6XX_SP_WINDOW_OFFSET_Y(uint32_t val)2568*4882a593Smuzhiyun static inline uint32_t A6XX_SP_WINDOW_OFFSET_Y(uint32_t val)
2569*4882a593Smuzhiyun {
2570*4882a593Smuzhiyun 	return ((val) << A6XX_SP_WINDOW_OFFSET_Y__SHIFT) & A6XX_SP_WINDOW_OFFSET_Y__MASK;
2571*4882a593Smuzhiyun }
2572*4882a593Smuzhiyun 
2573*4882a593Smuzhiyun #define REG_A6XX_SP_TP_WINDOW_OFFSET				0x0000b307
2574*4882a593Smuzhiyun #define A6XX_SP_TP_WINDOW_OFFSET_WINDOW_OFFSET_DISABLE		0x80000000
2575*4882a593Smuzhiyun #define A6XX_SP_TP_WINDOW_OFFSET_X__MASK			0x00007fff
2576*4882a593Smuzhiyun #define A6XX_SP_TP_WINDOW_OFFSET_X__SHIFT			0
A6XX_SP_TP_WINDOW_OFFSET_X(uint32_t val)2577*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_WINDOW_OFFSET_X(uint32_t val)
2578*4882a593Smuzhiyun {
2579*4882a593Smuzhiyun 	return ((val) << A6XX_SP_TP_WINDOW_OFFSET_X__SHIFT) & A6XX_SP_TP_WINDOW_OFFSET_X__MASK;
2580*4882a593Smuzhiyun }
2581*4882a593Smuzhiyun #define A6XX_SP_TP_WINDOW_OFFSET_Y__MASK			0x7fff0000
2582*4882a593Smuzhiyun #define A6XX_SP_TP_WINDOW_OFFSET_Y__SHIFT			16
A6XX_SP_TP_WINDOW_OFFSET_Y(uint32_t val)2583*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_WINDOW_OFFSET_Y(uint32_t val)
2584*4882a593Smuzhiyun {
2585*4882a593Smuzhiyun 	return ((val) << A6XX_SP_TP_WINDOW_OFFSET_Y__SHIFT) & A6XX_SP_TP_WINDOW_OFFSET_Y__MASK;
2586*4882a593Smuzhiyun }
2587*4882a593Smuzhiyun 
2588*4882a593Smuzhiyun #define REG_A6XX_VSC_BIN_SIZE					0x00000c02
2589*4882a593Smuzhiyun #define A6XX_VSC_BIN_SIZE_WIDTH__MASK				0x000000ff
2590*4882a593Smuzhiyun #define A6XX_VSC_BIN_SIZE_WIDTH__SHIFT				0
A6XX_VSC_BIN_SIZE_WIDTH(uint32_t val)2591*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
2592*4882a593Smuzhiyun {
2593*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A6XX_VSC_BIN_SIZE_WIDTH__MASK;
2594*4882a593Smuzhiyun }
2595*4882a593Smuzhiyun #define A6XX_VSC_BIN_SIZE_HEIGHT__MASK				0x0001ff00
2596*4882a593Smuzhiyun #define A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT				8
A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)2597*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
2598*4882a593Smuzhiyun {
2599*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A6XX_VSC_BIN_SIZE_HEIGHT__MASK;
2600*4882a593Smuzhiyun }
2601*4882a593Smuzhiyun 
2602*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS_LO			0x00000c03
2603*4882a593Smuzhiyun 
2604*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS_HI			0x00000c04
2605*4882a593Smuzhiyun 
2606*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS			0x00000c03
2607*4882a593Smuzhiyun 
2608*4882a593Smuzhiyun #define REG_A6XX_VSC_BIN_COUNT					0x00000c06
2609*4882a593Smuzhiyun #define A6XX_VSC_BIN_COUNT_NX__MASK				0x000007fe
2610*4882a593Smuzhiyun #define A6XX_VSC_BIN_COUNT_NX__SHIFT				1
A6XX_VSC_BIN_COUNT_NX(uint32_t val)2611*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_BIN_COUNT_NX(uint32_t val)
2612*4882a593Smuzhiyun {
2613*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_BIN_COUNT_NX__SHIFT) & A6XX_VSC_BIN_COUNT_NX__MASK;
2614*4882a593Smuzhiyun }
2615*4882a593Smuzhiyun #define A6XX_VSC_BIN_COUNT_NY__MASK				0x001ff800
2616*4882a593Smuzhiyun #define A6XX_VSC_BIN_COUNT_NY__SHIFT				11
A6XX_VSC_BIN_COUNT_NY(uint32_t val)2617*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_BIN_COUNT_NY(uint32_t val)
2618*4882a593Smuzhiyun {
2619*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_BIN_COUNT_NY__SHIFT) & A6XX_VSC_BIN_COUNT_NY__MASK;
2620*4882a593Smuzhiyun }
2621*4882a593Smuzhiyun 
REG_A6XX_VSC_PIPE_CONFIG(uint32_t i0)2622*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
2623*4882a593Smuzhiyun 
REG_A6XX_VSC_PIPE_CONFIG_REG(uint32_t i0)2624*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG_REG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
2625*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_X__MASK			0x000003ff
2626*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT			0
A6XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)2627*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)
2628*4882a593Smuzhiyun {
2629*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_X__MASK;
2630*4882a593Smuzhiyun }
2631*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_Y__MASK			0x000ffc00
2632*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT			10
A6XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)2633*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)
2634*4882a593Smuzhiyun {
2635*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_Y__MASK;
2636*4882a593Smuzhiyun }
2637*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_W__MASK			0x03f00000
2638*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT			20
A6XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)2639*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)
2640*4882a593Smuzhiyun {
2641*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_W__MASK;
2642*4882a593Smuzhiyun }
2643*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_H__MASK			0xfc000000
2644*4882a593Smuzhiyun #define A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT			26
A6XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)2645*4882a593Smuzhiyun static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)
2646*4882a593Smuzhiyun {
2647*4882a593Smuzhiyun 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_H__MASK;
2648*4882a593Smuzhiyun }
2649*4882a593Smuzhiyun 
2650*4882a593Smuzhiyun #define REG_A6XX_VSC_PRIM_STRM_ADDRESS_LO			0x00000c30
2651*4882a593Smuzhiyun 
2652*4882a593Smuzhiyun #define REG_A6XX_VSC_PRIM_STRM_ADDRESS_HI			0x00000c31
2653*4882a593Smuzhiyun 
2654*4882a593Smuzhiyun #define REG_A6XX_VSC_PRIM_STRM_ADDRESS				0x00000c30
2655*4882a593Smuzhiyun 
2656*4882a593Smuzhiyun #define REG_A6XX_VSC_PRIM_STRM_PITCH				0x00000c32
2657*4882a593Smuzhiyun 
2658*4882a593Smuzhiyun #define REG_A6XX_VSC_PRIM_STRM_LIMIT				0x00000c33
2659*4882a593Smuzhiyun 
2660*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_ADDRESS_LO			0x00000c34
2661*4882a593Smuzhiyun 
2662*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_ADDRESS_HI			0x00000c35
2663*4882a593Smuzhiyun 
2664*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_ADDRESS				0x00000c34
2665*4882a593Smuzhiyun 
2666*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_PITCH				0x00000c36
2667*4882a593Smuzhiyun 
2668*4882a593Smuzhiyun #define REG_A6XX_VSC_DRAW_STRM_LIMIT				0x00000c37
2669*4882a593Smuzhiyun 
REG_A6XX_VSC_STATE(uint32_t i0)2670*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_STATE(uint32_t i0) { return 0x00000c38 + 0x1*i0; }
2671*4882a593Smuzhiyun 
REG_A6XX_VSC_STATE_REG(uint32_t i0)2672*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_STATE_REG(uint32_t i0) { return 0x00000c38 + 0x1*i0; }
2673*4882a593Smuzhiyun 
REG_A6XX_VSC_PRIM_STRM_SIZE(uint32_t i0)2674*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE(uint32_t i0) { return 0x00000c58 + 0x1*i0; }
2675*4882a593Smuzhiyun 
REG_A6XX_VSC_PRIM_STRM_SIZE_REG(uint32_t i0)2676*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE_REG(uint32_t i0) { return 0x00000c58 + 0x1*i0; }
2677*4882a593Smuzhiyun 
REG_A6XX_VSC_DRAW_STRM_SIZE(uint32_t i0)2678*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_DRAW_STRM_SIZE(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
2679*4882a593Smuzhiyun 
REG_A6XX_VSC_DRAW_STRM_SIZE_REG(uint32_t i0)2680*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VSC_DRAW_STRM_SIZE_REG(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
2681*4882a593Smuzhiyun 
2682*4882a593Smuzhiyun #define REG_A6XX_UCHE_UNKNOWN_0E12				0x00000e12
2683*4882a593Smuzhiyun 
2684*4882a593Smuzhiyun #define REG_A6XX_GRAS_CL_CNTL					0x00008000
2685*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_CLIP_DISABLE				0x00000001
2686*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_ZNEAR_CLIP_DISABLE			0x00000002
2687*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_ZFAR_CLIP_DISABLE			0x00000004
2688*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_UNK5					0x00000020
2689*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_ZERO_GB_SCALE_Z			0x00000040
2690*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_VP_CLIP_CODE_IGNORE			0x00000080
2691*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_VP_XFORM_DISABLE			0x00000100
2692*4882a593Smuzhiyun #define A6XX_GRAS_CL_CNTL_PERSP_DIVISION_DISABLE		0x00000200
2693*4882a593Smuzhiyun 
2694*4882a593Smuzhiyun #define REG_A6XX_GRAS_VS_CL_CNTL				0x00008001
2695*4882a593Smuzhiyun #define A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2696*4882a593Smuzhiyun #define A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_VS_CL_CNTL_CLIP_MASK(uint32_t val)2697*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_VS_CL_CNTL_CLIP_MASK(uint32_t val)
2698*4882a593Smuzhiyun {
2699*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__MASK;
2700*4882a593Smuzhiyun }
2701*4882a593Smuzhiyun #define A6XX_GRAS_VS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2702*4882a593Smuzhiyun #define A6XX_GRAS_VS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_VS_CL_CNTL_CULL_MASK(uint32_t val)2703*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_VS_CL_CNTL_CULL_MASK(uint32_t val)
2704*4882a593Smuzhiyun {
2705*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_VS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_VS_CL_CNTL_CULL_MASK__MASK;
2706*4882a593Smuzhiyun }
2707*4882a593Smuzhiyun 
2708*4882a593Smuzhiyun #define REG_A6XX_GRAS_DS_CL_CNTL				0x00008002
2709*4882a593Smuzhiyun #define A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2710*4882a593Smuzhiyun #define A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_DS_CL_CNTL_CLIP_MASK(uint32_t val)2711*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_DS_CL_CNTL_CLIP_MASK(uint32_t val)
2712*4882a593Smuzhiyun {
2713*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__MASK;
2714*4882a593Smuzhiyun }
2715*4882a593Smuzhiyun #define A6XX_GRAS_DS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2716*4882a593Smuzhiyun #define A6XX_GRAS_DS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_DS_CL_CNTL_CULL_MASK(uint32_t val)2717*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_DS_CL_CNTL_CULL_MASK(uint32_t val)
2718*4882a593Smuzhiyun {
2719*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_DS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_DS_CL_CNTL_CULL_MASK__MASK;
2720*4882a593Smuzhiyun }
2721*4882a593Smuzhiyun 
2722*4882a593Smuzhiyun #define REG_A6XX_GRAS_GS_CL_CNTL				0x00008003
2723*4882a593Smuzhiyun #define A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2724*4882a593Smuzhiyun #define A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_GS_CL_CNTL_CLIP_MASK(uint32_t val)2725*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_GS_CL_CNTL_CLIP_MASK(uint32_t val)
2726*4882a593Smuzhiyun {
2727*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__MASK;
2728*4882a593Smuzhiyun }
2729*4882a593Smuzhiyun #define A6XX_GRAS_GS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2730*4882a593Smuzhiyun #define A6XX_GRAS_GS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_GS_CL_CNTL_CULL_MASK(uint32_t val)2731*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_GS_CL_CNTL_CULL_MASK(uint32_t val)
2732*4882a593Smuzhiyun {
2733*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_GS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_GS_CL_CNTL_CULL_MASK__MASK;
2734*4882a593Smuzhiyun }
2735*4882a593Smuzhiyun 
2736*4882a593Smuzhiyun #define REG_A6XX_GRAS_MAX_LAYER_INDEX				0x00008004
2737*4882a593Smuzhiyun 
2738*4882a593Smuzhiyun #define REG_A6XX_GRAS_CNTL					0x00008005
2739*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_IJ_PERSP_PIXEL				0x00000001
2740*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_IJ_PERSP_CENTROID			0x00000002
2741*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_IJ_PERSP_SAMPLE				0x00000004
2742*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_SIZE					0x00000008
2743*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_UNK4					0x00000010
2744*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_SIZE_PERSAMP				0x00000020
2745*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_COORD_MASK__MASK				0x000003c0
2746*4882a593Smuzhiyun #define A6XX_GRAS_CNTL_COORD_MASK__SHIFT			6
A6XX_GRAS_CNTL_COORD_MASK(uint32_t val)2747*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CNTL_COORD_MASK(uint32_t val)
2748*4882a593Smuzhiyun {
2749*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_CNTL_COORD_MASK__SHIFT) & A6XX_GRAS_CNTL_COORD_MASK__MASK;
2750*4882a593Smuzhiyun }
2751*4882a593Smuzhiyun 
2752*4882a593Smuzhiyun #define REG_A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ			0x00008006
2753*4882a593Smuzhiyun #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK		0x000001ff
2754*4882a593Smuzhiyun #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT		0
A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)2755*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)
2756*4882a593Smuzhiyun {
2757*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK;
2758*4882a593Smuzhiyun }
2759*4882a593Smuzhiyun #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK		0x0007fc00
2760*4882a593Smuzhiyun #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT		10
A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)2761*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)
2762*4882a593Smuzhiyun {
2763*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK;
2764*4882a593Smuzhiyun }
2765*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT(uint32_t i0)2766*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT(uint32_t i0) { return 0x00008010 + 0x6*i0; }
2767*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_XOFFSET(uint32_t i0)2768*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_XOFFSET(uint32_t i0) { return 0x00008010 + 0x6*i0; }
2769*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_XOFFSET__MASK			0xffffffff
2770*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_XOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_XOFFSET(float val)2771*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_XOFFSET(float val)
2772*4882a593Smuzhiyun {
2773*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_XOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_XOFFSET__MASK;
2774*4882a593Smuzhiyun }
2775*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_XSCALE(uint32_t i0)2776*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_XSCALE(uint32_t i0) { return 0x00008011 + 0x6*i0; }
2777*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_XSCALE__MASK				0xffffffff
2778*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_XSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_XSCALE(float val)2779*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_XSCALE(float val)
2780*4882a593Smuzhiyun {
2781*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_XSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_XSCALE__MASK;
2782*4882a593Smuzhiyun }
2783*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_YOFFSET(uint32_t i0)2784*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_YOFFSET(uint32_t i0) { return 0x00008012 + 0x6*i0; }
2785*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_YOFFSET__MASK			0xffffffff
2786*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_YOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_YOFFSET(float val)2787*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_YOFFSET(float val)
2788*4882a593Smuzhiyun {
2789*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_YOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_YOFFSET__MASK;
2790*4882a593Smuzhiyun }
2791*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_YSCALE(uint32_t i0)2792*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_YSCALE(uint32_t i0) { return 0x00008013 + 0x6*i0; }
2793*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_YSCALE__MASK				0xffffffff
2794*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_YSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_YSCALE(float val)2795*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_YSCALE(float val)
2796*4882a593Smuzhiyun {
2797*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_YSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_YSCALE__MASK;
2798*4882a593Smuzhiyun }
2799*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_ZOFFSET(uint32_t i0)2800*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_ZOFFSET(uint32_t i0) { return 0x00008014 + 0x6*i0; }
2801*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_ZOFFSET__MASK			0xffffffff
2802*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_ZOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_ZOFFSET(float val)2803*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_ZOFFSET(float val)
2804*4882a593Smuzhiyun {
2805*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_ZOFFSET__MASK;
2806*4882a593Smuzhiyun }
2807*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_VPORT_ZSCALE(uint32_t i0)2808*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_VPORT_ZSCALE(uint32_t i0) { return 0x00008015 + 0x6*i0; }
2809*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_ZSCALE__MASK				0xffffffff
2810*4882a593Smuzhiyun #define A6XX_GRAS_CL_VPORT_ZSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_ZSCALE(float val)2811*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_VPORT_ZSCALE(float val)
2812*4882a593Smuzhiyun {
2813*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_ZSCALE__MASK;
2814*4882a593Smuzhiyun }
2815*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_Z_CLAMP(uint32_t i0)2816*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP(uint32_t i0) { return 0x00008070 + 0x2*i0; }
2817*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_Z_CLAMP_MIN(uint32_t i0)2818*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP_MIN(uint32_t i0) { return 0x00008070 + 0x2*i0; }
2819*4882a593Smuzhiyun #define A6XX_GRAS_CL_Z_CLAMP_MIN__MASK				0xffffffff
2820*4882a593Smuzhiyun #define A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT				0
A6XX_GRAS_CL_Z_CLAMP_MIN(float val)2821*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MIN(float val)
2822*4882a593Smuzhiyun {
2823*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MIN__MASK;
2824*4882a593Smuzhiyun }
2825*4882a593Smuzhiyun 
REG_A6XX_GRAS_CL_Z_CLAMP_MAX(uint32_t i0)2826*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP_MAX(uint32_t i0) { return 0x00008071 + 0x2*i0; }
2827*4882a593Smuzhiyun #define A6XX_GRAS_CL_Z_CLAMP_MAX__MASK				0xffffffff
2828*4882a593Smuzhiyun #define A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT				0
A6XX_GRAS_CL_Z_CLAMP_MAX(float val)2829*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MAX(float val)
2830*4882a593Smuzhiyun {
2831*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MAX__MASK;
2832*4882a593Smuzhiyun }
2833*4882a593Smuzhiyun 
2834*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_CNTL					0x00008090
2835*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_CULL_FRONT				0x00000001
2836*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_CULL_BACK				0x00000002
2837*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_FRONT_CW				0x00000004
2838*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK			0x000007f8
2839*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT			3
A6XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)2840*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)
2841*4882a593Smuzhiyun {
2842*4882a593Smuzhiyun 	return ((((int32_t)(val * 4.0))) << A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT) & A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK;
2843*4882a593Smuzhiyun }
2844*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_POLY_OFFSET				0x00000800
2845*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_UNK12__MASK				0x00001000
2846*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_UNK12__SHIFT				12
A6XX_GRAS_SU_CNTL_UNK12(uint32_t val)2847*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_CNTL_UNK12(uint32_t val)
2848*4882a593Smuzhiyun {
2849*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SU_CNTL_UNK12__SHIFT) & A6XX_GRAS_SU_CNTL_UNK12__MASK;
2850*4882a593Smuzhiyun }
2851*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_MSAA_ENABLE				0x00002000
2852*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_UNK15__MASK				0x007f8000
2853*4882a593Smuzhiyun #define A6XX_GRAS_SU_CNTL_UNK15__SHIFT				15
A6XX_GRAS_SU_CNTL_UNK15(uint32_t val)2854*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_CNTL_UNK15(uint32_t val)
2855*4882a593Smuzhiyun {
2856*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SU_CNTL_UNK15__SHIFT) & A6XX_GRAS_SU_CNTL_UNK15__MASK;
2857*4882a593Smuzhiyun }
2858*4882a593Smuzhiyun 
2859*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_POINT_MINMAX				0x00008091
2860*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK			0x0000ffff
2861*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT			0
A6XX_GRAS_SU_POINT_MINMAX_MIN(float val)2862*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MIN(float val)
2863*4882a593Smuzhiyun {
2864*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
2865*4882a593Smuzhiyun }
2866*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK			0xffff0000
2867*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT			16
A6XX_GRAS_SU_POINT_MINMAX_MAX(float val)2868*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MAX(float val)
2869*4882a593Smuzhiyun {
2870*4882a593Smuzhiyun 	return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
2871*4882a593Smuzhiyun }
2872*4882a593Smuzhiyun 
2873*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_POINT_SIZE				0x00008092
2874*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_SIZE__MASK				0x0000ffff
2875*4882a593Smuzhiyun #define A6XX_GRAS_SU_POINT_SIZE__SHIFT				0
A6XX_GRAS_SU_POINT_SIZE(float val)2876*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POINT_SIZE(float val)
2877*4882a593Smuzhiyun {
2878*4882a593Smuzhiyun 	return ((((int32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_SIZE__SHIFT) & A6XX_GRAS_SU_POINT_SIZE__MASK;
2879*4882a593Smuzhiyun }
2880*4882a593Smuzhiyun 
2881*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_DEPTH_PLANE_CNTL			0x00008094
2882*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK		0x00000003
2883*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT		0
A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)2884*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)
2885*4882a593Smuzhiyun {
2886*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK;
2887*4882a593Smuzhiyun }
2888*4882a593Smuzhiyun 
2889*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_POLY_OFFSET_SCALE			0x00008095
2890*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK			0xffffffff
2891*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT			0
A6XX_GRAS_SU_POLY_OFFSET_SCALE(float val)2892*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_SCALE(float val)
2893*4882a593Smuzhiyun {
2894*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK;
2895*4882a593Smuzhiyun }
2896*4882a593Smuzhiyun 
2897*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET			0x00008096
2898*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK			0xffffffff
2899*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT			0
A6XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)2900*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
2901*4882a593Smuzhiyun {
2902*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
2903*4882a593Smuzhiyun }
2904*4882a593Smuzhiyun 
2905*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP		0x00008097
2906*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK		0xffffffff
2907*4882a593Smuzhiyun #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT		0
A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)2908*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)
2909*4882a593Smuzhiyun {
2910*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK;
2911*4882a593Smuzhiyun }
2912*4882a593Smuzhiyun 
2913*4882a593Smuzhiyun #define REG_A6XX_GRAS_SU_DEPTH_BUFFER_INFO			0x00008098
2914*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK	0x00000007
2915*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT	0
A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)2916*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
2917*4882a593Smuzhiyun {
2918*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
2919*4882a593Smuzhiyun }
2920*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__MASK		0x00000008
2921*4882a593Smuzhiyun #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__SHIFT		3
A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3(uint32_t val)2922*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3(uint32_t val)
2923*4882a593Smuzhiyun {
2924*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__SHIFT) & A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__MASK;
2925*4882a593Smuzhiyun }
2926*4882a593Smuzhiyun 
2927*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_8099				0x00008099
2928*4882a593Smuzhiyun 
2929*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_809A				0x0000809a
2930*4882a593Smuzhiyun 
2931*4882a593Smuzhiyun #define REG_A6XX_GRAS_VS_LAYER_CNTL				0x0000809b
2932*4882a593Smuzhiyun #define A6XX_GRAS_VS_LAYER_CNTL_WRITES_LAYER			0x00000001
2933*4882a593Smuzhiyun #define A6XX_GRAS_VS_LAYER_CNTL_WRITES_VIEW			0x00000002
2934*4882a593Smuzhiyun 
2935*4882a593Smuzhiyun #define REG_A6XX_GRAS_GS_LAYER_CNTL				0x0000809c
2936*4882a593Smuzhiyun #define A6XX_GRAS_GS_LAYER_CNTL_WRITES_LAYER			0x00000001
2937*4882a593Smuzhiyun #define A6XX_GRAS_GS_LAYER_CNTL_WRITES_VIEW			0x00000002
2938*4882a593Smuzhiyun 
2939*4882a593Smuzhiyun #define REG_A6XX_GRAS_DS_LAYER_CNTL				0x0000809d
2940*4882a593Smuzhiyun #define A6XX_GRAS_DS_LAYER_CNTL_WRITES_LAYER			0x00000001
2941*4882a593Smuzhiyun #define A6XX_GRAS_DS_LAYER_CNTL_WRITES_VIEW			0x00000002
2942*4882a593Smuzhiyun 
2943*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_80A0				0x000080a0
2944*4882a593Smuzhiyun 
2945*4882a593Smuzhiyun #define REG_A6XX_GRAS_BIN_CONTROL				0x000080a1
2946*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_BINW__MASK			0x0000003f
2947*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_BINW__SHIFT			0
A6XX_GRAS_BIN_CONTROL_BINW(uint32_t val)2948*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_BIN_CONTROL_BINW(uint32_t val)
2949*4882a593Smuzhiyun {
2950*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_GRAS_BIN_CONTROL_BINW__SHIFT) & A6XX_GRAS_BIN_CONTROL_BINW__MASK;
2951*4882a593Smuzhiyun }
2952*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_BINH__MASK			0x00007f00
2953*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_BINH__SHIFT			8
A6XX_GRAS_BIN_CONTROL_BINH(uint32_t val)2954*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_BIN_CONTROL_BINH(uint32_t val)
2955*4882a593Smuzhiyun {
2956*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_GRAS_BIN_CONTROL_BINH__SHIFT) & A6XX_GRAS_BIN_CONTROL_BINH__MASK;
2957*4882a593Smuzhiyun }
2958*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_BINNING_PASS			0x00040000
2959*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK19__MASK			0x00080000
2960*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK19__SHIFT			19
A6XX_GRAS_BIN_CONTROL_UNK19(uint32_t val)2961*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_BIN_CONTROL_UNK19(uint32_t val)
2962*4882a593Smuzhiyun {
2963*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_BIN_CONTROL_UNK19__SHIFT) & A6XX_GRAS_BIN_CONTROL_UNK19__MASK;
2964*4882a593Smuzhiyun }
2965*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK20__MASK			0x00100000
2966*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK20__SHIFT			20
A6XX_GRAS_BIN_CONTROL_UNK20(uint32_t val)2967*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_BIN_CONTROL_UNK20(uint32_t val)
2968*4882a593Smuzhiyun {
2969*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_BIN_CONTROL_UNK20__SHIFT) & A6XX_GRAS_BIN_CONTROL_UNK20__MASK;
2970*4882a593Smuzhiyun }
2971*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_USE_VIZ				0x00200000
2972*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK22__MASK			0x0fc00000
2973*4882a593Smuzhiyun #define A6XX_GRAS_BIN_CONTROL_UNK22__SHIFT			22
A6XX_GRAS_BIN_CONTROL_UNK22(uint32_t val)2974*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_BIN_CONTROL_UNK22(uint32_t val)
2975*4882a593Smuzhiyun {
2976*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_BIN_CONTROL_UNK22__SHIFT) & A6XX_GRAS_BIN_CONTROL_UNK22__MASK;
2977*4882a593Smuzhiyun }
2978*4882a593Smuzhiyun 
2979*4882a593Smuzhiyun #define REG_A6XX_GRAS_RAS_MSAA_CNTL				0x000080a2
2980*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
2981*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)2982*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
2983*4882a593Smuzhiyun {
2984*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK;
2985*4882a593Smuzhiyun }
2986*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_UNK2__MASK			0x00000004
2987*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_UNK2__SHIFT			2
A6XX_GRAS_RAS_MSAA_CNTL_UNK2(uint32_t val)2988*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_UNK2(uint32_t val)
2989*4882a593Smuzhiyun {
2990*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_UNK2__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_UNK2__MASK;
2991*4882a593Smuzhiyun }
2992*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_UNK3__MASK			0x00000008
2993*4882a593Smuzhiyun #define A6XX_GRAS_RAS_MSAA_CNTL_UNK3__SHIFT			3
A6XX_GRAS_RAS_MSAA_CNTL_UNK3(uint32_t val)2994*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_UNK3(uint32_t val)
2995*4882a593Smuzhiyun {
2996*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_UNK3__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_UNK3__MASK;
2997*4882a593Smuzhiyun }
2998*4882a593Smuzhiyun 
2999*4882a593Smuzhiyun #define REG_A6XX_GRAS_DEST_MSAA_CNTL				0x000080a3
3000*4882a593Smuzhiyun #define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
3001*4882a593Smuzhiyun #define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)3002*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
3003*4882a593Smuzhiyun {
3004*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK;
3005*4882a593Smuzhiyun }
3006*4882a593Smuzhiyun #define A6XX_GRAS_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
3007*4882a593Smuzhiyun 
3008*4882a593Smuzhiyun #define REG_A6XX_GRAS_SAMPLE_CONFIG				0x000080a4
3009*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_CONFIG_UNK0				0x00000001
3010*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_CONFIG_LOCATION_ENABLE			0x00000002
3011*4882a593Smuzhiyun 
3012*4882a593Smuzhiyun #define REG_A6XX_GRAS_SAMPLE_LOCATION_0				0x000080a5
3013*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
3014*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)3015*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
3016*4882a593Smuzhiyun {
3017*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK;
3018*4882a593Smuzhiyun }
3019*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
3020*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)3021*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
3022*4882a593Smuzhiyun {
3023*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK;
3024*4882a593Smuzhiyun }
3025*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
3026*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)3027*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
3028*4882a593Smuzhiyun {
3029*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK;
3030*4882a593Smuzhiyun }
3031*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
3032*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)3033*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
3034*4882a593Smuzhiyun {
3035*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK;
3036*4882a593Smuzhiyun }
3037*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
3038*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)3039*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
3040*4882a593Smuzhiyun {
3041*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK;
3042*4882a593Smuzhiyun }
3043*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
3044*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)3045*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
3046*4882a593Smuzhiyun {
3047*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK;
3048*4882a593Smuzhiyun }
3049*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
3050*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)3051*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
3052*4882a593Smuzhiyun {
3053*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK;
3054*4882a593Smuzhiyun }
3055*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
3056*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)3057*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
3058*4882a593Smuzhiyun {
3059*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK;
3060*4882a593Smuzhiyun }
3061*4882a593Smuzhiyun 
3062*4882a593Smuzhiyun #define REG_A6XX_GRAS_SAMPLE_LOCATION_1				0x000080a6
3063*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
3064*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)3065*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
3066*4882a593Smuzhiyun {
3067*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK;
3068*4882a593Smuzhiyun }
3069*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
3070*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)3071*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
3072*4882a593Smuzhiyun {
3073*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK;
3074*4882a593Smuzhiyun }
3075*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
3076*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)3077*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
3078*4882a593Smuzhiyun {
3079*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK;
3080*4882a593Smuzhiyun }
3081*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
3082*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)3083*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
3084*4882a593Smuzhiyun {
3085*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK;
3086*4882a593Smuzhiyun }
3087*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
3088*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)3089*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
3090*4882a593Smuzhiyun {
3091*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK;
3092*4882a593Smuzhiyun }
3093*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
3094*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)3095*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
3096*4882a593Smuzhiyun {
3097*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK;
3098*4882a593Smuzhiyun }
3099*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
3100*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)3101*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
3102*4882a593Smuzhiyun {
3103*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK;
3104*4882a593Smuzhiyun }
3105*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
3106*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)3107*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
3108*4882a593Smuzhiyun {
3109*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK;
3110*4882a593Smuzhiyun }
3111*4882a593Smuzhiyun 
3112*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_80AF				0x000080af
3113*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR(uint32_t i0)3114*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR(uint32_t i0) { return 0x000080b0 + 0x2*i0; }
3115*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR_TL(uint32_t i0)3116*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR_TL(uint32_t i0) { return 0x000080b0 + 0x2*i0; }
3117*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK			0x0000ffff
3118*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT			0
A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)3119*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)
3120*4882a593Smuzhiyun {
3121*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK;
3122*4882a593Smuzhiyun }
3123*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK			0xffff0000
3124*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT			16
A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)3125*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)
3126*4882a593Smuzhiyun {
3127*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK;
3128*4882a593Smuzhiyun }
3129*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR_BR(uint32_t i0)3130*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR_BR(uint32_t i0) { return 0x000080b1 + 0x2*i0; }
3131*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK			0x0000ffff
3132*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT			0
A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)3133*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)
3134*4882a593Smuzhiyun {
3135*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK;
3136*4882a593Smuzhiyun }
3137*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK			0xffff0000
3138*4882a593Smuzhiyun #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT			16
A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)3139*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)
3140*4882a593Smuzhiyun {
3141*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK;
3142*4882a593Smuzhiyun }
3143*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR(uint32_t i0)3144*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR(uint32_t i0) { return 0x000080d0 + 0x2*i0; }
3145*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL(uint32_t i0)3146*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL(uint32_t i0) { return 0x000080d0 + 0x2*i0; }
3147*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__MASK		0x0000ffff
3148*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__SHIFT		0
A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X(uint32_t val)3149*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X(uint32_t val)
3150*4882a593Smuzhiyun {
3151*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__MASK;
3152*4882a593Smuzhiyun }
3153*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__MASK		0xffff0000
3154*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__SHIFT		16
A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y(uint32_t val)3155*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y(uint32_t val)
3156*4882a593Smuzhiyun {
3157*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__MASK;
3158*4882a593Smuzhiyun }
3159*4882a593Smuzhiyun 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR(uint32_t i0)3160*4882a593Smuzhiyun static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR(uint32_t i0) { return 0x000080d1 + 0x2*i0; }
3161*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__MASK		0x0000ffff
3162*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__SHIFT		0
A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X(uint32_t val)3163*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X(uint32_t val)
3164*4882a593Smuzhiyun {
3165*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__MASK;
3166*4882a593Smuzhiyun }
3167*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__MASK		0xffff0000
3168*4882a593Smuzhiyun #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__SHIFT		16
A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y(uint32_t val)3169*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y(uint32_t val)
3170*4882a593Smuzhiyun {
3171*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__MASK;
3172*4882a593Smuzhiyun }
3173*4882a593Smuzhiyun 
3174*4882a593Smuzhiyun #define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_TL			0x000080f0
3175*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK			0x00003fff
3176*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT			0
A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)3177*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
3178*4882a593Smuzhiyun {
3179*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
3180*4882a593Smuzhiyun }
3181*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK			0x3fff0000
3182*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT			16
A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)3183*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
3184*4882a593Smuzhiyun {
3185*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
3186*4882a593Smuzhiyun }
3187*4882a593Smuzhiyun 
3188*4882a593Smuzhiyun #define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_BR			0x000080f1
3189*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK			0x00003fff
3190*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT			0
A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)3191*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
3192*4882a593Smuzhiyun {
3193*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
3194*4882a593Smuzhiyun }
3195*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK			0x3fff0000
3196*4882a593Smuzhiyun #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT			16
A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)3197*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
3198*4882a593Smuzhiyun {
3199*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
3200*4882a593Smuzhiyun }
3201*4882a593Smuzhiyun 
3202*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_CNTL					0x00008100
3203*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_ENABLE				0x00000001
3204*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_LRZ_WRITE				0x00000002
3205*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_GREATER				0x00000004
3206*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_FC_ENABLE				0x00000008
3207*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_Z_TEST_ENABLE			0x00000010
3208*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_UNK5__MASK				0x000003e0
3209*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_CNTL_UNK5__SHIFT				5
A6XX_GRAS_LRZ_CNTL_UNK5(uint32_t val)3210*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_LRZ_CNTL_UNK5(uint32_t val)
3211*4882a593Smuzhiyun {
3212*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_LRZ_CNTL_UNK5__SHIFT) & A6XX_GRAS_LRZ_CNTL_UNK5__MASK;
3213*4882a593Smuzhiyun }
3214*4882a593Smuzhiyun 
3215*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_8101				0x00008101
3216*4882a593Smuzhiyun 
3217*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_BLIT_INFO				0x00008102
3218*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__MASK		0x000000ff
3219*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__SHIFT		0
A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT(enum a6xx_format val)3220*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT(enum a6xx_format val)
3221*4882a593Smuzhiyun {
3222*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_INFO_COLOR_FORMAT__MASK;
3223*4882a593Smuzhiyun }
3224*4882a593Smuzhiyun 
3225*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_BUFFER_BASE_LO			0x00008103
3226*4882a593Smuzhiyun 
3227*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_BUFFER_BASE_HI			0x00008104
3228*4882a593Smuzhiyun 
3229*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_BUFFER_BASE				0x00008103
3230*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_BASE__MASK				0xffffffff
3231*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_BASE__SHIFT			0
A6XX_GRAS_LRZ_BUFFER_BASE(uint32_t val)3232*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_LRZ_BUFFER_BASE(uint32_t val)
3233*4882a593Smuzhiyun {
3234*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_LRZ_BUFFER_BASE__SHIFT) & A6XX_GRAS_LRZ_BUFFER_BASE__MASK;
3235*4882a593Smuzhiyun }
3236*4882a593Smuzhiyun 
3237*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_BUFFER_PITCH				0x00008105
3238*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK			0x000000ff
3239*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT			0
A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH(uint32_t val)3240*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH(uint32_t val)
3241*4882a593Smuzhiyun {
3242*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK;
3243*4882a593Smuzhiyun }
3244*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK		0x1ffffc00
3245*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT		10
A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)3246*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
3247*4882a593Smuzhiyun {
3248*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK;
3249*4882a593Smuzhiyun }
3250*4882a593Smuzhiyun 
3251*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_LO		0x00008106
3252*4882a593Smuzhiyun 
3253*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE_HI		0x00008107
3254*4882a593Smuzhiyun 
3255*4882a593Smuzhiyun #define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE		0x00008106
3256*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__MASK		0xffffffff
3257*4882a593Smuzhiyun #define A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__SHIFT		0
A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE(uint32_t val)3258*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE(uint32_t val)
3259*4882a593Smuzhiyun {
3260*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__SHIFT) & A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__MASK;
3261*4882a593Smuzhiyun }
3262*4882a593Smuzhiyun 
3263*4882a593Smuzhiyun #define REG_A6XX_GRAS_SAMPLE_CNTL				0x00008109
3264*4882a593Smuzhiyun #define A6XX_GRAS_SAMPLE_CNTL_PER_SAMP_MODE			0x00000001
3265*4882a593Smuzhiyun 
3266*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_810A				0x0000810a
3267*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK0__MASK			0x000007ff
3268*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK0__SHIFT			0
A6XX_GRAS_UNKNOWN_810A_UNK0(uint32_t val)3269*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_UNKNOWN_810A_UNK0(uint32_t val)
3270*4882a593Smuzhiyun {
3271*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_UNKNOWN_810A_UNK0__SHIFT) & A6XX_GRAS_UNKNOWN_810A_UNK0__MASK;
3272*4882a593Smuzhiyun }
3273*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK16__MASK			0x07ff0000
3274*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK16__SHIFT			16
A6XX_GRAS_UNKNOWN_810A_UNK16(uint32_t val)3275*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_UNKNOWN_810A_UNK16(uint32_t val)
3276*4882a593Smuzhiyun {
3277*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_UNKNOWN_810A_UNK16__SHIFT) & A6XX_GRAS_UNKNOWN_810A_UNK16__MASK;
3278*4882a593Smuzhiyun }
3279*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK28__MASK			0xf0000000
3280*4882a593Smuzhiyun #define A6XX_GRAS_UNKNOWN_810A_UNK28__SHIFT			28
A6XX_GRAS_UNKNOWN_810A_UNK28(uint32_t val)3281*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_UNKNOWN_810A_UNK28(uint32_t val)
3282*4882a593Smuzhiyun {
3283*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_UNKNOWN_810A_UNK28__SHIFT) & A6XX_GRAS_UNKNOWN_810A_UNK28__MASK;
3284*4882a593Smuzhiyun }
3285*4882a593Smuzhiyun 
3286*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_8110				0x00008110
3287*4882a593Smuzhiyun 
3288*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_BLIT_CNTL				0x00008400
3289*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK			0x00000007
3290*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT			0
A6XX_GRAS_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)3291*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)
3292*4882a593Smuzhiyun {
3293*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK;
3294*4882a593Smuzhiyun }
3295*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK3__MASK			0x00000078
3296*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK3__SHIFT			3
A6XX_GRAS_2D_BLIT_CNTL_UNK3(uint32_t val)3297*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK3(uint32_t val)
3298*4882a593Smuzhiyun {
3299*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK3__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK3__MASK;
3300*4882a593Smuzhiyun }
3301*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_SOLID_COLOR			0x00000080
3302*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK		0x0000ff00
3303*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT		8
A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)3304*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)
3305*4882a593Smuzhiyun {
3306*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK;
3307*4882a593Smuzhiyun }
3308*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_SCISSOR				0x00010000
3309*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK17__MASK			0x00060000
3310*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK17__SHIFT			17
A6XX_GRAS_2D_BLIT_CNTL_UNK17(uint32_t val)3311*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK17(uint32_t val)
3312*4882a593Smuzhiyun {
3313*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK17__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK17__MASK;
3314*4882a593Smuzhiyun }
3315*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_D24S8				0x00080000
3316*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK			0x00f00000
3317*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT			20
A6XX_GRAS_2D_BLIT_CNTL_MASK(uint32_t val)3318*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_MASK(uint32_t val)
3319*4882a593Smuzhiyun {
3320*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK;
3321*4882a593Smuzhiyun }
3322*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK			0x1f000000
3323*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT			24
A6XX_GRAS_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)3324*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)
3325*4882a593Smuzhiyun {
3326*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK;
3327*4882a593Smuzhiyun }
3328*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK29__MASK			0x20000000
3329*4882a593Smuzhiyun #define A6XX_GRAS_2D_BLIT_CNTL_UNK29__SHIFT			29
A6XX_GRAS_2D_BLIT_CNTL_UNK29(uint32_t val)3330*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK29(uint32_t val)
3331*4882a593Smuzhiyun {
3332*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK29__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK29__MASK;
3333*4882a593Smuzhiyun }
3334*4882a593Smuzhiyun 
3335*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_SRC_TL_X				0x00008401
3336*4882a593Smuzhiyun 
3337*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_SRC_BR_X				0x00008402
3338*4882a593Smuzhiyun 
3339*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_SRC_TL_Y				0x00008403
3340*4882a593Smuzhiyun 
3341*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_SRC_BR_Y				0x00008404
3342*4882a593Smuzhiyun 
3343*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_DST_TL					0x00008405
3344*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_TL_X__MASK				0x00003fff
3345*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_TL_X__SHIFT				0
A6XX_GRAS_2D_DST_TL_X(uint32_t val)3346*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_DST_TL_X(uint32_t val)
3347*4882a593Smuzhiyun {
3348*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_DST_TL_X__SHIFT) & A6XX_GRAS_2D_DST_TL_X__MASK;
3349*4882a593Smuzhiyun }
3350*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_TL_Y__MASK				0x3fff0000
3351*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_TL_Y__SHIFT				16
A6XX_GRAS_2D_DST_TL_Y(uint32_t val)3352*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_DST_TL_Y(uint32_t val)
3353*4882a593Smuzhiyun {
3354*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_DST_TL_Y__SHIFT) & A6XX_GRAS_2D_DST_TL_Y__MASK;
3355*4882a593Smuzhiyun }
3356*4882a593Smuzhiyun 
3357*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_DST_BR					0x00008406
3358*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_BR_X__MASK				0x00003fff
3359*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_BR_X__SHIFT				0
A6XX_GRAS_2D_DST_BR_X(uint32_t val)3360*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_DST_BR_X(uint32_t val)
3361*4882a593Smuzhiyun {
3362*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_DST_BR_X__SHIFT) & A6XX_GRAS_2D_DST_BR_X__MASK;
3363*4882a593Smuzhiyun }
3364*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_BR_Y__MASK				0x3fff0000
3365*4882a593Smuzhiyun #define A6XX_GRAS_2D_DST_BR_Y__SHIFT				16
A6XX_GRAS_2D_DST_BR_Y(uint32_t val)3366*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_DST_BR_Y(uint32_t val)
3367*4882a593Smuzhiyun {
3368*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_DST_BR_Y__SHIFT) & A6XX_GRAS_2D_DST_BR_Y__MASK;
3369*4882a593Smuzhiyun }
3370*4882a593Smuzhiyun 
3371*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_UNKNOWN_8407				0x00008407
3372*4882a593Smuzhiyun 
3373*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_UNKNOWN_8408				0x00008408
3374*4882a593Smuzhiyun 
3375*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_UNKNOWN_8409				0x00008409
3376*4882a593Smuzhiyun 
3377*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_RESOLVE_CNTL_1				0x0000840a
3378*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_1_X__MASK			0x00003fff
3379*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_1_X__SHIFT			0
A6XX_GRAS_2D_RESOLVE_CNTL_1_X(uint32_t val)3380*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_1_X(uint32_t val)
3381*4882a593Smuzhiyun {
3382*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_1_X__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_1_X__MASK;
3383*4882a593Smuzhiyun }
3384*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__MASK			0x3fff0000
3385*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__SHIFT			16
A6XX_GRAS_2D_RESOLVE_CNTL_1_Y(uint32_t val)3386*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_1_Y(uint32_t val)
3387*4882a593Smuzhiyun {
3388*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__MASK;
3389*4882a593Smuzhiyun }
3390*4882a593Smuzhiyun 
3391*4882a593Smuzhiyun #define REG_A6XX_GRAS_2D_RESOLVE_CNTL_2				0x0000840b
3392*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_2_X__MASK			0x00003fff
3393*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_2_X__SHIFT			0
A6XX_GRAS_2D_RESOLVE_CNTL_2_X(uint32_t val)3394*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_2_X(uint32_t val)
3395*4882a593Smuzhiyun {
3396*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_2_X__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_2_X__MASK;
3397*4882a593Smuzhiyun }
3398*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__MASK			0x3fff0000
3399*4882a593Smuzhiyun #define A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__SHIFT			16
A6XX_GRAS_2D_RESOLVE_CNTL_2_Y(uint32_t val)3400*4882a593Smuzhiyun static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_2_Y(uint32_t val)
3401*4882a593Smuzhiyun {
3402*4882a593Smuzhiyun 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__MASK;
3403*4882a593Smuzhiyun }
3404*4882a593Smuzhiyun 
3405*4882a593Smuzhiyun #define REG_A6XX_GRAS_UNKNOWN_8600				0x00008600
3406*4882a593Smuzhiyun 
3407*4882a593Smuzhiyun #define REG_A6XX_GRAS_ADDR_MODE_CNTL				0x00008601
3408*4882a593Smuzhiyun 
3409*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_TSE_SEL_0				0x00008610
3410*4882a593Smuzhiyun 
3411*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_TSE_SEL_1				0x00008611
3412*4882a593Smuzhiyun 
3413*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_TSE_SEL_2				0x00008612
3414*4882a593Smuzhiyun 
3415*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_TSE_SEL_3				0x00008613
3416*4882a593Smuzhiyun 
3417*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_RAS_SEL_0				0x00008614
3418*4882a593Smuzhiyun 
3419*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_RAS_SEL_1				0x00008615
3420*4882a593Smuzhiyun 
3421*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_RAS_SEL_2				0x00008616
3422*4882a593Smuzhiyun 
3423*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_RAS_SEL_3				0x00008617
3424*4882a593Smuzhiyun 
3425*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_0				0x00008618
3426*4882a593Smuzhiyun 
3427*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_1				0x00008619
3428*4882a593Smuzhiyun 
3429*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_2				0x0000861a
3430*4882a593Smuzhiyun 
3431*4882a593Smuzhiyun #define REG_A6XX_GRAS_PERFCTR_LRZ_SEL_3				0x0000861b
3432*4882a593Smuzhiyun 
3433*4882a593Smuzhiyun #define REG_A6XX_RB_BIN_CONTROL					0x00008800
3434*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_BINW__MASK				0x0000003f
3435*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_BINW__SHIFT				0
A6XX_RB_BIN_CONTROL_BINW(uint32_t val)3436*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL_BINW(uint32_t val)
3437*4882a593Smuzhiyun {
3438*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_RB_BIN_CONTROL_BINW__SHIFT) & A6XX_RB_BIN_CONTROL_BINW__MASK;
3439*4882a593Smuzhiyun }
3440*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_BINH__MASK				0x00007f00
3441*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_BINH__SHIFT				8
A6XX_RB_BIN_CONTROL_BINH(uint32_t val)3442*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL_BINH(uint32_t val)
3443*4882a593Smuzhiyun {
3444*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_RB_BIN_CONTROL_BINH__SHIFT) & A6XX_RB_BIN_CONTROL_BINH__MASK;
3445*4882a593Smuzhiyun }
3446*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_BINNING_PASS			0x00040000
3447*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK19__MASK				0x00080000
3448*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK19__SHIFT			19
A6XX_RB_BIN_CONTROL_UNK19(uint32_t val)3449*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL_UNK19(uint32_t val)
3450*4882a593Smuzhiyun {
3451*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BIN_CONTROL_UNK19__SHIFT) & A6XX_RB_BIN_CONTROL_UNK19__MASK;
3452*4882a593Smuzhiyun }
3453*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK20__MASK				0x00100000
3454*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK20__SHIFT			20
A6XX_RB_BIN_CONTROL_UNK20(uint32_t val)3455*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL_UNK20(uint32_t val)
3456*4882a593Smuzhiyun {
3457*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BIN_CONTROL_UNK20__SHIFT) & A6XX_RB_BIN_CONTROL_UNK20__MASK;
3458*4882a593Smuzhiyun }
3459*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_USE_VIZ				0x00200000
3460*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK22__MASK				0x07c00000
3461*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL_UNK22__SHIFT			22
A6XX_RB_BIN_CONTROL_UNK22(uint32_t val)3462*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL_UNK22(uint32_t val)
3463*4882a593Smuzhiyun {
3464*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BIN_CONTROL_UNK22__SHIFT) & A6XX_RB_BIN_CONTROL_UNK22__MASK;
3465*4882a593Smuzhiyun }
3466*4882a593Smuzhiyun 
3467*4882a593Smuzhiyun #define REG_A6XX_RB_RENDER_CNTL					0x00008801
3468*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK3				0x00000008
3469*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK4				0x00000010
3470*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK5__MASK				0x00000060
3471*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK5__SHIFT				5
A6XX_RB_RENDER_CNTL_UNK5(uint32_t val)3472*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_CNTL_UNK5(uint32_t val)
3473*4882a593Smuzhiyun {
3474*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_CNTL_UNK5__SHIFT) & A6XX_RB_RENDER_CNTL_UNK5__MASK;
3475*4882a593Smuzhiyun }
3476*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_BINNING				0x00000080
3477*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK8__MASK				0x00001f00
3478*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_UNK8__SHIFT				8
A6XX_RB_RENDER_CNTL_UNK8(uint32_t val)3479*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_CNTL_UNK8(uint32_t val)
3480*4882a593Smuzhiyun {
3481*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_CNTL_UNK8__SHIFT) & A6XX_RB_RENDER_CNTL_UNK8__MASK;
3482*4882a593Smuzhiyun }
3483*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_FLAG_DEPTH				0x00004000
3484*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_FLAG_MRTS__MASK			0x00ff0000
3485*4882a593Smuzhiyun #define A6XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT			16
A6XX_RB_RENDER_CNTL_FLAG_MRTS(uint32_t val)3486*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_CNTL_FLAG_MRTS(uint32_t val)
3487*4882a593Smuzhiyun {
3488*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT) & A6XX_RB_RENDER_CNTL_FLAG_MRTS__MASK;
3489*4882a593Smuzhiyun }
3490*4882a593Smuzhiyun 
3491*4882a593Smuzhiyun #define REG_A6XX_RB_RAS_MSAA_CNTL				0x00008802
3492*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
3493*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)3494*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
3495*4882a593Smuzhiyun {
3496*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK;
3497*4882a593Smuzhiyun }
3498*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_UNK2__MASK			0x00000004
3499*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_UNK2__SHIFT			2
A6XX_RB_RAS_MSAA_CNTL_UNK2(uint32_t val)3500*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_UNK2(uint32_t val)
3501*4882a593Smuzhiyun {
3502*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_UNK2__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_UNK2__MASK;
3503*4882a593Smuzhiyun }
3504*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_UNK3__MASK			0x00000008
3505*4882a593Smuzhiyun #define A6XX_RB_RAS_MSAA_CNTL_UNK3__SHIFT			3
A6XX_RB_RAS_MSAA_CNTL_UNK3(uint32_t val)3506*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_UNK3(uint32_t val)
3507*4882a593Smuzhiyun {
3508*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_UNK3__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_UNK3__MASK;
3509*4882a593Smuzhiyun }
3510*4882a593Smuzhiyun 
3511*4882a593Smuzhiyun #define REG_A6XX_RB_DEST_MSAA_CNTL				0x00008803
3512*4882a593Smuzhiyun #define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
3513*4882a593Smuzhiyun #define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)3514*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
3515*4882a593Smuzhiyun {
3516*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK;
3517*4882a593Smuzhiyun }
3518*4882a593Smuzhiyun #define A6XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
3519*4882a593Smuzhiyun 
3520*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_CONFIG				0x00008804
3521*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_CONFIG_UNK0				0x00000001
3522*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_CONFIG_LOCATION_ENABLE			0x00000002
3523*4882a593Smuzhiyun 
3524*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_LOCATION_0				0x00008805
3525*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
3526*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)3527*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
3528*4882a593Smuzhiyun {
3529*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK;
3530*4882a593Smuzhiyun }
3531*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
3532*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)3533*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
3534*4882a593Smuzhiyun {
3535*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK;
3536*4882a593Smuzhiyun }
3537*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
3538*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)3539*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
3540*4882a593Smuzhiyun {
3541*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK;
3542*4882a593Smuzhiyun }
3543*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
3544*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)3545*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
3546*4882a593Smuzhiyun {
3547*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK;
3548*4882a593Smuzhiyun }
3549*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
3550*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)3551*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
3552*4882a593Smuzhiyun {
3553*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK;
3554*4882a593Smuzhiyun }
3555*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
3556*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)3557*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
3558*4882a593Smuzhiyun {
3559*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK;
3560*4882a593Smuzhiyun }
3561*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
3562*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)3563*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
3564*4882a593Smuzhiyun {
3565*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK;
3566*4882a593Smuzhiyun }
3567*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
3568*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)3569*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
3570*4882a593Smuzhiyun {
3571*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK;
3572*4882a593Smuzhiyun }
3573*4882a593Smuzhiyun 
3574*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_LOCATION_1				0x00008806
3575*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
3576*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)3577*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
3578*4882a593Smuzhiyun {
3579*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK;
3580*4882a593Smuzhiyun }
3581*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
3582*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)3583*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
3584*4882a593Smuzhiyun {
3585*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK;
3586*4882a593Smuzhiyun }
3587*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
3588*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)3589*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
3590*4882a593Smuzhiyun {
3591*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK;
3592*4882a593Smuzhiyun }
3593*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
3594*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)3595*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
3596*4882a593Smuzhiyun {
3597*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK;
3598*4882a593Smuzhiyun }
3599*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
3600*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)3601*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
3602*4882a593Smuzhiyun {
3603*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK;
3604*4882a593Smuzhiyun }
3605*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
3606*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)3607*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
3608*4882a593Smuzhiyun {
3609*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK;
3610*4882a593Smuzhiyun }
3611*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
3612*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)3613*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
3614*4882a593Smuzhiyun {
3615*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK;
3616*4882a593Smuzhiyun }
3617*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
3618*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)3619*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
3620*4882a593Smuzhiyun {
3621*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK;
3622*4882a593Smuzhiyun }
3623*4882a593Smuzhiyun 
3624*4882a593Smuzhiyun #define REG_A6XX_RB_RENDER_CONTROL0				0x00008809
3625*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_PIXEL			0x00000001
3626*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_CENTROID		0x00000002
3627*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_SAMPLE			0x00000004
3628*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_SIZE				0x00000008
3629*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_UNK4				0x00000010
3630*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_SIZE_PERSAMP			0x00000020
3631*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK		0x000003c0
3632*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT		6
A6XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val)3633*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val)
3634*4882a593Smuzhiyun {
3635*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT) & A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK;
3636*4882a593Smuzhiyun }
3637*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL0_UNK10				0x00000400
3638*4882a593Smuzhiyun 
3639*4882a593Smuzhiyun #define REG_A6XX_RB_RENDER_CONTROL1				0x0000880a
3640*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_SAMPLEMASK			0x00000001
3641*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_UNK1				0x00000002
3642*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_FACENESS			0x00000004
3643*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_SAMPLEID			0x00000008
3644*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_UNK4				0x00000010
3645*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_UNK5				0x00000020
3646*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_SIZE				0x00000040
3647*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_UNK7				0x00000080
3648*4882a593Smuzhiyun #define A6XX_RB_RENDER_CONTROL1_UNK8				0x00000100
3649*4882a593Smuzhiyun 
3650*4882a593Smuzhiyun #define REG_A6XX_RB_FS_OUTPUT_CNTL0				0x0000880b
3651*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE		0x00000001
3652*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_Z			0x00000002
3653*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_SAMPMASK		0x00000004
3654*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_STENCILREF		0x00000008
3655*4882a593Smuzhiyun 
3656*4882a593Smuzhiyun #define REG_A6XX_RB_FS_OUTPUT_CNTL1				0x0000880c
3657*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK			0x0000000f
3658*4882a593Smuzhiyun #define A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT			0
A6XX_RB_FS_OUTPUT_CNTL1_MRT(uint32_t val)3659*4882a593Smuzhiyun static inline uint32_t A6XX_RB_FS_OUTPUT_CNTL1_MRT(uint32_t val)
3660*4882a593Smuzhiyun {
3661*4882a593Smuzhiyun 	return ((val) << A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK;
3662*4882a593Smuzhiyun }
3663*4882a593Smuzhiyun 
3664*4882a593Smuzhiyun #define REG_A6XX_RB_RENDER_COMPONENTS				0x0000880d
3665*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT0__MASK			0x0000000f
3666*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT			0
A6XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)3667*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)
3668*4882a593Smuzhiyun {
3669*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT0__MASK;
3670*4882a593Smuzhiyun }
3671*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT1__MASK			0x000000f0
3672*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT			4
A6XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)3673*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)
3674*4882a593Smuzhiyun {
3675*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT1__MASK;
3676*4882a593Smuzhiyun }
3677*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT2__MASK			0x00000f00
3678*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT			8
A6XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)3679*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)
3680*4882a593Smuzhiyun {
3681*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT2__MASK;
3682*4882a593Smuzhiyun }
3683*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT3__MASK			0x0000f000
3684*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT			12
A6XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)3685*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)
3686*4882a593Smuzhiyun {
3687*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT3__MASK;
3688*4882a593Smuzhiyun }
3689*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT4__MASK			0x000f0000
3690*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT			16
A6XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)3691*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)
3692*4882a593Smuzhiyun {
3693*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT4__MASK;
3694*4882a593Smuzhiyun }
3695*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT5__MASK			0x00f00000
3696*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT			20
A6XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)3697*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)
3698*4882a593Smuzhiyun {
3699*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT5__MASK;
3700*4882a593Smuzhiyun }
3701*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT6__MASK			0x0f000000
3702*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT			24
A6XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)3703*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)
3704*4882a593Smuzhiyun {
3705*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT6__MASK;
3706*4882a593Smuzhiyun }
3707*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT7__MASK			0xf0000000
3708*4882a593Smuzhiyun #define A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT			28
A6XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)3709*4882a593Smuzhiyun static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)
3710*4882a593Smuzhiyun {
3711*4882a593Smuzhiyun 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT7__MASK;
3712*4882a593Smuzhiyun }
3713*4882a593Smuzhiyun 
3714*4882a593Smuzhiyun #define REG_A6XX_RB_DITHER_CNTL					0x0000880e
3715*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK		0x00000003
3716*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT		0
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0(enum adreno_rb_dither_mode val)3717*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0(enum adreno_rb_dither_mode val)
3718*4882a593Smuzhiyun {
3719*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK;
3720*4882a593Smuzhiyun }
3721*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK		0x0000000c
3722*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT		2
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1(enum adreno_rb_dither_mode val)3723*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1(enum adreno_rb_dither_mode val)
3724*4882a593Smuzhiyun {
3725*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK;
3726*4882a593Smuzhiyun }
3727*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK		0x00000030
3728*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT		4
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2(enum adreno_rb_dither_mode val)3729*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2(enum adreno_rb_dither_mode val)
3730*4882a593Smuzhiyun {
3731*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK;
3732*4882a593Smuzhiyun }
3733*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK		0x000000c0
3734*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT		6
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3(enum adreno_rb_dither_mode val)3735*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3(enum adreno_rb_dither_mode val)
3736*4882a593Smuzhiyun {
3737*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK;
3738*4882a593Smuzhiyun }
3739*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK		0x00000300
3740*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT		8
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4(enum adreno_rb_dither_mode val)3741*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4(enum adreno_rb_dither_mode val)
3742*4882a593Smuzhiyun {
3743*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK;
3744*4882a593Smuzhiyun }
3745*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK		0x00000c00
3746*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT		10
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5(enum adreno_rb_dither_mode val)3747*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5(enum adreno_rb_dither_mode val)
3748*4882a593Smuzhiyun {
3749*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK;
3750*4882a593Smuzhiyun }
3751*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK		0x00001000
3752*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT		12
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6(enum adreno_rb_dither_mode val)3753*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6(enum adreno_rb_dither_mode val)
3754*4882a593Smuzhiyun {
3755*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK;
3756*4882a593Smuzhiyun }
3757*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK		0x0000c000
3758*4882a593Smuzhiyun #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT		14
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dither_mode val)3759*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dither_mode val)
3760*4882a593Smuzhiyun {
3761*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK;
3762*4882a593Smuzhiyun }
3763*4882a593Smuzhiyun 
3764*4882a593Smuzhiyun #define REG_A6XX_RB_SRGB_CNTL					0x0000880f
3765*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT0				0x00000001
3766*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT1				0x00000002
3767*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT2				0x00000004
3768*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT3				0x00000008
3769*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT4				0x00000010
3770*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT5				0x00000020
3771*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT6				0x00000040
3772*4882a593Smuzhiyun #define A6XX_RB_SRGB_CNTL_SRGB_MRT7				0x00000080
3773*4882a593Smuzhiyun 
3774*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_CNTL					0x00008810
3775*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_CNTL_PER_SAMP_MODE			0x00000001
3776*4882a593Smuzhiyun 
3777*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8811				0x00008811
3778*4882a593Smuzhiyun 
3779*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8818				0x00008818
3780*4882a593Smuzhiyun 
3781*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8819				0x00008819
3782*4882a593Smuzhiyun 
3783*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_881A				0x0000881a
3784*4882a593Smuzhiyun 
3785*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_881B				0x0000881b
3786*4882a593Smuzhiyun 
3787*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_881C				0x0000881c
3788*4882a593Smuzhiyun 
3789*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_881D				0x0000881d
3790*4882a593Smuzhiyun 
3791*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_881E				0x0000881e
3792*4882a593Smuzhiyun 
REG_A6XX_RB_MRT(uint32_t i0)3793*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT(uint32_t i0) { return 0x00008820 + 0x8*i0; }
3794*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_CONTROL(uint32_t i0)3795*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_CONTROL(uint32_t i0) { return 0x00008820 + 0x8*i0; }
3796*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_BLEND				0x00000001
3797*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_BLEND2				0x00000002
3798*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_ROP_ENABLE				0x00000004
3799*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_ROP_CODE__MASK			0x00000078
3800*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT			3
A6XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)3801*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)
3802*4882a593Smuzhiyun {
3803*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT) & A6XX_RB_MRT_CONTROL_ROP_CODE__MASK;
3804*4882a593Smuzhiyun }
3805*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK		0x00000780
3806*4882a593Smuzhiyun #define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT		7
A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)3807*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
3808*4882a593Smuzhiyun {
3809*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
3810*4882a593Smuzhiyun }
3811*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BLEND_CONTROL(uint32_t i0)3812*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x00008821 + 0x8*i0; }
3813*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK		0x0000001f
3814*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT		0
A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)3815*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
3816*4882a593Smuzhiyun {
3817*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
3818*4882a593Smuzhiyun }
3819*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK	0x000000e0
3820*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT	5
A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)3821*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
3822*4882a593Smuzhiyun {
3823*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
3824*4882a593Smuzhiyun }
3825*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK		0x00001f00
3826*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT	8
A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)3827*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
3828*4882a593Smuzhiyun {
3829*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
3830*4882a593Smuzhiyun }
3831*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK	0x001f0000
3832*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT	16
A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)3833*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
3834*4882a593Smuzhiyun {
3835*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
3836*4882a593Smuzhiyun }
3837*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK	0x00e00000
3838*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT	21
A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)3839*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
3840*4882a593Smuzhiyun {
3841*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
3842*4882a593Smuzhiyun }
3843*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK	0x1f000000
3844*4882a593Smuzhiyun #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT	24
A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)3845*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
3846*4882a593Smuzhiyun {
3847*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
3848*4882a593Smuzhiyun }
3849*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BUF_INFO(uint32_t i0)3850*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x00008822 + 0x8*i0; }
3851*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK			0x000000ff
3852*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT		0
A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_format val)3853*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_format val)
3854*4882a593Smuzhiyun {
3855*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
3856*4882a593Smuzhiyun }
3857*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK		0x00000300
3858*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT		8
A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a6xx_tile_mode val)3859*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a6xx_tile_mode val)
3860*4882a593Smuzhiyun {
3861*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
3862*4882a593Smuzhiyun }
3863*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_UNK10__MASK			0x00000400
3864*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_UNK10__SHIFT			10
A6XX_RB_MRT_BUF_INFO_UNK10(uint32_t val)3865*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BUF_INFO_UNK10(uint32_t val)
3866*4882a593Smuzhiyun {
3867*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BUF_INFO_UNK10__SHIFT) & A6XX_RB_MRT_BUF_INFO_UNK10__MASK;
3868*4882a593Smuzhiyun }
3869*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK			0x00006000
3870*4882a593Smuzhiyun #define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT			13
A6XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)3871*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
3872*4882a593Smuzhiyun {
3873*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
3874*4882a593Smuzhiyun }
3875*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_PITCH(uint32_t i0)3876*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_PITCH(uint32_t i0) { return 0x00008823 + 0x8*i0; }
3877*4882a593Smuzhiyun #define A6XX_RB_MRT_PITCH__MASK					0x0000ffff
3878*4882a593Smuzhiyun #define A6XX_RB_MRT_PITCH__SHIFT				0
A6XX_RB_MRT_PITCH(uint32_t val)3879*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_PITCH(uint32_t val)
3880*4882a593Smuzhiyun {
3881*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_MRT_PITCH__SHIFT) & A6XX_RB_MRT_PITCH__MASK;
3882*4882a593Smuzhiyun }
3883*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_ARRAY_PITCH(uint32_t i0)3884*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_ARRAY_PITCH(uint32_t i0) { return 0x00008824 + 0x8*i0; }
3885*4882a593Smuzhiyun #define A6XX_RB_MRT_ARRAY_PITCH__MASK				0x1fffffff
3886*4882a593Smuzhiyun #define A6XX_RB_MRT_ARRAY_PITCH__SHIFT				0
A6XX_RB_MRT_ARRAY_PITCH(uint32_t val)3887*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_ARRAY_PITCH(uint32_t val)
3888*4882a593Smuzhiyun {
3889*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_MRT_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_ARRAY_PITCH__MASK;
3890*4882a593Smuzhiyun }
3891*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BASE_LO(uint32_t i0)3892*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BASE_LO(uint32_t i0) { return 0x00008825 + 0x8*i0; }
3893*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BASE_HI(uint32_t i0)3894*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BASE_HI(uint32_t i0) { return 0x00008826 + 0x8*i0; }
3895*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BASE(uint32_t i0)3896*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BASE(uint32_t i0) { return 0x00008825 + 0x8*i0; }
3897*4882a593Smuzhiyun #define A6XX_RB_MRT_BASE__MASK					0xffffffff
3898*4882a593Smuzhiyun #define A6XX_RB_MRT_BASE__SHIFT					0
A6XX_RB_MRT_BASE(uint32_t val)3899*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BASE(uint32_t val)
3900*4882a593Smuzhiyun {
3901*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_BASE__SHIFT) & A6XX_RB_MRT_BASE__MASK;
3902*4882a593Smuzhiyun }
3903*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_BASE_GMEM(uint32_t i0)3904*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_BASE_GMEM(uint32_t i0) { return 0x00008827 + 0x8*i0; }
3905*4882a593Smuzhiyun #define A6XX_RB_MRT_BASE_GMEM__MASK				0xfffff000
3906*4882a593Smuzhiyun #define A6XX_RB_MRT_BASE_GMEM__SHIFT				12
A6XX_RB_MRT_BASE_GMEM(uint32_t val)3907*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_BASE_GMEM(uint32_t val)
3908*4882a593Smuzhiyun {
3909*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_RB_MRT_BASE_GMEM__SHIFT) & A6XX_RB_MRT_BASE_GMEM__MASK;
3910*4882a593Smuzhiyun }
3911*4882a593Smuzhiyun 
3912*4882a593Smuzhiyun #define REG_A6XX_RB_BLEND_RED_F32				0x00008860
3913*4882a593Smuzhiyun #define A6XX_RB_BLEND_RED_F32__MASK				0xffffffff
3914*4882a593Smuzhiyun #define A6XX_RB_BLEND_RED_F32__SHIFT				0
A6XX_RB_BLEND_RED_F32(float val)3915*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_RED_F32(float val)
3916*4882a593Smuzhiyun {
3917*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_BLEND_RED_F32__SHIFT) & A6XX_RB_BLEND_RED_F32__MASK;
3918*4882a593Smuzhiyun }
3919*4882a593Smuzhiyun 
3920*4882a593Smuzhiyun #define REG_A6XX_RB_BLEND_GREEN_F32				0x00008861
3921*4882a593Smuzhiyun #define A6XX_RB_BLEND_GREEN_F32__MASK				0xffffffff
3922*4882a593Smuzhiyun #define A6XX_RB_BLEND_GREEN_F32__SHIFT				0
A6XX_RB_BLEND_GREEN_F32(float val)3923*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_GREEN_F32(float val)
3924*4882a593Smuzhiyun {
3925*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_BLEND_GREEN_F32__SHIFT) & A6XX_RB_BLEND_GREEN_F32__MASK;
3926*4882a593Smuzhiyun }
3927*4882a593Smuzhiyun 
3928*4882a593Smuzhiyun #define REG_A6XX_RB_BLEND_BLUE_F32				0x00008862
3929*4882a593Smuzhiyun #define A6XX_RB_BLEND_BLUE_F32__MASK				0xffffffff
3930*4882a593Smuzhiyun #define A6XX_RB_BLEND_BLUE_F32__SHIFT				0
A6XX_RB_BLEND_BLUE_F32(float val)3931*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_BLUE_F32(float val)
3932*4882a593Smuzhiyun {
3933*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_BLEND_BLUE_F32__SHIFT) & A6XX_RB_BLEND_BLUE_F32__MASK;
3934*4882a593Smuzhiyun }
3935*4882a593Smuzhiyun 
3936*4882a593Smuzhiyun #define REG_A6XX_RB_BLEND_ALPHA_F32				0x00008863
3937*4882a593Smuzhiyun #define A6XX_RB_BLEND_ALPHA_F32__MASK				0xffffffff
3938*4882a593Smuzhiyun #define A6XX_RB_BLEND_ALPHA_F32__SHIFT				0
A6XX_RB_BLEND_ALPHA_F32(float val)3939*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_ALPHA_F32(float val)
3940*4882a593Smuzhiyun {
3941*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_BLEND_ALPHA_F32__SHIFT) & A6XX_RB_BLEND_ALPHA_F32__MASK;
3942*4882a593Smuzhiyun }
3943*4882a593Smuzhiyun 
3944*4882a593Smuzhiyun #define REG_A6XX_RB_ALPHA_CONTROL				0x00008864
3945*4882a593Smuzhiyun #define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK			0x000000ff
3946*4882a593Smuzhiyun #define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT			0
A6XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)3947*4882a593Smuzhiyun static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)
3948*4882a593Smuzhiyun {
3949*4882a593Smuzhiyun 	return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK;
3950*4882a593Smuzhiyun }
3951*4882a593Smuzhiyun #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST			0x00000100
3952*4882a593Smuzhiyun #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK		0x00000e00
3953*4882a593Smuzhiyun #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT		9
A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)3954*4882a593Smuzhiyun static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
3955*4882a593Smuzhiyun {
3956*4882a593Smuzhiyun 	return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK;
3957*4882a593Smuzhiyun }
3958*4882a593Smuzhiyun 
3959*4882a593Smuzhiyun #define REG_A6XX_RB_BLEND_CNTL					0x00008865
3960*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK			0x000000ff
3961*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT			0
A6XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)3962*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)
3963*4882a593Smuzhiyun {
3964*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT) & A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK;
3965*4882a593Smuzhiyun }
3966*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_INDEPENDENT_BLEND			0x00000100
3967*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_DUAL_COLOR_IN_ENABLE			0x00000200
3968*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_ALPHA_TO_COVERAGE			0x00000400
3969*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE				0x00000800
3970*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK			0xffff0000
3971*4882a593Smuzhiyun #define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT			16
A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)3972*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)
3973*4882a593Smuzhiyun {
3974*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT) & A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK;
3975*4882a593Smuzhiyun }
3976*4882a593Smuzhiyun 
3977*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_PLANE_CNTL				0x00008870
3978*4882a593Smuzhiyun #define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK			0x00000003
3979*4882a593Smuzhiyun #define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT			0
A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)3980*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)
3981*4882a593Smuzhiyun {
3982*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK;
3983*4882a593Smuzhiyun }
3984*4882a593Smuzhiyun 
3985*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_CNTL					0x00008871
3986*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_Z_ENABLE				0x00000001
3987*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_Z_WRITE_ENABLE			0x00000002
3988*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_ZFUNC__MASK				0x0000001c
3989*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT				2
A6XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)3990*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)
3991*4882a593Smuzhiyun {
3992*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT) & A6XX_RB_DEPTH_CNTL_ZFUNC__MASK;
3993*4882a593Smuzhiyun }
3994*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_Z_CLAMP_ENABLE			0x00000020
3995*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_Z_TEST_ENABLE			0x00000040
3996*4882a593Smuzhiyun #define A6XX_RB_DEPTH_CNTL_Z_BOUNDS_ENABLE			0x00000080
3997*4882a593Smuzhiyun 
3998*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_INFO				0x00008872
3999*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK		0x00000007
4000*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT		0
A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)4001*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
4002*4882a593Smuzhiyun {
4003*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
4004*4882a593Smuzhiyun }
4005*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_INFO_UNK3__MASK			0x00000018
4006*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_INFO_UNK3__SHIFT			3
A6XX_RB_DEPTH_BUFFER_INFO_UNK3(uint32_t val)4007*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_INFO_UNK3(uint32_t val)
4008*4882a593Smuzhiyun {
4009*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_BUFFER_INFO_UNK3__SHIFT) & A6XX_RB_DEPTH_BUFFER_INFO_UNK3__MASK;
4010*4882a593Smuzhiyun }
4011*4882a593Smuzhiyun 
4012*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_PITCH				0x00008873
4013*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_PITCH__MASK			0x00003fff
4014*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT			0
A6XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)4015*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)
4016*4882a593Smuzhiyun {
4017*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_PITCH__MASK;
4018*4882a593Smuzhiyun }
4019*4882a593Smuzhiyun 
4020*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH			0x00008874
4021*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK			0x0fffffff
4022*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT			0
A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)4023*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)
4024*4882a593Smuzhiyun {
4025*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK;
4026*4882a593Smuzhiyun }
4027*4882a593Smuzhiyun 
4028*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_BASE_LO			0x00008875
4029*4882a593Smuzhiyun 
4030*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_BASE_HI			0x00008876
4031*4882a593Smuzhiyun 
4032*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_BASE				0x00008875
4033*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_BASE__MASK				0xffffffff
4034*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_BASE__SHIFT			0
A6XX_RB_DEPTH_BUFFER_BASE(uint32_t val)4035*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_BASE(uint32_t val)
4036*4882a593Smuzhiyun {
4037*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_BUFFER_BASE__SHIFT) & A6XX_RB_DEPTH_BUFFER_BASE__MASK;
4038*4882a593Smuzhiyun }
4039*4882a593Smuzhiyun 
4040*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_BUFFER_BASE_GMEM			0x00008877
4041*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_BASE_GMEM__MASK			0xfffff000
4042*4882a593Smuzhiyun #define A6XX_RB_DEPTH_BUFFER_BASE_GMEM__SHIFT			12
A6XX_RB_DEPTH_BUFFER_BASE_GMEM(uint32_t val)4043*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_BUFFER_BASE_GMEM(uint32_t val)
4044*4882a593Smuzhiyun {
4045*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_RB_DEPTH_BUFFER_BASE_GMEM__SHIFT) & A6XX_RB_DEPTH_BUFFER_BASE_GMEM__MASK;
4046*4882a593Smuzhiyun }
4047*4882a593Smuzhiyun 
4048*4882a593Smuzhiyun #define REG_A6XX_RB_Z_BOUNDS_MIN				0x00008878
4049*4882a593Smuzhiyun #define A6XX_RB_Z_BOUNDS_MIN__MASK				0xffffffff
4050*4882a593Smuzhiyun #define A6XX_RB_Z_BOUNDS_MIN__SHIFT				0
A6XX_RB_Z_BOUNDS_MIN(float val)4051*4882a593Smuzhiyun static inline uint32_t A6XX_RB_Z_BOUNDS_MIN(float val)
4052*4882a593Smuzhiyun {
4053*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_Z_BOUNDS_MIN__SHIFT) & A6XX_RB_Z_BOUNDS_MIN__MASK;
4054*4882a593Smuzhiyun }
4055*4882a593Smuzhiyun 
4056*4882a593Smuzhiyun #define REG_A6XX_RB_Z_BOUNDS_MAX				0x00008879
4057*4882a593Smuzhiyun #define A6XX_RB_Z_BOUNDS_MAX__MASK				0xffffffff
4058*4882a593Smuzhiyun #define A6XX_RB_Z_BOUNDS_MAX__SHIFT				0
A6XX_RB_Z_BOUNDS_MAX(float val)4059*4882a593Smuzhiyun static inline uint32_t A6XX_RB_Z_BOUNDS_MAX(float val)
4060*4882a593Smuzhiyun {
4061*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_Z_BOUNDS_MAX__SHIFT) & A6XX_RB_Z_BOUNDS_MAX__MASK;
4062*4882a593Smuzhiyun }
4063*4882a593Smuzhiyun 
4064*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_CONTROL				0x00008880
4065*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE			0x00000001
4066*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF		0x00000002
4067*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_STENCIL_READ			0x00000004
4068*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FUNC__MASK			0x00000700
4069*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT			8
A6XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)4070*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
4071*4882a593Smuzhiyun {
4072*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC__MASK;
4073*4882a593Smuzhiyun }
4074*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FAIL__MASK			0x00003800
4075*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT			11
A6XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)4076*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
4077*4882a593Smuzhiyun {
4078*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL__MASK;
4079*4882a593Smuzhiyun }
4080*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZPASS__MASK			0x0001c000
4081*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT			14
A6XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)4082*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
4083*4882a593Smuzhiyun {
4084*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS__MASK;
4085*4882a593Smuzhiyun }
4086*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK			0x000e0000
4087*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT			17
A6XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)4088*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
4089*4882a593Smuzhiyun {
4090*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
4091*4882a593Smuzhiyun }
4092*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK			0x00700000
4093*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT			20
A6XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)4094*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
4095*4882a593Smuzhiyun {
4096*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
4097*4882a593Smuzhiyun }
4098*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK			0x03800000
4099*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT			23
A6XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)4100*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
4101*4882a593Smuzhiyun {
4102*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
4103*4882a593Smuzhiyun }
4104*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK			0x1c000000
4105*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT			26
A6XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)4106*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
4107*4882a593Smuzhiyun {
4108*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
4109*4882a593Smuzhiyun }
4110*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK			0xe0000000
4111*4882a593Smuzhiyun #define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT			29
A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)4112*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
4113*4882a593Smuzhiyun {
4114*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
4115*4882a593Smuzhiyun }
4116*4882a593Smuzhiyun 
4117*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_INFO				0x00008881
4118*4882a593Smuzhiyun #define A6XX_RB_STENCIL_INFO_SEPARATE_STENCIL			0x00000001
4119*4882a593Smuzhiyun #define A6XX_RB_STENCIL_INFO_UNK1				0x00000002
4120*4882a593Smuzhiyun 
4121*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_PITCH			0x00008882
4122*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_PITCH__MASK			0x00000fff
4123*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT			0
A6XX_RB_STENCIL_BUFFER_PITCH(uint32_t val)4124*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_BUFFER_PITCH(uint32_t val)
4125*4882a593Smuzhiyun {
4126*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_PITCH__MASK;
4127*4882a593Smuzhiyun }
4128*4882a593Smuzhiyun 
4129*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH			0x00008883
4130*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK		0x00ffffff
4131*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT		0
A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val)4132*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val)
4133*4882a593Smuzhiyun {
4134*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK;
4135*4882a593Smuzhiyun }
4136*4882a593Smuzhiyun 
4137*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_BASE_LO			0x00008884
4138*4882a593Smuzhiyun 
4139*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_BASE_HI			0x00008885
4140*4882a593Smuzhiyun 
4141*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_BASE				0x00008884
4142*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_BASE__MASK			0xffffffff
4143*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_BASE__SHIFT			0
A6XX_RB_STENCIL_BUFFER_BASE(uint32_t val)4144*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_BUFFER_BASE(uint32_t val)
4145*4882a593Smuzhiyun {
4146*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCIL_BUFFER_BASE__SHIFT) & A6XX_RB_STENCIL_BUFFER_BASE__MASK;
4147*4882a593Smuzhiyun }
4148*4882a593Smuzhiyun 
4149*4882a593Smuzhiyun #define REG_A6XX_RB_STENCIL_BUFFER_BASE_GMEM			0x00008886
4150*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_BASE_GMEM__MASK			0xfffff000
4151*4882a593Smuzhiyun #define A6XX_RB_STENCIL_BUFFER_BASE_GMEM__SHIFT			12
A6XX_RB_STENCIL_BUFFER_BASE_GMEM(uint32_t val)4152*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCIL_BUFFER_BASE_GMEM(uint32_t val)
4153*4882a593Smuzhiyun {
4154*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_RB_STENCIL_BUFFER_BASE_GMEM__SHIFT) & A6XX_RB_STENCIL_BUFFER_BASE_GMEM__MASK;
4155*4882a593Smuzhiyun }
4156*4882a593Smuzhiyun 
4157*4882a593Smuzhiyun #define REG_A6XX_RB_STENCILREF					0x00008887
4158*4882a593Smuzhiyun #define A6XX_RB_STENCILREF_REF__MASK				0x000000ff
4159*4882a593Smuzhiyun #define A6XX_RB_STENCILREF_REF__SHIFT				0
A6XX_RB_STENCILREF_REF(uint32_t val)4160*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILREF_REF(uint32_t val)
4161*4882a593Smuzhiyun {
4162*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILREF_REF__SHIFT) & A6XX_RB_STENCILREF_REF__MASK;
4163*4882a593Smuzhiyun }
4164*4882a593Smuzhiyun #define A6XX_RB_STENCILREF_BFREF__MASK				0x0000ff00
4165*4882a593Smuzhiyun #define A6XX_RB_STENCILREF_BFREF__SHIFT				8
A6XX_RB_STENCILREF_BFREF(uint32_t val)4166*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILREF_BFREF(uint32_t val)
4167*4882a593Smuzhiyun {
4168*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILREF_BFREF__SHIFT) & A6XX_RB_STENCILREF_BFREF__MASK;
4169*4882a593Smuzhiyun }
4170*4882a593Smuzhiyun 
4171*4882a593Smuzhiyun #define REG_A6XX_RB_STENCILMASK					0x00008888
4172*4882a593Smuzhiyun #define A6XX_RB_STENCILMASK_MASK__MASK				0x000000ff
4173*4882a593Smuzhiyun #define A6XX_RB_STENCILMASK_MASK__SHIFT				0
A6XX_RB_STENCILMASK_MASK(uint32_t val)4174*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILMASK_MASK(uint32_t val)
4175*4882a593Smuzhiyun {
4176*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILMASK_MASK__SHIFT) & A6XX_RB_STENCILMASK_MASK__MASK;
4177*4882a593Smuzhiyun }
4178*4882a593Smuzhiyun #define A6XX_RB_STENCILMASK_BFMASK__MASK			0x0000ff00
4179*4882a593Smuzhiyun #define A6XX_RB_STENCILMASK_BFMASK__SHIFT			8
A6XX_RB_STENCILMASK_BFMASK(uint32_t val)4180*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILMASK_BFMASK(uint32_t val)
4181*4882a593Smuzhiyun {
4182*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILMASK_BFMASK__SHIFT) & A6XX_RB_STENCILMASK_BFMASK__MASK;
4183*4882a593Smuzhiyun }
4184*4882a593Smuzhiyun 
4185*4882a593Smuzhiyun #define REG_A6XX_RB_STENCILWRMASK				0x00008889
4186*4882a593Smuzhiyun #define A6XX_RB_STENCILWRMASK_WRMASK__MASK			0x000000ff
4187*4882a593Smuzhiyun #define A6XX_RB_STENCILWRMASK_WRMASK__SHIFT			0
A6XX_RB_STENCILWRMASK_WRMASK(uint32_t val)4188*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILWRMASK_WRMASK(uint32_t val)
4189*4882a593Smuzhiyun {
4190*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILWRMASK_WRMASK__SHIFT) & A6XX_RB_STENCILWRMASK_WRMASK__MASK;
4191*4882a593Smuzhiyun }
4192*4882a593Smuzhiyun #define A6XX_RB_STENCILWRMASK_BFWRMASK__MASK			0x0000ff00
4193*4882a593Smuzhiyun #define A6XX_RB_STENCILWRMASK_BFWRMASK__SHIFT			8
A6XX_RB_STENCILWRMASK_BFWRMASK(uint32_t val)4194*4882a593Smuzhiyun static inline uint32_t A6XX_RB_STENCILWRMASK_BFWRMASK(uint32_t val)
4195*4882a593Smuzhiyun {
4196*4882a593Smuzhiyun 	return ((val) << A6XX_RB_STENCILWRMASK_BFWRMASK__SHIFT) & A6XX_RB_STENCILWRMASK_BFWRMASK__MASK;
4197*4882a593Smuzhiyun }
4198*4882a593Smuzhiyun 
4199*4882a593Smuzhiyun #define REG_A6XX_RB_WINDOW_OFFSET				0x00008890
4200*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET_X__MASK				0x00003fff
4201*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET_X__SHIFT				0
A6XX_RB_WINDOW_OFFSET_X(uint32_t val)4202*4882a593Smuzhiyun static inline uint32_t A6XX_RB_WINDOW_OFFSET_X(uint32_t val)
4203*4882a593Smuzhiyun {
4204*4882a593Smuzhiyun 	return ((val) << A6XX_RB_WINDOW_OFFSET_X__SHIFT) & A6XX_RB_WINDOW_OFFSET_X__MASK;
4205*4882a593Smuzhiyun }
4206*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET_Y__MASK				0x3fff0000
4207*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET_Y__SHIFT				16
A6XX_RB_WINDOW_OFFSET_Y(uint32_t val)4208*4882a593Smuzhiyun static inline uint32_t A6XX_RB_WINDOW_OFFSET_Y(uint32_t val)
4209*4882a593Smuzhiyun {
4210*4882a593Smuzhiyun 	return ((val) << A6XX_RB_WINDOW_OFFSET_Y__SHIFT) & A6XX_RB_WINDOW_OFFSET_Y__MASK;
4211*4882a593Smuzhiyun }
4212*4882a593Smuzhiyun 
4213*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_COUNT_CONTROL			0x00008891
4214*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_COUNT_CONTROL_UNK0			0x00000001
4215*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_COUNT_CONTROL_COPY			0x00000002
4216*4882a593Smuzhiyun 
4217*4882a593Smuzhiyun #define REG_A6XX_RB_LRZ_CNTL					0x00008898
4218*4882a593Smuzhiyun #define A6XX_RB_LRZ_CNTL_ENABLE					0x00000001
4219*4882a593Smuzhiyun 
4220*4882a593Smuzhiyun #define REG_A6XX_RB_Z_CLAMP_MIN					0x000088c0
4221*4882a593Smuzhiyun #define A6XX_RB_Z_CLAMP_MIN__MASK				0xffffffff
4222*4882a593Smuzhiyun #define A6XX_RB_Z_CLAMP_MIN__SHIFT				0
A6XX_RB_Z_CLAMP_MIN(float val)4223*4882a593Smuzhiyun static inline uint32_t A6XX_RB_Z_CLAMP_MIN(float val)
4224*4882a593Smuzhiyun {
4225*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_Z_CLAMP_MIN__SHIFT) & A6XX_RB_Z_CLAMP_MIN__MASK;
4226*4882a593Smuzhiyun }
4227*4882a593Smuzhiyun 
4228*4882a593Smuzhiyun #define REG_A6XX_RB_Z_CLAMP_MAX					0x000088c1
4229*4882a593Smuzhiyun #define A6XX_RB_Z_CLAMP_MAX__MASK				0xffffffff
4230*4882a593Smuzhiyun #define A6XX_RB_Z_CLAMP_MAX__SHIFT				0
A6XX_RB_Z_CLAMP_MAX(float val)4231*4882a593Smuzhiyun static inline uint32_t A6XX_RB_Z_CLAMP_MAX(float val)
4232*4882a593Smuzhiyun {
4233*4882a593Smuzhiyun 	return ((fui(val)) << A6XX_RB_Z_CLAMP_MAX__SHIFT) & A6XX_RB_Z_CLAMP_MAX__MASK;
4234*4882a593Smuzhiyun }
4235*4882a593Smuzhiyun 
4236*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_88D0				0x000088d0
4237*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_88D0_UNK0__MASK				0x00001fff
4238*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_88D0_UNK0__SHIFT			0
A6XX_RB_UNKNOWN_88D0_UNK0(uint32_t val)4239*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNKNOWN_88D0_UNK0(uint32_t val)
4240*4882a593Smuzhiyun {
4241*4882a593Smuzhiyun 	return ((val) << A6XX_RB_UNKNOWN_88D0_UNK0__SHIFT) & A6XX_RB_UNKNOWN_88D0_UNK0__MASK;
4242*4882a593Smuzhiyun }
4243*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_88D0_UNK16__MASK			0x07ff0000
4244*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_88D0_UNK16__SHIFT			16
A6XX_RB_UNKNOWN_88D0_UNK16(uint32_t val)4245*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNKNOWN_88D0_UNK16(uint32_t val)
4246*4882a593Smuzhiyun {
4247*4882a593Smuzhiyun 	return ((val) << A6XX_RB_UNKNOWN_88D0_UNK16__SHIFT) & A6XX_RB_UNKNOWN_88D0_UNK16__MASK;
4248*4882a593Smuzhiyun }
4249*4882a593Smuzhiyun 
4250*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_SCISSOR_TL				0x000088d1
4251*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_TL_X__MASK				0x00003fff
4252*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT			0
A6XX_RB_BLIT_SCISSOR_TL_X(uint32_t val)4253*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_X(uint32_t val)
4254*4882a593Smuzhiyun {
4255*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_X__MASK;
4256*4882a593Smuzhiyun }
4257*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_TL_Y__MASK				0x3fff0000
4258*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT			16
A6XX_RB_BLIT_SCISSOR_TL_Y(uint32_t val)4259*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_Y(uint32_t val)
4260*4882a593Smuzhiyun {
4261*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_Y__MASK;
4262*4882a593Smuzhiyun }
4263*4882a593Smuzhiyun 
4264*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_SCISSOR_BR				0x000088d2
4265*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_BR_X__MASK				0x00003fff
4266*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT			0
A6XX_RB_BLIT_SCISSOR_BR_X(uint32_t val)4267*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_X(uint32_t val)
4268*4882a593Smuzhiyun {
4269*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_X__MASK;
4270*4882a593Smuzhiyun }
4271*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_BR_Y__MASK				0x3fff0000
4272*4882a593Smuzhiyun #define A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT			16
A6XX_RB_BLIT_SCISSOR_BR_Y(uint32_t val)4273*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_Y(uint32_t val)
4274*4882a593Smuzhiyun {
4275*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_Y__MASK;
4276*4882a593Smuzhiyun }
4277*4882a593Smuzhiyun 
4278*4882a593Smuzhiyun #define REG_A6XX_RB_BIN_CONTROL2				0x000088d3
4279*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL2_BINW__MASK				0x0000003f
4280*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL2_BINW__SHIFT			0
A6XX_RB_BIN_CONTROL2_BINW(uint32_t val)4281*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL2_BINW(uint32_t val)
4282*4882a593Smuzhiyun {
4283*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_RB_BIN_CONTROL2_BINW__SHIFT) & A6XX_RB_BIN_CONTROL2_BINW__MASK;
4284*4882a593Smuzhiyun }
4285*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL2_BINH__MASK				0x00007f00
4286*4882a593Smuzhiyun #define A6XX_RB_BIN_CONTROL2_BINH__SHIFT			8
A6XX_RB_BIN_CONTROL2_BINH(uint32_t val)4287*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BIN_CONTROL2_BINH(uint32_t val)
4288*4882a593Smuzhiyun {
4289*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_RB_BIN_CONTROL2_BINH__SHIFT) & A6XX_RB_BIN_CONTROL2_BINH__MASK;
4290*4882a593Smuzhiyun }
4291*4882a593Smuzhiyun 
4292*4882a593Smuzhiyun #define REG_A6XX_RB_WINDOW_OFFSET2				0x000088d4
4293*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET2_X__MASK				0x00003fff
4294*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET2_X__SHIFT				0
A6XX_RB_WINDOW_OFFSET2_X(uint32_t val)4295*4882a593Smuzhiyun static inline uint32_t A6XX_RB_WINDOW_OFFSET2_X(uint32_t val)
4296*4882a593Smuzhiyun {
4297*4882a593Smuzhiyun 	return ((val) << A6XX_RB_WINDOW_OFFSET2_X__SHIFT) & A6XX_RB_WINDOW_OFFSET2_X__MASK;
4298*4882a593Smuzhiyun }
4299*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET2_Y__MASK				0x3fff0000
4300*4882a593Smuzhiyun #define A6XX_RB_WINDOW_OFFSET2_Y__SHIFT				16
A6XX_RB_WINDOW_OFFSET2_Y(uint32_t val)4301*4882a593Smuzhiyun static inline uint32_t A6XX_RB_WINDOW_OFFSET2_Y(uint32_t val)
4302*4882a593Smuzhiyun {
4303*4882a593Smuzhiyun 	return ((val) << A6XX_RB_WINDOW_OFFSET2_Y__SHIFT) & A6XX_RB_WINDOW_OFFSET2_Y__MASK;
4304*4882a593Smuzhiyun }
4305*4882a593Smuzhiyun 
4306*4882a593Smuzhiyun #define REG_A6XX_RB_MSAA_CNTL					0x000088d5
4307*4882a593Smuzhiyun #define A6XX_RB_MSAA_CNTL_SAMPLES__MASK				0x00000018
4308*4882a593Smuzhiyun #define A6XX_RB_MSAA_CNTL_SAMPLES__SHIFT			3
A6XX_RB_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)4309*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
4310*4882a593Smuzhiyun {
4311*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_MSAA_CNTL_SAMPLES__MASK;
4312*4882a593Smuzhiyun }
4313*4882a593Smuzhiyun 
4314*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_BASE_GMEM				0x000088d6
4315*4882a593Smuzhiyun #define A6XX_RB_BLIT_BASE_GMEM__MASK				0xfffff000
4316*4882a593Smuzhiyun #define A6XX_RB_BLIT_BASE_GMEM__SHIFT				12
A6XX_RB_BLIT_BASE_GMEM(uint32_t val)4317*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_BASE_GMEM(uint32_t val)
4318*4882a593Smuzhiyun {
4319*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_RB_BLIT_BASE_GMEM__SHIFT) & A6XX_RB_BLIT_BASE_GMEM__MASK;
4320*4882a593Smuzhiyun }
4321*4882a593Smuzhiyun 
4322*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST_INFO				0x000088d7
4323*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK			0x00000003
4324*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT			0
A6XX_RB_BLIT_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)4325*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
4326*4882a593Smuzhiyun {
4327*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK;
4328*4882a593Smuzhiyun }
4329*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_FLAGS				0x00000004
4330*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_SAMPLES__MASK			0x00000018
4331*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_SAMPLES__SHIFT			3
A6XX_RB_BLIT_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)4332*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)
4333*4882a593Smuzhiyun {
4334*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_DST_INFO_SAMPLES__SHIFT) & A6XX_RB_BLIT_DST_INFO_SAMPLES__MASK;
4335*4882a593Smuzhiyun }
4336*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK			0x00000060
4337*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT			5
A6XX_RB_BLIT_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)4338*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4339*4882a593Smuzhiyun {
4340*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK;
4341*4882a593Smuzhiyun }
4342*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK		0x00007f80
4343*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT		7
A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_format val)4344*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_format val)
4345*4882a593Smuzhiyun {
4346*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK;
4347*4882a593Smuzhiyun }
4348*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_INFO_UNK15				0x00008000
4349*4882a593Smuzhiyun 
4350*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST					0x000088d8
4351*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST__MASK					0xffffffff
4352*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST__SHIFT					0
A6XX_RB_BLIT_DST(uint32_t val)4353*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST(uint32_t val)
4354*4882a593Smuzhiyun {
4355*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_DST__SHIFT) & A6XX_RB_BLIT_DST__MASK;
4356*4882a593Smuzhiyun }
4357*4882a593Smuzhiyun 
4358*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST_LO					0x000088d8
4359*4882a593Smuzhiyun 
4360*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST_HI					0x000088d9
4361*4882a593Smuzhiyun 
4362*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST_PITCH				0x000088da
4363*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_PITCH__MASK				0x0000ffff
4364*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_PITCH__SHIFT				0
A6XX_RB_BLIT_DST_PITCH(uint32_t val)4365*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_PITCH(uint32_t val)
4366*4882a593Smuzhiyun {
4367*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_BLIT_DST_PITCH__SHIFT) & A6XX_RB_BLIT_DST_PITCH__MASK;
4368*4882a593Smuzhiyun }
4369*4882a593Smuzhiyun 
4370*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_DST_ARRAY_PITCH			0x000088db
4371*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK			0x1fffffff
4372*4882a593Smuzhiyun #define A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT			0
A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)4373*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)
4374*4882a593Smuzhiyun {
4375*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK;
4376*4882a593Smuzhiyun }
4377*4882a593Smuzhiyun 
4378*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_FLAG_DST				0x000088dc
4379*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST__MASK				0xffffffff
4380*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST__SHIFT				0
A6XX_RB_BLIT_FLAG_DST(uint32_t val)4381*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_FLAG_DST(uint32_t val)
4382*4882a593Smuzhiyun {
4383*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_FLAG_DST__SHIFT) & A6XX_RB_BLIT_FLAG_DST__MASK;
4384*4882a593Smuzhiyun }
4385*4882a593Smuzhiyun 
4386*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_FLAG_DST_LO				0x000088dc
4387*4882a593Smuzhiyun 
4388*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_FLAG_DST_HI				0x000088dd
4389*4882a593Smuzhiyun 
4390*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_FLAG_DST_PITCH				0x000088de
4391*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK			0x000007ff
4392*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT		0
A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH(uint32_t val)4393*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH(uint32_t val)
4394*4882a593Smuzhiyun {
4395*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK;
4396*4882a593Smuzhiyun }
4397*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK		0x0ffff800
4398*4882a593Smuzhiyun #define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT		11
A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH(uint32_t val)4399*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH(uint32_t val)
4400*4882a593Smuzhiyun {
4401*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK;
4402*4882a593Smuzhiyun }
4403*4882a593Smuzhiyun 
4404*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW0			0x000088df
4405*4882a593Smuzhiyun 
4406*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW1			0x000088e0
4407*4882a593Smuzhiyun 
4408*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW2			0x000088e1
4409*4882a593Smuzhiyun 
4410*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW3			0x000088e2
4411*4882a593Smuzhiyun 
4412*4882a593Smuzhiyun #define REG_A6XX_RB_BLIT_INFO					0x000088e3
4413*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_UNK0					0x00000001
4414*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_GMEM					0x00000002
4415*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_INTEGER				0x00000004
4416*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_DEPTH					0x00000008
4417*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK			0x000000f0
4418*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT			4
A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val)4419*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val)
4420*4882a593Smuzhiyun {
4421*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT) & A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK;
4422*4882a593Smuzhiyun }
4423*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_UNK8__MASK				0x00000300
4424*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_UNK8__SHIFT				8
A6XX_RB_BLIT_INFO_UNK8(uint32_t val)4425*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_INFO_UNK8(uint32_t val)
4426*4882a593Smuzhiyun {
4427*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_INFO_UNK8__SHIFT) & A6XX_RB_BLIT_INFO_UNK8__MASK;
4428*4882a593Smuzhiyun }
4429*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_UNK12__MASK				0x0000f000
4430*4882a593Smuzhiyun #define A6XX_RB_BLIT_INFO_UNK12__SHIFT				12
A6XX_RB_BLIT_INFO_UNK12(uint32_t val)4431*4882a593Smuzhiyun static inline uint32_t A6XX_RB_BLIT_INFO_UNK12(uint32_t val)
4432*4882a593Smuzhiyun {
4433*4882a593Smuzhiyun 	return ((val) << A6XX_RB_BLIT_INFO_UNK12__SHIFT) & A6XX_RB_BLIT_INFO_UNK12__MASK;
4434*4882a593Smuzhiyun }
4435*4882a593Smuzhiyun 
4436*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_88F0				0x000088f0
4437*4882a593Smuzhiyun 
4438*4882a593Smuzhiyun #define REG_A6XX_RB_UNK_FLAG_BUFFER_BASE			0x000088f1
4439*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_BASE__MASK			0xffffffff
4440*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_BASE__SHIFT			0
A6XX_RB_UNK_FLAG_BUFFER_BASE(uint32_t val)4441*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_BASE(uint32_t val)
4442*4882a593Smuzhiyun {
4443*4882a593Smuzhiyun 	return ((val) << A6XX_RB_UNK_FLAG_BUFFER_BASE__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_BASE__MASK;
4444*4882a593Smuzhiyun }
4445*4882a593Smuzhiyun 
4446*4882a593Smuzhiyun #define REG_A6XX_RB_UNK_FLAG_BUFFER_PITCH			0x000088f3
4447*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__MASK		0x000007ff
4448*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH(uint32_t val)4449*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
4450*4882a593Smuzhiyun {
4451*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__MASK;
4452*4882a593Smuzhiyun }
4453*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK		0x00fff800
4454*4882a593Smuzhiyun #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)4455*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
4456*4882a593Smuzhiyun {
4457*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
4458*4882a593Smuzhiyun }
4459*4882a593Smuzhiyun 
4460*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_88F4				0x000088f4
4461*4882a593Smuzhiyun 
4462*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE_LO			0x00008900
4463*4882a593Smuzhiyun 
4464*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE_HI			0x00008901
4465*4882a593Smuzhiyun 
4466*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE			0x00008900
4467*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_BASE__MASK			0xffffffff
4468*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_BASE__SHIFT			0
A6XX_RB_DEPTH_FLAG_BUFFER_BASE(uint32_t val)4469*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_BASE(uint32_t val)
4470*4882a593Smuzhiyun {
4471*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_FLAG_BUFFER_BASE__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_BASE__MASK;
4472*4882a593Smuzhiyun }
4473*4882a593Smuzhiyun 
4474*4882a593Smuzhiyun #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_PITCH			0x00008902
4475*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK		0x0000007f
4476*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH(uint32_t val)4477*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
4478*4882a593Smuzhiyun {
4479*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK;
4480*4882a593Smuzhiyun }
4481*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__MASK		0x00000700
4482*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__SHIFT		8
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8(uint32_t val)4483*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8(uint32_t val)
4484*4882a593Smuzhiyun {
4485*4882a593Smuzhiyun 	return ((val) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__MASK;
4486*4882a593Smuzhiyun }
4487*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK	0x0ffff800
4488*4882a593Smuzhiyun #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)4489*4882a593Smuzhiyun static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
4490*4882a593Smuzhiyun {
4491*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
4492*4882a593Smuzhiyun }
4493*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0)4494*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0) { return 0x00008903 + 0x3*i0; }
4495*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_LO(uint32_t i0)4496*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_LO(uint32_t i0) { return 0x00008903 + 0x3*i0; }
4497*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_HI(uint32_t i0)4498*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR_HI(uint32_t i0) { return 0x00008904 + 0x3*i0; }
4499*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t i0)4500*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t i0) { return 0x00008903 + 0x3*i0; }
4501*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_ADDR__MASK			0xffffffff
4502*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_ADDR__SHIFT			0
A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t val)4503*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t val)
4504*4882a593Smuzhiyun {
4505*4882a593Smuzhiyun 	return ((val) << A6XX_RB_MRT_FLAG_BUFFER_ADDR__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_ADDR__MASK;
4506*4882a593Smuzhiyun }
4507*4882a593Smuzhiyun 
REG_A6XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0)4508*4882a593Smuzhiyun static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0) { return 0x00008905 + 0x3*i0; }
4509*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK		0x000007ff
4510*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH(uint32_t val)4511*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
4512*4882a593Smuzhiyun {
4513*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK;
4514*4882a593Smuzhiyun }
4515*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK		0x1ffff800
4516*4882a593Smuzhiyun #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)4517*4882a593Smuzhiyun static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
4518*4882a593Smuzhiyun {
4519*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
4520*4882a593Smuzhiyun }
4521*4882a593Smuzhiyun 
4522*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_COUNT_ADDR_LO			0x00008927
4523*4882a593Smuzhiyun 
4524*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_COUNT_ADDR_HI			0x00008928
4525*4882a593Smuzhiyun 
4526*4882a593Smuzhiyun #define REG_A6XX_RB_SAMPLE_COUNT_ADDR				0x00008927
4527*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_COUNT_ADDR__MASK				0xffffffff
4528*4882a593Smuzhiyun #define A6XX_RB_SAMPLE_COUNT_ADDR__SHIFT			0
A6XX_RB_SAMPLE_COUNT_ADDR(uint32_t val)4529*4882a593Smuzhiyun static inline uint32_t A6XX_RB_SAMPLE_COUNT_ADDR(uint32_t val)
4530*4882a593Smuzhiyun {
4531*4882a593Smuzhiyun 	return ((val) << A6XX_RB_SAMPLE_COUNT_ADDR__SHIFT) & A6XX_RB_SAMPLE_COUNT_ADDR__MASK;
4532*4882a593Smuzhiyun }
4533*4882a593Smuzhiyun 
4534*4882a593Smuzhiyun #define REG_A6XX_RB_2D_BLIT_CNTL				0x00008c00
4535*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK			0x00000007
4536*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT			0
A6XX_RB_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)4537*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)
4538*4882a593Smuzhiyun {
4539*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK;
4540*4882a593Smuzhiyun }
4541*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK3__MASK				0x00000078
4542*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK3__SHIFT			3
A6XX_RB_2D_BLIT_CNTL_UNK3(uint32_t val)4543*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK3(uint32_t val)
4544*4882a593Smuzhiyun {
4545*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK3__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK3__MASK;
4546*4882a593Smuzhiyun }
4547*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_SOLID_COLOR			0x00000080
4548*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK			0x0000ff00
4549*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT		8
A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)4550*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)
4551*4882a593Smuzhiyun {
4552*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK;
4553*4882a593Smuzhiyun }
4554*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_SCISSOR				0x00010000
4555*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK17__MASK			0x00060000
4556*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK17__SHIFT			17
A6XX_RB_2D_BLIT_CNTL_UNK17(uint32_t val)4557*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK17(uint32_t val)
4558*4882a593Smuzhiyun {
4559*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK17__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK17__MASK;
4560*4882a593Smuzhiyun }
4561*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_D24S8				0x00080000
4562*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_MASK__MASK				0x00f00000
4563*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT			20
A6XX_RB_2D_BLIT_CNTL_MASK(uint32_t val)4564*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_MASK(uint32_t val)
4565*4882a593Smuzhiyun {
4566*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_RB_2D_BLIT_CNTL_MASK__MASK;
4567*4882a593Smuzhiyun }
4568*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_IFMT__MASK				0x1f000000
4569*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT			24
A6XX_RB_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)4570*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)
4571*4882a593Smuzhiyun {
4572*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_IFMT__MASK;
4573*4882a593Smuzhiyun }
4574*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK29__MASK			0x20000000
4575*4882a593Smuzhiyun #define A6XX_RB_2D_BLIT_CNTL_UNK29__SHIFT			29
A6XX_RB_2D_BLIT_CNTL_UNK29(uint32_t val)4576*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK29(uint32_t val)
4577*4882a593Smuzhiyun {
4578*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK29__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK29__MASK;
4579*4882a593Smuzhiyun }
4580*4882a593Smuzhiyun 
4581*4882a593Smuzhiyun #define REG_A6XX_RB_2D_UNKNOWN_8C01				0x00008c01
4582*4882a593Smuzhiyun 
4583*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_INFO					0x00008c17
4584*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK			0x000000ff
4585*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT			0
A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_format val)4586*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_format val)
4587*4882a593Smuzhiyun {
4588*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK;
4589*4882a593Smuzhiyun }
4590*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_TILE_MODE__MASK			0x00000300
4591*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT			8
A6XX_RB_2D_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)4592*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
4593*4882a593Smuzhiyun {
4594*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_2D_DST_INFO_TILE_MODE__MASK;
4595*4882a593Smuzhiyun }
4596*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK			0x00000c00
4597*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT			10
A6XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)4598*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
4599*4882a593Smuzhiyun {
4600*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK;
4601*4882a593Smuzhiyun }
4602*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_FLAGS				0x00001000
4603*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_SRGB				0x00002000
4604*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_SAMPLES__MASK			0x0000c000
4605*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT			14
A6XX_RB_2D_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)4606*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)
4607*4882a593Smuzhiyun {
4608*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT) & A6XX_RB_2D_DST_INFO_SAMPLES__MASK;
4609*4882a593Smuzhiyun }
4610*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_FILTER				0x00010000
4611*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_SAMPLES_AVERAGE			0x00040000
4612*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_UNK20				0x00100000
4613*4882a593Smuzhiyun #define A6XX_RB_2D_DST_INFO_UNK22				0x00400000
4614*4882a593Smuzhiyun 
4615*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_LO					0x00008c18
4616*4882a593Smuzhiyun 
4617*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_HI					0x00008c19
4618*4882a593Smuzhiyun 
4619*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST					0x00008c18
4620*4882a593Smuzhiyun #define A6XX_RB_2D_DST__MASK					0xffffffff
4621*4882a593Smuzhiyun #define A6XX_RB_2D_DST__SHIFT					0
A6XX_RB_2D_DST(uint32_t val)4622*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST(uint32_t val)
4623*4882a593Smuzhiyun {
4624*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST__SHIFT) & A6XX_RB_2D_DST__MASK;
4625*4882a593Smuzhiyun }
4626*4882a593Smuzhiyun 
4627*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_PITCH				0x00008c1a
4628*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PITCH__MASK				0x0000ffff
4629*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PITCH__SHIFT				0
A6XX_RB_2D_DST_PITCH(uint32_t val)4630*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_PITCH(uint32_t val)
4631*4882a593Smuzhiyun {
4632*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_2D_DST_PITCH__SHIFT) & A6XX_RB_2D_DST_PITCH__MASK;
4633*4882a593Smuzhiyun }
4634*4882a593Smuzhiyun 
4635*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_PLANE1				0x00008c1b
4636*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE1__MASK				0xffffffff
4637*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE1__SHIFT				0
A6XX_RB_2D_DST_PLANE1(uint32_t val)4638*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_PLANE1(uint32_t val)
4639*4882a593Smuzhiyun {
4640*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_PLANE1__SHIFT) & A6XX_RB_2D_DST_PLANE1__MASK;
4641*4882a593Smuzhiyun }
4642*4882a593Smuzhiyun 
4643*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_PLANE_PITCH				0x00008c1d
4644*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE_PITCH__MASK			0x0000ffff
4645*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE_PITCH__SHIFT			0
A6XX_RB_2D_DST_PLANE_PITCH(uint32_t val)4646*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_PLANE_PITCH(uint32_t val)
4647*4882a593Smuzhiyun {
4648*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_2D_DST_PLANE_PITCH__SHIFT) & A6XX_RB_2D_DST_PLANE_PITCH__MASK;
4649*4882a593Smuzhiyun }
4650*4882a593Smuzhiyun 
4651*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_PLANE2				0x00008c1e
4652*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE2__MASK				0xffffffff
4653*4882a593Smuzhiyun #define A6XX_RB_2D_DST_PLANE2__SHIFT				0
A6XX_RB_2D_DST_PLANE2(uint32_t val)4654*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_PLANE2(uint32_t val)
4655*4882a593Smuzhiyun {
4656*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_PLANE2__SHIFT) & A6XX_RB_2D_DST_PLANE2__MASK;
4657*4882a593Smuzhiyun }
4658*4882a593Smuzhiyun 
4659*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS_LO				0x00008c20
4660*4882a593Smuzhiyun 
4661*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS_HI				0x00008c21
4662*4882a593Smuzhiyun 
4663*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS				0x00008c20
4664*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS__MASK				0xffffffff
4665*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS__SHIFT				0
A6XX_RB_2D_DST_FLAGS(uint32_t val)4666*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_FLAGS(uint32_t val)
4667*4882a593Smuzhiyun {
4668*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_FLAGS__SHIFT) & A6XX_RB_2D_DST_FLAGS__MASK;
4669*4882a593Smuzhiyun }
4670*4882a593Smuzhiyun 
4671*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS_PITCH				0x00008c22
4672*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PITCH__MASK			0x000000ff
4673*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PITCH__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PITCH(uint32_t val)4674*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_FLAGS_PITCH(uint32_t val)
4675*4882a593Smuzhiyun {
4676*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_2D_DST_FLAGS_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PITCH__MASK;
4677*4882a593Smuzhiyun }
4678*4882a593Smuzhiyun 
4679*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS_PLANE				0x00008c23
4680*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PLANE__MASK			0xffffffff
4681*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PLANE__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PLANE(uint32_t val)4682*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_FLAGS_PLANE(uint32_t val)
4683*4882a593Smuzhiyun {
4684*4882a593Smuzhiyun 	return ((val) << A6XX_RB_2D_DST_FLAGS_PLANE__SHIFT) & A6XX_RB_2D_DST_FLAGS_PLANE__MASK;
4685*4882a593Smuzhiyun }
4686*4882a593Smuzhiyun 
4687*4882a593Smuzhiyun #define REG_A6XX_RB_2D_DST_FLAGS_PLANE_PITCH			0x00008c25
4688*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__MASK			0x000000ff
4689*4882a593Smuzhiyun #define A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PLANE_PITCH(uint32_t val)4690*4882a593Smuzhiyun static inline uint32_t A6XX_RB_2D_DST_FLAGS_PLANE_PITCH(uint32_t val)
4691*4882a593Smuzhiyun {
4692*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__MASK;
4693*4882a593Smuzhiyun }
4694*4882a593Smuzhiyun 
4695*4882a593Smuzhiyun #define REG_A6XX_RB_2D_SRC_SOLID_C0				0x00008c2c
4696*4882a593Smuzhiyun 
4697*4882a593Smuzhiyun #define REG_A6XX_RB_2D_SRC_SOLID_C1				0x00008c2d
4698*4882a593Smuzhiyun 
4699*4882a593Smuzhiyun #define REG_A6XX_RB_2D_SRC_SOLID_C2				0x00008c2e
4700*4882a593Smuzhiyun 
4701*4882a593Smuzhiyun #define REG_A6XX_RB_2D_SRC_SOLID_C3				0x00008c2f
4702*4882a593Smuzhiyun 
4703*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8E01				0x00008e01
4704*4882a593Smuzhiyun 
4705*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8E04				0x00008e04
4706*4882a593Smuzhiyun 
4707*4882a593Smuzhiyun #define REG_A6XX_RB_ADDR_MODE_CNTL				0x00008e05
4708*4882a593Smuzhiyun 
4709*4882a593Smuzhiyun #define REG_A6XX_RB_CCU_CNTL					0x00008e07
4710*4882a593Smuzhiyun #define A6XX_RB_CCU_CNTL_OFFSET__MASK				0xff800000
4711*4882a593Smuzhiyun #define A6XX_RB_CCU_CNTL_OFFSET__SHIFT				23
A6XX_RB_CCU_CNTL_OFFSET(uint32_t val)4712*4882a593Smuzhiyun static inline uint32_t A6XX_RB_CCU_CNTL_OFFSET(uint32_t val)
4713*4882a593Smuzhiyun {
4714*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_RB_CCU_CNTL_OFFSET__SHIFT) & A6XX_RB_CCU_CNTL_OFFSET__MASK;
4715*4882a593Smuzhiyun }
4716*4882a593Smuzhiyun #define A6XX_RB_CCU_CNTL_GMEM					0x00400000
4717*4882a593Smuzhiyun #define A6XX_RB_CCU_CNTL_UNK2					0x00000004
4718*4882a593Smuzhiyun 
4719*4882a593Smuzhiyun #define REG_A6XX_RB_NC_MODE_CNTL				0x00008e08
4720*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_MODE				0x00000001
4721*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_LOWER_BIT__MASK			0x00000006
4722*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_LOWER_BIT__SHIFT			1
A6XX_RB_NC_MODE_CNTL_LOWER_BIT(uint32_t val)4723*4882a593Smuzhiyun static inline uint32_t A6XX_RB_NC_MODE_CNTL_LOWER_BIT(uint32_t val)
4724*4882a593Smuzhiyun {
4725*4882a593Smuzhiyun 	return ((val) << A6XX_RB_NC_MODE_CNTL_LOWER_BIT__SHIFT) & A6XX_RB_NC_MODE_CNTL_LOWER_BIT__MASK;
4726*4882a593Smuzhiyun }
4727*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_MIN_ACCESS_LENGTH			0x00000008
4728*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_AMSBC				0x00000010
4729*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_UPPER_BIT__MASK			0x00000400
4730*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_UPPER_BIT__SHIFT			10
A6XX_RB_NC_MODE_CNTL_UPPER_BIT(uint32_t val)4731*4882a593Smuzhiyun static inline uint32_t A6XX_RB_NC_MODE_CNTL_UPPER_BIT(uint32_t val)
4732*4882a593Smuzhiyun {
4733*4882a593Smuzhiyun 	return ((val) << A6XX_RB_NC_MODE_CNTL_UPPER_BIT__SHIFT) & A6XX_RB_NC_MODE_CNTL_UPPER_BIT__MASK;
4734*4882a593Smuzhiyun }
4735*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_RGB565_PREDICATOR			0x00000800
4736*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_UNK12__MASK			0x00003000
4737*4882a593Smuzhiyun #define A6XX_RB_NC_MODE_CNTL_UNK12__SHIFT			12
A6XX_RB_NC_MODE_CNTL_UNK12(uint32_t val)4738*4882a593Smuzhiyun static inline uint32_t A6XX_RB_NC_MODE_CNTL_UNK12(uint32_t val)
4739*4882a593Smuzhiyun {
4740*4882a593Smuzhiyun 	return ((val) << A6XX_RB_NC_MODE_CNTL_UNK12__SHIFT) & A6XX_RB_NC_MODE_CNTL_UNK12__MASK;
4741*4882a593Smuzhiyun }
4742*4882a593Smuzhiyun 
4743*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_0				0x00008e10
4744*4882a593Smuzhiyun 
4745*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_1				0x00008e11
4746*4882a593Smuzhiyun 
4747*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_2				0x00008e12
4748*4882a593Smuzhiyun 
4749*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_3				0x00008e13
4750*4882a593Smuzhiyun 
4751*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_4				0x00008e14
4752*4882a593Smuzhiyun 
4753*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_5				0x00008e15
4754*4882a593Smuzhiyun 
4755*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_6				0x00008e16
4756*4882a593Smuzhiyun 
4757*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_RB_SEL_7				0x00008e17
4758*4882a593Smuzhiyun 
4759*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CCU_SEL_0				0x00008e18
4760*4882a593Smuzhiyun 
4761*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CCU_SEL_1				0x00008e19
4762*4882a593Smuzhiyun 
4763*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CCU_SEL_2				0x00008e1a
4764*4882a593Smuzhiyun 
4765*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CCU_SEL_3				0x00008e1b
4766*4882a593Smuzhiyun 
4767*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CCU_SEL_4				0x00008e1c
4768*4882a593Smuzhiyun 
4769*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8E28				0x00008e28
4770*4882a593Smuzhiyun 
4771*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CMP_SEL_0				0x00008e2c
4772*4882a593Smuzhiyun 
4773*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CMP_SEL_1				0x00008e2d
4774*4882a593Smuzhiyun 
4775*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CMP_SEL_2				0x00008e2e
4776*4882a593Smuzhiyun 
4777*4882a593Smuzhiyun #define REG_A6XX_RB_PERFCTR_CMP_SEL_3				0x00008e2f
4778*4882a593Smuzhiyun 
4779*4882a593Smuzhiyun #define REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_HOST			0x00008e3b
4780*4882a593Smuzhiyun 
4781*4882a593Smuzhiyun #define REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD			0x00008e3d
4782*4882a593Smuzhiyun 
4783*4882a593Smuzhiyun #define REG_A6XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE		0x00008e50
4784*4882a593Smuzhiyun 
4785*4882a593Smuzhiyun #define REG_A6XX_RB_UNKNOWN_8E51				0x00008e51
4786*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_8E51__MASK				0xffffffff
4787*4882a593Smuzhiyun #define A6XX_RB_UNKNOWN_8E51__SHIFT				0
A6XX_RB_UNKNOWN_8E51(uint32_t val)4788*4882a593Smuzhiyun static inline uint32_t A6XX_RB_UNKNOWN_8E51(uint32_t val)
4789*4882a593Smuzhiyun {
4790*4882a593Smuzhiyun 	return ((val) << A6XX_RB_UNKNOWN_8E51__SHIFT) & A6XX_RB_UNKNOWN_8E51__MASK;
4791*4882a593Smuzhiyun }
4792*4882a593Smuzhiyun 
4793*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9100				0x00009100
4794*4882a593Smuzhiyun 
4795*4882a593Smuzhiyun #define REG_A6XX_VPC_VS_CLIP_CNTL				0x00009101
4796*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4797*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK(uint32_t val)4798*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4799*4882a593Smuzhiyun {
4800*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__MASK;
4801*4882a593Smuzhiyun }
4802*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4803*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4804*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4805*4882a593Smuzhiyun {
4806*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4807*4882a593Smuzhiyun }
4808*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4809*4882a593Smuzhiyun #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4810*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4811*4882a593Smuzhiyun {
4812*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4813*4882a593Smuzhiyun }
4814*4882a593Smuzhiyun 
4815*4882a593Smuzhiyun #define REG_A6XX_VPC_GS_CLIP_CNTL				0x00009102
4816*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4817*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK(uint32_t val)4818*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4819*4882a593Smuzhiyun {
4820*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__MASK;
4821*4882a593Smuzhiyun }
4822*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4823*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4824*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4825*4882a593Smuzhiyun {
4826*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4827*4882a593Smuzhiyun }
4828*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4829*4882a593Smuzhiyun #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4830*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4831*4882a593Smuzhiyun {
4832*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4833*4882a593Smuzhiyun }
4834*4882a593Smuzhiyun 
4835*4882a593Smuzhiyun #define REG_A6XX_VPC_DS_CLIP_CNTL				0x00009103
4836*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4837*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK(uint32_t val)4838*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4839*4882a593Smuzhiyun {
4840*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__MASK;
4841*4882a593Smuzhiyun }
4842*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4843*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4844*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4845*4882a593Smuzhiyun {
4846*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4847*4882a593Smuzhiyun }
4848*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4849*4882a593Smuzhiyun #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4850*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4851*4882a593Smuzhiyun {
4852*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4853*4882a593Smuzhiyun }
4854*4882a593Smuzhiyun 
4855*4882a593Smuzhiyun #define REG_A6XX_VPC_VS_LAYER_CNTL				0x00009104
4856*4882a593Smuzhiyun #define A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4857*4882a593Smuzhiyun #define A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_VS_LAYER_CNTL_LAYERLOC(uint32_t val)4858*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_LAYER_CNTL_LAYERLOC(uint32_t val)
4859*4882a593Smuzhiyun {
4860*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__MASK;
4861*4882a593Smuzhiyun }
4862*4882a593Smuzhiyun #define A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4863*4882a593Smuzhiyun #define A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_VS_LAYER_CNTL_VIEWLOC(uint32_t val)4864*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_LAYER_CNTL_VIEWLOC(uint32_t val)
4865*4882a593Smuzhiyun {
4866*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__MASK;
4867*4882a593Smuzhiyun }
4868*4882a593Smuzhiyun 
4869*4882a593Smuzhiyun #define REG_A6XX_VPC_GS_LAYER_CNTL				0x00009105
4870*4882a593Smuzhiyun #define A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4871*4882a593Smuzhiyun #define A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_GS_LAYER_CNTL_LAYERLOC(uint32_t val)4872*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_LAYER_CNTL_LAYERLOC(uint32_t val)
4873*4882a593Smuzhiyun {
4874*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__MASK;
4875*4882a593Smuzhiyun }
4876*4882a593Smuzhiyun #define A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4877*4882a593Smuzhiyun #define A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_GS_LAYER_CNTL_VIEWLOC(uint32_t val)4878*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_LAYER_CNTL_VIEWLOC(uint32_t val)
4879*4882a593Smuzhiyun {
4880*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__MASK;
4881*4882a593Smuzhiyun }
4882*4882a593Smuzhiyun 
4883*4882a593Smuzhiyun #define REG_A6XX_VPC_DS_LAYER_CNTL				0x00009106
4884*4882a593Smuzhiyun #define A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4885*4882a593Smuzhiyun #define A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_DS_LAYER_CNTL_LAYERLOC(uint32_t val)4886*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_LAYER_CNTL_LAYERLOC(uint32_t val)
4887*4882a593Smuzhiyun {
4888*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__MASK;
4889*4882a593Smuzhiyun }
4890*4882a593Smuzhiyun #define A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4891*4882a593Smuzhiyun #define A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_DS_LAYER_CNTL_VIEWLOC(uint32_t val)4892*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_LAYER_CNTL_VIEWLOC(uint32_t val)
4893*4882a593Smuzhiyun {
4894*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__MASK;
4895*4882a593Smuzhiyun }
4896*4882a593Smuzhiyun 
4897*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9107				0x00009107
4898*4882a593Smuzhiyun 
4899*4882a593Smuzhiyun #define REG_A6XX_VPC_POLYGON_MODE				0x00009108
4900*4882a593Smuzhiyun #define A6XX_VPC_POLYGON_MODE_MODE__MASK			0x00000003
4901*4882a593Smuzhiyun #define A6XX_VPC_POLYGON_MODE_MODE__SHIFT			0
A6XX_VPC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)4902*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)
4903*4882a593Smuzhiyun {
4904*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_POLYGON_MODE_MODE__SHIFT) & A6XX_VPC_POLYGON_MODE_MODE__MASK;
4905*4882a593Smuzhiyun }
4906*4882a593Smuzhiyun 
REG_A6XX_VPC_VARYING_INTERP(uint32_t i0)4907*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00009200 + 0x1*i0; }
4908*4882a593Smuzhiyun 
REG_A6XX_VPC_VARYING_INTERP_MODE(uint32_t i0)4909*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x00009200 + 0x1*i0; }
4910*4882a593Smuzhiyun 
REG_A6XX_VPC_VARYING_PS_REPL(uint32_t i0)4911*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x00009208 + 0x1*i0; }
4912*4882a593Smuzhiyun 
REG_A6XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0)4913*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x00009208 + 0x1*i0; }
4914*4882a593Smuzhiyun 
4915*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9210				0x00009210
4916*4882a593Smuzhiyun 
4917*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9211				0x00009211
4918*4882a593Smuzhiyun 
REG_A6XX_VPC_VAR(uint32_t i0)4919*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VAR(uint32_t i0) { return 0x00009212 + 0x1*i0; }
4920*4882a593Smuzhiyun 
REG_A6XX_VPC_VAR_DISABLE(uint32_t i0)4921*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_VAR_DISABLE(uint32_t i0) { return 0x00009212 + 0x1*i0; }
4922*4882a593Smuzhiyun 
4923*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_CNTL					0x00009216
4924*4882a593Smuzhiyun #define A6XX_VPC_SO_CNTL_UNK0__MASK				0x000000ff
4925*4882a593Smuzhiyun #define A6XX_VPC_SO_CNTL_UNK0__SHIFT				0
A6XX_VPC_SO_CNTL_UNK0(uint32_t val)4926*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_CNTL_UNK0(uint32_t val)
4927*4882a593Smuzhiyun {
4928*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_CNTL_UNK0__SHIFT) & A6XX_VPC_SO_CNTL_UNK0__MASK;
4929*4882a593Smuzhiyun }
4930*4882a593Smuzhiyun #define A6XX_VPC_SO_CNTL_ENABLE					0x00010000
4931*4882a593Smuzhiyun 
4932*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_PROG					0x00009217
4933*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_A_BUF__MASK				0x00000003
4934*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_A_BUF__SHIFT				0
A6XX_VPC_SO_PROG_A_BUF(uint32_t val)4935*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_PROG_A_BUF(uint32_t val)
4936*4882a593Smuzhiyun {
4937*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_PROG_A_BUF__SHIFT) & A6XX_VPC_SO_PROG_A_BUF__MASK;
4938*4882a593Smuzhiyun }
4939*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_A_OFF__MASK				0x000007fc
4940*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_A_OFF__SHIFT				2
A6XX_VPC_SO_PROG_A_OFF(uint32_t val)4941*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_PROG_A_OFF(uint32_t val)
4942*4882a593Smuzhiyun {
4943*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_VPC_SO_PROG_A_OFF__SHIFT) & A6XX_VPC_SO_PROG_A_OFF__MASK;
4944*4882a593Smuzhiyun }
4945*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_A_EN					0x00000800
4946*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_B_BUF__MASK				0x00003000
4947*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_B_BUF__SHIFT				12
A6XX_VPC_SO_PROG_B_BUF(uint32_t val)4948*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_PROG_B_BUF(uint32_t val)
4949*4882a593Smuzhiyun {
4950*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_PROG_B_BUF__SHIFT) & A6XX_VPC_SO_PROG_B_BUF__MASK;
4951*4882a593Smuzhiyun }
4952*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_B_OFF__MASK				0x007fc000
4953*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_B_OFF__SHIFT				14
A6XX_VPC_SO_PROG_B_OFF(uint32_t val)4954*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_PROG_B_OFF(uint32_t val)
4955*4882a593Smuzhiyun {
4956*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_VPC_SO_PROG_B_OFF__SHIFT) & A6XX_VPC_SO_PROG_B_OFF__MASK;
4957*4882a593Smuzhiyun }
4958*4882a593Smuzhiyun #define A6XX_VPC_SO_PROG_B_EN					0x00800000
4959*4882a593Smuzhiyun 
4960*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_STREAM_COUNTS_LO			0x00009218
4961*4882a593Smuzhiyun 
4962*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_STREAM_COUNTS_HI			0x00009219
4963*4882a593Smuzhiyun 
4964*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_STREAM_COUNTS				0x00009218
4965*4882a593Smuzhiyun #define A6XX_VPC_SO_STREAM_COUNTS__MASK				0xffffffff
4966*4882a593Smuzhiyun #define A6XX_VPC_SO_STREAM_COUNTS__SHIFT			0
A6XX_VPC_SO_STREAM_COUNTS(uint32_t val)4967*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_STREAM_COUNTS(uint32_t val)
4968*4882a593Smuzhiyun {
4969*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_STREAM_COUNTS__SHIFT) & A6XX_VPC_SO_STREAM_COUNTS__MASK;
4970*4882a593Smuzhiyun }
4971*4882a593Smuzhiyun 
REG_A6XX_VPC_SO(uint32_t i0)4972*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO(uint32_t i0) { return 0x0000921a + 0x7*i0; }
4973*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_BUFFER_BASE(uint32_t i0)4974*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE(uint32_t i0) { return 0x0000921a + 0x7*i0; }
4975*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_BASE__MASK				0xffffffff
4976*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_BASE__SHIFT				0
A6XX_VPC_SO_BUFFER_BASE(uint32_t val)4977*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_BUFFER_BASE(uint32_t val)
4978*4882a593Smuzhiyun {
4979*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_BUFFER_BASE__SHIFT) & A6XX_VPC_SO_BUFFER_BASE__MASK;
4980*4882a593Smuzhiyun }
4981*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_BUFFER_BASE_LO(uint32_t i0)4982*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE_LO(uint32_t i0) { return 0x0000921a + 0x7*i0; }
4983*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_BUFFER_BASE_HI(uint32_t i0)4984*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE_HI(uint32_t i0) { return 0x0000921b + 0x7*i0; }
4985*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_BUFFER_SIZE(uint32_t i0)4986*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_BUFFER_SIZE(uint32_t i0) { return 0x0000921c + 0x7*i0; }
4987*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_SIZE__MASK				0xfffffffc
4988*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_SIZE__SHIFT				2
A6XX_VPC_SO_BUFFER_SIZE(uint32_t val)4989*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_BUFFER_SIZE(uint32_t val)
4990*4882a593Smuzhiyun {
4991*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_VPC_SO_BUFFER_SIZE__SHIFT) & A6XX_VPC_SO_BUFFER_SIZE__MASK;
4992*4882a593Smuzhiyun }
4993*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_NCOMP(uint32_t i0)4994*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_NCOMP(uint32_t i0) { return 0x0000921d + 0x7*i0; }
4995*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_BUFFER_OFFSET(uint32_t i0)4996*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_BUFFER_OFFSET(uint32_t i0) { return 0x0000921e + 0x7*i0; }
4997*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_OFFSET__MASK				0xfffffffc
4998*4882a593Smuzhiyun #define A6XX_VPC_SO_BUFFER_OFFSET__SHIFT			2
A6XX_VPC_SO_BUFFER_OFFSET(uint32_t val)4999*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_BUFFER_OFFSET(uint32_t val)
5000*4882a593Smuzhiyun {
5001*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_VPC_SO_BUFFER_OFFSET__SHIFT) & A6XX_VPC_SO_BUFFER_OFFSET__MASK;
5002*4882a593Smuzhiyun }
5003*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_FLUSH_BASE(uint32_t i0)5004*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE(uint32_t i0) { return 0x0000921f + 0x7*i0; }
5005*4882a593Smuzhiyun #define A6XX_VPC_SO_FLUSH_BASE__MASK				0xffffffff
5006*4882a593Smuzhiyun #define A6XX_VPC_SO_FLUSH_BASE__SHIFT				0
A6XX_VPC_SO_FLUSH_BASE(uint32_t val)5007*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_FLUSH_BASE(uint32_t val)
5008*4882a593Smuzhiyun {
5009*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_FLUSH_BASE__SHIFT) & A6XX_VPC_SO_FLUSH_BASE__MASK;
5010*4882a593Smuzhiyun }
5011*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_FLUSH_BASE_LO(uint32_t i0)5012*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE_LO(uint32_t i0) { return 0x0000921f + 0x7*i0; }
5013*4882a593Smuzhiyun 
REG_A6XX_VPC_SO_FLUSH_BASE_HI(uint32_t i0)5014*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE_HI(uint32_t i0) { return 0x00009220 + 0x7*i0; }
5015*4882a593Smuzhiyun 
5016*4882a593Smuzhiyun #define REG_A6XX_VPC_POINT_COORD_INVERT				0x00009236
5017*4882a593Smuzhiyun #define A6XX_VPC_POINT_COORD_INVERT_INVERT			0x00000001
5018*4882a593Smuzhiyun 
5019*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9300				0x00009300
5020*4882a593Smuzhiyun 
5021*4882a593Smuzhiyun #define REG_A6XX_VPC_VS_PACK					0x00009301
5022*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
5023*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_VS_PACK_STRIDE_IN_VPC(uint32_t val)5024*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_PACK_STRIDE_IN_VPC(uint32_t val)
5025*4882a593Smuzhiyun {
5026*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_VS_PACK_STRIDE_IN_VPC__MASK;
5027*4882a593Smuzhiyun }
5028*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_POSITIONLOC__MASK			0x0000ff00
5029*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_VS_PACK_POSITIONLOC(uint32_t val)5030*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_PACK_POSITIONLOC(uint32_t val)
5031*4882a593Smuzhiyun {
5032*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_VS_PACK_POSITIONLOC__MASK;
5033*4882a593Smuzhiyun }
5034*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_PSIZELOC__MASK				0x00ff0000
5035*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_VS_PACK_PSIZELOC(uint32_t val)5036*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_PACK_PSIZELOC(uint32_t val)
5037*4882a593Smuzhiyun {
5038*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_VS_PACK_PSIZELOC__MASK;
5039*4882a593Smuzhiyun }
5040*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_UNK24__MASK				0x0f000000
5041*4882a593Smuzhiyun #define A6XX_VPC_VS_PACK_UNK24__SHIFT				24
A6XX_VPC_VS_PACK_UNK24(uint32_t val)5042*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_VS_PACK_UNK24(uint32_t val)
5043*4882a593Smuzhiyun {
5044*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_VS_PACK_UNK24__SHIFT) & A6XX_VPC_VS_PACK_UNK24__MASK;
5045*4882a593Smuzhiyun }
5046*4882a593Smuzhiyun 
5047*4882a593Smuzhiyun #define REG_A6XX_VPC_GS_PACK					0x00009302
5048*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
5049*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_GS_PACK_STRIDE_IN_VPC(uint32_t val)5050*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_PACK_STRIDE_IN_VPC(uint32_t val)
5051*4882a593Smuzhiyun {
5052*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_GS_PACK_STRIDE_IN_VPC__MASK;
5053*4882a593Smuzhiyun }
5054*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_POSITIONLOC__MASK			0x0000ff00
5055*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_GS_PACK_POSITIONLOC(uint32_t val)5056*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_PACK_POSITIONLOC(uint32_t val)
5057*4882a593Smuzhiyun {
5058*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_GS_PACK_POSITIONLOC__MASK;
5059*4882a593Smuzhiyun }
5060*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_PSIZELOC__MASK				0x00ff0000
5061*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_GS_PACK_PSIZELOC(uint32_t val)5062*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_PACK_PSIZELOC(uint32_t val)
5063*4882a593Smuzhiyun {
5064*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_GS_PACK_PSIZELOC__MASK;
5065*4882a593Smuzhiyun }
5066*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_UNK24__MASK				0x0f000000
5067*4882a593Smuzhiyun #define A6XX_VPC_GS_PACK_UNK24__SHIFT				24
A6XX_VPC_GS_PACK_UNK24(uint32_t val)5068*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_GS_PACK_UNK24(uint32_t val)
5069*4882a593Smuzhiyun {
5070*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_GS_PACK_UNK24__SHIFT) & A6XX_VPC_GS_PACK_UNK24__MASK;
5071*4882a593Smuzhiyun }
5072*4882a593Smuzhiyun 
5073*4882a593Smuzhiyun #define REG_A6XX_VPC_DS_PACK					0x00009303
5074*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
5075*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_DS_PACK_STRIDE_IN_VPC(uint32_t val)5076*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_PACK_STRIDE_IN_VPC(uint32_t val)
5077*4882a593Smuzhiyun {
5078*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_DS_PACK_STRIDE_IN_VPC__MASK;
5079*4882a593Smuzhiyun }
5080*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_POSITIONLOC__MASK			0x0000ff00
5081*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_DS_PACK_POSITIONLOC(uint32_t val)5082*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_PACK_POSITIONLOC(uint32_t val)
5083*4882a593Smuzhiyun {
5084*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_DS_PACK_POSITIONLOC__MASK;
5085*4882a593Smuzhiyun }
5086*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_PSIZELOC__MASK				0x00ff0000
5087*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_DS_PACK_PSIZELOC(uint32_t val)5088*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_PACK_PSIZELOC(uint32_t val)
5089*4882a593Smuzhiyun {
5090*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_DS_PACK_PSIZELOC__MASK;
5091*4882a593Smuzhiyun }
5092*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_UNK24__MASK				0x0f000000
5093*4882a593Smuzhiyun #define A6XX_VPC_DS_PACK_UNK24__SHIFT				24
A6XX_VPC_DS_PACK_UNK24(uint32_t val)5094*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_DS_PACK_UNK24(uint32_t val)
5095*4882a593Smuzhiyun {
5096*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_DS_PACK_UNK24__SHIFT) & A6XX_VPC_DS_PACK_UNK24__MASK;
5097*4882a593Smuzhiyun }
5098*4882a593Smuzhiyun 
5099*4882a593Smuzhiyun #define REG_A6XX_VPC_CNTL_0					0x00009304
5100*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK			0x000000ff
5101*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT			0
A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val)5102*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val)
5103*4882a593Smuzhiyun {
5104*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT) & A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK;
5105*4882a593Smuzhiyun }
5106*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_PRIMIDLOC__MASK				0x0000ff00
5107*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT			8
A6XX_VPC_CNTL_0_PRIMIDLOC(uint32_t val)5108*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_CNTL_0_PRIMIDLOC(uint32_t val)
5109*4882a593Smuzhiyun {
5110*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT) & A6XX_VPC_CNTL_0_PRIMIDLOC__MASK;
5111*4882a593Smuzhiyun }
5112*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_VARYING					0x00010000
5113*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_UNKLOC__MASK				0xff000000
5114*4882a593Smuzhiyun #define A6XX_VPC_CNTL_0_UNKLOC__SHIFT				24
A6XX_VPC_CNTL_0_UNKLOC(uint32_t val)5115*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_CNTL_0_UNKLOC(uint32_t val)
5116*4882a593Smuzhiyun {
5117*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_CNTL_0_UNKLOC__SHIFT) & A6XX_VPC_CNTL_0_UNKLOC__MASK;
5118*4882a593Smuzhiyun }
5119*4882a593Smuzhiyun 
5120*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_BUF_CNTL				0x00009305
5121*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_BUF0				0x00000001
5122*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_BUF1				0x00000008
5123*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_BUF2				0x00000040
5124*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_BUF3				0x00000200
5125*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_ENABLE				0x00008000
5126*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_UNK16__MASK			0x000f0000
5127*4882a593Smuzhiyun #define A6XX_VPC_SO_BUF_CNTL_UNK16__SHIFT			16
A6XX_VPC_SO_BUF_CNTL_UNK16(uint32_t val)5128*4882a593Smuzhiyun static inline uint32_t A6XX_VPC_SO_BUF_CNTL_UNK16(uint32_t val)
5129*4882a593Smuzhiyun {
5130*4882a593Smuzhiyun 	return ((val) << A6XX_VPC_SO_BUF_CNTL_UNK16__SHIFT) & A6XX_VPC_SO_BUF_CNTL_UNK16__MASK;
5131*4882a593Smuzhiyun }
5132*4882a593Smuzhiyun 
5133*4882a593Smuzhiyun #define REG_A6XX_VPC_SO_DISABLE					0x00009306
5134*4882a593Smuzhiyun #define A6XX_VPC_SO_DISABLE_DISABLE				0x00000001
5135*4882a593Smuzhiyun 
5136*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9600				0x00009600
5137*4882a593Smuzhiyun 
5138*4882a593Smuzhiyun #define REG_A6XX_VPC_ADDR_MODE_CNTL				0x00009601
5139*4882a593Smuzhiyun 
5140*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9602				0x00009602
5141*4882a593Smuzhiyun 
5142*4882a593Smuzhiyun #define REG_A6XX_VPC_UNKNOWN_9603				0x00009603
5143*4882a593Smuzhiyun 
5144*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_0				0x00009604
5145*4882a593Smuzhiyun 
5146*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_1				0x00009605
5147*4882a593Smuzhiyun 
5148*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_2				0x00009606
5149*4882a593Smuzhiyun 
5150*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_3				0x00009607
5151*4882a593Smuzhiyun 
5152*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_4				0x00009608
5153*4882a593Smuzhiyun 
5154*4882a593Smuzhiyun #define REG_A6XX_VPC_PERFCTR_VPC_SEL_5				0x00009609
5155*4882a593Smuzhiyun 
5156*4882a593Smuzhiyun #define REG_A6XX_PC_TESS_NUM_VERTEX				0x00009800
5157*4882a593Smuzhiyun 
5158*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9801				0x00009801
5159*4882a593Smuzhiyun #define A6XX_PC_UNKNOWN_9801_UNK0__MASK				0x000007ff
5160*4882a593Smuzhiyun #define A6XX_PC_UNKNOWN_9801_UNK0__SHIFT			0
A6XX_PC_UNKNOWN_9801_UNK0(uint32_t val)5161*4882a593Smuzhiyun static inline uint32_t A6XX_PC_UNKNOWN_9801_UNK0(uint32_t val)
5162*4882a593Smuzhiyun {
5163*4882a593Smuzhiyun 	return ((val) << A6XX_PC_UNKNOWN_9801_UNK0__SHIFT) & A6XX_PC_UNKNOWN_9801_UNK0__MASK;
5164*4882a593Smuzhiyun }
5165*4882a593Smuzhiyun #define A6XX_PC_UNKNOWN_9801_UNK13__MASK			0x00002000
5166*4882a593Smuzhiyun #define A6XX_PC_UNKNOWN_9801_UNK13__SHIFT			13
A6XX_PC_UNKNOWN_9801_UNK13(uint32_t val)5167*4882a593Smuzhiyun static inline uint32_t A6XX_PC_UNKNOWN_9801_UNK13(uint32_t val)
5168*4882a593Smuzhiyun {
5169*4882a593Smuzhiyun 	return ((val) << A6XX_PC_UNKNOWN_9801_UNK13__SHIFT) & A6XX_PC_UNKNOWN_9801_UNK13__MASK;
5170*4882a593Smuzhiyun }
5171*4882a593Smuzhiyun 
5172*4882a593Smuzhiyun #define REG_A6XX_PC_TESS_CNTL					0x00009802
5173*4882a593Smuzhiyun #define A6XX_PC_TESS_CNTL_SPACING__MASK				0x00000003
5174*4882a593Smuzhiyun #define A6XX_PC_TESS_CNTL_SPACING__SHIFT			0
A6XX_PC_TESS_CNTL_SPACING(enum a6xx_tess_spacing val)5175*4882a593Smuzhiyun static inline uint32_t A6XX_PC_TESS_CNTL_SPACING(enum a6xx_tess_spacing val)
5176*4882a593Smuzhiyun {
5177*4882a593Smuzhiyun 	return ((val) << A6XX_PC_TESS_CNTL_SPACING__SHIFT) & A6XX_PC_TESS_CNTL_SPACING__MASK;
5178*4882a593Smuzhiyun }
5179*4882a593Smuzhiyun #define A6XX_PC_TESS_CNTL_OUTPUT__MASK				0x0000000c
5180*4882a593Smuzhiyun #define A6XX_PC_TESS_CNTL_OUTPUT__SHIFT				2
A6XX_PC_TESS_CNTL_OUTPUT(enum a6xx_tess_output val)5181*4882a593Smuzhiyun static inline uint32_t A6XX_PC_TESS_CNTL_OUTPUT(enum a6xx_tess_output val)
5182*4882a593Smuzhiyun {
5183*4882a593Smuzhiyun 	return ((val) << A6XX_PC_TESS_CNTL_OUTPUT__SHIFT) & A6XX_PC_TESS_CNTL_OUTPUT__MASK;
5184*4882a593Smuzhiyun }
5185*4882a593Smuzhiyun 
5186*4882a593Smuzhiyun #define REG_A6XX_PC_RESTART_INDEX				0x00009803
5187*4882a593Smuzhiyun 
5188*4882a593Smuzhiyun #define REG_A6XX_PC_MODE_CNTL					0x00009804
5189*4882a593Smuzhiyun 
5190*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9805				0x00009805
5191*4882a593Smuzhiyun 
5192*4882a593Smuzhiyun #define REG_A6XX_PC_PRIMID_PASSTHRU				0x00009806
5193*4882a593Smuzhiyun 
5194*4882a593Smuzhiyun #define REG_A6XX_PC_DRAW_CMD					0x00009840
5195*4882a593Smuzhiyun #define A6XX_PC_DRAW_CMD_STATE_ID__MASK				0x000000ff
5196*4882a593Smuzhiyun #define A6XX_PC_DRAW_CMD_STATE_ID__SHIFT			0
A6XX_PC_DRAW_CMD_STATE_ID(uint32_t val)5197*4882a593Smuzhiyun static inline uint32_t A6XX_PC_DRAW_CMD_STATE_ID(uint32_t val)
5198*4882a593Smuzhiyun {
5199*4882a593Smuzhiyun 	return ((val) << A6XX_PC_DRAW_CMD_STATE_ID__SHIFT) & A6XX_PC_DRAW_CMD_STATE_ID__MASK;
5200*4882a593Smuzhiyun }
5201*4882a593Smuzhiyun 
5202*4882a593Smuzhiyun #define REG_A6XX_PC_DISPATCH_CMD				0x00009841
5203*4882a593Smuzhiyun #define A6XX_PC_DISPATCH_CMD_STATE_ID__MASK			0x000000ff
5204*4882a593Smuzhiyun #define A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT			0
A6XX_PC_DISPATCH_CMD_STATE_ID(uint32_t val)5205*4882a593Smuzhiyun static inline uint32_t A6XX_PC_DISPATCH_CMD_STATE_ID(uint32_t val)
5206*4882a593Smuzhiyun {
5207*4882a593Smuzhiyun 	return ((val) << A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_PC_DISPATCH_CMD_STATE_ID__MASK;
5208*4882a593Smuzhiyun }
5209*4882a593Smuzhiyun 
5210*4882a593Smuzhiyun #define REG_A6XX_PC_EVENT_CMD					0x00009842
5211*4882a593Smuzhiyun #define A6XX_PC_EVENT_CMD_STATE_ID__MASK			0x00ff0000
5212*4882a593Smuzhiyun #define A6XX_PC_EVENT_CMD_STATE_ID__SHIFT			16
A6XX_PC_EVENT_CMD_STATE_ID(uint32_t val)5213*4882a593Smuzhiyun static inline uint32_t A6XX_PC_EVENT_CMD_STATE_ID(uint32_t val)
5214*4882a593Smuzhiyun {
5215*4882a593Smuzhiyun 	return ((val) << A6XX_PC_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_EVENT_CMD_STATE_ID__MASK;
5216*4882a593Smuzhiyun }
5217*4882a593Smuzhiyun #define A6XX_PC_EVENT_CMD_EVENT__MASK				0x0000007f
5218*4882a593Smuzhiyun #define A6XX_PC_EVENT_CMD_EVENT__SHIFT				0
A6XX_PC_EVENT_CMD_EVENT(enum vgt_event_type val)5219*4882a593Smuzhiyun static inline uint32_t A6XX_PC_EVENT_CMD_EVENT(enum vgt_event_type val)
5220*4882a593Smuzhiyun {
5221*4882a593Smuzhiyun 	return ((val) << A6XX_PC_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_EVENT_CMD_EVENT__MASK;
5222*4882a593Smuzhiyun }
5223*4882a593Smuzhiyun 
5224*4882a593Smuzhiyun #define REG_A6XX_PC_POLYGON_MODE				0x00009981
5225*4882a593Smuzhiyun #define A6XX_PC_POLYGON_MODE_MODE__MASK				0x00000003
5226*4882a593Smuzhiyun #define A6XX_PC_POLYGON_MODE_MODE__SHIFT			0
A6XX_PC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)5227*4882a593Smuzhiyun static inline uint32_t A6XX_PC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)
5228*4882a593Smuzhiyun {
5229*4882a593Smuzhiyun 	return ((val) << A6XX_PC_POLYGON_MODE_MODE__SHIFT) & A6XX_PC_POLYGON_MODE_MODE__MASK;
5230*4882a593Smuzhiyun }
5231*4882a593Smuzhiyun 
5232*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9980				0x00009980
5233*4882a593Smuzhiyun 
5234*4882a593Smuzhiyun #define REG_A6XX_PC_PRIMITIVE_CNTL_0				0x00009b00
5235*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_0_PRIMITIVE_RESTART		0x00000001
5236*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_0_PROVOKING_VTX_LAST		0x00000002
5237*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_0_TESS_UPPER_LEFT_DOMAIN_ORIGIN	0x00000004
5238*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_0_UNK3				0x00000008
5239*4882a593Smuzhiyun 
5240*4882a593Smuzhiyun #define REG_A6XX_PC_VS_OUT_CNTL					0x00009b01
5241*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5242*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5243*4882a593Smuzhiyun static inline uint32_t A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
5244*4882a593Smuzhiyun {
5245*4882a593Smuzhiyun 	return ((val) << A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__MASK;
5246*4882a593Smuzhiyun }
5247*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_PSIZE				0x00000100
5248*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_LAYER				0x00000200
5249*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_VIEW				0x00000400
5250*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5251*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5252*4882a593Smuzhiyun #define A6XX_PC_VS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_VS_OUT_CNTL_CLIP_MASK(uint32_t val)5253*4882a593Smuzhiyun static inline uint32_t A6XX_PC_VS_OUT_CNTL_CLIP_MASK(uint32_t val)
5254*4882a593Smuzhiyun {
5255*4882a593Smuzhiyun 	return ((val) << A6XX_PC_VS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_VS_OUT_CNTL_CLIP_MASK__MASK;
5256*4882a593Smuzhiyun }
5257*4882a593Smuzhiyun 
5258*4882a593Smuzhiyun #define REG_A6XX_PC_GS_OUT_CNTL					0x00009b02
5259*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5260*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5261*4882a593Smuzhiyun static inline uint32_t A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
5262*4882a593Smuzhiyun {
5263*4882a593Smuzhiyun 	return ((val) << A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__MASK;
5264*4882a593Smuzhiyun }
5265*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_PSIZE				0x00000100
5266*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_LAYER				0x00000200
5267*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_VIEW				0x00000400
5268*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5269*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5270*4882a593Smuzhiyun #define A6XX_PC_GS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_GS_OUT_CNTL_CLIP_MASK(uint32_t val)5271*4882a593Smuzhiyun static inline uint32_t A6XX_PC_GS_OUT_CNTL_CLIP_MASK(uint32_t val)
5272*4882a593Smuzhiyun {
5273*4882a593Smuzhiyun 	return ((val) << A6XX_PC_GS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_GS_OUT_CNTL_CLIP_MASK__MASK;
5274*4882a593Smuzhiyun }
5275*4882a593Smuzhiyun 
5276*4882a593Smuzhiyun #define REG_A6XX_PC_PRIMITIVE_CNTL_3				0x00009b03
5277*4882a593Smuzhiyun 
5278*4882a593Smuzhiyun #define REG_A6XX_PC_DS_OUT_CNTL					0x00009b04
5279*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5280*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5281*4882a593Smuzhiyun static inline uint32_t A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
5282*4882a593Smuzhiyun {
5283*4882a593Smuzhiyun 	return ((val) << A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__MASK;
5284*4882a593Smuzhiyun }
5285*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_PSIZE				0x00000100
5286*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_LAYER				0x00000200
5287*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_VIEW				0x00000400
5288*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5289*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5290*4882a593Smuzhiyun #define A6XX_PC_DS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_DS_OUT_CNTL_CLIP_MASK(uint32_t val)5291*4882a593Smuzhiyun static inline uint32_t A6XX_PC_DS_OUT_CNTL_CLIP_MASK(uint32_t val)
5292*4882a593Smuzhiyun {
5293*4882a593Smuzhiyun 	return ((val) << A6XX_PC_DS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_DS_OUT_CNTL_CLIP_MASK__MASK;
5294*4882a593Smuzhiyun }
5295*4882a593Smuzhiyun 
5296*4882a593Smuzhiyun #define REG_A6XX_PC_PRIMITIVE_CNTL_5				0x00009b05
5297*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK		0x000000ff
5298*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT		0
A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT(uint32_t val)5299*4882a593Smuzhiyun static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT(uint32_t val)
5300*4882a593Smuzhiyun {
5301*4882a593Smuzhiyun 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK;
5302*4882a593Smuzhiyun }
5303*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK		0x00007c00
5304*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT		10
A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS(uint32_t val)5305*4882a593Smuzhiyun static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS(uint32_t val)
5306*4882a593Smuzhiyun {
5307*4882a593Smuzhiyun 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK;
5308*4882a593Smuzhiyun }
5309*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK		0x00030000
5310*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT		16
A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT(enum a6xx_tess_output val)5311*4882a593Smuzhiyun static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT(enum a6xx_tess_output val)
5312*4882a593Smuzhiyun {
5313*4882a593Smuzhiyun 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK;
5314*4882a593Smuzhiyun }
5315*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_UNK18__MASK			0x00040000
5316*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_5_UNK18__SHIFT			18
A6XX_PC_PRIMITIVE_CNTL_5_UNK18(uint32_t val)5317*4882a593Smuzhiyun static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_UNK18(uint32_t val)
5318*4882a593Smuzhiyun {
5319*4882a593Smuzhiyun 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_UNK18__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_UNK18__MASK;
5320*4882a593Smuzhiyun }
5321*4882a593Smuzhiyun 
5322*4882a593Smuzhiyun #define REG_A6XX_PC_PRIMITIVE_CNTL_6				0x00009b06
5323*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK		0x000007ff
5324*4882a593Smuzhiyun #define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC(uint32_t val)5325*4882a593Smuzhiyun static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC(uint32_t val)
5326*4882a593Smuzhiyun {
5327*4882a593Smuzhiyun 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK;
5328*4882a593Smuzhiyun }
5329*4882a593Smuzhiyun 
5330*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9B07				0x00009b07
5331*4882a593Smuzhiyun 
5332*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9B08				0x00009b08
5333*4882a593Smuzhiyun 
5334*4882a593Smuzhiyun #define REG_A6XX_PC_2D_EVENT_CMD				0x00009c00
5335*4882a593Smuzhiyun #define A6XX_PC_2D_EVENT_CMD_EVENT__MASK			0x0000007f
5336*4882a593Smuzhiyun #define A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT			0
A6XX_PC_2D_EVENT_CMD_EVENT(enum vgt_event_type val)5337*4882a593Smuzhiyun static inline uint32_t A6XX_PC_2D_EVENT_CMD_EVENT(enum vgt_event_type val)
5338*4882a593Smuzhiyun {
5339*4882a593Smuzhiyun 	return ((val) << A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_2D_EVENT_CMD_EVENT__MASK;
5340*4882a593Smuzhiyun }
5341*4882a593Smuzhiyun #define A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK			0x0000ff00
5342*4882a593Smuzhiyun #define A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT			8
A6XX_PC_2D_EVENT_CMD_STATE_ID(uint32_t val)5343*4882a593Smuzhiyun static inline uint32_t A6XX_PC_2D_EVENT_CMD_STATE_ID(uint32_t val)
5344*4882a593Smuzhiyun {
5345*4882a593Smuzhiyun 	return ((val) << A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK;
5346*4882a593Smuzhiyun }
5347*4882a593Smuzhiyun 
5348*4882a593Smuzhiyun #define REG_A6XX_PC_DBG_ECO_CNTL				0x00009e00
5349*4882a593Smuzhiyun 
5350*4882a593Smuzhiyun #define REG_A6XX_PC_ADDR_MODE_CNTL				0x00009e01
5351*4882a593Smuzhiyun 
5352*4882a593Smuzhiyun #define REG_A6XX_PC_TESSFACTOR_ADDR_LO				0x00009e08
5353*4882a593Smuzhiyun 
5354*4882a593Smuzhiyun #define REG_A6XX_PC_TESSFACTOR_ADDR_HI				0x00009e09
5355*4882a593Smuzhiyun 
5356*4882a593Smuzhiyun #define REG_A6XX_PC_TESSFACTOR_ADDR				0x00009e08
5357*4882a593Smuzhiyun #define A6XX_PC_TESSFACTOR_ADDR__MASK				0xffffffff
5358*4882a593Smuzhiyun #define A6XX_PC_TESSFACTOR_ADDR__SHIFT				0
A6XX_PC_TESSFACTOR_ADDR(uint32_t val)5359*4882a593Smuzhiyun static inline uint32_t A6XX_PC_TESSFACTOR_ADDR(uint32_t val)
5360*4882a593Smuzhiyun {
5361*4882a593Smuzhiyun 	return ((val) << A6XX_PC_TESSFACTOR_ADDR__SHIFT) & A6XX_PC_TESSFACTOR_ADDR__MASK;
5362*4882a593Smuzhiyun }
5363*4882a593Smuzhiyun 
5364*4882a593Smuzhiyun #define REG_A6XX_PC_VSTREAM_CONTROL				0x00009e11
5365*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_UNK0__MASK			0x0000ffff
5366*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_UNK0__SHIFT			0
A6XX_PC_VSTREAM_CONTROL_UNK0(uint32_t val)5367*4882a593Smuzhiyun static inline uint32_t A6XX_PC_VSTREAM_CONTROL_UNK0(uint32_t val)
5368*4882a593Smuzhiyun {
5369*4882a593Smuzhiyun 	return ((val) << A6XX_PC_VSTREAM_CONTROL_UNK0__SHIFT) & A6XX_PC_VSTREAM_CONTROL_UNK0__MASK;
5370*4882a593Smuzhiyun }
5371*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK			0x003f0000
5372*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT			16
A6XX_PC_VSTREAM_CONTROL_VSC_SIZE(uint32_t val)5373*4882a593Smuzhiyun static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_SIZE(uint32_t val)
5374*4882a593Smuzhiyun {
5375*4882a593Smuzhiyun 	return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK;
5376*4882a593Smuzhiyun }
5377*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK			0x07c00000
5378*4882a593Smuzhiyun #define A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT			22
A6XX_PC_VSTREAM_CONTROL_VSC_N(uint32_t val)5379*4882a593Smuzhiyun static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_N(uint32_t val)
5380*4882a593Smuzhiyun {
5381*4882a593Smuzhiyun 	return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK;
5382*4882a593Smuzhiyun }
5383*4882a593Smuzhiyun 
5384*4882a593Smuzhiyun #define REG_A6XX_PC_BIN_PRIM_STRM				0x00009e12
5385*4882a593Smuzhiyun #define A6XX_PC_BIN_PRIM_STRM__MASK				0xffffffff
5386*4882a593Smuzhiyun #define A6XX_PC_BIN_PRIM_STRM__SHIFT				0
A6XX_PC_BIN_PRIM_STRM(uint32_t val)5387*4882a593Smuzhiyun static inline uint32_t A6XX_PC_BIN_PRIM_STRM(uint32_t val)
5388*4882a593Smuzhiyun {
5389*4882a593Smuzhiyun 	return ((val) << A6XX_PC_BIN_PRIM_STRM__SHIFT) & A6XX_PC_BIN_PRIM_STRM__MASK;
5390*4882a593Smuzhiyun }
5391*4882a593Smuzhiyun 
5392*4882a593Smuzhiyun #define REG_A6XX_PC_BIN_DRAW_STRM				0x00009e14
5393*4882a593Smuzhiyun #define A6XX_PC_BIN_DRAW_STRM__MASK				0xffffffff
5394*4882a593Smuzhiyun #define A6XX_PC_BIN_DRAW_STRM__SHIFT				0
A6XX_PC_BIN_DRAW_STRM(uint32_t val)5395*4882a593Smuzhiyun static inline uint32_t A6XX_PC_BIN_DRAW_STRM(uint32_t val)
5396*4882a593Smuzhiyun {
5397*4882a593Smuzhiyun 	return ((val) << A6XX_PC_BIN_DRAW_STRM__SHIFT) & A6XX_PC_BIN_DRAW_STRM__MASK;
5398*4882a593Smuzhiyun }
5399*4882a593Smuzhiyun 
5400*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_0				0x00009e34
5401*4882a593Smuzhiyun 
5402*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_1				0x00009e35
5403*4882a593Smuzhiyun 
5404*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_2				0x00009e36
5405*4882a593Smuzhiyun 
5406*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_3				0x00009e37
5407*4882a593Smuzhiyun 
5408*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_4				0x00009e38
5409*4882a593Smuzhiyun 
5410*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_5				0x00009e39
5411*4882a593Smuzhiyun 
5412*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_6				0x00009e3a
5413*4882a593Smuzhiyun 
5414*4882a593Smuzhiyun #define REG_A6XX_PC_PERFCTR_PC_SEL_7				0x00009e3b
5415*4882a593Smuzhiyun 
5416*4882a593Smuzhiyun #define REG_A6XX_PC_UNKNOWN_9E72				0x00009e72
5417*4882a593Smuzhiyun 
5418*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_0					0x0000a000
5419*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_0_FETCH_CNT__MASK			0x0000003f
5420*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT			0
A6XX_VFD_CONTROL_0_FETCH_CNT(uint32_t val)5421*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_0_FETCH_CNT(uint32_t val)
5422*4882a593Smuzhiyun {
5423*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT) & A6XX_VFD_CONTROL_0_FETCH_CNT__MASK;
5424*4882a593Smuzhiyun }
5425*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_0_DECODE_CNT__MASK			0x00003f00
5426*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT			8
A6XX_VFD_CONTROL_0_DECODE_CNT(uint32_t val)5427*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_0_DECODE_CNT(uint32_t val)
5428*4882a593Smuzhiyun {
5429*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT) & A6XX_VFD_CONTROL_0_DECODE_CNT__MASK;
5430*4882a593Smuzhiyun }
5431*4882a593Smuzhiyun 
5432*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_1					0x0000a001
5433*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4VTX__MASK			0x000000ff
5434*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT			0
A6XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)5435*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
5436*4882a593Smuzhiyun {
5437*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A6XX_VFD_CONTROL_1_REGID4VTX__MASK;
5438*4882a593Smuzhiyun }
5439*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4INST__MASK			0x0000ff00
5440*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4INST__SHIFT			8
A6XX_VFD_CONTROL_1_REGID4INST(uint32_t val)5441*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
5442*4882a593Smuzhiyun {
5443*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A6XX_VFD_CONTROL_1_REGID4INST__MASK;
5444*4882a593Smuzhiyun }
5445*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK			0x00ff0000
5446*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT			16
A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val)5447*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val)
5448*4882a593Smuzhiyun {
5449*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT) & A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK;
5450*4882a593Smuzhiyun }
5451*4882a593Smuzhiyun 
5452*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_2					0x0000a002
5453*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_2_REGID_HSPATCHID__MASK		0x000000ff
5454*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_2_REGID_HSPATCHID__SHIFT		0
A6XX_VFD_CONTROL_2_REGID_HSPATCHID(uint32_t val)5455*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_2_REGID_HSPATCHID(uint32_t val)
5456*4882a593Smuzhiyun {
5457*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_2_REGID_HSPATCHID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_HSPATCHID__MASK;
5458*4882a593Smuzhiyun }
5459*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__MASK		0x0000ff00
5460*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT		8
A6XX_VFD_CONTROL_2_REGID_INVOCATIONID(uint32_t val)5461*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_2_REGID_INVOCATIONID(uint32_t val)
5462*4882a593Smuzhiyun {
5463*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__MASK;
5464*4882a593Smuzhiyun }
5465*4882a593Smuzhiyun 
5466*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_3					0x0000a003
5467*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_DSPATCHID__MASK		0x0000ff00
5468*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_DSPATCHID__SHIFT		8
A6XX_VFD_CONTROL_3_REGID_DSPATCHID(uint32_t val)5469*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_3_REGID_DSPATCHID(uint32_t val)
5470*4882a593Smuzhiyun {
5471*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_3_REGID_DSPATCHID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_DSPATCHID__MASK;
5472*4882a593Smuzhiyun }
5473*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_TESSX__MASK			0x00ff0000
5474*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT			16
A6XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)5475*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)
5476*4882a593Smuzhiyun {
5477*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSX__MASK;
5478*4882a593Smuzhiyun }
5479*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_TESSY__MASK			0xff000000
5480*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT			24
A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)5481*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)
5482*4882a593Smuzhiyun {
5483*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSY__MASK;
5484*4882a593Smuzhiyun }
5485*4882a593Smuzhiyun 
5486*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_4					0x0000a004
5487*4882a593Smuzhiyun 
5488*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_5					0x0000a005
5489*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK			0x000000ff
5490*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT		0
A6XX_VFD_CONTROL_5_REGID_GSHEADER(uint32_t val)5491*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_CONTROL_5_REGID_GSHEADER(uint32_t val)
5492*4882a593Smuzhiyun {
5493*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT) & A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK;
5494*4882a593Smuzhiyun }
5495*4882a593Smuzhiyun 
5496*4882a593Smuzhiyun #define REG_A6XX_VFD_CONTROL_6					0x0000a006
5497*4882a593Smuzhiyun #define A6XX_VFD_CONTROL_6_PRIMID_PASSTHRU			0x00000001
5498*4882a593Smuzhiyun 
5499*4882a593Smuzhiyun #define REG_A6XX_VFD_MODE_CNTL					0x0000a007
5500*4882a593Smuzhiyun #define A6XX_VFD_MODE_CNTL_BINNING_PASS				0x00000001
5501*4882a593Smuzhiyun 
5502*4882a593Smuzhiyun #define REG_A6XX_VFD_UNKNOWN_A008				0x0000a008
5503*4882a593Smuzhiyun 
5504*4882a593Smuzhiyun #define REG_A6XX_VFD_ADD_OFFSET					0x0000a009
5505*4882a593Smuzhiyun #define A6XX_VFD_ADD_OFFSET_VERTEX				0x00000001
5506*4882a593Smuzhiyun #define A6XX_VFD_ADD_OFFSET_INSTANCE				0x00000002
5507*4882a593Smuzhiyun 
5508*4882a593Smuzhiyun #define REG_A6XX_VFD_INDEX_OFFSET				0x0000a00e
5509*4882a593Smuzhiyun 
5510*4882a593Smuzhiyun #define REG_A6XX_VFD_INSTANCE_START_OFFSET			0x0000a00f
5511*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH(uint32_t i0)5512*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
5513*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH_BASE(uint32_t i0)5514*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH_BASE(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
5515*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH_BASE_LO(uint32_t i0)5516*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH_BASE_LO(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
5517*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH_BASE_HI(uint32_t i0)5518*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH_BASE_HI(uint32_t i0) { return 0x0000a011 + 0x4*i0; }
5519*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH_SIZE(uint32_t i0)5520*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH_SIZE(uint32_t i0) { return 0x0000a012 + 0x4*i0; }
5521*4882a593Smuzhiyun 
REG_A6XX_VFD_FETCH_STRIDE(uint32_t i0)5522*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_FETCH_STRIDE(uint32_t i0) { return 0x0000a013 + 0x4*i0; }
5523*4882a593Smuzhiyun 
REG_A6XX_VFD_DECODE(uint32_t i0)5524*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_DECODE(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
5525*4882a593Smuzhiyun 
REG_A6XX_VFD_DECODE_INSTR(uint32_t i0)5526*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
5527*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_IDX__MASK				0x0000001f
5528*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_IDX__SHIFT			0
A6XX_VFD_DECODE_INSTR_IDX(uint32_t val)5529*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DECODE_INSTR_IDX(uint32_t val)
5530*4882a593Smuzhiyun {
5531*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DECODE_INSTR_IDX__SHIFT) & A6XX_VFD_DECODE_INSTR_IDX__MASK;
5532*4882a593Smuzhiyun }
5533*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_OFFSET__MASK			0x0001ffe0
5534*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT			5
A6XX_VFD_DECODE_INSTR_OFFSET(uint32_t val)5535*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DECODE_INSTR_OFFSET(uint32_t val)
5536*4882a593Smuzhiyun {
5537*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT) & A6XX_VFD_DECODE_INSTR_OFFSET__MASK;
5538*4882a593Smuzhiyun }
5539*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_INSTANCED				0x00020000
5540*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_FORMAT__MASK			0x0ff00000
5541*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT			20
A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_format val)5542*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_format val)
5543*4882a593Smuzhiyun {
5544*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A6XX_VFD_DECODE_INSTR_FORMAT__MASK;
5545*4882a593Smuzhiyun }
5546*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_SWAP__MASK			0x30000000
5547*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_SWAP__SHIFT			28
A6XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)5548*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)
5549*4882a593Smuzhiyun {
5550*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DECODE_INSTR_SWAP__SHIFT) & A6XX_VFD_DECODE_INSTR_SWAP__MASK;
5551*4882a593Smuzhiyun }
5552*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_UNK30				0x40000000
5553*4882a593Smuzhiyun #define A6XX_VFD_DECODE_INSTR_FLOAT				0x80000000
5554*4882a593Smuzhiyun 
REG_A6XX_VFD_DECODE_STEP_RATE(uint32_t i0)5555*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_DECODE_STEP_RATE(uint32_t i0) { return 0x0000a091 + 0x2*i0; }
5556*4882a593Smuzhiyun 
REG_A6XX_VFD_DEST_CNTL(uint32_t i0)5557*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_DEST_CNTL(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
5558*4882a593Smuzhiyun 
REG_A6XX_VFD_DEST_CNTL_INSTR(uint32_t i0)5559*4882a593Smuzhiyun static inline uint32_t REG_A6XX_VFD_DEST_CNTL_INSTR(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
5560*4882a593Smuzhiyun #define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK		0x0000000f
5561*4882a593Smuzhiyun #define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT		0
A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)5562*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)
5563*4882a593Smuzhiyun {
5564*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK;
5565*4882a593Smuzhiyun }
5566*4882a593Smuzhiyun #define A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK			0x00000ff0
5567*4882a593Smuzhiyun #define A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT			4
A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)5568*4882a593Smuzhiyun static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)
5569*4882a593Smuzhiyun {
5570*4882a593Smuzhiyun 	return ((val) << A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK;
5571*4882a593Smuzhiyun }
5572*4882a593Smuzhiyun 
5573*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_A0F8				0x0000a0f8
5574*4882a593Smuzhiyun 
5575*4882a593Smuzhiyun #define REG_A6XX_SP_VS_CTRL_REG0				0x0000a800
5576*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
5577*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)5578*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
5579*4882a593Smuzhiyun {
5580*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
5581*4882a593Smuzhiyun }
5582*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
5583*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)5584*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
5585*4882a593Smuzhiyun {
5586*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
5587*4882a593Smuzhiyun }
5588*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
5589*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)5590*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)
5591*4882a593Smuzhiyun {
5592*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK;
5593*4882a593Smuzhiyun }
5594*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_THREADSIZE__MASK			0x00100000
5595*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)5596*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
5597*4882a593Smuzhiyun {
5598*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_VS_CTRL_REG0_THREADSIZE__MASK;
5599*4882a593Smuzhiyun }
5600*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_VARYING				0x00400000
5601*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_DIFF_FINE				0x00800000
5602*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_PIXLODENABLE			0x04000000
5603*4882a593Smuzhiyun #define A6XX_SP_VS_CTRL_REG0_MERGEDREGS				0x80000000
5604*4882a593Smuzhiyun 
5605*4882a593Smuzhiyun #define REG_A6XX_SP_VS_BRANCH_COND				0x0000a801
5606*4882a593Smuzhiyun 
5607*4882a593Smuzhiyun #define REG_A6XX_SP_VS_PRIMITIVE_CNTL				0x0000a802
5608*4882a593Smuzhiyun #define A6XX_SP_VS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5609*4882a593Smuzhiyun #define A6XX_SP_VS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_VS_PRIMITIVE_CNTL_OUT(uint32_t val)5610*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_PRIMITIVE_CNTL_OUT(uint32_t val)
5611*4882a593Smuzhiyun {
5612*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_VS_PRIMITIVE_CNTL_OUT__MASK;
5613*4882a593Smuzhiyun }
5614*4882a593Smuzhiyun 
REG_A6XX_SP_VS_OUT(uint32_t i0)5615*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_VS_OUT(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
5616*4882a593Smuzhiyun 
REG_A6XX_SP_VS_OUT_REG(uint32_t i0)5617*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_VS_OUT_REG(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
5618*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_A_REGID__MASK			0x000000ff
5619*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_VS_OUT_REG_A_REGID(uint32_t val)5620*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
5621*4882a593Smuzhiyun {
5622*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_A_REGID__MASK;
5623*4882a593Smuzhiyun }
5624*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK			0x00000f00
5625*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)5626*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
5627*4882a593Smuzhiyun {
5628*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
5629*4882a593Smuzhiyun }
5630*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_B_REGID__MASK			0x00ff0000
5631*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_VS_OUT_REG_B_REGID(uint32_t val)5632*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
5633*4882a593Smuzhiyun {
5634*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_B_REGID__MASK;
5635*4882a593Smuzhiyun }
5636*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK			0x0f000000
5637*4882a593Smuzhiyun #define A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)5638*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
5639*4882a593Smuzhiyun {
5640*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
5641*4882a593Smuzhiyun }
5642*4882a593Smuzhiyun 
REG_A6XX_SP_VS_VPC_DST(uint32_t i0)5643*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_VS_VPC_DST(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
5644*4882a593Smuzhiyun 
REG_A6XX_SP_VS_VPC_DST_REG(uint32_t i0)5645*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
5646*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
5647*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)5648*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
5649*4882a593Smuzhiyun {
5650*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
5651*4882a593Smuzhiyun }
5652*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
5653*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)5654*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
5655*4882a593Smuzhiyun {
5656*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
5657*4882a593Smuzhiyun }
5658*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
5659*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)5660*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
5661*4882a593Smuzhiyun {
5662*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
5663*4882a593Smuzhiyun }
5664*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
5665*4882a593Smuzhiyun #define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)5666*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
5667*4882a593Smuzhiyun {
5668*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
5669*4882a593Smuzhiyun }
5670*4882a593Smuzhiyun 
5671*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_A81B				0x0000a81b
5672*4882a593Smuzhiyun 
5673*4882a593Smuzhiyun #define REG_A6XX_SP_VS_OBJ_START_LO				0x0000a81c
5674*4882a593Smuzhiyun 
5675*4882a593Smuzhiyun #define REG_A6XX_SP_VS_OBJ_START_HI				0x0000a81d
5676*4882a593Smuzhiyun 
5677*4882a593Smuzhiyun #define REG_A6XX_SP_VS_TEX_COUNT				0x0000a822
5678*4882a593Smuzhiyun 
5679*4882a593Smuzhiyun #define REG_A6XX_SP_VS_CONFIG					0x0000a823
5680*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_BINDLESS_TEX				0x00000001
5681*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_BINDLESS_SAMP				0x00000002
5682*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_BINDLESS_IBO				0x00000004
5683*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_BINDLESS_UBO				0x00000008
5684*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_ENABLED				0x00000100
5685*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NTEX__MASK				0x0001fe00
5686*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NTEX__SHIFT				9
A6XX_SP_VS_CONFIG_NTEX(uint32_t val)5687*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CONFIG_NTEX(uint32_t val)
5688*4882a593Smuzhiyun {
5689*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CONFIG_NTEX__SHIFT) & A6XX_SP_VS_CONFIG_NTEX__MASK;
5690*4882a593Smuzhiyun }
5691*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NSAMP__MASK				0x003e0000
5692*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_VS_CONFIG_NSAMP(uint32_t val)5693*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CONFIG_NSAMP(uint32_t val)
5694*4882a593Smuzhiyun {
5695*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CONFIG_NSAMP__SHIFT) & A6XX_SP_VS_CONFIG_NSAMP__MASK;
5696*4882a593Smuzhiyun }
5697*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NIBO__MASK				0x3fc00000
5698*4882a593Smuzhiyun #define A6XX_SP_VS_CONFIG_NIBO__SHIFT				22
A6XX_SP_VS_CONFIG_NIBO(uint32_t val)5699*4882a593Smuzhiyun static inline uint32_t A6XX_SP_VS_CONFIG_NIBO(uint32_t val)
5700*4882a593Smuzhiyun {
5701*4882a593Smuzhiyun 	return ((val) << A6XX_SP_VS_CONFIG_NIBO__SHIFT) & A6XX_SP_VS_CONFIG_NIBO__MASK;
5702*4882a593Smuzhiyun }
5703*4882a593Smuzhiyun 
5704*4882a593Smuzhiyun #define REG_A6XX_SP_VS_INSTRLEN					0x0000a824
5705*4882a593Smuzhiyun 
5706*4882a593Smuzhiyun #define REG_A6XX_SP_HS_CTRL_REG0				0x0000a830
5707*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
5708*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)5709*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
5710*4882a593Smuzhiyun {
5711*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
5712*4882a593Smuzhiyun }
5713*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
5714*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)5715*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
5716*4882a593Smuzhiyun {
5717*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
5718*4882a593Smuzhiyun }
5719*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
5720*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(uint32_t val)5721*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(uint32_t val)
5722*4882a593Smuzhiyun {
5723*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK;
5724*4882a593Smuzhiyun }
5725*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_THREADSIZE__MASK			0x00100000
5726*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_HS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)5727*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
5728*4882a593Smuzhiyun {
5729*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_HS_CTRL_REG0_THREADSIZE__MASK;
5730*4882a593Smuzhiyun }
5731*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_VARYING				0x00400000
5732*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_DIFF_FINE				0x00800000
5733*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_PIXLODENABLE			0x04000000
5734*4882a593Smuzhiyun #define A6XX_SP_HS_CTRL_REG0_MERGEDREGS				0x80000000
5735*4882a593Smuzhiyun 
5736*4882a593Smuzhiyun #define REG_A6XX_SP_HS_UNKNOWN_A831				0x0000a831
5737*4882a593Smuzhiyun 
5738*4882a593Smuzhiyun #define REG_A6XX_SP_HS_UNKNOWN_A833				0x0000a833
5739*4882a593Smuzhiyun 
5740*4882a593Smuzhiyun #define REG_A6XX_SP_HS_OBJ_START_LO				0x0000a834
5741*4882a593Smuzhiyun 
5742*4882a593Smuzhiyun #define REG_A6XX_SP_HS_OBJ_START_HI				0x0000a835
5743*4882a593Smuzhiyun 
5744*4882a593Smuzhiyun #define REG_A6XX_SP_HS_TEX_COUNT				0x0000a83a
5745*4882a593Smuzhiyun 
5746*4882a593Smuzhiyun #define REG_A6XX_SP_HS_CONFIG					0x0000a83b
5747*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_BINDLESS_TEX				0x00000001
5748*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_BINDLESS_SAMP				0x00000002
5749*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_BINDLESS_IBO				0x00000004
5750*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_BINDLESS_UBO				0x00000008
5751*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_ENABLED				0x00000100
5752*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NTEX__MASK				0x0001fe00
5753*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NTEX__SHIFT				9
A6XX_SP_HS_CONFIG_NTEX(uint32_t val)5754*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CONFIG_NTEX(uint32_t val)
5755*4882a593Smuzhiyun {
5756*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CONFIG_NTEX__SHIFT) & A6XX_SP_HS_CONFIG_NTEX__MASK;
5757*4882a593Smuzhiyun }
5758*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NSAMP__MASK				0x003e0000
5759*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_HS_CONFIG_NSAMP(uint32_t val)5760*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CONFIG_NSAMP(uint32_t val)
5761*4882a593Smuzhiyun {
5762*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CONFIG_NSAMP__SHIFT) & A6XX_SP_HS_CONFIG_NSAMP__MASK;
5763*4882a593Smuzhiyun }
5764*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NIBO__MASK				0x3fc00000
5765*4882a593Smuzhiyun #define A6XX_SP_HS_CONFIG_NIBO__SHIFT				22
A6XX_SP_HS_CONFIG_NIBO(uint32_t val)5766*4882a593Smuzhiyun static inline uint32_t A6XX_SP_HS_CONFIG_NIBO(uint32_t val)
5767*4882a593Smuzhiyun {
5768*4882a593Smuzhiyun 	return ((val) << A6XX_SP_HS_CONFIG_NIBO__SHIFT) & A6XX_SP_HS_CONFIG_NIBO__MASK;
5769*4882a593Smuzhiyun }
5770*4882a593Smuzhiyun 
5771*4882a593Smuzhiyun #define REG_A6XX_SP_HS_INSTRLEN					0x0000a83c
5772*4882a593Smuzhiyun 
5773*4882a593Smuzhiyun #define REG_A6XX_SP_DS_CTRL_REG0				0x0000a840
5774*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
5775*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)5776*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
5777*4882a593Smuzhiyun {
5778*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
5779*4882a593Smuzhiyun }
5780*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
5781*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)5782*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
5783*4882a593Smuzhiyun {
5784*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
5785*4882a593Smuzhiyun }
5786*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
5787*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(uint32_t val)5788*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(uint32_t val)
5789*4882a593Smuzhiyun {
5790*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK;
5791*4882a593Smuzhiyun }
5792*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_THREADSIZE__MASK			0x00100000
5793*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_DS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)5794*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
5795*4882a593Smuzhiyun {
5796*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_DS_CTRL_REG0_THREADSIZE__MASK;
5797*4882a593Smuzhiyun }
5798*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_VARYING				0x00400000
5799*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_DIFF_FINE				0x00800000
5800*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_PIXLODENABLE			0x04000000
5801*4882a593Smuzhiyun #define A6XX_SP_DS_CTRL_REG0_MERGEDREGS				0x80000000
5802*4882a593Smuzhiyun 
5803*4882a593Smuzhiyun #define REG_A6XX_SP_DS_PRIMITIVE_CNTL				0x0000a842
5804*4882a593Smuzhiyun #define A6XX_SP_DS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5805*4882a593Smuzhiyun #define A6XX_SP_DS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_DS_PRIMITIVE_CNTL_OUT(uint32_t val)5806*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_PRIMITIVE_CNTL_OUT(uint32_t val)
5807*4882a593Smuzhiyun {
5808*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_DS_PRIMITIVE_CNTL_OUT__MASK;
5809*4882a593Smuzhiyun }
5810*4882a593Smuzhiyun 
REG_A6XX_SP_DS_OUT(uint32_t i0)5811*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_DS_OUT(uint32_t i0) { return 0x0000a843 + 0x1*i0; }
5812*4882a593Smuzhiyun 
REG_A6XX_SP_DS_OUT_REG(uint32_t i0)5813*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_DS_OUT_REG(uint32_t i0) { return 0x0000a843 + 0x1*i0; }
5814*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_A_REGID__MASK			0x000000ff
5815*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_DS_OUT_REG_A_REGID(uint32_t val)5816*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_OUT_REG_A_REGID(uint32_t val)
5817*4882a593Smuzhiyun {
5818*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_A_REGID__MASK;
5819*4882a593Smuzhiyun }
5820*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK			0x00000f00
5821*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)5822*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)
5823*4882a593Smuzhiyun {
5824*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK;
5825*4882a593Smuzhiyun }
5826*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_B_REGID__MASK			0x00ff0000
5827*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_DS_OUT_REG_B_REGID(uint32_t val)5828*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_OUT_REG_B_REGID(uint32_t val)
5829*4882a593Smuzhiyun {
5830*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_B_REGID__MASK;
5831*4882a593Smuzhiyun }
5832*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK			0x0f000000
5833*4882a593Smuzhiyun #define A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)5834*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)
5835*4882a593Smuzhiyun {
5836*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK;
5837*4882a593Smuzhiyun }
5838*4882a593Smuzhiyun 
REG_A6XX_SP_DS_VPC_DST(uint32_t i0)5839*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_DS_VPC_DST(uint32_t i0) { return 0x0000a853 + 0x1*i0; }
5840*4882a593Smuzhiyun 
REG_A6XX_SP_DS_VPC_DST_REG(uint32_t i0)5841*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_DS_VPC_DST_REG(uint32_t i0) { return 0x0000a853 + 0x1*i0; }
5842*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
5843*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)5844*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)
5845*4882a593Smuzhiyun {
5846*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK;
5847*4882a593Smuzhiyun }
5848*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
5849*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)5850*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)
5851*4882a593Smuzhiyun {
5852*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK;
5853*4882a593Smuzhiyun }
5854*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
5855*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)5856*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)
5857*4882a593Smuzhiyun {
5858*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK;
5859*4882a593Smuzhiyun }
5860*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
5861*4882a593Smuzhiyun #define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)5862*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)
5863*4882a593Smuzhiyun {
5864*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK;
5865*4882a593Smuzhiyun }
5866*4882a593Smuzhiyun 
5867*4882a593Smuzhiyun #define REG_A6XX_SP_DS_UNKNOWN_A85B				0x0000a85b
5868*4882a593Smuzhiyun 
5869*4882a593Smuzhiyun #define REG_A6XX_SP_DS_OBJ_START_LO				0x0000a85c
5870*4882a593Smuzhiyun 
5871*4882a593Smuzhiyun #define REG_A6XX_SP_DS_OBJ_START_HI				0x0000a85d
5872*4882a593Smuzhiyun 
5873*4882a593Smuzhiyun #define REG_A6XX_SP_DS_TEX_COUNT				0x0000a862
5874*4882a593Smuzhiyun 
5875*4882a593Smuzhiyun #define REG_A6XX_SP_DS_CONFIG					0x0000a863
5876*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_BINDLESS_TEX				0x00000001
5877*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_BINDLESS_SAMP				0x00000002
5878*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_BINDLESS_IBO				0x00000004
5879*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_BINDLESS_UBO				0x00000008
5880*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_ENABLED				0x00000100
5881*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NTEX__MASK				0x0001fe00
5882*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NTEX__SHIFT				9
A6XX_SP_DS_CONFIG_NTEX(uint32_t val)5883*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CONFIG_NTEX(uint32_t val)
5884*4882a593Smuzhiyun {
5885*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CONFIG_NTEX__SHIFT) & A6XX_SP_DS_CONFIG_NTEX__MASK;
5886*4882a593Smuzhiyun }
5887*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NSAMP__MASK				0x003e0000
5888*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_DS_CONFIG_NSAMP(uint32_t val)5889*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CONFIG_NSAMP(uint32_t val)
5890*4882a593Smuzhiyun {
5891*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CONFIG_NSAMP__SHIFT) & A6XX_SP_DS_CONFIG_NSAMP__MASK;
5892*4882a593Smuzhiyun }
5893*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NIBO__MASK				0x3fc00000
5894*4882a593Smuzhiyun #define A6XX_SP_DS_CONFIG_NIBO__SHIFT				22
A6XX_SP_DS_CONFIG_NIBO(uint32_t val)5895*4882a593Smuzhiyun static inline uint32_t A6XX_SP_DS_CONFIG_NIBO(uint32_t val)
5896*4882a593Smuzhiyun {
5897*4882a593Smuzhiyun 	return ((val) << A6XX_SP_DS_CONFIG_NIBO__SHIFT) & A6XX_SP_DS_CONFIG_NIBO__MASK;
5898*4882a593Smuzhiyun }
5899*4882a593Smuzhiyun 
5900*4882a593Smuzhiyun #define REG_A6XX_SP_DS_INSTRLEN					0x0000a864
5901*4882a593Smuzhiyun 
5902*4882a593Smuzhiyun #define REG_A6XX_SP_GS_CTRL_REG0				0x0000a870
5903*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
5904*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)5905*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
5906*4882a593Smuzhiyun {
5907*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
5908*4882a593Smuzhiyun }
5909*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
5910*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)5911*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
5912*4882a593Smuzhiyun {
5913*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
5914*4882a593Smuzhiyun }
5915*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
5916*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(uint32_t val)5917*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(uint32_t val)
5918*4882a593Smuzhiyun {
5919*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK;
5920*4882a593Smuzhiyun }
5921*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_THREADSIZE__MASK			0x00100000
5922*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_GS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)5923*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
5924*4882a593Smuzhiyun {
5925*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_GS_CTRL_REG0_THREADSIZE__MASK;
5926*4882a593Smuzhiyun }
5927*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_VARYING				0x00400000
5928*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_DIFF_FINE				0x00800000
5929*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_PIXLODENABLE			0x04000000
5930*4882a593Smuzhiyun #define A6XX_SP_GS_CTRL_REG0_MERGEDREGS				0x80000000
5931*4882a593Smuzhiyun 
5932*4882a593Smuzhiyun #define REG_A6XX_SP_GS_PRIM_SIZE				0x0000a871
5933*4882a593Smuzhiyun 
5934*4882a593Smuzhiyun #define REG_A6XX_SP_GS_BRANCH_COND				0x0000a872
5935*4882a593Smuzhiyun 
5936*4882a593Smuzhiyun #define REG_A6XX_SP_GS_PRIMITIVE_CNTL				0x0000a873
5937*4882a593Smuzhiyun #define A6XX_SP_GS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5938*4882a593Smuzhiyun #define A6XX_SP_GS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_GS_PRIMITIVE_CNTL_OUT(uint32_t val)5939*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_PRIMITIVE_CNTL_OUT(uint32_t val)
5940*4882a593Smuzhiyun {
5941*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_GS_PRIMITIVE_CNTL_OUT__MASK;
5942*4882a593Smuzhiyun }
5943*4882a593Smuzhiyun #define A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__MASK		0x00003fc0
5944*4882a593Smuzhiyun #define A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT		6
A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)5945*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)
5946*4882a593Smuzhiyun {
5947*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT) & A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__MASK;
5948*4882a593Smuzhiyun }
5949*4882a593Smuzhiyun 
REG_A6XX_SP_GS_OUT(uint32_t i0)5950*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_GS_OUT(uint32_t i0) { return 0x0000a874 + 0x1*i0; }
5951*4882a593Smuzhiyun 
REG_A6XX_SP_GS_OUT_REG(uint32_t i0)5952*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_GS_OUT_REG(uint32_t i0) { return 0x0000a874 + 0x1*i0; }
5953*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_A_REGID__MASK			0x000000ff
5954*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_GS_OUT_REG_A_REGID(uint32_t val)5955*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_OUT_REG_A_REGID(uint32_t val)
5956*4882a593Smuzhiyun {
5957*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_A_REGID__MASK;
5958*4882a593Smuzhiyun }
5959*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK			0x00000f00
5960*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)5961*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)
5962*4882a593Smuzhiyun {
5963*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK;
5964*4882a593Smuzhiyun }
5965*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_B_REGID__MASK			0x00ff0000
5966*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_GS_OUT_REG_B_REGID(uint32_t val)5967*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_OUT_REG_B_REGID(uint32_t val)
5968*4882a593Smuzhiyun {
5969*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_B_REGID__MASK;
5970*4882a593Smuzhiyun }
5971*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK			0x0f000000
5972*4882a593Smuzhiyun #define A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)5973*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)
5974*4882a593Smuzhiyun {
5975*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK;
5976*4882a593Smuzhiyun }
5977*4882a593Smuzhiyun 
REG_A6XX_SP_GS_VPC_DST(uint32_t i0)5978*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_GS_VPC_DST(uint32_t i0) { return 0x0000a884 + 0x1*i0; }
5979*4882a593Smuzhiyun 
REG_A6XX_SP_GS_VPC_DST_REG(uint32_t i0)5980*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_GS_VPC_DST_REG(uint32_t i0) { return 0x0000a884 + 0x1*i0; }
5981*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
5982*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)5983*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)
5984*4882a593Smuzhiyun {
5985*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK;
5986*4882a593Smuzhiyun }
5987*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
5988*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)5989*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)
5990*4882a593Smuzhiyun {
5991*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK;
5992*4882a593Smuzhiyun }
5993*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
5994*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)5995*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)
5996*4882a593Smuzhiyun {
5997*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK;
5998*4882a593Smuzhiyun }
5999*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
6000*4882a593Smuzhiyun #define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)6001*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)
6002*4882a593Smuzhiyun {
6003*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK;
6004*4882a593Smuzhiyun }
6005*4882a593Smuzhiyun 
6006*4882a593Smuzhiyun #define REG_A6XX_SP_GS_OBJ_START_LO				0x0000a88d
6007*4882a593Smuzhiyun 
6008*4882a593Smuzhiyun #define REG_A6XX_SP_GS_OBJ_START_HI				0x0000a88e
6009*4882a593Smuzhiyun 
6010*4882a593Smuzhiyun #define REG_A6XX_SP_GS_TEX_COUNT				0x0000a893
6011*4882a593Smuzhiyun 
6012*4882a593Smuzhiyun #define REG_A6XX_SP_GS_CONFIG					0x0000a894
6013*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_BINDLESS_TEX				0x00000001
6014*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_BINDLESS_SAMP				0x00000002
6015*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_BINDLESS_IBO				0x00000004
6016*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_BINDLESS_UBO				0x00000008
6017*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_ENABLED				0x00000100
6018*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NTEX__MASK				0x0001fe00
6019*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NTEX__SHIFT				9
A6XX_SP_GS_CONFIG_NTEX(uint32_t val)6020*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CONFIG_NTEX(uint32_t val)
6021*4882a593Smuzhiyun {
6022*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CONFIG_NTEX__SHIFT) & A6XX_SP_GS_CONFIG_NTEX__MASK;
6023*4882a593Smuzhiyun }
6024*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NSAMP__MASK				0x003e0000
6025*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_GS_CONFIG_NSAMP(uint32_t val)6026*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CONFIG_NSAMP(uint32_t val)
6027*4882a593Smuzhiyun {
6028*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CONFIG_NSAMP__SHIFT) & A6XX_SP_GS_CONFIG_NSAMP__MASK;
6029*4882a593Smuzhiyun }
6030*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NIBO__MASK				0x3fc00000
6031*4882a593Smuzhiyun #define A6XX_SP_GS_CONFIG_NIBO__SHIFT				22
A6XX_SP_GS_CONFIG_NIBO(uint32_t val)6032*4882a593Smuzhiyun static inline uint32_t A6XX_SP_GS_CONFIG_NIBO(uint32_t val)
6033*4882a593Smuzhiyun {
6034*4882a593Smuzhiyun 	return ((val) << A6XX_SP_GS_CONFIG_NIBO__SHIFT) & A6XX_SP_GS_CONFIG_NIBO__MASK;
6035*4882a593Smuzhiyun }
6036*4882a593Smuzhiyun 
6037*4882a593Smuzhiyun #define REG_A6XX_SP_GS_INSTRLEN					0x0000a895
6038*4882a593Smuzhiyun 
6039*4882a593Smuzhiyun #define REG_A6XX_SP_VS_TEX_SAMP_LO				0x0000a8a0
6040*4882a593Smuzhiyun 
6041*4882a593Smuzhiyun #define REG_A6XX_SP_VS_TEX_SAMP_HI				0x0000a8a1
6042*4882a593Smuzhiyun 
6043*4882a593Smuzhiyun #define REG_A6XX_SP_HS_TEX_SAMP_LO				0x0000a8a2
6044*4882a593Smuzhiyun 
6045*4882a593Smuzhiyun #define REG_A6XX_SP_HS_TEX_SAMP_HI				0x0000a8a3
6046*4882a593Smuzhiyun 
6047*4882a593Smuzhiyun #define REG_A6XX_SP_DS_TEX_SAMP_LO				0x0000a8a4
6048*4882a593Smuzhiyun 
6049*4882a593Smuzhiyun #define REG_A6XX_SP_DS_TEX_SAMP_HI				0x0000a8a5
6050*4882a593Smuzhiyun 
6051*4882a593Smuzhiyun #define REG_A6XX_SP_GS_TEX_SAMP_LO				0x0000a8a6
6052*4882a593Smuzhiyun 
6053*4882a593Smuzhiyun #define REG_A6XX_SP_GS_TEX_SAMP_HI				0x0000a8a7
6054*4882a593Smuzhiyun 
6055*4882a593Smuzhiyun #define REG_A6XX_SP_VS_TEX_CONST_LO				0x0000a8a8
6056*4882a593Smuzhiyun 
6057*4882a593Smuzhiyun #define REG_A6XX_SP_VS_TEX_CONST_HI				0x0000a8a9
6058*4882a593Smuzhiyun 
6059*4882a593Smuzhiyun #define REG_A6XX_SP_HS_TEX_CONST_LO				0x0000a8aa
6060*4882a593Smuzhiyun 
6061*4882a593Smuzhiyun #define REG_A6XX_SP_HS_TEX_CONST_HI				0x0000a8ab
6062*4882a593Smuzhiyun 
6063*4882a593Smuzhiyun #define REG_A6XX_SP_DS_TEX_CONST_LO				0x0000a8ac
6064*4882a593Smuzhiyun 
6065*4882a593Smuzhiyun #define REG_A6XX_SP_DS_TEX_CONST_HI				0x0000a8ad
6066*4882a593Smuzhiyun 
6067*4882a593Smuzhiyun #define REG_A6XX_SP_GS_TEX_CONST_LO				0x0000a8ae
6068*4882a593Smuzhiyun 
6069*4882a593Smuzhiyun #define REG_A6XX_SP_GS_TEX_CONST_HI				0x0000a8af
6070*4882a593Smuzhiyun 
6071*4882a593Smuzhiyun #define REG_A6XX_SP_FS_CTRL_REG0				0x0000a980
6072*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
6073*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)6074*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
6075*4882a593Smuzhiyun {
6076*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
6077*4882a593Smuzhiyun }
6078*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
6079*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)6080*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
6081*4882a593Smuzhiyun {
6082*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
6083*4882a593Smuzhiyun }
6084*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
6085*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)6086*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)
6087*4882a593Smuzhiyun {
6088*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK;
6089*4882a593Smuzhiyun }
6090*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK			0x00100000
6091*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)6092*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
6093*4882a593Smuzhiyun {
6094*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
6095*4882a593Smuzhiyun }
6096*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_VARYING				0x00400000
6097*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_DIFF_FINE				0x00800000
6098*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_PIXLODENABLE			0x04000000
6099*4882a593Smuzhiyun #define A6XX_SP_FS_CTRL_REG0_MERGEDREGS				0x80000000
6100*4882a593Smuzhiyun 
6101*4882a593Smuzhiyun #define REG_A6XX_SP_FS_BRANCH_COND				0x0000a981
6102*4882a593Smuzhiyun 
6103*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_A982				0x0000a982
6104*4882a593Smuzhiyun 
6105*4882a593Smuzhiyun #define REG_A6XX_SP_FS_OBJ_START_LO				0x0000a983
6106*4882a593Smuzhiyun 
6107*4882a593Smuzhiyun #define REG_A6XX_SP_FS_OBJ_START_HI				0x0000a984
6108*4882a593Smuzhiyun 
6109*4882a593Smuzhiyun #define REG_A6XX_SP_BLEND_CNTL					0x0000a989
6110*4882a593Smuzhiyun #define A6XX_SP_BLEND_CNTL_ENABLED				0x00000001
6111*4882a593Smuzhiyun #define A6XX_SP_BLEND_CNTL_UNK8					0x00000100
6112*4882a593Smuzhiyun #define A6XX_SP_BLEND_CNTL_DUAL_COLOR_IN_ENABLE			0x00000200
6113*4882a593Smuzhiyun #define A6XX_SP_BLEND_CNTL_ALPHA_TO_COVERAGE			0x00000400
6114*4882a593Smuzhiyun 
6115*4882a593Smuzhiyun #define REG_A6XX_SP_SRGB_CNTL					0x0000a98a
6116*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT0				0x00000001
6117*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT1				0x00000002
6118*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT2				0x00000004
6119*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT3				0x00000008
6120*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT4				0x00000010
6121*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT5				0x00000020
6122*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT6				0x00000040
6123*4882a593Smuzhiyun #define A6XX_SP_SRGB_CNTL_SRGB_MRT7				0x00000080
6124*4882a593Smuzhiyun 
6125*4882a593Smuzhiyun #define REG_A6XX_SP_FS_RENDER_COMPONENTS			0x0000a98b
6126*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK			0x0000000f
6127*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT			0
A6XX_SP_FS_RENDER_COMPONENTS_RT0(uint32_t val)6128*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT0(uint32_t val)
6129*4882a593Smuzhiyun {
6130*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK;
6131*4882a593Smuzhiyun }
6132*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK			0x000000f0
6133*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT			4
A6XX_SP_FS_RENDER_COMPONENTS_RT1(uint32_t val)6134*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT1(uint32_t val)
6135*4882a593Smuzhiyun {
6136*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK;
6137*4882a593Smuzhiyun }
6138*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK			0x00000f00
6139*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT			8
A6XX_SP_FS_RENDER_COMPONENTS_RT2(uint32_t val)6140*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT2(uint32_t val)
6141*4882a593Smuzhiyun {
6142*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK;
6143*4882a593Smuzhiyun }
6144*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK			0x0000f000
6145*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT			12
A6XX_SP_FS_RENDER_COMPONENTS_RT3(uint32_t val)6146*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT3(uint32_t val)
6147*4882a593Smuzhiyun {
6148*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK;
6149*4882a593Smuzhiyun }
6150*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK			0x000f0000
6151*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT			16
A6XX_SP_FS_RENDER_COMPONENTS_RT4(uint32_t val)6152*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT4(uint32_t val)
6153*4882a593Smuzhiyun {
6154*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK;
6155*4882a593Smuzhiyun }
6156*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK			0x00f00000
6157*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT			20
A6XX_SP_FS_RENDER_COMPONENTS_RT5(uint32_t val)6158*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT5(uint32_t val)
6159*4882a593Smuzhiyun {
6160*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK;
6161*4882a593Smuzhiyun }
6162*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK			0x0f000000
6163*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT			24
A6XX_SP_FS_RENDER_COMPONENTS_RT6(uint32_t val)6164*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT6(uint32_t val)
6165*4882a593Smuzhiyun {
6166*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK;
6167*4882a593Smuzhiyun }
6168*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK			0xf0000000
6169*4882a593Smuzhiyun #define A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT			28
A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val)6170*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val)
6171*4882a593Smuzhiyun {
6172*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK;
6173*4882a593Smuzhiyun }
6174*4882a593Smuzhiyun 
6175*4882a593Smuzhiyun #define REG_A6XX_SP_FS_OUTPUT_CNTL0				0x0000a98c
6176*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE		0x00000001
6177*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK		0x0000ff00
6178*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT		8
A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID(uint32_t val)6179*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID(uint32_t val)
6180*4882a593Smuzhiyun {
6181*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK;
6182*4882a593Smuzhiyun }
6183*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK		0x00ff0000
6184*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT		16
A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID(uint32_t val)6185*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID(uint32_t val)
6186*4882a593Smuzhiyun {
6187*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK;
6188*4882a593Smuzhiyun }
6189*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__MASK		0xff000000
6190*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__SHIFT		24
A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID(uint32_t val)6191*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID(uint32_t val)
6192*4882a593Smuzhiyun {
6193*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__MASK;
6194*4882a593Smuzhiyun }
6195*4882a593Smuzhiyun 
6196*4882a593Smuzhiyun #define REG_A6XX_SP_FS_OUTPUT_CNTL1				0x0000a98d
6197*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK			0x0000000f
6198*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT			0
A6XX_SP_FS_OUTPUT_CNTL1_MRT(uint32_t val)6199*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL1_MRT(uint32_t val)
6200*4882a593Smuzhiyun {
6201*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK;
6202*4882a593Smuzhiyun }
6203*4882a593Smuzhiyun 
REG_A6XX_SP_FS_MRT(uint32_t i0)6204*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_MRT(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
6205*4882a593Smuzhiyun 
REG_A6XX_SP_FS_MRT_REG(uint32_t i0)6206*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_MRT_REG(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
6207*4882a593Smuzhiyun #define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK			0x000000ff
6208*4882a593Smuzhiyun #define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT			0
A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_format val)6209*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_format val)
6210*4882a593Smuzhiyun {
6211*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT) & A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK;
6212*4882a593Smuzhiyun }
6213*4882a593Smuzhiyun #define A6XX_SP_FS_MRT_REG_COLOR_SINT				0x00000100
6214*4882a593Smuzhiyun #define A6XX_SP_FS_MRT_REG_COLOR_UINT				0x00000200
6215*4882a593Smuzhiyun 
6216*4882a593Smuzhiyun #define REG_A6XX_SP_FS_PREFETCH_CNTL				0x0000a99e
6217*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK			0x00000007
6218*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT			0
A6XX_SP_FS_PREFETCH_CNTL_COUNT(uint32_t val)6219*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_COUNT(uint32_t val)
6220*4882a593Smuzhiyun {
6221*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK;
6222*4882a593Smuzhiyun }
6223*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CNTL_UNK3				0x00000008
6224*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CNTL_UNK4__MASK			0x00000ff0
6225*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CNTL_UNK4__SHIFT			4
A6XX_SP_FS_PREFETCH_CNTL_UNK4(uint32_t val)6226*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_UNK4(uint32_t val)
6227*4882a593Smuzhiyun {
6228*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CNTL_UNK4__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_UNK4__MASK;
6229*4882a593Smuzhiyun }
6230*4882a593Smuzhiyun 
REG_A6XX_SP_FS_PREFETCH(uint32_t i0)6231*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_PREFETCH(uint32_t i0) { return 0x0000a99f + 0x1*i0; }
6232*4882a593Smuzhiyun 
REG_A6XX_SP_FS_PREFETCH_CMD(uint32_t i0)6233*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_PREFETCH_CMD(uint32_t i0) { return 0x0000a99f + 0x1*i0; }
6234*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_SRC__MASK			0x0000007f
6235*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT			0
A6XX_SP_FS_PREFETCH_CMD_SRC(uint32_t val)6236*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SRC(uint32_t val)
6237*4882a593Smuzhiyun {
6238*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SRC__MASK;
6239*4882a593Smuzhiyun }
6240*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK			0x00000780
6241*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT			7
A6XX_SP_FS_PREFETCH_CMD_SAMP_ID(uint32_t val)6242*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SAMP_ID(uint32_t val)
6243*4882a593Smuzhiyun {
6244*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK;
6245*4882a593Smuzhiyun }
6246*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK			0x0000f800
6247*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT			11
A6XX_SP_FS_PREFETCH_CMD_TEX_ID(uint32_t val)6248*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_TEX_ID(uint32_t val)
6249*4882a593Smuzhiyun {
6250*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK;
6251*4882a593Smuzhiyun }
6252*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_DST__MASK			0x003f0000
6253*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT			16
A6XX_SP_FS_PREFETCH_CMD_DST(uint32_t val)6254*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_DST(uint32_t val)
6255*4882a593Smuzhiyun {
6256*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_DST__MASK;
6257*4882a593Smuzhiyun }
6258*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK			0x03c00000
6259*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT			22
A6XX_SP_FS_PREFETCH_CMD_WRMASK(uint32_t val)6260*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_WRMASK(uint32_t val)
6261*4882a593Smuzhiyun {
6262*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK;
6263*4882a593Smuzhiyun }
6264*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_HALF				0x04000000
6265*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_CMD__MASK			0xf8000000
6266*4882a593Smuzhiyun #define A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT			27
A6XX_SP_FS_PREFETCH_CMD_CMD(uint32_t val)6267*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_CMD(uint32_t val)
6268*4882a593Smuzhiyun {
6269*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_CMD__MASK;
6270*4882a593Smuzhiyun }
6271*4882a593Smuzhiyun 
REG_A6XX_SP_FS_BINDLESS_PREFETCH(uint32_t i0)6272*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; }
6273*4882a593Smuzhiyun 
REG_A6XX_SP_FS_BINDLESS_PREFETCH_CMD(uint32_t i0)6274*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH_CMD(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; }
6275*4882a593Smuzhiyun #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK		0x000000ff
6276*4882a593Smuzhiyun #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT		0
A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID(uint32_t val)6277*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID(uint32_t val)
6278*4882a593Smuzhiyun {
6279*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK;
6280*4882a593Smuzhiyun }
6281*4882a593Smuzhiyun #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK		0x00ff0000
6282*4882a593Smuzhiyun #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT		16
A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID(uint32_t val)6283*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID(uint32_t val)
6284*4882a593Smuzhiyun {
6285*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK;
6286*4882a593Smuzhiyun }
6287*4882a593Smuzhiyun 
6288*4882a593Smuzhiyun #define REG_A6XX_SP_FS_TEX_COUNT				0x0000a9a7
6289*4882a593Smuzhiyun 
6290*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_A9A8				0x0000a9a8
6291*4882a593Smuzhiyun 
6292*4882a593Smuzhiyun #define REG_A6XX_SP_CS_UNKNOWN_A9B1				0x0000a9b1
6293*4882a593Smuzhiyun #define A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K__MASK		0x00000001
6294*4882a593Smuzhiyun #define A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K__SHIFT		0
A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K(uint32_t val)6295*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K(uint32_t val)
6296*4882a593Smuzhiyun {
6297*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K__SHIFT) & A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE_2K__MASK;
6298*4882a593Smuzhiyun }
6299*4882a593Smuzhiyun 
6300*4882a593Smuzhiyun #define REG_A6XX_SP_CS_UNKNOWN_A9B3				0x0000a9b3
6301*4882a593Smuzhiyun 
6302*4882a593Smuzhiyun #define REG_A6XX_SP_CS_TEX_COUNT				0x0000a9ba
6303*4882a593Smuzhiyun 
6304*4882a593Smuzhiyun #define REG_A6XX_SP_FS_TEX_SAMP_LO				0x0000a9e0
6305*4882a593Smuzhiyun 
6306*4882a593Smuzhiyun #define REG_A6XX_SP_FS_TEX_SAMP_HI				0x0000a9e1
6307*4882a593Smuzhiyun 
6308*4882a593Smuzhiyun #define REG_A6XX_SP_CS_TEX_SAMP_LO				0x0000a9e2
6309*4882a593Smuzhiyun 
6310*4882a593Smuzhiyun #define REG_A6XX_SP_CS_TEX_SAMP_HI				0x0000a9e3
6311*4882a593Smuzhiyun 
6312*4882a593Smuzhiyun #define REG_A6XX_SP_FS_TEX_CONST_LO				0x0000a9e4
6313*4882a593Smuzhiyun 
6314*4882a593Smuzhiyun #define REG_A6XX_SP_FS_TEX_CONST_HI				0x0000a9e5
6315*4882a593Smuzhiyun 
6316*4882a593Smuzhiyun #define REG_A6XX_SP_CS_TEX_CONST_LO				0x0000a9e6
6317*4882a593Smuzhiyun 
6318*4882a593Smuzhiyun #define REG_A6XX_SP_CS_TEX_CONST_HI				0x0000a9e7
6319*4882a593Smuzhiyun 
REG_A6XX_SP_CS_BINDLESS_BASE(uint32_t i0)6320*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; }
6321*4882a593Smuzhiyun 
REG_A6XX_SP_CS_BINDLESS_BASE_ADDR(uint32_t i0)6322*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; }
6323*4882a593Smuzhiyun 
REG_A6XX_SP_FS_OUTPUT(uint32_t i0)6324*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_OUTPUT(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
6325*4882a593Smuzhiyun 
REG_A6XX_SP_FS_OUTPUT_REG(uint32_t i0)6326*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_FS_OUTPUT_REG(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
6327*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_REG_REGID__MASK			0x000000ff
6328*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT			0
A6XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)6329*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)
6330*4882a593Smuzhiyun {
6331*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_REG_REGID__MASK;
6332*4882a593Smuzhiyun }
6333*4882a593Smuzhiyun #define A6XX_SP_FS_OUTPUT_REG_HALF_PRECISION			0x00000100
6334*4882a593Smuzhiyun 
6335*4882a593Smuzhiyun #define REG_A6XX_SP_CS_CTRL_REG0				0x0000a9b0
6336*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
6337*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)6338*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
6339*4882a593Smuzhiyun {
6340*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
6341*4882a593Smuzhiyun }
6342*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
6343*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)6344*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
6345*4882a593Smuzhiyun {
6346*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
6347*4882a593Smuzhiyun }
6348*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
6349*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)6350*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)
6351*4882a593Smuzhiyun {
6352*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK;
6353*4882a593Smuzhiyun }
6354*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK			0x00100000
6355*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)6356*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a3xx_threadsize val)
6357*4882a593Smuzhiyun {
6358*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK;
6359*4882a593Smuzhiyun }
6360*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_VARYING				0x00400000
6361*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_DIFF_FINE				0x00800000
6362*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_PIXLODENABLE			0x04000000
6363*4882a593Smuzhiyun #define A6XX_SP_CS_CTRL_REG0_MERGEDREGS				0x80000000
6364*4882a593Smuzhiyun 
6365*4882a593Smuzhiyun #define REG_A6XX_SP_CS_OBJ_START_LO				0x0000a9b4
6366*4882a593Smuzhiyun 
6367*4882a593Smuzhiyun #define REG_A6XX_SP_CS_OBJ_START_HI				0x0000a9b5
6368*4882a593Smuzhiyun 
6369*4882a593Smuzhiyun #define REG_A6XX_SP_CS_CONFIG					0x0000a9bb
6370*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_BINDLESS_TEX				0x00000001
6371*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_BINDLESS_SAMP				0x00000002
6372*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_BINDLESS_IBO				0x00000004
6373*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_BINDLESS_UBO				0x00000008
6374*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_ENABLED				0x00000100
6375*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NTEX__MASK				0x0001fe00
6376*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NTEX__SHIFT				9
A6XX_SP_CS_CONFIG_NTEX(uint32_t val)6377*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CONFIG_NTEX(uint32_t val)
6378*4882a593Smuzhiyun {
6379*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CONFIG_NTEX__SHIFT) & A6XX_SP_CS_CONFIG_NTEX__MASK;
6380*4882a593Smuzhiyun }
6381*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NSAMP__MASK				0x003e0000
6382*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_CS_CONFIG_NSAMP(uint32_t val)6383*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CONFIG_NSAMP(uint32_t val)
6384*4882a593Smuzhiyun {
6385*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CONFIG_NSAMP__SHIFT) & A6XX_SP_CS_CONFIG_NSAMP__MASK;
6386*4882a593Smuzhiyun }
6387*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NIBO__MASK				0x3fc00000
6388*4882a593Smuzhiyun #define A6XX_SP_CS_CONFIG_NIBO__SHIFT				22
A6XX_SP_CS_CONFIG_NIBO(uint32_t val)6389*4882a593Smuzhiyun static inline uint32_t A6XX_SP_CS_CONFIG_NIBO(uint32_t val)
6390*4882a593Smuzhiyun {
6391*4882a593Smuzhiyun 	return ((val) << A6XX_SP_CS_CONFIG_NIBO__SHIFT) & A6XX_SP_CS_CONFIG_NIBO__MASK;
6392*4882a593Smuzhiyun }
6393*4882a593Smuzhiyun 
6394*4882a593Smuzhiyun #define REG_A6XX_SP_CS_INSTRLEN					0x0000a9bc
6395*4882a593Smuzhiyun 
6396*4882a593Smuzhiyun #define REG_A6XX_SP_CS_IBO_LO					0x0000a9f2
6397*4882a593Smuzhiyun 
6398*4882a593Smuzhiyun #define REG_A6XX_SP_CS_IBO_HI					0x0000a9f3
6399*4882a593Smuzhiyun 
6400*4882a593Smuzhiyun #define REG_A6XX_SP_CS_IBO_COUNT				0x0000aa00
6401*4882a593Smuzhiyun 
6402*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_AB00				0x0000ab00
6403*4882a593Smuzhiyun 
6404*4882a593Smuzhiyun #define REG_A6XX_SP_FS_CONFIG					0x0000ab04
6405*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_BINDLESS_TEX				0x00000001
6406*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_BINDLESS_SAMP				0x00000002
6407*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_BINDLESS_IBO				0x00000004
6408*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_BINDLESS_UBO				0x00000008
6409*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_ENABLED				0x00000100
6410*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NTEX__MASK				0x0001fe00
6411*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NTEX__SHIFT				9
A6XX_SP_FS_CONFIG_NTEX(uint32_t val)6412*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CONFIG_NTEX(uint32_t val)
6413*4882a593Smuzhiyun {
6414*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CONFIG_NTEX__SHIFT) & A6XX_SP_FS_CONFIG_NTEX__MASK;
6415*4882a593Smuzhiyun }
6416*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NSAMP__MASK				0x003e0000
6417*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_FS_CONFIG_NSAMP(uint32_t val)6418*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CONFIG_NSAMP(uint32_t val)
6419*4882a593Smuzhiyun {
6420*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CONFIG_NSAMP__SHIFT) & A6XX_SP_FS_CONFIG_NSAMP__MASK;
6421*4882a593Smuzhiyun }
6422*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NIBO__MASK				0x3fc00000
6423*4882a593Smuzhiyun #define A6XX_SP_FS_CONFIG_NIBO__SHIFT				22
A6XX_SP_FS_CONFIG_NIBO(uint32_t val)6424*4882a593Smuzhiyun static inline uint32_t A6XX_SP_FS_CONFIG_NIBO(uint32_t val)
6425*4882a593Smuzhiyun {
6426*4882a593Smuzhiyun 	return ((val) << A6XX_SP_FS_CONFIG_NIBO__SHIFT) & A6XX_SP_FS_CONFIG_NIBO__MASK;
6427*4882a593Smuzhiyun }
6428*4882a593Smuzhiyun 
6429*4882a593Smuzhiyun #define REG_A6XX_SP_FS_INSTRLEN					0x0000ab05
6430*4882a593Smuzhiyun 
REG_A6XX_SP_BINDLESS_BASE(uint32_t i0)6431*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_BINDLESS_BASE(uint32_t i0) { return 0x0000ab10 + 0x2*i0; }
6432*4882a593Smuzhiyun 
REG_A6XX_SP_BINDLESS_BASE_ADDR(uint32_t i0)6433*4882a593Smuzhiyun static inline uint32_t REG_A6XX_SP_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000ab10 + 0x2*i0; }
6434*4882a593Smuzhiyun 
6435*4882a593Smuzhiyun #define REG_A6XX_SP_IBO_LO					0x0000ab1a
6436*4882a593Smuzhiyun 
6437*4882a593Smuzhiyun #define REG_A6XX_SP_IBO_HI					0x0000ab1b
6438*4882a593Smuzhiyun 
6439*4882a593Smuzhiyun #define REG_A6XX_SP_IBO_COUNT					0x0000ab20
6440*4882a593Smuzhiyun 
6441*4882a593Smuzhiyun #define REG_A6XX_SP_2D_DST_FORMAT				0x0000acc0
6442*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_NORM				0x00000001
6443*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_SINT				0x00000002
6444*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_UINT				0x00000004
6445*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__MASK		0x000007f8
6446*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__SHIFT		3
A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT(enum a6xx_format val)6447*4882a593Smuzhiyun static inline uint32_t A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT(enum a6xx_format val)
6448*4882a593Smuzhiyun {
6449*4882a593Smuzhiyun 	return ((val) << A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__SHIFT) & A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__MASK;
6450*4882a593Smuzhiyun }
6451*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_SRGB				0x00000800
6452*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_MASK__MASK			0x0000f000
6453*4882a593Smuzhiyun #define A6XX_SP_2D_DST_FORMAT_MASK__SHIFT			12
A6XX_SP_2D_DST_FORMAT_MASK(uint32_t val)6454*4882a593Smuzhiyun static inline uint32_t A6XX_SP_2D_DST_FORMAT_MASK(uint32_t val)
6455*4882a593Smuzhiyun {
6456*4882a593Smuzhiyun 	return ((val) << A6XX_SP_2D_DST_FORMAT_MASK__SHIFT) & A6XX_SP_2D_DST_FORMAT_MASK__MASK;
6457*4882a593Smuzhiyun }
6458*4882a593Smuzhiyun 
6459*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_AE00				0x0000ae00
6460*4882a593Smuzhiyun 
6461*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_AE03				0x0000ae03
6462*4882a593Smuzhiyun 
6463*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_AE04				0x0000ae04
6464*4882a593Smuzhiyun 
6465*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_AE0F				0x0000ae0f
6466*4882a593Smuzhiyun 
6467*4882a593Smuzhiyun #define REG_A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR		0x0000b180
6468*4882a593Smuzhiyun 
6469*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_B182				0x0000b182
6470*4882a593Smuzhiyun 
6471*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_B183				0x0000b183
6472*4882a593Smuzhiyun 
6473*4882a593Smuzhiyun #define REG_A6XX_SP_TP_RAS_MSAA_CNTL				0x0000b300
6474*4882a593Smuzhiyun #define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
6475*4882a593Smuzhiyun #define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)6476*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
6477*4882a593Smuzhiyun {
6478*4882a593Smuzhiyun 	return ((val) << A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK;
6479*4882a593Smuzhiyun }
6480*4882a593Smuzhiyun 
6481*4882a593Smuzhiyun #define REG_A6XX_SP_TP_DEST_MSAA_CNTL				0x0000b301
6482*4882a593Smuzhiyun #define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
6483*4882a593Smuzhiyun #define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT		0
A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)6484*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
6485*4882a593Smuzhiyun {
6486*4882a593Smuzhiyun 	return ((val) << A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK;
6487*4882a593Smuzhiyun }
6488*4882a593Smuzhiyun #define A6XX_SP_TP_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
6489*4882a593Smuzhiyun 
6490*4882a593Smuzhiyun #define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR			0x0000b302
6491*4882a593Smuzhiyun 
6492*4882a593Smuzhiyun #define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR_LO		0x0000b302
6493*4882a593Smuzhiyun 
6494*4882a593Smuzhiyun #define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR_HI		0x0000b303
6495*4882a593Smuzhiyun 
6496*4882a593Smuzhiyun #define REG_A6XX_SP_TP_SAMPLE_CONFIG				0x0000b304
6497*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_CONFIG_UNK0				0x00000001
6498*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_CONFIG_LOCATION_ENABLE		0x00000002
6499*4882a593Smuzhiyun 
6500*4882a593Smuzhiyun #define REG_A6XX_SP_TP_SAMPLE_LOCATION_0			0x0000b305
6501*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
6502*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)6503*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
6504*4882a593Smuzhiyun {
6505*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK;
6506*4882a593Smuzhiyun }
6507*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
6508*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)6509*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
6510*4882a593Smuzhiyun {
6511*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK;
6512*4882a593Smuzhiyun }
6513*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
6514*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)6515*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
6516*4882a593Smuzhiyun {
6517*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK;
6518*4882a593Smuzhiyun }
6519*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
6520*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)6521*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
6522*4882a593Smuzhiyun {
6523*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK;
6524*4882a593Smuzhiyun }
6525*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
6526*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)6527*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
6528*4882a593Smuzhiyun {
6529*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK;
6530*4882a593Smuzhiyun }
6531*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
6532*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)6533*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
6534*4882a593Smuzhiyun {
6535*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK;
6536*4882a593Smuzhiyun }
6537*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
6538*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)6539*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
6540*4882a593Smuzhiyun {
6541*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK;
6542*4882a593Smuzhiyun }
6543*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
6544*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)6545*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
6546*4882a593Smuzhiyun {
6547*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK;
6548*4882a593Smuzhiyun }
6549*4882a593Smuzhiyun 
6550*4882a593Smuzhiyun #define REG_A6XX_SP_TP_SAMPLE_LOCATION_1			0x0000b306
6551*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
6552*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)6553*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
6554*4882a593Smuzhiyun {
6555*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK;
6556*4882a593Smuzhiyun }
6557*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
6558*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)6559*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
6560*4882a593Smuzhiyun {
6561*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK;
6562*4882a593Smuzhiyun }
6563*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
6564*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)6565*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
6566*4882a593Smuzhiyun {
6567*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK;
6568*4882a593Smuzhiyun }
6569*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
6570*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)6571*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
6572*4882a593Smuzhiyun {
6573*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK;
6574*4882a593Smuzhiyun }
6575*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
6576*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)6577*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
6578*4882a593Smuzhiyun {
6579*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK;
6580*4882a593Smuzhiyun }
6581*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
6582*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)6583*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
6584*4882a593Smuzhiyun {
6585*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK;
6586*4882a593Smuzhiyun }
6587*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
6588*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)6589*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
6590*4882a593Smuzhiyun {
6591*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK;
6592*4882a593Smuzhiyun }
6593*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
6594*4882a593Smuzhiyun #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)6595*4882a593Smuzhiyun static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
6596*4882a593Smuzhiyun {
6597*4882a593Smuzhiyun 	return ((((int32_t)(val * 1.0))) << A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK;
6598*4882a593Smuzhiyun }
6599*4882a593Smuzhiyun 
6600*4882a593Smuzhiyun #define REG_A6XX_SP_TP_UNKNOWN_B309				0x0000b309
6601*4882a593Smuzhiyun 
6602*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_INFO				0x0000b4c0
6603*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK		0x000000ff
6604*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT		0
A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_format val)6605*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_format val)
6606*4882a593Smuzhiyun {
6607*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK;
6608*4882a593Smuzhiyun }
6609*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK			0x00000300
6610*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT			8
A6XX_SP_PS_2D_SRC_INFO_TILE_MODE(enum a6xx_tile_mode val)6611*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_TILE_MODE(enum a6xx_tile_mode val)
6612*4882a593Smuzhiyun {
6613*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK;
6614*4882a593Smuzhiyun }
6615*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK			0x00000c00
6616*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT		10
A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)6617*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)
6618*4882a593Smuzhiyun {
6619*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK;
6620*4882a593Smuzhiyun }
6621*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_FLAGS				0x00001000
6622*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_SRGB				0x00002000
6623*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK			0x0000c000
6624*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT			14
A6XX_SP_PS_2D_SRC_INFO_SAMPLES(enum a3xx_msaa_samples val)6625*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_SAMPLES(enum a3xx_msaa_samples val)
6626*4882a593Smuzhiyun {
6627*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK;
6628*4882a593Smuzhiyun }
6629*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_FILTER				0x00010000
6630*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES_AVERAGE			0x00040000
6631*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_UNK20				0x00100000
6632*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_INFO_UNK22				0x00400000
6633*4882a593Smuzhiyun 
6634*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_SIZE				0x0000b4c1
6635*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_SIZE_WIDTH__MASK			0x00007fff
6636*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_SIZE_WIDTH__SHIFT			0
A6XX_SP_PS_2D_SRC_SIZE_WIDTH(uint32_t val)6637*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_SIZE_WIDTH(uint32_t val)
6638*4882a593Smuzhiyun {
6639*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_SIZE_WIDTH__SHIFT) & A6XX_SP_PS_2D_SRC_SIZE_WIDTH__MASK;
6640*4882a593Smuzhiyun }
6641*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__MASK			0x3fff8000
6642*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__SHIFT			15
A6XX_SP_PS_2D_SRC_SIZE_HEIGHT(uint32_t val)6643*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_SIZE_HEIGHT(uint32_t val)
6644*4882a593Smuzhiyun {
6645*4882a593Smuzhiyun 	return ((val) << A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__SHIFT) & A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__MASK;
6646*4882a593Smuzhiyun }
6647*4882a593Smuzhiyun 
6648*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_LO				0x0000b4c2
6649*4882a593Smuzhiyun 
6650*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_HI				0x0000b4c3
6651*4882a593Smuzhiyun 
6652*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC					0x0000b4c2
6653*4882a593Smuzhiyun 
6654*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_PITCH				0x0000b4c4
6655*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__MASK			0x01fffe00
6656*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__SHIFT			9
A6XX_SP_PS_2D_SRC_PITCH_PITCH(uint32_t val)6657*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_PITCH_PITCH(uint32_t val)
6658*4882a593Smuzhiyun {
6659*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_SP_PS_2D_SRC_PITCH_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_PITCH_PITCH__MASK;
6660*4882a593Smuzhiyun }
6661*4882a593Smuzhiyun 
6662*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_FLAGS_LO				0x0000b4ca
6663*4882a593Smuzhiyun 
6664*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_FLAGS_HI				0x0000b4cb
6665*4882a593Smuzhiyun 
6666*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_FLAGS				0x0000b4ca
6667*4882a593Smuzhiyun 
6668*4882a593Smuzhiyun #define REG_A6XX_SP_PS_2D_SRC_FLAGS_PITCH			0x0000b4cc
6669*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__MASK		0x000007ff
6670*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__SHIFT		0
A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH(uint32_t val)6671*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH(uint32_t val)
6672*4882a593Smuzhiyun {
6673*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS_PITCH_PITCH__MASK;
6674*4882a593Smuzhiyun }
6675*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__MASK		0x003ff800
6676*4882a593Smuzhiyun #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH(uint32_t val)6677*4882a593Smuzhiyun static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH(uint32_t val)
6678*4882a593Smuzhiyun {
6679*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS_PITCH_ARRAY_PITCH__MASK;
6680*4882a593Smuzhiyun }
6681*4882a593Smuzhiyun 
6682*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_B600				0x0000b600
6683*4882a593Smuzhiyun 
6684*4882a593Smuzhiyun #define REG_A6XX_SP_UNKNOWN_B605				0x0000b605
6685*4882a593Smuzhiyun 
6686*4882a593Smuzhiyun #define REG_A6XX_HLSQ_VS_CNTL					0x0000b800
6687*4882a593Smuzhiyun #define A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK			0x000000ff
6688*4882a593Smuzhiyun #define A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val)6689*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val)
6690*4882a593Smuzhiyun {
6691*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK;
6692*4882a593Smuzhiyun }
6693*4882a593Smuzhiyun #define A6XX_HLSQ_VS_CNTL_ENABLED				0x00000100
6694*4882a593Smuzhiyun 
6695*4882a593Smuzhiyun #define REG_A6XX_HLSQ_HS_CNTL					0x0000b801
6696*4882a593Smuzhiyun #define A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK			0x000000ff
6697*4882a593Smuzhiyun #define A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val)6698*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val)
6699*4882a593Smuzhiyun {
6700*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK;
6701*4882a593Smuzhiyun }
6702*4882a593Smuzhiyun #define A6XX_HLSQ_HS_CNTL_ENABLED				0x00000100
6703*4882a593Smuzhiyun 
6704*4882a593Smuzhiyun #define REG_A6XX_HLSQ_DS_CNTL					0x0000b802
6705*4882a593Smuzhiyun #define A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK			0x000000ff
6706*4882a593Smuzhiyun #define A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val)6707*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val)
6708*4882a593Smuzhiyun {
6709*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK;
6710*4882a593Smuzhiyun }
6711*4882a593Smuzhiyun #define A6XX_HLSQ_DS_CNTL_ENABLED				0x00000100
6712*4882a593Smuzhiyun 
6713*4882a593Smuzhiyun #define REG_A6XX_HLSQ_GS_CNTL					0x0000b803
6714*4882a593Smuzhiyun #define A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK			0x000000ff
6715*4882a593Smuzhiyun #define A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val)6716*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val)
6717*4882a593Smuzhiyun {
6718*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK;
6719*4882a593Smuzhiyun }
6720*4882a593Smuzhiyun #define A6XX_HLSQ_GS_CNTL_ENABLED				0x00000100
6721*4882a593Smuzhiyun 
6722*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_CMD			0x0000b820
6723*4882a593Smuzhiyun 
6724*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR		0x0000b821
6725*4882a593Smuzhiyun 
6726*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_DATA			0x0000b823
6727*4882a593Smuzhiyun 
6728*4882a593Smuzhiyun #define REG_A6XX_HLSQ_UNKNOWN_B980				0x0000b980
6729*4882a593Smuzhiyun 
6730*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CONTROL_1_REG				0x0000b982
6731*4882a593Smuzhiyun 
6732*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CONTROL_2_REG				0x0000b983
6733*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK			0x000000ff
6734*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT		0
A6XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)6735*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
6736*4882a593Smuzhiyun {
6737*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
6738*4882a593Smuzhiyun }
6739*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK			0x0000ff00
6740*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT			8
A6XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)6741*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)
6742*4882a593Smuzhiyun {
6743*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK;
6744*4882a593Smuzhiyun }
6745*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK		0x00ff0000
6746*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT		16
A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)6747*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)
6748*4882a593Smuzhiyun {
6749*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK;
6750*4882a593Smuzhiyun }
6751*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SIZE__MASK			0xff000000
6752*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT			24
A6XX_HLSQ_CONTROL_2_REG_SIZE(uint32_t val)6753*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SIZE(uint32_t val)
6754*4882a593Smuzhiyun {
6755*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_SIZE__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SIZE__MASK;
6756*4882a593Smuzhiyun }
6757*4882a593Smuzhiyun 
6758*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CONTROL_3_REG				0x0000b984
6759*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK		0x000000ff
6760*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT		0
A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)6761*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)
6762*4882a593Smuzhiyun {
6763*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK;
6764*4882a593Smuzhiyun }
6765*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK		0x0000ff00
6766*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT		8
A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)6767*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)
6768*4882a593Smuzhiyun {
6769*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK;
6770*4882a593Smuzhiyun }
6771*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK		0x00ff0000
6772*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT	16
A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)6773*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)
6774*4882a593Smuzhiyun {
6775*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK;
6776*4882a593Smuzhiyun }
6777*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK	0xff000000
6778*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT	24
A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)6779*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)
6780*4882a593Smuzhiyun {
6781*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK;
6782*4882a593Smuzhiyun }
6783*4882a593Smuzhiyun 
6784*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CONTROL_4_REG				0x0000b985
6785*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK		0x000000ff
6786*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT		0
A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)6787*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)
6788*4882a593Smuzhiyun {
6789*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK;
6790*4882a593Smuzhiyun }
6791*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK		0x0000ff00
6792*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT		8
A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)6793*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)
6794*4882a593Smuzhiyun {
6795*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK;
6796*4882a593Smuzhiyun }
6797*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK		0x00ff0000
6798*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT		16
A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)6799*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)
6800*4882a593Smuzhiyun {
6801*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK;
6802*4882a593Smuzhiyun }
6803*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK		0xff000000
6804*4882a593Smuzhiyun #define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT		24
A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)6805*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)
6806*4882a593Smuzhiyun {
6807*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK;
6808*4882a593Smuzhiyun }
6809*4882a593Smuzhiyun 
6810*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CONTROL_5_REG				0x0000b986
6811*4882a593Smuzhiyun 
6812*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_CNTL					0x0000b987
6813*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK			0x000000ff
6814*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_CS_CNTL_CONSTLEN(uint32_t val)6815*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_CNTL_CONSTLEN(uint32_t val)
6816*4882a593Smuzhiyun {
6817*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK;
6818*4882a593Smuzhiyun }
6819*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_ENABLED				0x00000100
6820*4882a593Smuzhiyun 
6821*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_0				0x0000b990
6822*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK			0x00000003
6823*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT			0
A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)6824*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)
6825*4882a593Smuzhiyun {
6826*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK;
6827*4882a593Smuzhiyun }
6828*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK			0x00000ffc
6829*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT		2
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)6830*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)
6831*4882a593Smuzhiyun {
6832*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK;
6833*4882a593Smuzhiyun }
6834*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK			0x003ff000
6835*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT		12
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)6836*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)
6837*4882a593Smuzhiyun {
6838*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK;
6839*4882a593Smuzhiyun }
6840*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK			0xffc00000
6841*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT		22
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)6842*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)
6843*4882a593Smuzhiyun {
6844*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK;
6845*4882a593Smuzhiyun }
6846*4882a593Smuzhiyun 
6847*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_1				0x0000b991
6848*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK		0xffffffff
6849*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X(uint32_t val)6850*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X(uint32_t val)
6851*4882a593Smuzhiyun {
6852*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK;
6853*4882a593Smuzhiyun }
6854*4882a593Smuzhiyun 
6855*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_2				0x0000b992
6856*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK		0xffffffff
6857*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X(uint32_t val)6858*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X(uint32_t val)
6859*4882a593Smuzhiyun {
6860*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK;
6861*4882a593Smuzhiyun }
6862*4882a593Smuzhiyun 
6863*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_3				0x0000b993
6864*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK		0xffffffff
6865*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y(uint32_t val)6866*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y(uint32_t val)
6867*4882a593Smuzhiyun {
6868*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK;
6869*4882a593Smuzhiyun }
6870*4882a593Smuzhiyun 
6871*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_4				0x0000b994
6872*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK		0xffffffff
6873*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y(uint32_t val)6874*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y(uint32_t val)
6875*4882a593Smuzhiyun {
6876*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK;
6877*4882a593Smuzhiyun }
6878*4882a593Smuzhiyun 
6879*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_5				0x0000b995
6880*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK		0xffffffff
6881*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z(uint32_t val)6882*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z(uint32_t val)
6883*4882a593Smuzhiyun {
6884*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK;
6885*4882a593Smuzhiyun }
6886*4882a593Smuzhiyun 
6887*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_NDRANGE_6				0x0000b996
6888*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK		0xffffffff
6889*4882a593Smuzhiyun #define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z(uint32_t val)6890*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z(uint32_t val)
6891*4882a593Smuzhiyun {
6892*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK;
6893*4882a593Smuzhiyun }
6894*4882a593Smuzhiyun 
6895*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_CNTL_0					0x0000b997
6896*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK			0x000000ff
6897*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT			0
A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)6898*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)
6899*4882a593Smuzhiyun {
6900*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK;
6901*4882a593Smuzhiyun }
6902*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_UNK0__MASK				0x0000ff00
6903*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_UNK0__SHIFT				8
A6XX_HLSQ_CS_CNTL_0_UNK0(uint32_t val)6904*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_CNTL_0_UNK0(uint32_t val)
6905*4882a593Smuzhiyun {
6906*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_CNTL_0_UNK0__SHIFT) & A6XX_HLSQ_CS_CNTL_0_UNK0__MASK;
6907*4882a593Smuzhiyun }
6908*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_UNK1__MASK				0x00ff0000
6909*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_UNK1__SHIFT				16
A6XX_HLSQ_CS_CNTL_0_UNK1(uint32_t val)6910*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_CNTL_0_UNK1(uint32_t val)
6911*4882a593Smuzhiyun {
6912*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_CNTL_0_UNK1__SHIFT) & A6XX_HLSQ_CS_CNTL_0_UNK1__MASK;
6913*4882a593Smuzhiyun }
6914*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK			0xff000000
6915*4882a593Smuzhiyun #define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT			24
A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)6916*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)
6917*4882a593Smuzhiyun {
6918*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK;
6919*4882a593Smuzhiyun }
6920*4882a593Smuzhiyun 
6921*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_UNKNOWN_B998				0x0000b998
6922*4882a593Smuzhiyun 
6923*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_X				0x0000b999
6924*4882a593Smuzhiyun 
6925*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Y				0x0000b99a
6926*4882a593Smuzhiyun 
6927*4882a593Smuzhiyun #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Z				0x0000b99b
6928*4882a593Smuzhiyun 
6929*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_CMD			0x0000b9a0
6930*4882a593Smuzhiyun 
6931*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR		0x0000b9a1
6932*4882a593Smuzhiyun 
6933*4882a593Smuzhiyun #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_DATA			0x0000b9a3
6934*4882a593Smuzhiyun 
REG_A6XX_HLSQ_CS_BINDLESS_BASE(uint32_t i0)6935*4882a593Smuzhiyun static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; }
6936*4882a593Smuzhiyun 
REG_A6XX_HLSQ_CS_BINDLESS_BASE_ADDR(uint32_t i0)6937*4882a593Smuzhiyun static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; }
6938*4882a593Smuzhiyun 
6939*4882a593Smuzhiyun #define REG_A6XX_HLSQ_DRAW_CMD					0x0000bb00
6940*4882a593Smuzhiyun #define A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK			0x000000ff
6941*4882a593Smuzhiyun #define A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT			0
A6XX_HLSQ_DRAW_CMD_STATE_ID(uint32_t val)6942*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_DRAW_CMD_STATE_ID(uint32_t val)
6943*4882a593Smuzhiyun {
6944*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK;
6945*4882a593Smuzhiyun }
6946*4882a593Smuzhiyun 
6947*4882a593Smuzhiyun #define REG_A6XX_HLSQ_DISPATCH_CMD				0x0000bb01
6948*4882a593Smuzhiyun #define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK			0x000000ff
6949*4882a593Smuzhiyun #define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT			0
A6XX_HLSQ_DISPATCH_CMD_STATE_ID(uint32_t val)6950*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_DISPATCH_CMD_STATE_ID(uint32_t val)
6951*4882a593Smuzhiyun {
6952*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK;
6953*4882a593Smuzhiyun }
6954*4882a593Smuzhiyun 
6955*4882a593Smuzhiyun #define REG_A6XX_HLSQ_EVENT_CMD					0x0000bb02
6956*4882a593Smuzhiyun #define A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK			0x00ff0000
6957*4882a593Smuzhiyun #define A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT			16
A6XX_HLSQ_EVENT_CMD_STATE_ID(uint32_t val)6958*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_EVENT_CMD_STATE_ID(uint32_t val)
6959*4882a593Smuzhiyun {
6960*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK;
6961*4882a593Smuzhiyun }
6962*4882a593Smuzhiyun #define A6XX_HLSQ_EVENT_CMD_EVENT__MASK				0x0000007f
6963*4882a593Smuzhiyun #define A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT			0
A6XX_HLSQ_EVENT_CMD_EVENT(enum vgt_event_type val)6964*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_EVENT_CMD_EVENT(enum vgt_event_type val)
6965*4882a593Smuzhiyun {
6966*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_EVENT_CMD_EVENT__MASK;
6967*4882a593Smuzhiyun }
6968*4882a593Smuzhiyun 
6969*4882a593Smuzhiyun #define REG_A6XX_HLSQ_INVALIDATE_CMD				0x0000bb08
6970*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_VS_STATE			0x00000001
6971*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_HS_STATE			0x00000002
6972*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_DS_STATE			0x00000004
6973*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_GS_STATE			0x00000008
6974*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_FS_STATE			0x00000010
6975*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_CS_STATE			0x00000020
6976*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_CS_IBO				0x00000040
6977*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_GFX_IBO			0x00000080
6978*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_CS_SHARED_CONST		0x00080000
6979*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_GFX_SHARED_CONST		0x00000100
6980*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__MASK		0x00003e00
6981*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__SHIFT		9
A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS(uint32_t val)6982*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS(uint32_t val)
6983*4882a593Smuzhiyun {
6984*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__SHIFT) & A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__MASK;
6985*4882a593Smuzhiyun }
6986*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__MASK		0x0007c000
6987*4882a593Smuzhiyun #define A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__SHIFT		14
A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS(uint32_t val)6988*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS(uint32_t val)
6989*4882a593Smuzhiyun {
6990*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__SHIFT) & A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__MASK;
6991*4882a593Smuzhiyun }
6992*4882a593Smuzhiyun 
6993*4882a593Smuzhiyun #define REG_A6XX_HLSQ_FS_CNTL					0x0000bb10
6994*4882a593Smuzhiyun #define A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK			0x000000ff
6995*4882a593Smuzhiyun #define A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val)6996*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val)
6997*4882a593Smuzhiyun {
6998*4882a593Smuzhiyun 	return ((val >> 2) << A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK;
6999*4882a593Smuzhiyun }
7000*4882a593Smuzhiyun #define A6XX_HLSQ_FS_CNTL_ENABLED				0x00000100
7001*4882a593Smuzhiyun 
7002*4882a593Smuzhiyun #define REG_A6XX_HLSQ_SHARED_CONSTS				0x0000bb11
7003*4882a593Smuzhiyun #define A6XX_HLSQ_SHARED_CONSTS_ENABLE				0x00000001
7004*4882a593Smuzhiyun 
REG_A6XX_HLSQ_BINDLESS_BASE(uint32_t i0)7005*4882a593Smuzhiyun static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE(uint32_t i0) { return 0x0000bb20 + 0x2*i0; }
7006*4882a593Smuzhiyun 
REG_A6XX_HLSQ_BINDLESS_BASE_ADDR(uint32_t i0)7007*4882a593Smuzhiyun static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE_ADDR(uint32_t i0) { return 0x0000bb20 + 0x2*i0; }
7008*4882a593Smuzhiyun 
7009*4882a593Smuzhiyun #define REG_A6XX_HLSQ_2D_EVENT_CMD				0x0000bd80
7010*4882a593Smuzhiyun #define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK			0x0000ff00
7011*4882a593Smuzhiyun #define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT			8
A6XX_HLSQ_2D_EVENT_CMD_STATE_ID(uint32_t val)7012*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_STATE_ID(uint32_t val)
7013*4882a593Smuzhiyun {
7014*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK;
7015*4882a593Smuzhiyun }
7016*4882a593Smuzhiyun #define A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK			0x0000007f
7017*4882a593Smuzhiyun #define A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT			0
A6XX_HLSQ_2D_EVENT_CMD_EVENT(enum vgt_event_type val)7018*4882a593Smuzhiyun static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_EVENT(enum vgt_event_type val)
7019*4882a593Smuzhiyun {
7020*4882a593Smuzhiyun 	return ((val) << A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK;
7021*4882a593Smuzhiyun }
7022*4882a593Smuzhiyun 
7023*4882a593Smuzhiyun #define REG_A6XX_HLSQ_UNKNOWN_BE00				0x0000be00
7024*4882a593Smuzhiyun 
7025*4882a593Smuzhiyun #define REG_A6XX_HLSQ_UNKNOWN_BE01				0x0000be01
7026*4882a593Smuzhiyun 
7027*4882a593Smuzhiyun #define REG_A6XX_HLSQ_UNKNOWN_BE04				0x0000be04
7028*4882a593Smuzhiyun 
7029*4882a593Smuzhiyun #define REG_A6XX_CP_EVENT_START					0x0000d600
7030*4882a593Smuzhiyun #define A6XX_CP_EVENT_START_STATE_ID__MASK			0x000000ff
7031*4882a593Smuzhiyun #define A6XX_CP_EVENT_START_STATE_ID__SHIFT			0
A6XX_CP_EVENT_START_STATE_ID(uint32_t val)7032*4882a593Smuzhiyun static inline uint32_t A6XX_CP_EVENT_START_STATE_ID(uint32_t val)
7033*4882a593Smuzhiyun {
7034*4882a593Smuzhiyun 	return ((val) << A6XX_CP_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_EVENT_START_STATE_ID__MASK;
7035*4882a593Smuzhiyun }
7036*4882a593Smuzhiyun 
7037*4882a593Smuzhiyun #define REG_A6XX_CP_EVENT_END					0x0000d601
7038*4882a593Smuzhiyun #define A6XX_CP_EVENT_END_STATE_ID__MASK			0x000000ff
7039*4882a593Smuzhiyun #define A6XX_CP_EVENT_END_STATE_ID__SHIFT			0
A6XX_CP_EVENT_END_STATE_ID(uint32_t val)7040*4882a593Smuzhiyun static inline uint32_t A6XX_CP_EVENT_END_STATE_ID(uint32_t val)
7041*4882a593Smuzhiyun {
7042*4882a593Smuzhiyun 	return ((val) << A6XX_CP_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_EVENT_END_STATE_ID__MASK;
7043*4882a593Smuzhiyun }
7044*4882a593Smuzhiyun 
7045*4882a593Smuzhiyun #define REG_A6XX_CP_2D_EVENT_START				0x0000d700
7046*4882a593Smuzhiyun #define A6XX_CP_2D_EVENT_START_STATE_ID__MASK			0x000000ff
7047*4882a593Smuzhiyun #define A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT			0
A6XX_CP_2D_EVENT_START_STATE_ID(uint32_t val)7048*4882a593Smuzhiyun static inline uint32_t A6XX_CP_2D_EVENT_START_STATE_ID(uint32_t val)
7049*4882a593Smuzhiyun {
7050*4882a593Smuzhiyun 	return ((val) << A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_START_STATE_ID__MASK;
7051*4882a593Smuzhiyun }
7052*4882a593Smuzhiyun 
7053*4882a593Smuzhiyun #define REG_A6XX_CP_2D_EVENT_END				0x0000d701
7054*4882a593Smuzhiyun #define A6XX_CP_2D_EVENT_END_STATE_ID__MASK			0x000000ff
7055*4882a593Smuzhiyun #define A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT			0
A6XX_CP_2D_EVENT_END_STATE_ID(uint32_t val)7056*4882a593Smuzhiyun static inline uint32_t A6XX_CP_2D_EVENT_END_STATE_ID(uint32_t val)
7057*4882a593Smuzhiyun {
7058*4882a593Smuzhiyun 	return ((val) << A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_END_STATE_ID__MASK;
7059*4882a593Smuzhiyun }
7060*4882a593Smuzhiyun 
7061*4882a593Smuzhiyun #define REG_A6XX_TEX_SAMP_0					0x00000000
7062*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_MIPFILTER_LINEAR_NEAR			0x00000001
7063*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_XY_MAG__MASK				0x00000006
7064*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_XY_MAG__SHIFT				1
A6XX_TEX_SAMP_0_XY_MAG(enum a6xx_tex_filter val)7065*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_XY_MAG(enum a6xx_tex_filter val)
7066*4882a593Smuzhiyun {
7067*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_XY_MAG__SHIFT) & A6XX_TEX_SAMP_0_XY_MAG__MASK;
7068*4882a593Smuzhiyun }
7069*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_XY_MIN__MASK				0x00000018
7070*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_XY_MIN__SHIFT				3
A6XX_TEX_SAMP_0_XY_MIN(enum a6xx_tex_filter val)7071*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_XY_MIN(enum a6xx_tex_filter val)
7072*4882a593Smuzhiyun {
7073*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_XY_MIN__SHIFT) & A6XX_TEX_SAMP_0_XY_MIN__MASK;
7074*4882a593Smuzhiyun }
7075*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_S__MASK				0x000000e0
7076*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_S__SHIFT				5
A6XX_TEX_SAMP_0_WRAP_S(enum a6xx_tex_clamp val)7077*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_WRAP_S(enum a6xx_tex_clamp val)
7078*4882a593Smuzhiyun {
7079*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_WRAP_S__SHIFT) & A6XX_TEX_SAMP_0_WRAP_S__MASK;
7080*4882a593Smuzhiyun }
7081*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_T__MASK				0x00000700
7082*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_T__SHIFT				8
A6XX_TEX_SAMP_0_WRAP_T(enum a6xx_tex_clamp val)7083*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_WRAP_T(enum a6xx_tex_clamp val)
7084*4882a593Smuzhiyun {
7085*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_WRAP_T__SHIFT) & A6XX_TEX_SAMP_0_WRAP_T__MASK;
7086*4882a593Smuzhiyun }
7087*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_R__MASK				0x00003800
7088*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_WRAP_R__SHIFT				11
A6XX_TEX_SAMP_0_WRAP_R(enum a6xx_tex_clamp val)7089*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_WRAP_R(enum a6xx_tex_clamp val)
7090*4882a593Smuzhiyun {
7091*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_WRAP_R__SHIFT) & A6XX_TEX_SAMP_0_WRAP_R__MASK;
7092*4882a593Smuzhiyun }
7093*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_ANISO__MASK				0x0001c000
7094*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_ANISO__SHIFT				14
A6XX_TEX_SAMP_0_ANISO(enum a6xx_tex_aniso val)7095*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_ANISO(enum a6xx_tex_aniso val)
7096*4882a593Smuzhiyun {
7097*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_0_ANISO__SHIFT) & A6XX_TEX_SAMP_0_ANISO__MASK;
7098*4882a593Smuzhiyun }
7099*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_LOD_BIAS__MASK				0xfff80000
7100*4882a593Smuzhiyun #define A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT				19
A6XX_TEX_SAMP_0_LOD_BIAS(float val)7101*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_0_LOD_BIAS(float val)
7102*4882a593Smuzhiyun {
7103*4882a593Smuzhiyun 	return ((((int32_t)(val * 256.0))) << A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT) & A6XX_TEX_SAMP_0_LOD_BIAS__MASK;
7104*4882a593Smuzhiyun }
7105*4882a593Smuzhiyun 
7106*4882a593Smuzhiyun #define REG_A6XX_TEX_SAMP_1					0x00000001
7107*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_UNK0					0x00000001
7108*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK			0x0000000e
7109*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT			1
A6XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)7110*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)
7111*4882a593Smuzhiyun {
7112*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT) & A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK;
7113*4882a593Smuzhiyun }
7114*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF			0x00000010
7115*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_UNNORM_COORDS				0x00000020
7116*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_MIPFILTER_LINEAR_FAR			0x00000040
7117*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_MAX_LOD__MASK				0x000fff00
7118*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_MAX_LOD__SHIFT				8
A6XX_TEX_SAMP_1_MAX_LOD(float val)7119*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_1_MAX_LOD(float val)
7120*4882a593Smuzhiyun {
7121*4882a593Smuzhiyun 	return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A6XX_TEX_SAMP_1_MAX_LOD__MASK;
7122*4882a593Smuzhiyun }
7123*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_MIN_LOD__MASK				0xfff00000
7124*4882a593Smuzhiyun #define A6XX_TEX_SAMP_1_MIN_LOD__SHIFT				20
A6XX_TEX_SAMP_1_MIN_LOD(float val)7125*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_1_MIN_LOD(float val)
7126*4882a593Smuzhiyun {
7127*4882a593Smuzhiyun 	return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A6XX_TEX_SAMP_1_MIN_LOD__MASK;
7128*4882a593Smuzhiyun }
7129*4882a593Smuzhiyun 
7130*4882a593Smuzhiyun #define REG_A6XX_TEX_SAMP_2					0x00000002
7131*4882a593Smuzhiyun #define A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK			0x00000003
7132*4882a593Smuzhiyun #define A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT			0
A6XX_TEX_SAMP_2_REDUCTION_MODE(enum a6xx_reduction_mode val)7133*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_2_REDUCTION_MODE(enum a6xx_reduction_mode val)
7134*4882a593Smuzhiyun {
7135*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT) & A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK;
7136*4882a593Smuzhiyun }
7137*4882a593Smuzhiyun #define A6XX_TEX_SAMP_2_CHROMA_LINEAR				0x00000020
7138*4882a593Smuzhiyun #define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK			0xffffff80
7139*4882a593Smuzhiyun #define A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT			7
A6XX_TEX_SAMP_2_BCOLOR_OFFSET(uint32_t val)7140*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_SAMP_2_BCOLOR_OFFSET(uint32_t val)
7141*4882a593Smuzhiyun {
7142*4882a593Smuzhiyun 	return ((val >> 7) << A6XX_TEX_SAMP_2_BCOLOR_OFFSET__SHIFT) & A6XX_TEX_SAMP_2_BCOLOR_OFFSET__MASK;
7143*4882a593Smuzhiyun }
7144*4882a593Smuzhiyun 
7145*4882a593Smuzhiyun #define REG_A6XX_TEX_SAMP_3					0x00000003
7146*4882a593Smuzhiyun 
7147*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_0					0x00000000
7148*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_TILE_MODE__MASK			0x00000003
7149*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_TILE_MODE__SHIFT			0
A6XX_TEX_CONST_0_TILE_MODE(enum a6xx_tile_mode val)7150*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_TILE_MODE(enum a6xx_tile_mode val)
7151*4882a593Smuzhiyun {
7152*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_TILE_MODE__SHIFT) & A6XX_TEX_CONST_0_TILE_MODE__MASK;
7153*4882a593Smuzhiyun }
7154*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SRGB					0x00000004
7155*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_X__MASK				0x00000070
7156*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_X__SHIFT				4
A6XX_TEX_CONST_0_SWIZ_X(enum a6xx_tex_swiz val)7157*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SWIZ_X(enum a6xx_tex_swiz val)
7158*4882a593Smuzhiyun {
7159*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SWIZ_X__SHIFT) & A6XX_TEX_CONST_0_SWIZ_X__MASK;
7160*4882a593Smuzhiyun }
7161*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_Y__MASK				0x00000380
7162*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_Y__SHIFT				7
A6XX_TEX_CONST_0_SWIZ_Y(enum a6xx_tex_swiz val)7163*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Y(enum a6xx_tex_swiz val)
7164*4882a593Smuzhiyun {
7165*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Y__MASK;
7166*4882a593Smuzhiyun }
7167*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_Z__MASK				0x00001c00
7168*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_Z__SHIFT				10
A6XX_TEX_CONST_0_SWIZ_Z(enum a6xx_tex_swiz val)7169*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Z(enum a6xx_tex_swiz val)
7170*4882a593Smuzhiyun {
7171*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Z__MASK;
7172*4882a593Smuzhiyun }
7173*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_W__MASK				0x0000e000
7174*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWIZ_W__SHIFT				13
A6XX_TEX_CONST_0_SWIZ_W(enum a6xx_tex_swiz val)7175*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SWIZ_W(enum a6xx_tex_swiz val)
7176*4882a593Smuzhiyun {
7177*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SWIZ_W__SHIFT) & A6XX_TEX_CONST_0_SWIZ_W__MASK;
7178*4882a593Smuzhiyun }
7179*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_MIPLVLS__MASK				0x000f0000
7180*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_MIPLVLS__SHIFT				16
A6XX_TEX_CONST_0_MIPLVLS(uint32_t val)7181*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_MIPLVLS(uint32_t val)
7182*4882a593Smuzhiyun {
7183*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_MIPLVLS__SHIFT) & A6XX_TEX_CONST_0_MIPLVLS__MASK;
7184*4882a593Smuzhiyun }
7185*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_CHROMA_MIDPOINT_X			0x00010000
7186*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_CHROMA_MIDPOINT_Y			0x00040000
7187*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SAMPLES__MASK				0x00300000
7188*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SAMPLES__SHIFT				20
A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val)7189*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val)
7190*4882a593Smuzhiyun {
7191*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SAMPLES__SHIFT) & A6XX_TEX_CONST_0_SAMPLES__MASK;
7192*4882a593Smuzhiyun }
7193*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_FMT__MASK				0x3fc00000
7194*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_FMT__SHIFT				22
A6XX_TEX_CONST_0_FMT(enum a6xx_format val)7195*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_FMT(enum a6xx_format val)
7196*4882a593Smuzhiyun {
7197*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_FMT__SHIFT) & A6XX_TEX_CONST_0_FMT__MASK;
7198*4882a593Smuzhiyun }
7199*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWAP__MASK				0xc0000000
7200*4882a593Smuzhiyun #define A6XX_TEX_CONST_0_SWAP__SHIFT				30
A6XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)7201*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)
7202*4882a593Smuzhiyun {
7203*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_0_SWAP__SHIFT) & A6XX_TEX_CONST_0_SWAP__MASK;
7204*4882a593Smuzhiyun }
7205*4882a593Smuzhiyun 
7206*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_1					0x00000001
7207*4882a593Smuzhiyun #define A6XX_TEX_CONST_1_WIDTH__MASK				0x00007fff
7208*4882a593Smuzhiyun #define A6XX_TEX_CONST_1_WIDTH__SHIFT				0
A6XX_TEX_CONST_1_WIDTH(uint32_t val)7209*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_1_WIDTH(uint32_t val)
7210*4882a593Smuzhiyun {
7211*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_1_WIDTH__SHIFT) & A6XX_TEX_CONST_1_WIDTH__MASK;
7212*4882a593Smuzhiyun }
7213*4882a593Smuzhiyun #define A6XX_TEX_CONST_1_HEIGHT__MASK				0x3fff8000
7214*4882a593Smuzhiyun #define A6XX_TEX_CONST_1_HEIGHT__SHIFT				15
A6XX_TEX_CONST_1_HEIGHT(uint32_t val)7215*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_1_HEIGHT(uint32_t val)
7216*4882a593Smuzhiyun {
7217*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_1_HEIGHT__SHIFT) & A6XX_TEX_CONST_1_HEIGHT__MASK;
7218*4882a593Smuzhiyun }
7219*4882a593Smuzhiyun 
7220*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_2					0x00000002
7221*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_UNK4					0x00000010
7222*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_PITCHALIGN__MASK			0x0000000f
7223*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_PITCHALIGN__SHIFT			0
A6XX_TEX_CONST_2_PITCHALIGN(uint32_t val)7224*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_2_PITCHALIGN(uint32_t val)
7225*4882a593Smuzhiyun {
7226*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_2_PITCHALIGN__SHIFT) & A6XX_TEX_CONST_2_PITCHALIGN__MASK;
7227*4882a593Smuzhiyun }
7228*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_PITCH__MASK				0x1fffff80
7229*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_PITCH__SHIFT				7
A6XX_TEX_CONST_2_PITCH(uint32_t val)7230*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_2_PITCH(uint32_t val)
7231*4882a593Smuzhiyun {
7232*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_2_PITCH__SHIFT) & A6XX_TEX_CONST_2_PITCH__MASK;
7233*4882a593Smuzhiyun }
7234*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_TYPE__MASK				0x60000000
7235*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_TYPE__SHIFT				29
A6XX_TEX_CONST_2_TYPE(enum a6xx_tex_type val)7236*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_2_TYPE(enum a6xx_tex_type val)
7237*4882a593Smuzhiyun {
7238*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_2_TYPE__SHIFT) & A6XX_TEX_CONST_2_TYPE__MASK;
7239*4882a593Smuzhiyun }
7240*4882a593Smuzhiyun #define A6XX_TEX_CONST_2_UNK31					0x80000000
7241*4882a593Smuzhiyun 
7242*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_3					0x00000003
7243*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_ARRAY_PITCH__MASK			0x00003fff
7244*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT			0
A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)7245*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)
7246*4882a593Smuzhiyun {
7247*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_3_ARRAY_PITCH__MASK;
7248*4882a593Smuzhiyun }
7249*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK			0x07800000
7250*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT			23
A6XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val)7251*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val)
7252*4882a593Smuzhiyun {
7253*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT) & A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK;
7254*4882a593Smuzhiyun }
7255*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_TILE_ALL				0x08000000
7256*4882a593Smuzhiyun #define A6XX_TEX_CONST_3_FLAG					0x10000000
7257*4882a593Smuzhiyun 
7258*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_4					0x00000004
7259*4882a593Smuzhiyun #define A6XX_TEX_CONST_4_BASE_LO__MASK				0xffffffe0
7260*4882a593Smuzhiyun #define A6XX_TEX_CONST_4_BASE_LO__SHIFT				5
A6XX_TEX_CONST_4_BASE_LO(uint32_t val)7261*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_4_BASE_LO(uint32_t val)
7262*4882a593Smuzhiyun {
7263*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_TEX_CONST_4_BASE_LO__SHIFT) & A6XX_TEX_CONST_4_BASE_LO__MASK;
7264*4882a593Smuzhiyun }
7265*4882a593Smuzhiyun 
7266*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_5					0x00000005
7267*4882a593Smuzhiyun #define A6XX_TEX_CONST_5_BASE_HI__MASK				0x0001ffff
7268*4882a593Smuzhiyun #define A6XX_TEX_CONST_5_BASE_HI__SHIFT				0
A6XX_TEX_CONST_5_BASE_HI(uint32_t val)7269*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_5_BASE_HI(uint32_t val)
7270*4882a593Smuzhiyun {
7271*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_5_BASE_HI__SHIFT) & A6XX_TEX_CONST_5_BASE_HI__MASK;
7272*4882a593Smuzhiyun }
7273*4882a593Smuzhiyun #define A6XX_TEX_CONST_5_DEPTH__MASK				0x3ffe0000
7274*4882a593Smuzhiyun #define A6XX_TEX_CONST_5_DEPTH__SHIFT				17
A6XX_TEX_CONST_5_DEPTH(uint32_t val)7275*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_5_DEPTH(uint32_t val)
7276*4882a593Smuzhiyun {
7277*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_5_DEPTH__SHIFT) & A6XX_TEX_CONST_5_DEPTH__MASK;
7278*4882a593Smuzhiyun }
7279*4882a593Smuzhiyun 
7280*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_6					0x00000006
7281*4882a593Smuzhiyun #define A6XX_TEX_CONST_6_PLANE_PITCH__MASK			0xffffff00
7282*4882a593Smuzhiyun #define A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT			8
A6XX_TEX_CONST_6_PLANE_PITCH(uint32_t val)7283*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_6_PLANE_PITCH(uint32_t val)
7284*4882a593Smuzhiyun {
7285*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT) & A6XX_TEX_CONST_6_PLANE_PITCH__MASK;
7286*4882a593Smuzhiyun }
7287*4882a593Smuzhiyun 
7288*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_7					0x00000007
7289*4882a593Smuzhiyun #define A6XX_TEX_CONST_7_FLAG_LO__MASK				0xffffffe0
7290*4882a593Smuzhiyun #define A6XX_TEX_CONST_7_FLAG_LO__SHIFT				5
A6XX_TEX_CONST_7_FLAG_LO(uint32_t val)7291*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_7_FLAG_LO(uint32_t val)
7292*4882a593Smuzhiyun {
7293*4882a593Smuzhiyun 	return ((val >> 5) << A6XX_TEX_CONST_7_FLAG_LO__SHIFT) & A6XX_TEX_CONST_7_FLAG_LO__MASK;
7294*4882a593Smuzhiyun }
7295*4882a593Smuzhiyun 
7296*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_8					0x00000008
7297*4882a593Smuzhiyun #define A6XX_TEX_CONST_8_FLAG_HI__MASK				0x0001ffff
7298*4882a593Smuzhiyun #define A6XX_TEX_CONST_8_FLAG_HI__SHIFT				0
A6XX_TEX_CONST_8_FLAG_HI(uint32_t val)7299*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_8_FLAG_HI(uint32_t val)
7300*4882a593Smuzhiyun {
7301*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_8_FLAG_HI__SHIFT) & A6XX_TEX_CONST_8_FLAG_HI__MASK;
7302*4882a593Smuzhiyun }
7303*4882a593Smuzhiyun 
7304*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_9					0x00000009
7305*4882a593Smuzhiyun #define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK		0x0001ffff
7306*4882a593Smuzhiyun #define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT		0
A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)7307*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)
7308*4882a593Smuzhiyun {
7309*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK;
7310*4882a593Smuzhiyun }
7311*4882a593Smuzhiyun 
7312*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_10					0x0000000a
7313*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK		0x0000007f
7314*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT		0
A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(uint32_t val)7315*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(uint32_t val)
7316*4882a593Smuzhiyun {
7317*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK;
7318*4882a593Smuzhiyun }
7319*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK		0x00000f00
7320*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT		8
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(uint32_t val)7321*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(uint32_t val)
7322*4882a593Smuzhiyun {
7323*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK;
7324*4882a593Smuzhiyun }
7325*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK		0x0000f000
7326*4882a593Smuzhiyun #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT		12
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(uint32_t val)7327*4882a593Smuzhiyun static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(uint32_t val)
7328*4882a593Smuzhiyun {
7329*4882a593Smuzhiyun 	return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK;
7330*4882a593Smuzhiyun }
7331*4882a593Smuzhiyun 
7332*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_11					0x0000000b
7333*4882a593Smuzhiyun 
7334*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_12					0x0000000c
7335*4882a593Smuzhiyun 
7336*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_13					0x0000000d
7337*4882a593Smuzhiyun 
7338*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_14					0x0000000e
7339*4882a593Smuzhiyun 
7340*4882a593Smuzhiyun #define REG_A6XX_TEX_CONST_15					0x0000000f
7341*4882a593Smuzhiyun 
7342*4882a593Smuzhiyun #define REG_A6XX_IBO_0						0x00000000
7343*4882a593Smuzhiyun #define A6XX_IBO_0_TILE_MODE__MASK				0x00000003
7344*4882a593Smuzhiyun #define A6XX_IBO_0_TILE_MODE__SHIFT				0
A6XX_IBO_0_TILE_MODE(enum a6xx_tile_mode val)7345*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_0_TILE_MODE(enum a6xx_tile_mode val)
7346*4882a593Smuzhiyun {
7347*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_0_TILE_MODE__SHIFT) & A6XX_IBO_0_TILE_MODE__MASK;
7348*4882a593Smuzhiyun }
7349*4882a593Smuzhiyun #define A6XX_IBO_0_FMT__MASK					0x3fc00000
7350*4882a593Smuzhiyun #define A6XX_IBO_0_FMT__SHIFT					22
A6XX_IBO_0_FMT(enum a6xx_format val)7351*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_0_FMT(enum a6xx_format val)
7352*4882a593Smuzhiyun {
7353*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_0_FMT__SHIFT) & A6XX_IBO_0_FMT__MASK;
7354*4882a593Smuzhiyun }
7355*4882a593Smuzhiyun 
7356*4882a593Smuzhiyun #define REG_A6XX_IBO_1						0x00000001
7357*4882a593Smuzhiyun #define A6XX_IBO_1_WIDTH__MASK					0x00007fff
7358*4882a593Smuzhiyun #define A6XX_IBO_1_WIDTH__SHIFT					0
A6XX_IBO_1_WIDTH(uint32_t val)7359*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_1_WIDTH(uint32_t val)
7360*4882a593Smuzhiyun {
7361*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_1_WIDTH__SHIFT) & A6XX_IBO_1_WIDTH__MASK;
7362*4882a593Smuzhiyun }
7363*4882a593Smuzhiyun #define A6XX_IBO_1_HEIGHT__MASK					0x3fff8000
7364*4882a593Smuzhiyun #define A6XX_IBO_1_HEIGHT__SHIFT				15
A6XX_IBO_1_HEIGHT(uint32_t val)7365*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_1_HEIGHT(uint32_t val)
7366*4882a593Smuzhiyun {
7367*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_1_HEIGHT__SHIFT) & A6XX_IBO_1_HEIGHT__MASK;
7368*4882a593Smuzhiyun }
7369*4882a593Smuzhiyun 
7370*4882a593Smuzhiyun #define REG_A6XX_IBO_2						0x00000002
7371*4882a593Smuzhiyun #define A6XX_IBO_2_UNK4						0x00000010
7372*4882a593Smuzhiyun #define A6XX_IBO_2_PITCH__MASK					0x1fffff80
7373*4882a593Smuzhiyun #define A6XX_IBO_2_PITCH__SHIFT					7
A6XX_IBO_2_PITCH(uint32_t val)7374*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_2_PITCH(uint32_t val)
7375*4882a593Smuzhiyun {
7376*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_2_PITCH__SHIFT) & A6XX_IBO_2_PITCH__MASK;
7377*4882a593Smuzhiyun }
7378*4882a593Smuzhiyun #define A6XX_IBO_2_TYPE__MASK					0x60000000
7379*4882a593Smuzhiyun #define A6XX_IBO_2_TYPE__SHIFT					29
A6XX_IBO_2_TYPE(enum a6xx_tex_type val)7380*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_2_TYPE(enum a6xx_tex_type val)
7381*4882a593Smuzhiyun {
7382*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_2_TYPE__SHIFT) & A6XX_IBO_2_TYPE__MASK;
7383*4882a593Smuzhiyun }
7384*4882a593Smuzhiyun #define A6XX_IBO_2_UNK31					0x80000000
7385*4882a593Smuzhiyun 
7386*4882a593Smuzhiyun #define REG_A6XX_IBO_3						0x00000003
7387*4882a593Smuzhiyun #define A6XX_IBO_3_ARRAY_PITCH__MASK				0x00003fff
7388*4882a593Smuzhiyun #define A6XX_IBO_3_ARRAY_PITCH__SHIFT				0
A6XX_IBO_3_ARRAY_PITCH(uint32_t val)7389*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_3_ARRAY_PITCH(uint32_t val)
7390*4882a593Smuzhiyun {
7391*4882a593Smuzhiyun 	return ((val >> 12) << A6XX_IBO_3_ARRAY_PITCH__SHIFT) & A6XX_IBO_3_ARRAY_PITCH__MASK;
7392*4882a593Smuzhiyun }
7393*4882a593Smuzhiyun #define A6XX_IBO_3_UNK27					0x08000000
7394*4882a593Smuzhiyun #define A6XX_IBO_3_FLAG						0x10000000
7395*4882a593Smuzhiyun 
7396*4882a593Smuzhiyun #define REG_A6XX_IBO_4						0x00000004
7397*4882a593Smuzhiyun #define A6XX_IBO_4_BASE_LO__MASK				0xffffffff
7398*4882a593Smuzhiyun #define A6XX_IBO_4_BASE_LO__SHIFT				0
A6XX_IBO_4_BASE_LO(uint32_t val)7399*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_4_BASE_LO(uint32_t val)
7400*4882a593Smuzhiyun {
7401*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_4_BASE_LO__SHIFT) & A6XX_IBO_4_BASE_LO__MASK;
7402*4882a593Smuzhiyun }
7403*4882a593Smuzhiyun 
7404*4882a593Smuzhiyun #define REG_A6XX_IBO_5						0x00000005
7405*4882a593Smuzhiyun #define A6XX_IBO_5_BASE_HI__MASK				0x0001ffff
7406*4882a593Smuzhiyun #define A6XX_IBO_5_BASE_HI__SHIFT				0
A6XX_IBO_5_BASE_HI(uint32_t val)7407*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_5_BASE_HI(uint32_t val)
7408*4882a593Smuzhiyun {
7409*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_5_BASE_HI__SHIFT) & A6XX_IBO_5_BASE_HI__MASK;
7410*4882a593Smuzhiyun }
7411*4882a593Smuzhiyun #define A6XX_IBO_5_DEPTH__MASK					0x3ffe0000
7412*4882a593Smuzhiyun #define A6XX_IBO_5_DEPTH__SHIFT					17
A6XX_IBO_5_DEPTH(uint32_t val)7413*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_5_DEPTH(uint32_t val)
7414*4882a593Smuzhiyun {
7415*4882a593Smuzhiyun 	return ((val) << A6XX_IBO_5_DEPTH__SHIFT) & A6XX_IBO_5_DEPTH__MASK;
7416*4882a593Smuzhiyun }
7417*4882a593Smuzhiyun 
7418*4882a593Smuzhiyun #define REG_A6XX_IBO_6						0x00000006
7419*4882a593Smuzhiyun 
7420*4882a593Smuzhiyun #define REG_A6XX_IBO_7						0x00000007
7421*4882a593Smuzhiyun 
7422*4882a593Smuzhiyun #define REG_A6XX_IBO_8						0x00000008
7423*4882a593Smuzhiyun 
7424*4882a593Smuzhiyun #define REG_A6XX_IBO_9						0x00000009
7425*4882a593Smuzhiyun #define A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__MASK		0x0001ffff
7426*4882a593Smuzhiyun #define A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT		0
A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)7427*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)
7428*4882a593Smuzhiyun {
7429*4882a593Smuzhiyun 	return ((val >> 4) << A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_IBO_9_FLAG_BUFFER_ARRAY_PITCH__MASK;
7430*4882a593Smuzhiyun }
7431*4882a593Smuzhiyun 
7432*4882a593Smuzhiyun #define REG_A6XX_IBO_10						0x0000000a
7433*4882a593Smuzhiyun #define A6XX_IBO_10_FLAG_BUFFER_PITCH__MASK			0x0000007f
7434*4882a593Smuzhiyun #define A6XX_IBO_10_FLAG_BUFFER_PITCH__SHIFT			0
A6XX_IBO_10_FLAG_BUFFER_PITCH(uint32_t val)7435*4882a593Smuzhiyun static inline uint32_t A6XX_IBO_10_FLAG_BUFFER_PITCH(uint32_t val)
7436*4882a593Smuzhiyun {
7437*4882a593Smuzhiyun 	return ((val >> 6) << A6XX_IBO_10_FLAG_BUFFER_PITCH__SHIFT) & A6XX_IBO_10_FLAG_BUFFER_PITCH__MASK;
7438*4882a593Smuzhiyun }
7439*4882a593Smuzhiyun 
7440*4882a593Smuzhiyun #define REG_A6XX_UBO_0						0x00000000
7441*4882a593Smuzhiyun #define A6XX_UBO_0_BASE_LO__MASK				0xffffffff
7442*4882a593Smuzhiyun #define A6XX_UBO_0_BASE_LO__SHIFT				0
A6XX_UBO_0_BASE_LO(uint32_t val)7443*4882a593Smuzhiyun static inline uint32_t A6XX_UBO_0_BASE_LO(uint32_t val)
7444*4882a593Smuzhiyun {
7445*4882a593Smuzhiyun 	return ((val) << A6XX_UBO_0_BASE_LO__SHIFT) & A6XX_UBO_0_BASE_LO__MASK;
7446*4882a593Smuzhiyun }
7447*4882a593Smuzhiyun 
7448*4882a593Smuzhiyun #define REG_A6XX_UBO_1						0x00000001
7449*4882a593Smuzhiyun #define A6XX_UBO_1_BASE_HI__MASK				0x0001ffff
7450*4882a593Smuzhiyun #define A6XX_UBO_1_BASE_HI__SHIFT				0
A6XX_UBO_1_BASE_HI(uint32_t val)7451*4882a593Smuzhiyun static inline uint32_t A6XX_UBO_1_BASE_HI(uint32_t val)
7452*4882a593Smuzhiyun {
7453*4882a593Smuzhiyun 	return ((val) << A6XX_UBO_1_BASE_HI__SHIFT) & A6XX_UBO_1_BASE_HI__MASK;
7454*4882a593Smuzhiyun }
7455*4882a593Smuzhiyun #define A6XX_UBO_1_SIZE__MASK					0xfffe0000
7456*4882a593Smuzhiyun #define A6XX_UBO_1_SIZE__SHIFT					17
A6XX_UBO_1_SIZE(uint32_t val)7457*4882a593Smuzhiyun static inline uint32_t A6XX_UBO_1_SIZE(uint32_t val)
7458*4882a593Smuzhiyun {
7459*4882a593Smuzhiyun 	return ((val) << A6XX_UBO_1_SIZE__SHIFT) & A6XX_UBO_1_SIZE__MASK;
7460*4882a593Smuzhiyun }
7461*4882a593Smuzhiyun 
7462*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_ENABLE_PDC				0x00001140
7463*4882a593Smuzhiyun 
7464*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_SEQ_START_ADDR				0x00001148
7465*4882a593Smuzhiyun 
7466*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CONTROL				0x00001540
7467*4882a593Smuzhiyun 
7468*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CMD_ENABLE_BANK			0x00001541
7469*4882a593Smuzhiyun 
7470*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CMD_WAIT_FOR_CMPL_BANK		0x00001542
7471*4882a593Smuzhiyun 
7472*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CMD0_MSGID			0x00001543
7473*4882a593Smuzhiyun 
7474*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CMD0_ADDR				0x00001544
7475*4882a593Smuzhiyun 
7476*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS0_CMD0_DATA				0x00001545
7477*4882a593Smuzhiyun 
7478*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CONTROL				0x00001572
7479*4882a593Smuzhiyun 
7480*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CMD_ENABLE_BANK			0x00001573
7481*4882a593Smuzhiyun 
7482*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CMD_WAIT_FOR_CMPL_BANK		0x00001574
7483*4882a593Smuzhiyun 
7484*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CMD0_MSGID			0x00001575
7485*4882a593Smuzhiyun 
7486*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CMD0_ADDR				0x00001576
7487*4882a593Smuzhiyun 
7488*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS1_CMD0_DATA				0x00001577
7489*4882a593Smuzhiyun 
7490*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CONTROL				0x000015a4
7491*4882a593Smuzhiyun 
7492*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CMD_ENABLE_BANK			0x000015a5
7493*4882a593Smuzhiyun 
7494*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CMD_WAIT_FOR_CMPL_BANK		0x000015a6
7495*4882a593Smuzhiyun 
7496*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CMD0_MSGID			0x000015a7
7497*4882a593Smuzhiyun 
7498*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CMD0_ADDR				0x000015a8
7499*4882a593Smuzhiyun 
7500*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS2_CMD0_DATA				0x000015a9
7501*4882a593Smuzhiyun 
7502*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CONTROL				0x000015d6
7503*4882a593Smuzhiyun 
7504*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CMD_ENABLE_BANK			0x000015d7
7505*4882a593Smuzhiyun 
7506*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CMD_WAIT_FOR_CMPL_BANK		0x000015d8
7507*4882a593Smuzhiyun 
7508*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CMD0_MSGID			0x000015d9
7509*4882a593Smuzhiyun 
7510*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CMD0_ADDR				0x000015da
7511*4882a593Smuzhiyun 
7512*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_TCS3_CMD0_DATA				0x000015db
7513*4882a593Smuzhiyun 
7514*4882a593Smuzhiyun #define REG_A6XX_PDC_GPU_SEQ_MEM_0				0x00000000
7515*4882a593Smuzhiyun 
7516*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_A			0x00000000
7517*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__MASK		0x000000ff
7518*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX(uint32_t val)7519*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX(uint32_t val)
7520*4882a593Smuzhiyun {
7521*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__MASK;
7522*4882a593Smuzhiyun }
7523*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__MASK	0x0000ff00
7524*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__SHIFT	8
A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL(uint32_t val)7525*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL(uint32_t val)
7526*4882a593Smuzhiyun {
7527*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__MASK;
7528*4882a593Smuzhiyun }
7529*4882a593Smuzhiyun 
7530*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_B			0x00000001
7531*4882a593Smuzhiyun 
7532*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_C			0x00000002
7533*4882a593Smuzhiyun 
7534*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_D			0x00000003
7535*4882a593Smuzhiyun 
7536*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLT			0x00000004
7537*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK		0x0000003f
7538*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)7539*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
7540*4882a593Smuzhiyun {
7541*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
7542*4882a593Smuzhiyun }
7543*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK		0x00007000
7544*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)7545*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
7546*4882a593Smuzhiyun {
7547*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
7548*4882a593Smuzhiyun }
7549*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK		0xf0000000
7550*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)7551*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
7552*4882a593Smuzhiyun {
7553*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
7554*4882a593Smuzhiyun }
7555*4882a593Smuzhiyun 
7556*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLM			0x00000005
7557*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK		0x0f000000
7558*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)7559*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
7560*4882a593Smuzhiyun {
7561*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
7562*4882a593Smuzhiyun }
7563*4882a593Smuzhiyun 
7564*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0			0x00000008
7565*4882a593Smuzhiyun 
7566*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1			0x00000009
7567*4882a593Smuzhiyun 
7568*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2			0x0000000a
7569*4882a593Smuzhiyun 
7570*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3			0x0000000b
7571*4882a593Smuzhiyun 
7572*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0			0x0000000c
7573*4882a593Smuzhiyun 
7574*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1			0x0000000d
7575*4882a593Smuzhiyun 
7576*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2			0x0000000e
7577*4882a593Smuzhiyun 
7578*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3			0x0000000f
7579*4882a593Smuzhiyun 
7580*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0			0x00000010
7581*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK		0x0000000f
7582*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)7583*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
7584*4882a593Smuzhiyun {
7585*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
7586*4882a593Smuzhiyun }
7587*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK		0x000000f0
7588*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT		4
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)7589*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
7590*4882a593Smuzhiyun {
7591*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
7592*4882a593Smuzhiyun }
7593*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK		0x00000f00
7594*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT		8
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)7595*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
7596*4882a593Smuzhiyun {
7597*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
7598*4882a593Smuzhiyun }
7599*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK		0x0000f000
7600*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)7601*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
7602*4882a593Smuzhiyun {
7603*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
7604*4882a593Smuzhiyun }
7605*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK		0x000f0000
7606*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT		16
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)7607*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
7608*4882a593Smuzhiyun {
7609*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
7610*4882a593Smuzhiyun }
7611*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK		0x00f00000
7612*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT		20
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)7613*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
7614*4882a593Smuzhiyun {
7615*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
7616*4882a593Smuzhiyun }
7617*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK		0x0f000000
7618*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)7619*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
7620*4882a593Smuzhiyun {
7621*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
7622*4882a593Smuzhiyun }
7623*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK		0xf0000000
7624*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)7625*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
7626*4882a593Smuzhiyun {
7627*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
7628*4882a593Smuzhiyun }
7629*4882a593Smuzhiyun 
7630*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1			0x00000011
7631*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK		0x0000000f
7632*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)7633*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
7634*4882a593Smuzhiyun {
7635*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
7636*4882a593Smuzhiyun }
7637*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK		0x000000f0
7638*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT		4
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)7639*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
7640*4882a593Smuzhiyun {
7641*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
7642*4882a593Smuzhiyun }
7643*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK		0x00000f00
7644*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT		8
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)7645*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
7646*4882a593Smuzhiyun {
7647*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
7648*4882a593Smuzhiyun }
7649*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK		0x0000f000
7650*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)7651*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
7652*4882a593Smuzhiyun {
7653*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
7654*4882a593Smuzhiyun }
7655*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK		0x000f0000
7656*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT		16
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)7657*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
7658*4882a593Smuzhiyun {
7659*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
7660*4882a593Smuzhiyun }
7661*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK		0x00f00000
7662*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT		20
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)7663*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
7664*4882a593Smuzhiyun {
7665*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
7666*4882a593Smuzhiyun }
7667*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK		0x0f000000
7668*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)7669*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
7670*4882a593Smuzhiyun {
7671*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
7672*4882a593Smuzhiyun }
7673*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK		0xf0000000
7674*4882a593Smuzhiyun #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)7675*4882a593Smuzhiyun static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
7676*4882a593Smuzhiyun {
7677*4882a593Smuzhiyun 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
7678*4882a593Smuzhiyun }
7679*4882a593Smuzhiyun 
7680*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF1			0x0000002f
7681*4882a593Smuzhiyun 
7682*4882a593Smuzhiyun #define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF2			0x00000030
7683*4882a593Smuzhiyun 
7684*4882a593Smuzhiyun #define REG_A6XX_CX_MISC_SYSTEM_CACHE_CNTL_0			0x00000001
7685*4882a593Smuzhiyun 
7686*4882a593Smuzhiyun #define REG_A6XX_CX_MISC_SYSTEM_CACHE_CNTL_1			0x00000002
7687*4882a593Smuzhiyun 
7688*4882a593Smuzhiyun 
7689*4882a593Smuzhiyun #endif /* A6XX_XML */
7690