xref: /openbmc/linux/drivers/gpu/drm/msm/adreno/a6xx.xml.h (revision b3ba797e)
12d756322SRob Clark #ifndef A6XX_XML
22d756322SRob Clark #define A6XX_XML
32d756322SRob Clark 
42d756322SRob Clark /* Autogenerated file, DO NOT EDIT manually!
52d756322SRob Clark 
62d756322SRob Clark This file was generated by the rules-ng-ng headergen tool in this git repository:
72d756322SRob Clark http://github.com/freedreno/envytools/
82d756322SRob Clark git clone https://github.com/freedreno/envytools.git
92d756322SRob Clark 
102d756322SRob Clark The rules-ng-ng source files this header was generated from are:
11f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno.xml                     (    594 bytes, from 2023-03-10 18:32:52)
12f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/freedreno_copyright.xml        (   1572 bytes, from 2022-07-23 20:21:46)
13f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a2xx.xml                (  91929 bytes, from 2023-02-28 23:52:27)
14f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/adreno_common.xml       (  15434 bytes, from 2023-03-10 18:32:53)
15f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/adreno_pm4.xml          (  74995 bytes, from 2023-03-20 18:06:23)
16f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a3xx.xml                (  84231 bytes, from 2022-08-02 16:38:43)
17f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a4xx.xml                ( 113474 bytes, from 2022-08-02 16:38:43)
18f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a5xx.xml                ( 149590 bytes, from 2023-02-14 19:37:12)
19f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a6xx.xml                ( 198949 bytes, from 2023-03-20 18:06:23)
20f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/a6xx_gmu.xml            (  11404 bytes, from 2023-03-10 18:32:53)
21f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/ocmem.xml               (   1773 bytes, from 2022-08-02 16:38:43)
22f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/adreno_control_regs.xml (   9055 bytes, from 2023-03-10 18:32:52)
23f73343faSRob Clark - /home/robclark/src/mesa/mesa/src/freedreno/registers/adreno/adreno_pipe_regs.xml    (   2976 bytes, from 2023-03-10 18:32:52)
242d756322SRob Clark 
25f73343faSRob Clark Copyright (C) 2013-2023 by the following authors:
262d756322SRob Clark - Rob Clark <robdclark@gmail.com> (robclark)
272d756322SRob Clark - Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
282d756322SRob Clark 
292d756322SRob Clark Permission is hereby granted, free of charge, to any person obtaining
302d756322SRob Clark a copy of this software and associated documentation files (the
312d756322SRob Clark "Software"), to deal in the Software without restriction, including
322d756322SRob Clark without limitation the rights to use, copy, modify, merge, publish,
332d756322SRob Clark distribute, sublicense, and/or sell copies of the Software, and to
342d756322SRob Clark permit persons to whom the Software is furnished to do so, subject to
352d756322SRob Clark the following conditions:
362d756322SRob Clark 
372d756322SRob Clark The above copyright notice and this permission notice (including the
382d756322SRob Clark next paragraph) shall be included in all copies or substantial
392d756322SRob Clark portions of the Software.
402d756322SRob Clark 
412d756322SRob Clark THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
422d756322SRob Clark EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
432d756322SRob Clark MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
442d756322SRob Clark IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
452d756322SRob Clark LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
462d756322SRob Clark OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
472d756322SRob Clark WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
482d756322SRob Clark */
492d756322SRob Clark 
502d756322SRob Clark 
512d756322SRob Clark enum a6xx_tile_mode {
522d756322SRob Clark 	TILE6_LINEAR = 0,
532d756322SRob Clark 	TILE6_2 = 2,
542d756322SRob Clark 	TILE6_3 = 3,
552d756322SRob Clark };
562d756322SRob Clark 
57c28c82e9SRob Clark enum a6xx_format {
58c28c82e9SRob Clark 	FMT6_A8_UNORM = 2,
59c28c82e9SRob Clark 	FMT6_8_UNORM = 3,
60c28c82e9SRob Clark 	FMT6_8_SNORM = 4,
61c28c82e9SRob Clark 	FMT6_8_UINT = 5,
62c28c82e9SRob Clark 	FMT6_8_SINT = 6,
63c28c82e9SRob Clark 	FMT6_4_4_4_4_UNORM = 8,
64c28c82e9SRob Clark 	FMT6_5_5_5_1_UNORM = 10,
65c28c82e9SRob Clark 	FMT6_1_5_5_5_UNORM = 12,
66c28c82e9SRob Clark 	FMT6_5_6_5_UNORM = 14,
67c28c82e9SRob Clark 	FMT6_8_8_UNORM = 15,
68c28c82e9SRob Clark 	FMT6_8_8_SNORM = 16,
69c28c82e9SRob Clark 	FMT6_8_8_UINT = 17,
70c28c82e9SRob Clark 	FMT6_8_8_SINT = 18,
71c28c82e9SRob Clark 	FMT6_L8_A8_UNORM = 19,
72c28c82e9SRob Clark 	FMT6_16_UNORM = 21,
73c28c82e9SRob Clark 	FMT6_16_SNORM = 22,
74c28c82e9SRob Clark 	FMT6_16_FLOAT = 23,
75c28c82e9SRob Clark 	FMT6_16_UINT = 24,
76c28c82e9SRob Clark 	FMT6_16_SINT = 25,
77c28c82e9SRob Clark 	FMT6_8_8_8_UNORM = 33,
78c28c82e9SRob Clark 	FMT6_8_8_8_SNORM = 34,
79c28c82e9SRob Clark 	FMT6_8_8_8_UINT = 35,
80c28c82e9SRob Clark 	FMT6_8_8_8_SINT = 36,
81c28c82e9SRob Clark 	FMT6_8_8_8_8_UNORM = 48,
82c28c82e9SRob Clark 	FMT6_8_8_8_X8_UNORM = 49,
83c28c82e9SRob Clark 	FMT6_8_8_8_8_SNORM = 50,
84c28c82e9SRob Clark 	FMT6_8_8_8_8_UINT = 51,
85c28c82e9SRob Clark 	FMT6_8_8_8_8_SINT = 52,
86c28c82e9SRob Clark 	FMT6_9_9_9_E5_FLOAT = 53,
87c28c82e9SRob Clark 	FMT6_10_10_10_2_UNORM = 54,
88c28c82e9SRob Clark 	FMT6_10_10_10_2_UNORM_DEST = 55,
89c28c82e9SRob Clark 	FMT6_10_10_10_2_SNORM = 57,
90c28c82e9SRob Clark 	FMT6_10_10_10_2_UINT = 58,
91c28c82e9SRob Clark 	FMT6_10_10_10_2_SINT = 59,
92c28c82e9SRob Clark 	FMT6_11_11_10_FLOAT = 66,
93c28c82e9SRob Clark 	FMT6_16_16_UNORM = 67,
94c28c82e9SRob Clark 	FMT6_16_16_SNORM = 68,
95c28c82e9SRob Clark 	FMT6_16_16_FLOAT = 69,
96c28c82e9SRob Clark 	FMT6_16_16_UINT = 70,
97c28c82e9SRob Clark 	FMT6_16_16_SINT = 71,
98c28c82e9SRob Clark 	FMT6_32_UNORM = 72,
99c28c82e9SRob Clark 	FMT6_32_SNORM = 73,
100c28c82e9SRob Clark 	FMT6_32_FLOAT = 74,
101c28c82e9SRob Clark 	FMT6_32_UINT = 75,
102c28c82e9SRob Clark 	FMT6_32_SINT = 76,
103c28c82e9SRob Clark 	FMT6_32_FIXED = 77,
104c28c82e9SRob Clark 	FMT6_16_16_16_UNORM = 88,
105c28c82e9SRob Clark 	FMT6_16_16_16_SNORM = 89,
106c28c82e9SRob Clark 	FMT6_16_16_16_FLOAT = 90,
107c28c82e9SRob Clark 	FMT6_16_16_16_UINT = 91,
108c28c82e9SRob Clark 	FMT6_16_16_16_SINT = 92,
109c28c82e9SRob Clark 	FMT6_16_16_16_16_UNORM = 96,
110c28c82e9SRob Clark 	FMT6_16_16_16_16_SNORM = 97,
111c28c82e9SRob Clark 	FMT6_16_16_16_16_FLOAT = 98,
112c28c82e9SRob Clark 	FMT6_16_16_16_16_UINT = 99,
113c28c82e9SRob Clark 	FMT6_16_16_16_16_SINT = 100,
114c28c82e9SRob Clark 	FMT6_32_32_UNORM = 101,
115c28c82e9SRob Clark 	FMT6_32_32_SNORM = 102,
116c28c82e9SRob Clark 	FMT6_32_32_FLOAT = 103,
117c28c82e9SRob Clark 	FMT6_32_32_UINT = 104,
118c28c82e9SRob Clark 	FMT6_32_32_SINT = 105,
119c28c82e9SRob Clark 	FMT6_32_32_FIXED = 106,
120c28c82e9SRob Clark 	FMT6_32_32_32_UNORM = 112,
121c28c82e9SRob Clark 	FMT6_32_32_32_SNORM = 113,
122c28c82e9SRob Clark 	FMT6_32_32_32_UINT = 114,
123c28c82e9SRob Clark 	FMT6_32_32_32_SINT = 115,
124c28c82e9SRob Clark 	FMT6_32_32_32_FLOAT = 116,
125c28c82e9SRob Clark 	FMT6_32_32_32_FIXED = 117,
126c28c82e9SRob Clark 	FMT6_32_32_32_32_UNORM = 128,
127c28c82e9SRob Clark 	FMT6_32_32_32_32_SNORM = 129,
128c28c82e9SRob Clark 	FMT6_32_32_32_32_FLOAT = 130,
129c28c82e9SRob Clark 	FMT6_32_32_32_32_UINT = 131,
130c28c82e9SRob Clark 	FMT6_32_32_32_32_SINT = 132,
131c28c82e9SRob Clark 	FMT6_32_32_32_32_FIXED = 133,
132c28c82e9SRob Clark 	FMT6_G8R8B8R8_422_UNORM = 140,
133c28c82e9SRob Clark 	FMT6_R8G8R8B8_422_UNORM = 141,
134c28c82e9SRob Clark 	FMT6_R8_G8B8_2PLANE_420_UNORM = 142,
13557cfe41cSRob Clark 	FMT6_NV21 = 143,
136c28c82e9SRob Clark 	FMT6_R8_G8_B8_3PLANE_420_UNORM = 144,
137c28c82e9SRob Clark 	FMT6_Z24_UNORM_S8_UINT_AS_R8G8B8A8 = 145,
13857cfe41cSRob Clark 	FMT6_NV12_Y = 148,
13957cfe41cSRob Clark 	FMT6_NV12_UV = 149,
14057cfe41cSRob Clark 	FMT6_NV12_VU = 150,
14157cfe41cSRob Clark 	FMT6_NV12_4R = 151,
14257cfe41cSRob Clark 	FMT6_NV12_4R_Y = 152,
14357cfe41cSRob Clark 	FMT6_NV12_4R_UV = 153,
14457cfe41cSRob Clark 	FMT6_P010 = 154,
14557cfe41cSRob Clark 	FMT6_P010_Y = 155,
14657cfe41cSRob Clark 	FMT6_P010_UV = 156,
14757cfe41cSRob Clark 	FMT6_TP10 = 157,
14857cfe41cSRob Clark 	FMT6_TP10_Y = 158,
14957cfe41cSRob Clark 	FMT6_TP10_UV = 159,
150c28c82e9SRob Clark 	FMT6_Z24_UNORM_S8_UINT = 160,
151c28c82e9SRob Clark 	FMT6_ETC2_RG11_UNORM = 171,
152c28c82e9SRob Clark 	FMT6_ETC2_RG11_SNORM = 172,
153c28c82e9SRob Clark 	FMT6_ETC2_R11_UNORM = 173,
154c28c82e9SRob Clark 	FMT6_ETC2_R11_SNORM = 174,
155c28c82e9SRob Clark 	FMT6_ETC1 = 175,
156c28c82e9SRob Clark 	FMT6_ETC2_RGB8 = 176,
157c28c82e9SRob Clark 	FMT6_ETC2_RGBA8 = 177,
158c28c82e9SRob Clark 	FMT6_ETC2_RGB8A1 = 178,
159c28c82e9SRob Clark 	FMT6_DXT1 = 179,
160c28c82e9SRob Clark 	FMT6_DXT3 = 180,
161c28c82e9SRob Clark 	FMT6_DXT5 = 181,
162c28c82e9SRob Clark 	FMT6_RGTC1_UNORM = 183,
163c28c82e9SRob Clark 	FMT6_RGTC1_SNORM = 184,
164c28c82e9SRob Clark 	FMT6_RGTC2_UNORM = 187,
165c28c82e9SRob Clark 	FMT6_RGTC2_SNORM = 188,
166c28c82e9SRob Clark 	FMT6_BPTC_UFLOAT = 190,
167c28c82e9SRob Clark 	FMT6_BPTC_FLOAT = 191,
168c28c82e9SRob Clark 	FMT6_BPTC = 192,
169c28c82e9SRob Clark 	FMT6_ASTC_4x4 = 193,
170c28c82e9SRob Clark 	FMT6_ASTC_5x4 = 194,
171c28c82e9SRob Clark 	FMT6_ASTC_5x5 = 195,
172c28c82e9SRob Clark 	FMT6_ASTC_6x5 = 196,
173c28c82e9SRob Clark 	FMT6_ASTC_6x6 = 197,
174c28c82e9SRob Clark 	FMT6_ASTC_8x5 = 198,
175c28c82e9SRob Clark 	FMT6_ASTC_8x6 = 199,
176c28c82e9SRob Clark 	FMT6_ASTC_8x8 = 200,
177c28c82e9SRob Clark 	FMT6_ASTC_10x5 = 201,
178c28c82e9SRob Clark 	FMT6_ASTC_10x6 = 202,
179c28c82e9SRob Clark 	FMT6_ASTC_10x8 = 203,
180c28c82e9SRob Clark 	FMT6_ASTC_10x10 = 204,
181c28c82e9SRob Clark 	FMT6_ASTC_12x10 = 205,
182c28c82e9SRob Clark 	FMT6_ASTC_12x12 = 206,
183cc4c26d4SRob Clark 	FMT6_Z24_UINT_S8_UINT = 234,
184c28c82e9SRob Clark 	FMT6_NONE = 255,
1852d756322SRob Clark };
1862d756322SRob Clark 
187c28c82e9SRob Clark enum a6xx_polygon_mode {
188c28c82e9SRob Clark 	POLYMODE6_POINTS = 1,
189c28c82e9SRob Clark 	POLYMODE6_LINES = 2,
190c28c82e9SRob Clark 	POLYMODE6_TRIANGLES = 3,
1912d756322SRob Clark };
1922d756322SRob Clark 
1932d756322SRob Clark enum a6xx_depth_format {
1942d756322SRob Clark 	DEPTH6_NONE = 0,
1952d756322SRob Clark 	DEPTH6_16 = 1,
1962d756322SRob Clark 	DEPTH6_24_8 = 2,
1972d756322SRob Clark 	DEPTH6_32 = 4,
1982d756322SRob Clark };
1992d756322SRob Clark 
200a69c5ed2SRob Clark enum a6xx_shader_id {
201a69c5ed2SRob Clark 	A6XX_TP0_TMO_DATA = 9,
202a69c5ed2SRob Clark 	A6XX_TP0_SMO_DATA = 10,
203a69c5ed2SRob Clark 	A6XX_TP0_MIPMAP_BASE_DATA = 11,
204a69c5ed2SRob Clark 	A6XX_TP1_TMO_DATA = 25,
205a69c5ed2SRob Clark 	A6XX_TP1_SMO_DATA = 26,
206a69c5ed2SRob Clark 	A6XX_TP1_MIPMAP_BASE_DATA = 27,
207a69c5ed2SRob Clark 	A6XX_SP_INST_DATA = 41,
208a69c5ed2SRob Clark 	A6XX_SP_LB_0_DATA = 42,
209a69c5ed2SRob Clark 	A6XX_SP_LB_1_DATA = 43,
210a69c5ed2SRob Clark 	A6XX_SP_LB_2_DATA = 44,
211a69c5ed2SRob Clark 	A6XX_SP_LB_3_DATA = 45,
212a69c5ed2SRob Clark 	A6XX_SP_LB_4_DATA = 46,
213a69c5ed2SRob Clark 	A6XX_SP_LB_5_DATA = 47,
214a69c5ed2SRob Clark 	A6XX_SP_CB_BINDLESS_DATA = 48,
215a69c5ed2SRob Clark 	A6XX_SP_CB_LEGACY_DATA = 49,
216a69c5ed2SRob Clark 	A6XX_SP_UAV_DATA = 50,
217a69c5ed2SRob Clark 	A6XX_SP_INST_TAG = 51,
218a69c5ed2SRob Clark 	A6XX_SP_CB_BINDLESS_TAG = 52,
219a69c5ed2SRob Clark 	A6XX_SP_TMO_UMO_TAG = 53,
220a69c5ed2SRob Clark 	A6XX_SP_SMO_TAG = 54,
221a69c5ed2SRob Clark 	A6XX_SP_STATE_DATA = 55,
222a69c5ed2SRob Clark 	A6XX_HLSQ_CHUNK_CVS_RAM = 73,
223a69c5ed2SRob Clark 	A6XX_HLSQ_CHUNK_CPS_RAM = 74,
224a69c5ed2SRob Clark 	A6XX_HLSQ_CHUNK_CVS_RAM_TAG = 75,
225a69c5ed2SRob Clark 	A6XX_HLSQ_CHUNK_CPS_RAM_TAG = 76,
226a69c5ed2SRob Clark 	A6XX_HLSQ_ICB_CVS_CB_BASE_TAG = 77,
227a69c5ed2SRob Clark 	A6XX_HLSQ_ICB_CPS_CB_BASE_TAG = 78,
228a69c5ed2SRob Clark 	A6XX_HLSQ_CVS_MISC_RAM = 80,
229a69c5ed2SRob Clark 	A6XX_HLSQ_CPS_MISC_RAM = 81,
230a69c5ed2SRob Clark 	A6XX_HLSQ_INST_RAM = 82,
231a69c5ed2SRob Clark 	A6XX_HLSQ_GFX_CVS_CONST_RAM = 83,
232a69c5ed2SRob Clark 	A6XX_HLSQ_GFX_CPS_CONST_RAM = 84,
233a69c5ed2SRob Clark 	A6XX_HLSQ_CVS_MISC_RAM_TAG = 85,
234a69c5ed2SRob Clark 	A6XX_HLSQ_CPS_MISC_RAM_TAG = 86,
235a69c5ed2SRob Clark 	A6XX_HLSQ_INST_RAM_TAG = 87,
236a69c5ed2SRob Clark 	A6XX_HLSQ_GFX_CVS_CONST_RAM_TAG = 88,
237a69c5ed2SRob Clark 	A6XX_HLSQ_GFX_CPS_CONST_RAM_TAG = 89,
238a69c5ed2SRob Clark 	A6XX_HLSQ_PWR_REST_RAM = 90,
239a69c5ed2SRob Clark 	A6XX_HLSQ_PWR_REST_TAG = 91,
240a69c5ed2SRob Clark 	A6XX_HLSQ_DATAPATH_META = 96,
241a69c5ed2SRob Clark 	A6XX_HLSQ_FRONTEND_META = 97,
242a69c5ed2SRob Clark 	A6XX_HLSQ_INDIRECT_META = 98,
243a69c5ed2SRob Clark 	A6XX_HLSQ_BACKEND_META = 99,
2441e05bba5SAkhil P Oommen 	A6XX_SP_LB_6_DATA = 112,
2451e05bba5SAkhil P Oommen 	A6XX_SP_LB_7_DATA = 113,
2461e05bba5SAkhil P Oommen 	A6XX_HLSQ_INST_RAM_1 = 115,
247a69c5ed2SRob Clark };
248a69c5ed2SRob Clark 
249a69c5ed2SRob Clark enum a6xx_debugbus_id {
250a69c5ed2SRob Clark 	A6XX_DBGBUS_CP = 1,
251a69c5ed2SRob Clark 	A6XX_DBGBUS_RBBM = 2,
252a69c5ed2SRob Clark 	A6XX_DBGBUS_VBIF = 3,
253a69c5ed2SRob Clark 	A6XX_DBGBUS_HLSQ = 4,
254a69c5ed2SRob Clark 	A6XX_DBGBUS_UCHE = 5,
255a69c5ed2SRob Clark 	A6XX_DBGBUS_DPM = 6,
256a69c5ed2SRob Clark 	A6XX_DBGBUS_TESS = 7,
257a69c5ed2SRob Clark 	A6XX_DBGBUS_PC = 8,
258a69c5ed2SRob Clark 	A6XX_DBGBUS_VFDP = 9,
259a69c5ed2SRob Clark 	A6XX_DBGBUS_VPC = 10,
260a69c5ed2SRob Clark 	A6XX_DBGBUS_TSE = 11,
261a69c5ed2SRob Clark 	A6XX_DBGBUS_RAS = 12,
262a69c5ed2SRob Clark 	A6XX_DBGBUS_VSC = 13,
263a69c5ed2SRob Clark 	A6XX_DBGBUS_COM = 14,
264a69c5ed2SRob Clark 	A6XX_DBGBUS_LRZ = 16,
265a69c5ed2SRob Clark 	A6XX_DBGBUS_A2D = 17,
266a69c5ed2SRob Clark 	A6XX_DBGBUS_CCUFCHE = 18,
267a69c5ed2SRob Clark 	A6XX_DBGBUS_GMU_CX = 19,
268a69c5ed2SRob Clark 	A6XX_DBGBUS_RBP = 20,
269a69c5ed2SRob Clark 	A6XX_DBGBUS_DCS = 21,
270a69c5ed2SRob Clark 	A6XX_DBGBUS_DBGC = 22,
271a69c5ed2SRob Clark 	A6XX_DBGBUS_CX = 23,
272a69c5ed2SRob Clark 	A6XX_DBGBUS_GMU_GX = 24,
273a69c5ed2SRob Clark 	A6XX_DBGBUS_TPFCHE = 25,
274a69c5ed2SRob Clark 	A6XX_DBGBUS_GBIF_GX = 26,
275a69c5ed2SRob Clark 	A6XX_DBGBUS_GPC = 29,
276a69c5ed2SRob Clark 	A6XX_DBGBUS_LARC = 30,
277a69c5ed2SRob Clark 	A6XX_DBGBUS_HLSQ_SPTP = 31,
278a69c5ed2SRob Clark 	A6XX_DBGBUS_RB_0 = 32,
279a69c5ed2SRob Clark 	A6XX_DBGBUS_RB_1 = 33,
2801e05bba5SAkhil P Oommen 	A6XX_DBGBUS_RB_2 = 34,
281a69c5ed2SRob Clark 	A6XX_DBGBUS_UCHE_WRAPPER = 36,
282a69c5ed2SRob Clark 	A6XX_DBGBUS_CCU_0 = 40,
283a69c5ed2SRob Clark 	A6XX_DBGBUS_CCU_1 = 41,
2841e05bba5SAkhil P Oommen 	A6XX_DBGBUS_CCU_2 = 42,
285a69c5ed2SRob Clark 	A6XX_DBGBUS_VFD_0 = 56,
286a69c5ed2SRob Clark 	A6XX_DBGBUS_VFD_1 = 57,
287a69c5ed2SRob Clark 	A6XX_DBGBUS_VFD_2 = 58,
288a69c5ed2SRob Clark 	A6XX_DBGBUS_VFD_3 = 59,
2891e05bba5SAkhil P Oommen 	A6XX_DBGBUS_VFD_4 = 60,
2901e05bba5SAkhil P Oommen 	A6XX_DBGBUS_VFD_5 = 61,
291a69c5ed2SRob Clark 	A6XX_DBGBUS_SP_0 = 64,
292a69c5ed2SRob Clark 	A6XX_DBGBUS_SP_1 = 65,
2931e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SP_2 = 66,
294a69c5ed2SRob Clark 	A6XX_DBGBUS_TPL1_0 = 72,
295a69c5ed2SRob Clark 	A6XX_DBGBUS_TPL1_1 = 73,
296a69c5ed2SRob Clark 	A6XX_DBGBUS_TPL1_2 = 74,
297a69c5ed2SRob Clark 	A6XX_DBGBUS_TPL1_3 = 75,
2981e05bba5SAkhil P Oommen 	A6XX_DBGBUS_TPL1_4 = 76,
2991e05bba5SAkhil P Oommen 	A6XX_DBGBUS_TPL1_5 = 77,
3001e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_0 = 88,
3011e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_1 = 89,
3021e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_2 = 90,
3031e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_3 = 91,
3041e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_4 = 92,
3051e05bba5SAkhil P Oommen 	A6XX_DBGBUS_SPTP_5 = 93,
306a69c5ed2SRob Clark };
307a69c5ed2SRob Clark 
3082d756322SRob Clark enum a6xx_cp_perfcounter_select {
3092d756322SRob Clark 	PERF_CP_ALWAYS_COUNT = 0,
310a69c5ed2SRob Clark 	PERF_CP_BUSY_GFX_CORE_IDLE = 1,
311a69c5ed2SRob Clark 	PERF_CP_BUSY_CYCLES = 2,
312a69c5ed2SRob Clark 	PERF_CP_NUM_PREEMPTIONS = 3,
313a69c5ed2SRob Clark 	PERF_CP_PREEMPTION_REACTION_DELAY = 4,
314a69c5ed2SRob Clark 	PERF_CP_PREEMPTION_SWITCH_OUT_TIME = 5,
315a69c5ed2SRob Clark 	PERF_CP_PREEMPTION_SWITCH_IN_TIME = 6,
316a69c5ed2SRob Clark 	PERF_CP_DEAD_DRAWS_IN_BIN_RENDER = 7,
317a69c5ed2SRob Clark 	PERF_CP_PREDICATED_DRAWS_KILLED = 8,
318a69c5ed2SRob Clark 	PERF_CP_MODE_SWITCH = 9,
319a69c5ed2SRob Clark 	PERF_CP_ZPASS_DONE = 10,
320a69c5ed2SRob Clark 	PERF_CP_CONTEXT_DONE = 11,
321a69c5ed2SRob Clark 	PERF_CP_CACHE_FLUSH = 12,
322a69c5ed2SRob Clark 	PERF_CP_LONG_PREEMPTIONS = 13,
323a69c5ed2SRob Clark 	PERF_CP_SQE_I_CACHE_STARVE = 14,
324a69c5ed2SRob Clark 	PERF_CP_SQE_IDLE = 15,
325a69c5ed2SRob Clark 	PERF_CP_SQE_PM4_STARVE_RB_IB = 16,
326a69c5ed2SRob Clark 	PERF_CP_SQE_PM4_STARVE_SDS = 17,
327a69c5ed2SRob Clark 	PERF_CP_SQE_MRB_STARVE = 18,
328a69c5ed2SRob Clark 	PERF_CP_SQE_RRB_STARVE = 19,
329a69c5ed2SRob Clark 	PERF_CP_SQE_VSD_STARVE = 20,
330a69c5ed2SRob Clark 	PERF_CP_VSD_DECODE_STARVE = 21,
331a69c5ed2SRob Clark 	PERF_CP_SQE_PIPE_OUT_STALL = 22,
332a69c5ed2SRob Clark 	PERF_CP_SQE_SYNC_STALL = 23,
333a69c5ed2SRob Clark 	PERF_CP_SQE_PM4_WFI_STALL = 24,
334a69c5ed2SRob Clark 	PERF_CP_SQE_SYS_WFI_STALL = 25,
335a69c5ed2SRob Clark 	PERF_CP_SQE_T4_EXEC = 26,
336a69c5ed2SRob Clark 	PERF_CP_SQE_LOAD_STATE_EXEC = 27,
337a69c5ed2SRob Clark 	PERF_CP_SQE_SAVE_SDS_STATE = 28,
338a69c5ed2SRob Clark 	PERF_CP_SQE_DRAW_EXEC = 29,
339a69c5ed2SRob Clark 	PERF_CP_SQE_CTXT_REG_BUNCH_EXEC = 30,
340a69c5ed2SRob Clark 	PERF_CP_SQE_EXEC_PROFILED = 31,
341a69c5ed2SRob Clark 	PERF_CP_MEMORY_POOL_EMPTY = 32,
342a69c5ed2SRob Clark 	PERF_CP_MEMORY_POOL_SYNC_STALL = 33,
343a69c5ed2SRob Clark 	PERF_CP_MEMORY_POOL_ABOVE_THRESH = 34,
344a69c5ed2SRob Clark 	PERF_CP_AHB_WR_STALL_PRE_DRAWS = 35,
345a69c5ed2SRob Clark 	PERF_CP_AHB_STALL_SQE_GMU = 36,
346a69c5ed2SRob Clark 	PERF_CP_AHB_STALL_SQE_WR_OTHER = 37,
347a69c5ed2SRob Clark 	PERF_CP_AHB_STALL_SQE_RD_OTHER = 38,
348a69c5ed2SRob Clark 	PERF_CP_CLUSTER0_EMPTY = 39,
349a69c5ed2SRob Clark 	PERF_CP_CLUSTER1_EMPTY = 40,
350a69c5ed2SRob Clark 	PERF_CP_CLUSTER2_EMPTY = 41,
351a69c5ed2SRob Clark 	PERF_CP_CLUSTER3_EMPTY = 42,
352a69c5ed2SRob Clark 	PERF_CP_CLUSTER4_EMPTY = 43,
353a69c5ed2SRob Clark 	PERF_CP_CLUSTER5_EMPTY = 44,
354a69c5ed2SRob Clark 	PERF_CP_PM4_DATA = 45,
355a69c5ed2SRob Clark 	PERF_CP_PM4_HEADERS = 46,
356a69c5ed2SRob Clark 	PERF_CP_VBIF_READ_BEATS = 47,
357a69c5ed2SRob Clark 	PERF_CP_VBIF_WRITE_BEATS = 48,
358a69c5ed2SRob Clark 	PERF_CP_SQE_INSTR_COUNTER = 49,
359a69c5ed2SRob Clark };
360a69c5ed2SRob Clark 
361a69c5ed2SRob Clark enum a6xx_rbbm_perfcounter_select {
362a69c5ed2SRob Clark 	PERF_RBBM_ALWAYS_COUNT = 0,
363a69c5ed2SRob Clark 	PERF_RBBM_ALWAYS_ON = 1,
364a69c5ed2SRob Clark 	PERF_RBBM_TSE_BUSY = 2,
365a69c5ed2SRob Clark 	PERF_RBBM_RAS_BUSY = 3,
366a69c5ed2SRob Clark 	PERF_RBBM_PC_DCALL_BUSY = 4,
367a69c5ed2SRob Clark 	PERF_RBBM_PC_VSD_BUSY = 5,
368a69c5ed2SRob Clark 	PERF_RBBM_STATUS_MASKED = 6,
369a69c5ed2SRob Clark 	PERF_RBBM_COM_BUSY = 7,
370a69c5ed2SRob Clark 	PERF_RBBM_DCOM_BUSY = 8,
371a69c5ed2SRob Clark 	PERF_RBBM_VBIF_BUSY = 9,
372a69c5ed2SRob Clark 	PERF_RBBM_VSC_BUSY = 10,
373a69c5ed2SRob Clark 	PERF_RBBM_TESS_BUSY = 11,
374a69c5ed2SRob Clark 	PERF_RBBM_UCHE_BUSY = 12,
375a69c5ed2SRob Clark 	PERF_RBBM_HLSQ_BUSY = 13,
376a69c5ed2SRob Clark };
377a69c5ed2SRob Clark 
378a69c5ed2SRob Clark enum a6xx_pc_perfcounter_select {
379a69c5ed2SRob Clark 	PERF_PC_BUSY_CYCLES = 0,
380a69c5ed2SRob Clark 	PERF_PC_WORKING_CYCLES = 1,
381a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_VFD = 2,
382a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_TSE = 3,
383a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_VPC = 4,
384a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_UCHE = 5,
385a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_TESS = 6,
386a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_TSE_ONLY = 7,
387a69c5ed2SRob Clark 	PERF_PC_STALL_CYCLES_VPC_ONLY = 8,
388a69c5ed2SRob Clark 	PERF_PC_PASS1_TF_STALL_CYCLES = 9,
389a69c5ed2SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_INDEX = 10,
390a69c5ed2SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_TESS_FACTOR = 11,
391a69c5ed2SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_VIZ_STREAM = 12,
392a69c5ed2SRob Clark 	PERF_PC_STARVE_CYCLES_FOR_POSITION = 13,
393a69c5ed2SRob Clark 	PERF_PC_STARVE_CYCLES_DI = 14,
394a69c5ed2SRob Clark 	PERF_PC_VIS_STREAMS_LOADED = 15,
395a69c5ed2SRob Clark 	PERF_PC_INSTANCES = 16,
396a69c5ed2SRob Clark 	PERF_PC_VPC_PRIMITIVES = 17,
397a69c5ed2SRob Clark 	PERF_PC_DEAD_PRIM = 18,
398a69c5ed2SRob Clark 	PERF_PC_LIVE_PRIM = 19,
399a69c5ed2SRob Clark 	PERF_PC_VERTEX_HITS = 20,
400a69c5ed2SRob Clark 	PERF_PC_IA_VERTICES = 21,
401a69c5ed2SRob Clark 	PERF_PC_IA_PRIMITIVES = 22,
402a69c5ed2SRob Clark 	PERF_PC_GS_PRIMITIVES = 23,
403a69c5ed2SRob Clark 	PERF_PC_HS_INVOCATIONS = 24,
404a69c5ed2SRob Clark 	PERF_PC_DS_INVOCATIONS = 25,
405a69c5ed2SRob Clark 	PERF_PC_VS_INVOCATIONS = 26,
406a69c5ed2SRob Clark 	PERF_PC_GS_INVOCATIONS = 27,
407a69c5ed2SRob Clark 	PERF_PC_DS_PRIMITIVES = 28,
408a69c5ed2SRob Clark 	PERF_PC_VPC_POS_DATA_TRANSACTION = 29,
409a69c5ed2SRob Clark 	PERF_PC_3D_DRAWCALLS = 30,
410a69c5ed2SRob Clark 	PERF_PC_2D_DRAWCALLS = 31,
411a69c5ed2SRob Clark 	PERF_PC_NON_DRAWCALL_GLOBAL_EVENTS = 32,
412a69c5ed2SRob Clark 	PERF_TESS_BUSY_CYCLES = 33,
413a69c5ed2SRob Clark 	PERF_TESS_WORKING_CYCLES = 34,
414a69c5ed2SRob Clark 	PERF_TESS_STALL_CYCLES_PC = 35,
415a69c5ed2SRob Clark 	PERF_TESS_STARVE_CYCLES_PC = 36,
416a69c5ed2SRob Clark 	PERF_PC_TSE_TRANSACTION = 37,
417a69c5ed2SRob Clark 	PERF_PC_TSE_VERTEX = 38,
418a69c5ed2SRob Clark 	PERF_PC_TESS_PC_UV_TRANS = 39,
419a69c5ed2SRob Clark 	PERF_PC_TESS_PC_UV_PATCHES = 40,
420a69c5ed2SRob Clark 	PERF_PC_TESS_FACTOR_TRANS = 41,
421a69c5ed2SRob Clark };
422a69c5ed2SRob Clark 
423a69c5ed2SRob Clark enum a6xx_vfd_perfcounter_select {
424a69c5ed2SRob Clark 	PERF_VFD_BUSY_CYCLES = 0,
425a69c5ed2SRob Clark 	PERF_VFD_STALL_CYCLES_UCHE = 1,
426a69c5ed2SRob Clark 	PERF_VFD_STALL_CYCLES_VPC_ALLOC = 2,
427a69c5ed2SRob Clark 	PERF_VFD_STALL_CYCLES_SP_INFO = 3,
428a69c5ed2SRob Clark 	PERF_VFD_STALL_CYCLES_SP_ATTR = 4,
429a69c5ed2SRob Clark 	PERF_VFD_STARVE_CYCLES_UCHE = 5,
430a69c5ed2SRob Clark 	PERF_VFD_RBUFFER_FULL = 6,
431a69c5ed2SRob Clark 	PERF_VFD_ATTR_INFO_FIFO_FULL = 7,
432a69c5ed2SRob Clark 	PERF_VFD_DECODED_ATTRIBUTE_BYTES = 8,
433a69c5ed2SRob Clark 	PERF_VFD_NUM_ATTRIBUTES = 9,
434a69c5ed2SRob Clark 	PERF_VFD_UPPER_SHADER_FIBERS = 10,
435a69c5ed2SRob Clark 	PERF_VFD_LOWER_SHADER_FIBERS = 11,
436a69c5ed2SRob Clark 	PERF_VFD_MODE_0_FIBERS = 12,
437a69c5ed2SRob Clark 	PERF_VFD_MODE_1_FIBERS = 13,
438a69c5ed2SRob Clark 	PERF_VFD_MODE_2_FIBERS = 14,
439a69c5ed2SRob Clark 	PERF_VFD_MODE_3_FIBERS = 15,
440a69c5ed2SRob Clark 	PERF_VFD_MODE_4_FIBERS = 16,
441a69c5ed2SRob Clark 	PERF_VFD_TOTAL_VERTICES = 17,
442a69c5ed2SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD = 18,
443a69c5ed2SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD_INDEX = 19,
444a69c5ed2SRob Clark 	PERF_VFDP_STALL_CYCLES_VFD_PROG = 20,
445a69c5ed2SRob Clark 	PERF_VFDP_STARVE_CYCLES_PC = 21,
446a69c5ed2SRob Clark 	PERF_VFDP_VS_STAGE_WAVES = 22,
447a69c5ed2SRob Clark };
448a69c5ed2SRob Clark 
449ccdf7e28SRob Clark enum a6xx_hlsq_perfcounter_select {
450a69c5ed2SRob Clark 	PERF_HLSQ_BUSY_CYCLES = 0,
451a69c5ed2SRob Clark 	PERF_HLSQ_STALL_CYCLES_UCHE = 1,
452a69c5ed2SRob Clark 	PERF_HLSQ_STALL_CYCLES_SP_STATE = 2,
453a69c5ed2SRob Clark 	PERF_HLSQ_STALL_CYCLES_SP_FS_STAGE = 3,
454a69c5ed2SRob Clark 	PERF_HLSQ_UCHE_LATENCY_CYCLES = 4,
455a69c5ed2SRob Clark 	PERF_HLSQ_UCHE_LATENCY_COUNT = 5,
456a69c5ed2SRob Clark 	PERF_HLSQ_FS_STAGE_1X_WAVES = 6,
457a69c5ed2SRob Clark 	PERF_HLSQ_FS_STAGE_2X_WAVES = 7,
458a69c5ed2SRob Clark 	PERF_HLSQ_QUADS = 8,
459a69c5ed2SRob Clark 	PERF_HLSQ_CS_INVOCATIONS = 9,
460a69c5ed2SRob Clark 	PERF_HLSQ_COMPUTE_DRAWCALLS = 10,
461a69c5ed2SRob Clark 	PERF_HLSQ_FS_DATA_WAIT_PROGRAMMING = 11,
462a69c5ed2SRob Clark 	PERF_HLSQ_DUAL_FS_PROG_ACTIVE = 12,
463a69c5ed2SRob Clark 	PERF_HLSQ_DUAL_VS_PROG_ACTIVE = 13,
464a69c5ed2SRob Clark 	PERF_HLSQ_FS_BATCH_COUNT_ZERO = 14,
465a69c5ed2SRob Clark 	PERF_HLSQ_VS_BATCH_COUNT_ZERO = 15,
466a69c5ed2SRob Clark 	PERF_HLSQ_WAVE_PENDING_NO_QUAD = 16,
467a69c5ed2SRob Clark 	PERF_HLSQ_WAVE_PENDING_NO_PRIM_BASE = 17,
468a69c5ed2SRob Clark 	PERF_HLSQ_STALL_CYCLES_VPC = 18,
469a69c5ed2SRob Clark 	PERF_HLSQ_PIXELS = 19,
470a69c5ed2SRob Clark 	PERF_HLSQ_DRAW_MODE_SWITCH_VSFS_SYNC = 20,
471a69c5ed2SRob Clark };
472a69c5ed2SRob Clark 
473a69c5ed2SRob Clark enum a6xx_vpc_perfcounter_select {
474a69c5ed2SRob Clark 	PERF_VPC_BUSY_CYCLES = 0,
475a69c5ed2SRob Clark 	PERF_VPC_WORKING_CYCLES = 1,
476a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_UCHE = 2,
477a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_VFD_WACK = 3,
478a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_HLSQ_PRIM_ALLOC = 4,
479a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_PC = 5,
480a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_SP_LM = 6,
481a69c5ed2SRob Clark 	PERF_VPC_STARVE_CYCLES_SP = 7,
482a69c5ed2SRob Clark 	PERF_VPC_STARVE_CYCLES_LRZ = 8,
483a69c5ed2SRob Clark 	PERF_VPC_PC_PRIMITIVES = 9,
484a69c5ed2SRob Clark 	PERF_VPC_SP_COMPONENTS = 10,
485a69c5ed2SRob Clark 	PERF_VPC_STALL_CYCLES_VPCRAM_POS = 11,
486a69c5ed2SRob Clark 	PERF_VPC_LRZ_ASSIGN_PRIMITIVES = 12,
487a69c5ed2SRob Clark 	PERF_VPC_RB_VISIBLE_PRIMITIVES = 13,
488a69c5ed2SRob Clark 	PERF_VPC_LM_TRANSACTION = 14,
489a69c5ed2SRob Clark 	PERF_VPC_STREAMOUT_TRANSACTION = 15,
490a69c5ed2SRob Clark 	PERF_VPC_VS_BUSY_CYCLES = 16,
491a69c5ed2SRob Clark 	PERF_VPC_PS_BUSY_CYCLES = 17,
492a69c5ed2SRob Clark 	PERF_VPC_VS_WORKING_CYCLES = 18,
493a69c5ed2SRob Clark 	PERF_VPC_PS_WORKING_CYCLES = 19,
494a69c5ed2SRob Clark 	PERF_VPC_STARVE_CYCLES_RB = 20,
495a69c5ed2SRob Clark 	PERF_VPC_NUM_VPCRAM_READ_POS = 21,
496a69c5ed2SRob Clark 	PERF_VPC_WIT_FULL_CYCLES = 22,
497a69c5ed2SRob Clark 	PERF_VPC_VPCRAM_FULL_CYCLES = 23,
498a69c5ed2SRob Clark 	PERF_VPC_LM_FULL_WAIT_FOR_INTP_END = 24,
499a69c5ed2SRob Clark 	PERF_VPC_NUM_VPCRAM_WRITE = 25,
500a69c5ed2SRob Clark 	PERF_VPC_NUM_VPCRAM_READ_SO = 26,
501a69c5ed2SRob Clark 	PERF_VPC_NUM_ATTR_REQ_LM = 27,
502a69c5ed2SRob Clark };
503a69c5ed2SRob Clark 
504a69c5ed2SRob Clark enum a6xx_tse_perfcounter_select {
505a69c5ed2SRob Clark 	PERF_TSE_BUSY_CYCLES = 0,
506a69c5ed2SRob Clark 	PERF_TSE_CLIPPING_CYCLES = 1,
507a69c5ed2SRob Clark 	PERF_TSE_STALL_CYCLES_RAS = 2,
508a69c5ed2SRob Clark 	PERF_TSE_STALL_CYCLES_LRZ_BARYPLANE = 3,
509a69c5ed2SRob Clark 	PERF_TSE_STALL_CYCLES_LRZ_ZPLANE = 4,
510a69c5ed2SRob Clark 	PERF_TSE_STARVE_CYCLES_PC = 5,
511a69c5ed2SRob Clark 	PERF_TSE_INPUT_PRIM = 6,
512a69c5ed2SRob Clark 	PERF_TSE_INPUT_NULL_PRIM = 7,
513a69c5ed2SRob Clark 	PERF_TSE_TRIVAL_REJ_PRIM = 8,
514a69c5ed2SRob Clark 	PERF_TSE_CLIPPED_PRIM = 9,
515a69c5ed2SRob Clark 	PERF_TSE_ZERO_AREA_PRIM = 10,
516a69c5ed2SRob Clark 	PERF_TSE_FACENESS_CULLED_PRIM = 11,
517a69c5ed2SRob Clark 	PERF_TSE_ZERO_PIXEL_PRIM = 12,
518a69c5ed2SRob Clark 	PERF_TSE_OUTPUT_NULL_PRIM = 13,
519a69c5ed2SRob Clark 	PERF_TSE_OUTPUT_VISIBLE_PRIM = 14,
520a69c5ed2SRob Clark 	PERF_TSE_CINVOCATION = 15,
521a69c5ed2SRob Clark 	PERF_TSE_CPRIMITIVES = 16,
522a69c5ed2SRob Clark 	PERF_TSE_2D_INPUT_PRIM = 17,
523a69c5ed2SRob Clark 	PERF_TSE_2D_ALIVE_CYCLES = 18,
524a69c5ed2SRob Clark 	PERF_TSE_CLIP_PLANES = 19,
525a69c5ed2SRob Clark };
526a69c5ed2SRob Clark 
527a69c5ed2SRob Clark enum a6xx_ras_perfcounter_select {
528a69c5ed2SRob Clark 	PERF_RAS_BUSY_CYCLES = 0,
529a69c5ed2SRob Clark 	PERF_RAS_SUPERTILE_ACTIVE_CYCLES = 1,
530a69c5ed2SRob Clark 	PERF_RAS_STALL_CYCLES_LRZ = 2,
531a69c5ed2SRob Clark 	PERF_RAS_STARVE_CYCLES_TSE = 3,
532a69c5ed2SRob Clark 	PERF_RAS_SUPER_TILES = 4,
533a69c5ed2SRob Clark 	PERF_RAS_8X4_TILES = 5,
534a69c5ed2SRob Clark 	PERF_RAS_MASKGEN_ACTIVE = 6,
535a69c5ed2SRob Clark 	PERF_RAS_FULLY_COVERED_SUPER_TILES = 7,
536a69c5ed2SRob Clark 	PERF_RAS_FULLY_COVERED_8X4_TILES = 8,
537a69c5ed2SRob Clark 	PERF_RAS_PRIM_KILLED_INVISILBE = 9,
538a69c5ed2SRob Clark 	PERF_RAS_SUPERTILE_GEN_ACTIVE_CYCLES = 10,
539a69c5ed2SRob Clark 	PERF_RAS_LRZ_INTF_WORKING_CYCLES = 11,
540a69c5ed2SRob Clark 	PERF_RAS_BLOCKS = 12,
541a69c5ed2SRob Clark };
542a69c5ed2SRob Clark 
543a69c5ed2SRob Clark enum a6xx_uche_perfcounter_select {
544a69c5ed2SRob Clark 	PERF_UCHE_BUSY_CYCLES = 0,
545a69c5ed2SRob Clark 	PERF_UCHE_STALL_CYCLES_ARBITER = 1,
546a69c5ed2SRob Clark 	PERF_UCHE_VBIF_LATENCY_CYCLES = 2,
547a69c5ed2SRob Clark 	PERF_UCHE_VBIF_LATENCY_SAMPLES = 3,
548a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_TP = 4,
549a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_VFD = 5,
550a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_HLSQ = 6,
551a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_LRZ = 7,
552a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_SP = 8,
553a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_TP = 9,
554a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_VFD = 10,
555a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_HLSQ = 11,
556a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_LRZ = 12,
557a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_SP = 13,
558a69c5ed2SRob Clark 	PERF_UCHE_WRITE_REQUESTS_LRZ = 14,
559a69c5ed2SRob Clark 	PERF_UCHE_WRITE_REQUESTS_SP = 15,
560a69c5ed2SRob Clark 	PERF_UCHE_WRITE_REQUESTS_VPC = 16,
561a69c5ed2SRob Clark 	PERF_UCHE_WRITE_REQUESTS_VSC = 17,
562a69c5ed2SRob Clark 	PERF_UCHE_EVICTS = 18,
563a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ0 = 19,
564a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ1 = 20,
565a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ2 = 21,
566a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ3 = 22,
567a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ4 = 23,
568a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ5 = 24,
569a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ6 = 25,
570a69c5ed2SRob Clark 	PERF_UCHE_BANK_REQ7 = 26,
571a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_CH0 = 27,
572a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_CH1 = 28,
573a69c5ed2SRob Clark 	PERF_UCHE_GMEM_READ_BEATS = 29,
574a69c5ed2SRob Clark 	PERF_UCHE_TPH_REF_FULL = 30,
575a69c5ed2SRob Clark 	PERF_UCHE_TPH_VICTIM_FULL = 31,
576a69c5ed2SRob Clark 	PERF_UCHE_TPH_EXT_FULL = 32,
577a69c5ed2SRob Clark 	PERF_UCHE_VBIF_STALL_WRITE_DATA = 33,
578a69c5ed2SRob Clark 	PERF_UCHE_DCMP_LATENCY_SAMPLES = 34,
579a69c5ed2SRob Clark 	PERF_UCHE_DCMP_LATENCY_CYCLES = 35,
580a69c5ed2SRob Clark 	PERF_UCHE_VBIF_READ_BEATS_PC = 36,
581a69c5ed2SRob Clark 	PERF_UCHE_READ_REQUESTS_PC = 37,
582a69c5ed2SRob Clark 	PERF_UCHE_RAM_READ_REQ = 38,
583a69c5ed2SRob Clark 	PERF_UCHE_RAM_WRITE_REQ = 39,
584a69c5ed2SRob Clark };
585a69c5ed2SRob Clark 
586a69c5ed2SRob Clark enum a6xx_tp_perfcounter_select {
587a69c5ed2SRob Clark 	PERF_TP_BUSY_CYCLES = 0,
588a69c5ed2SRob Clark 	PERF_TP_STALL_CYCLES_UCHE = 1,
589a69c5ed2SRob Clark 	PERF_TP_LATENCY_CYCLES = 2,
590a69c5ed2SRob Clark 	PERF_TP_LATENCY_TRANS = 3,
591a69c5ed2SRob Clark 	PERF_TP_FLAG_CACHE_REQUEST_SAMPLES = 4,
592a69c5ed2SRob Clark 	PERF_TP_FLAG_CACHE_REQUEST_LATENCY = 5,
593a69c5ed2SRob Clark 	PERF_TP_L1_CACHELINE_REQUESTS = 6,
594a69c5ed2SRob Clark 	PERF_TP_L1_CACHELINE_MISSES = 7,
595a69c5ed2SRob Clark 	PERF_TP_SP_TP_TRANS = 8,
596a69c5ed2SRob Clark 	PERF_TP_TP_SP_TRANS = 9,
597a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS = 10,
598a69c5ed2SRob Clark 	PERF_TP_FILTER_WORKLOAD_16BIT = 11,
599a69c5ed2SRob Clark 	PERF_TP_FILTER_WORKLOAD_32BIT = 12,
600a69c5ed2SRob Clark 	PERF_TP_QUADS_RECEIVED = 13,
601a69c5ed2SRob Clark 	PERF_TP_QUADS_OFFSET = 14,
602a69c5ed2SRob Clark 	PERF_TP_QUADS_SHADOW = 15,
603a69c5ed2SRob Clark 	PERF_TP_QUADS_ARRAY = 16,
604a69c5ed2SRob Clark 	PERF_TP_QUADS_GRADIENT = 17,
605a69c5ed2SRob Clark 	PERF_TP_QUADS_1D = 18,
606a69c5ed2SRob Clark 	PERF_TP_QUADS_2D = 19,
607a69c5ed2SRob Clark 	PERF_TP_QUADS_BUFFER = 20,
608a69c5ed2SRob Clark 	PERF_TP_QUADS_3D = 21,
609a69c5ed2SRob Clark 	PERF_TP_QUADS_CUBE = 22,
610a69c5ed2SRob Clark 	PERF_TP_DIVERGENT_QUADS_RECEIVED = 23,
611a69c5ed2SRob Clark 	PERF_TP_PRT_NON_RESIDENT_EVENTS = 24,
612a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS_POINT = 25,
613a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS_BILINEAR = 26,
614a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS_MIP = 27,
615a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS_ANISO = 28,
616a69c5ed2SRob Clark 	PERF_TP_OUTPUT_PIXELS_ZERO_LOD = 29,
617a69c5ed2SRob Clark 	PERF_TP_FLAG_CACHE_REQUESTS = 30,
618a69c5ed2SRob Clark 	PERF_TP_FLAG_CACHE_MISSES = 31,
619a69c5ed2SRob Clark 	PERF_TP_L1_5_L2_REQUESTS = 32,
620a69c5ed2SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS = 33,
621a69c5ed2SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS_POINT = 34,
622a69c5ed2SRob Clark 	PERF_TP_2D_OUTPUT_PIXELS_BILINEAR = 35,
623a69c5ed2SRob Clark 	PERF_TP_2D_FILTER_WORKLOAD_16BIT = 36,
624a69c5ed2SRob Clark 	PERF_TP_2D_FILTER_WORKLOAD_32BIT = 37,
625a69c5ed2SRob Clark 	PERF_TP_TPA2TPC_TRANS = 38,
626a69c5ed2SRob Clark 	PERF_TP_L1_MISSES_ASTC_1TILE = 39,
627a69c5ed2SRob Clark 	PERF_TP_L1_MISSES_ASTC_2TILE = 40,
628a69c5ed2SRob Clark 	PERF_TP_L1_MISSES_ASTC_4TILE = 41,
629a69c5ed2SRob Clark 	PERF_TP_L1_5_L2_COMPRESS_REQS = 42,
630a69c5ed2SRob Clark 	PERF_TP_L1_5_L2_COMPRESS_MISS = 43,
631a69c5ed2SRob Clark 	PERF_TP_L1_BANK_CONFLICT = 44,
632a69c5ed2SRob Clark 	PERF_TP_L1_5_MISS_LATENCY_CYCLES = 45,
633a69c5ed2SRob Clark 	PERF_TP_L1_5_MISS_LATENCY_TRANS = 46,
634a69c5ed2SRob Clark 	PERF_TP_QUADS_CONSTANT_MULTIPLIED = 47,
635a69c5ed2SRob Clark 	PERF_TP_FRONTEND_WORKING_CYCLES = 48,
636a69c5ed2SRob Clark 	PERF_TP_L1_TAG_WORKING_CYCLES = 49,
637a69c5ed2SRob Clark 	PERF_TP_L1_DATA_WRITE_WORKING_CYCLES = 50,
638a69c5ed2SRob Clark 	PERF_TP_PRE_L1_DECOM_WORKING_CYCLES = 51,
639a69c5ed2SRob Clark 	PERF_TP_BACKEND_WORKING_CYCLES = 52,
640a69c5ed2SRob Clark 	PERF_TP_FLAG_CACHE_WORKING_CYCLES = 53,
641a69c5ed2SRob Clark 	PERF_TP_L1_5_CACHE_WORKING_CYCLES = 54,
642a69c5ed2SRob Clark 	PERF_TP_STARVE_CYCLES_SP = 55,
643a69c5ed2SRob Clark 	PERF_TP_STARVE_CYCLES_UCHE = 56,
644a69c5ed2SRob Clark };
645a69c5ed2SRob Clark 
646a69c5ed2SRob Clark enum a6xx_sp_perfcounter_select {
647a69c5ed2SRob Clark 	PERF_SP_BUSY_CYCLES = 0,
648a69c5ed2SRob Clark 	PERF_SP_ALU_WORKING_CYCLES = 1,
649a69c5ed2SRob Clark 	PERF_SP_EFU_WORKING_CYCLES = 2,
650a69c5ed2SRob Clark 	PERF_SP_STALL_CYCLES_VPC = 3,
651a69c5ed2SRob Clark 	PERF_SP_STALL_CYCLES_TP = 4,
652a69c5ed2SRob Clark 	PERF_SP_STALL_CYCLES_UCHE = 5,
653a69c5ed2SRob Clark 	PERF_SP_STALL_CYCLES_RB = 6,
654a69c5ed2SRob Clark 	PERF_SP_NON_EXECUTION_CYCLES = 7,
655a69c5ed2SRob Clark 	PERF_SP_WAVE_CONTEXTS = 8,
656a69c5ed2SRob Clark 	PERF_SP_WAVE_CONTEXT_CYCLES = 9,
657a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_WAVE_CYCLES = 10,
658a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_WAVE_SAMPLES = 11,
659a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_WAVE_CYCLES = 12,
660a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_WAVE_SAMPLES = 13,
661a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_DURATION_CYCLES = 14,
662a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_DURATION_CYCLES = 15,
663a69c5ed2SRob Clark 	PERF_SP_WAVE_CTRL_CYCLES = 16,
664a69c5ed2SRob Clark 	PERF_SP_WAVE_LOAD_CYCLES = 17,
665a69c5ed2SRob Clark 	PERF_SP_WAVE_EMIT_CYCLES = 18,
666a69c5ed2SRob Clark 	PERF_SP_WAVE_NOP_CYCLES = 19,
667a69c5ed2SRob Clark 	PERF_SP_WAVE_WAIT_CYCLES = 20,
668a69c5ed2SRob Clark 	PERF_SP_WAVE_FETCH_CYCLES = 21,
669a69c5ed2SRob Clark 	PERF_SP_WAVE_IDLE_CYCLES = 22,
670a69c5ed2SRob Clark 	PERF_SP_WAVE_END_CYCLES = 23,
671a69c5ed2SRob Clark 	PERF_SP_WAVE_LONG_SYNC_CYCLES = 24,
672a69c5ed2SRob Clark 	PERF_SP_WAVE_SHORT_SYNC_CYCLES = 25,
673a69c5ed2SRob Clark 	PERF_SP_WAVE_JOIN_CYCLES = 26,
674a69c5ed2SRob Clark 	PERF_SP_LM_LOAD_INSTRUCTIONS = 27,
675a69c5ed2SRob Clark 	PERF_SP_LM_STORE_INSTRUCTIONS = 28,
676a69c5ed2SRob Clark 	PERF_SP_LM_ATOMICS = 29,
677a69c5ed2SRob Clark 	PERF_SP_GM_LOAD_INSTRUCTIONS = 30,
678a69c5ed2SRob Clark 	PERF_SP_GM_STORE_INSTRUCTIONS = 31,
679a69c5ed2SRob Clark 	PERF_SP_GM_ATOMICS = 32,
680a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_TEX_INSTRUCTIONS = 33,
681a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_EFU_INSTRUCTIONS = 34,
682a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_FULL_ALU_INSTRUCTIONS = 35,
683a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_HALF_ALU_INSTRUCTIONS = 36,
684a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_TEX_INSTRUCTIONS = 37,
685a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_CFLOW_INSTRUCTIONS = 38,
686a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_EFU_INSTRUCTIONS = 39,
687a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_FULL_ALU_INSTRUCTIONS = 40,
688a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_HALF_ALU_INSTRUCTIONS = 41,
689a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_BARY_INSTRUCTIONS = 42,
690a69c5ed2SRob Clark 	PERF_SP_VS_INSTRUCTIONS = 43,
691a69c5ed2SRob Clark 	PERF_SP_FS_INSTRUCTIONS = 44,
692a69c5ed2SRob Clark 	PERF_SP_ADDR_LOCK_COUNT = 45,
693a69c5ed2SRob Clark 	PERF_SP_UCHE_READ_TRANS = 46,
694a69c5ed2SRob Clark 	PERF_SP_UCHE_WRITE_TRANS = 47,
695a69c5ed2SRob Clark 	PERF_SP_EXPORT_VPC_TRANS = 48,
696a69c5ed2SRob Clark 	PERF_SP_EXPORT_RB_TRANS = 49,
697a69c5ed2SRob Clark 	PERF_SP_PIXELS_KILLED = 50,
698a69c5ed2SRob Clark 	PERF_SP_ICL1_REQUESTS = 51,
699a69c5ed2SRob Clark 	PERF_SP_ICL1_MISSES = 52,
700a69c5ed2SRob Clark 	PERF_SP_HS_INSTRUCTIONS = 53,
701a69c5ed2SRob Clark 	PERF_SP_DS_INSTRUCTIONS = 54,
702a69c5ed2SRob Clark 	PERF_SP_GS_INSTRUCTIONS = 55,
703a69c5ed2SRob Clark 	PERF_SP_CS_INSTRUCTIONS = 56,
704a69c5ed2SRob Clark 	PERF_SP_GPR_READ = 57,
705a69c5ed2SRob Clark 	PERF_SP_GPR_WRITE = 58,
706a69c5ed2SRob Clark 	PERF_SP_FS_STAGE_HALF_EFU_INSTRUCTIONS = 59,
707a69c5ed2SRob Clark 	PERF_SP_VS_STAGE_HALF_EFU_INSTRUCTIONS = 60,
708a69c5ed2SRob Clark 	PERF_SP_LM_BANK_CONFLICTS = 61,
709a69c5ed2SRob Clark 	PERF_SP_TEX_CONTROL_WORKING_CYCLES = 62,
710a69c5ed2SRob Clark 	PERF_SP_LOAD_CONTROL_WORKING_CYCLES = 63,
711a69c5ed2SRob Clark 	PERF_SP_FLOW_CONTROL_WORKING_CYCLES = 64,
712a69c5ed2SRob Clark 	PERF_SP_LM_WORKING_CYCLES = 65,
713a69c5ed2SRob Clark 	PERF_SP_DISPATCHER_WORKING_CYCLES = 66,
714a69c5ed2SRob Clark 	PERF_SP_SEQUENCER_WORKING_CYCLES = 67,
715a69c5ed2SRob Clark 	PERF_SP_LOW_EFFICIENCY_STARVED_BY_TP = 68,
716a69c5ed2SRob Clark 	PERF_SP_STARVE_CYCLES_HLSQ = 69,
717a69c5ed2SRob Clark 	PERF_SP_NON_EXECUTION_LS_CYCLES = 70,
718a69c5ed2SRob Clark 	PERF_SP_WORKING_EU = 71,
719a69c5ed2SRob Clark 	PERF_SP_ANY_EU_WORKING = 72,
720a69c5ed2SRob Clark 	PERF_SP_WORKING_EU_FS_STAGE = 73,
721a69c5ed2SRob Clark 	PERF_SP_ANY_EU_WORKING_FS_STAGE = 74,
722a69c5ed2SRob Clark 	PERF_SP_WORKING_EU_VS_STAGE = 75,
723a69c5ed2SRob Clark 	PERF_SP_ANY_EU_WORKING_VS_STAGE = 76,
724a69c5ed2SRob Clark 	PERF_SP_WORKING_EU_CS_STAGE = 77,
725a69c5ed2SRob Clark 	PERF_SP_ANY_EU_WORKING_CS_STAGE = 78,
726a69c5ed2SRob Clark 	PERF_SP_GPR_READ_PREFETCH = 79,
727a69c5ed2SRob Clark 	PERF_SP_GPR_READ_CONFLICT = 80,
728a69c5ed2SRob Clark 	PERF_SP_GPR_WRITE_CONFLICT = 81,
729a69c5ed2SRob Clark 	PERF_SP_GM_LOAD_LATENCY_CYCLES = 82,
730a69c5ed2SRob Clark 	PERF_SP_GM_LOAD_LATENCY_SAMPLES = 83,
731a69c5ed2SRob Clark 	PERF_SP_EXECUTABLE_WAVES = 84,
732a69c5ed2SRob Clark };
733a69c5ed2SRob Clark 
734a69c5ed2SRob Clark enum a6xx_rb_perfcounter_select {
735a69c5ed2SRob Clark 	PERF_RB_BUSY_CYCLES = 0,
736a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_HLSQ = 1,
737a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_FIFO0_FULL = 2,
738a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_FIFO1_FULL = 3,
739a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_FIFO2_FULL = 4,
740a69c5ed2SRob Clark 	PERF_RB_STARVE_CYCLES_SP = 5,
741a69c5ed2SRob Clark 	PERF_RB_STARVE_CYCLES_LRZ_TILE = 6,
742a69c5ed2SRob Clark 	PERF_RB_STARVE_CYCLES_CCU = 7,
743a69c5ed2SRob Clark 	PERF_RB_STARVE_CYCLES_Z_PLANE = 8,
744a69c5ed2SRob Clark 	PERF_RB_STARVE_CYCLES_BARY_PLANE = 9,
745a69c5ed2SRob Clark 	PERF_RB_Z_WORKLOAD = 10,
746a69c5ed2SRob Clark 	PERF_RB_HLSQ_ACTIVE = 11,
747a69c5ed2SRob Clark 	PERF_RB_Z_READ = 12,
748a69c5ed2SRob Clark 	PERF_RB_Z_WRITE = 13,
749a69c5ed2SRob Clark 	PERF_RB_C_READ = 14,
750a69c5ed2SRob Clark 	PERF_RB_C_WRITE = 15,
751a69c5ed2SRob Clark 	PERF_RB_TOTAL_PASS = 16,
752a69c5ed2SRob Clark 	PERF_RB_Z_PASS = 17,
753a69c5ed2SRob Clark 	PERF_RB_Z_FAIL = 18,
754a69c5ed2SRob Clark 	PERF_RB_S_FAIL = 19,
755a69c5ed2SRob Clark 	PERF_RB_BLENDED_FXP_COMPONENTS = 20,
756a69c5ed2SRob Clark 	PERF_RB_BLENDED_FP16_COMPONENTS = 21,
757a69c5ed2SRob Clark 	PERF_RB_PS_INVOCATIONS = 22,
758a69c5ed2SRob Clark 	PERF_RB_2D_ALIVE_CYCLES = 23,
759a69c5ed2SRob Clark 	PERF_RB_2D_STALL_CYCLES_A2D = 24,
760a69c5ed2SRob Clark 	PERF_RB_2D_STARVE_CYCLES_SRC = 25,
761a69c5ed2SRob Clark 	PERF_RB_2D_STARVE_CYCLES_SP = 26,
762a69c5ed2SRob Clark 	PERF_RB_2D_STARVE_CYCLES_DST = 27,
763a69c5ed2SRob Clark 	PERF_RB_2D_VALID_PIXELS = 28,
764a69c5ed2SRob Clark 	PERF_RB_3D_PIXELS = 29,
765a69c5ed2SRob Clark 	PERF_RB_BLENDER_WORKING_CYCLES = 30,
766a69c5ed2SRob Clark 	PERF_RB_ZPROC_WORKING_CYCLES = 31,
767a69c5ed2SRob Clark 	PERF_RB_CPROC_WORKING_CYCLES = 32,
768a69c5ed2SRob Clark 	PERF_RB_SAMPLER_WORKING_CYCLES = 33,
769a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_CCU_COLOR_READ = 34,
770a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_CCU_COLOR_WRITE = 35,
771a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_CCU_DEPTH_READ = 36,
772a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_CCU_DEPTH_WRITE = 37,
773a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_VPC = 38,
774a69c5ed2SRob Clark 	PERF_RB_2D_INPUT_TRANS = 39,
775a69c5ed2SRob Clark 	PERF_RB_2D_OUTPUT_RB_DST_TRANS = 40,
776a69c5ed2SRob Clark 	PERF_RB_2D_OUTPUT_RB_SRC_TRANS = 41,
777a69c5ed2SRob Clark 	PERF_RB_BLENDED_FP32_COMPONENTS = 42,
778a69c5ed2SRob Clark 	PERF_RB_COLOR_PIX_TILES = 43,
779a69c5ed2SRob Clark 	PERF_RB_STALL_CYCLES_CCU = 44,
780a69c5ed2SRob Clark 	PERF_RB_EARLY_Z_ARB3_GRANT = 45,
781a69c5ed2SRob Clark 	PERF_RB_LATE_Z_ARB3_GRANT = 46,
782a69c5ed2SRob Clark 	PERF_RB_EARLY_Z_SKIP_GRANT = 47,
783a69c5ed2SRob Clark };
784a69c5ed2SRob Clark 
785a69c5ed2SRob Clark enum a6xx_vsc_perfcounter_select {
786a69c5ed2SRob Clark 	PERF_VSC_BUSY_CYCLES = 0,
787a69c5ed2SRob Clark 	PERF_VSC_WORKING_CYCLES = 1,
788a69c5ed2SRob Clark 	PERF_VSC_STALL_CYCLES_UCHE = 2,
789a69c5ed2SRob Clark 	PERF_VSC_EOT_NUM = 3,
790a69c5ed2SRob Clark 	PERF_VSC_INPUT_TILES = 4,
791a69c5ed2SRob Clark };
792a69c5ed2SRob Clark 
793a69c5ed2SRob Clark enum a6xx_ccu_perfcounter_select {
794a69c5ed2SRob Clark 	PERF_CCU_BUSY_CYCLES = 0,
795a69c5ed2SRob Clark 	PERF_CCU_STALL_CYCLES_RB_DEPTH_RETURN = 1,
796a69c5ed2SRob Clark 	PERF_CCU_STALL_CYCLES_RB_COLOR_RETURN = 2,
797a69c5ed2SRob Clark 	PERF_CCU_STARVE_CYCLES_FLAG_RETURN = 3,
798a69c5ed2SRob Clark 	PERF_CCU_DEPTH_BLOCKS = 4,
799a69c5ed2SRob Clark 	PERF_CCU_COLOR_BLOCKS = 5,
800a69c5ed2SRob Clark 	PERF_CCU_DEPTH_BLOCK_HIT = 6,
801a69c5ed2SRob Clark 	PERF_CCU_COLOR_BLOCK_HIT = 7,
802a69c5ed2SRob Clark 	PERF_CCU_PARTIAL_BLOCK_READ = 8,
803a69c5ed2SRob Clark 	PERF_CCU_GMEM_READ = 9,
804a69c5ed2SRob Clark 	PERF_CCU_GMEM_WRITE = 10,
805a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG0_COUNT = 11,
806a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG1_COUNT = 12,
807a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG2_COUNT = 13,
808a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG3_COUNT = 14,
809a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG4_COUNT = 15,
810a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG5_COUNT = 16,
811a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG6_COUNT = 17,
812a69c5ed2SRob Clark 	PERF_CCU_DEPTH_READ_FLAG8_COUNT = 18,
813a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG0_COUNT = 19,
814a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG1_COUNT = 20,
815a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG2_COUNT = 21,
816a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG3_COUNT = 22,
817a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG4_COUNT = 23,
818a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG5_COUNT = 24,
819a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG6_COUNT = 25,
820a69c5ed2SRob Clark 	PERF_CCU_COLOR_READ_FLAG8_COUNT = 26,
821a69c5ed2SRob Clark 	PERF_CCU_2D_RD_REQ = 27,
822a69c5ed2SRob Clark 	PERF_CCU_2D_WR_REQ = 28,
823a69c5ed2SRob Clark };
824a69c5ed2SRob Clark 
825a69c5ed2SRob Clark enum a6xx_lrz_perfcounter_select {
826a69c5ed2SRob Clark 	PERF_LRZ_BUSY_CYCLES = 0,
827a69c5ed2SRob Clark 	PERF_LRZ_STARVE_CYCLES_RAS = 1,
828a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_RB = 2,
829a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_VSC = 3,
830a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_VPC = 4,
831a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_FLAG_PREFETCH = 5,
832a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_UCHE = 6,
833a69c5ed2SRob Clark 	PERF_LRZ_LRZ_READ = 7,
834a69c5ed2SRob Clark 	PERF_LRZ_LRZ_WRITE = 8,
835a69c5ed2SRob Clark 	PERF_LRZ_READ_LATENCY = 9,
836a69c5ed2SRob Clark 	PERF_LRZ_MERGE_CACHE_UPDATING = 10,
837a69c5ed2SRob Clark 	PERF_LRZ_PRIM_KILLED_BY_MASKGEN = 11,
838a69c5ed2SRob Clark 	PERF_LRZ_PRIM_KILLED_BY_LRZ = 12,
839a69c5ed2SRob Clark 	PERF_LRZ_VISIBLE_PRIM_AFTER_LRZ = 13,
840a69c5ed2SRob Clark 	PERF_LRZ_FULL_8X8_TILES = 14,
841a69c5ed2SRob Clark 	PERF_LRZ_PARTIAL_8X8_TILES = 15,
842a69c5ed2SRob Clark 	PERF_LRZ_TILE_KILLED = 16,
843a69c5ed2SRob Clark 	PERF_LRZ_TOTAL_PIXEL = 17,
844a69c5ed2SRob Clark 	PERF_LRZ_VISIBLE_PIXEL_AFTER_LRZ = 18,
845a69c5ed2SRob Clark 	PERF_LRZ_FULLY_COVERED_TILES = 19,
846a69c5ed2SRob Clark 	PERF_LRZ_PARTIAL_COVERED_TILES = 20,
847a69c5ed2SRob Clark 	PERF_LRZ_FEEDBACK_ACCEPT = 21,
848a69c5ed2SRob Clark 	PERF_LRZ_FEEDBACK_DISCARD = 22,
849a69c5ed2SRob Clark 	PERF_LRZ_FEEDBACK_STALL = 23,
850a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_RB_ZPLANE = 24,
851a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_RB_BPLANE = 25,
852a69c5ed2SRob Clark 	PERF_LRZ_STALL_CYCLES_VC = 26,
853a69c5ed2SRob Clark 	PERF_LRZ_RAS_MASK_TRANS = 27,
854a69c5ed2SRob Clark };
855a69c5ed2SRob Clark 
856a69c5ed2SRob Clark enum a6xx_cmp_perfcounter_select {
857a69c5ed2SRob Clark 	PERF_CMPDECMP_STALL_CYCLES_ARB = 0,
858a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_LATENCY_CYCLES = 1,
859a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_LATENCY_SAMPLES = 2,
860a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA_CCU = 3,
861a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_DATA_CCU = 4,
862a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_READ_REQUEST = 5,
863a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_REQUEST = 6,
864a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA = 7,
865a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_DATA = 8,
866a69c5ed2SRob Clark 	PERF_CMPDECMP_FLAG_FETCH_CYCLES = 9,
867a69c5ed2SRob Clark 	PERF_CMPDECMP_FLAG_FETCH_SAMPLES = 10,
868a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG1_COUNT = 11,
869a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG2_COUNT = 12,
870a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG3_COUNT = 13,
871a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG4_COUNT = 14,
872a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG5_COUNT = 15,
873a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG6_COUNT = 16,
874a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG8_COUNT = 17,
875a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG1_COUNT = 18,
876a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG2_COUNT = 19,
877a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG3_COUNT = 20,
878a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG4_COUNT = 21,
879a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG5_COUNT = 22,
880a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG6_COUNT = 23,
881a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG8_COUNT = 24,
882a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_REQ = 25,
883a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_WR = 26,
884a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_STALL_CYCLES_VBIF_RETURN = 27,
885a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_RD_DATA = 28,
886a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_WR_DATA = 29,
887a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA_UCHE_CH0 = 30,
888a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_READ_DATA_UCHE_CH1 = 31,
889a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_OUTPUT_TRANS = 32,
890a69c5ed2SRob Clark 	PERF_CMPDECMP_VBIF_WRITE_DATA_UCHE = 33,
891a69c5ed2SRob Clark 	PERF_CMPDECMP_DEPTH_WRITE_FLAG0_COUNT = 34,
892a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAG0_COUNT = 35,
893a69c5ed2SRob Clark 	PERF_CMPDECMP_COLOR_WRITE_FLAGALPHA_COUNT = 36,
894a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_BUSY_CYCLES = 37,
895a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_REORDER_STARVE_CYCLES = 38,
896a69c5ed2SRob Clark 	PERF_CMPDECMP_2D_PIXELS = 39,
8972d756322SRob Clark };
8982d756322SRob Clark 
899c28c82e9SRob Clark enum a6xx_2d_ifmt {
900c28c82e9SRob Clark 	R2D_UNORM8 = 16,
901c28c82e9SRob Clark 	R2D_INT32 = 7,
902c28c82e9SRob Clark 	R2D_INT16 = 6,
903c28c82e9SRob Clark 	R2D_INT8 = 5,
904c28c82e9SRob Clark 	R2D_FLOAT32 = 4,
905c28c82e9SRob Clark 	R2D_FLOAT16 = 3,
906c28c82e9SRob Clark 	R2D_UNORM8_SRGB = 1,
907c28c82e9SRob Clark 	R2D_RAW = 0,
908c28c82e9SRob Clark };
909c28c82e9SRob Clark 
910c28c82e9SRob Clark enum a6xx_ztest_mode {
911c28c82e9SRob Clark 	A6XX_EARLY_Z = 0,
912c28c82e9SRob Clark 	A6XX_LATE_Z = 1,
913c28c82e9SRob Clark 	A6XX_EARLY_LRZ_LATE_Z = 2,
914f73343faSRob Clark 	A6XX_INVALID_ZTEST = 3,
915c28c82e9SRob Clark };
916c28c82e9SRob Clark 
91757cfe41cSRob Clark enum a6xx_sequenced_thread_dist {
91857cfe41cSRob Clark 	DIST_SCREEN_COORD = 0,
91957cfe41cSRob Clark 	DIST_ALL_TO_RB0 = 1,
92057cfe41cSRob Clark };
92157cfe41cSRob Clark 
92257cfe41cSRob Clark enum a6xx_single_prim_mode {
92357cfe41cSRob Clark 	NO_FLUSH = 0,
92457cfe41cSRob Clark 	FLUSH_PER_OVERLAP_AND_OVERWRITE = 1,
92557cfe41cSRob Clark 	FLUSH_PER_OVERLAP = 3,
92657cfe41cSRob Clark };
92757cfe41cSRob Clark 
92857cfe41cSRob Clark enum a6xx_raster_mode {
92957cfe41cSRob Clark 	TYPE_TILED = 0,
93057cfe41cSRob Clark 	TYPE_WRITER = 1,
93157cfe41cSRob Clark };
93257cfe41cSRob Clark 
93357cfe41cSRob Clark enum a6xx_raster_direction {
93457cfe41cSRob Clark 	LR_TB = 0,
93557cfe41cSRob Clark 	RL_TB = 1,
93657cfe41cSRob Clark 	LR_BT = 2,
93757cfe41cSRob Clark 	RB_BT = 3,
93857cfe41cSRob Clark };
93957cfe41cSRob Clark 
94057cfe41cSRob Clark enum a6xx_render_mode {
94157cfe41cSRob Clark 	RENDERING_PASS = 0,
94257cfe41cSRob Clark 	BINNING_PASS = 1,
94357cfe41cSRob Clark };
94457cfe41cSRob Clark 
94557cfe41cSRob Clark enum a6xx_buffers_location {
94657cfe41cSRob Clark 	BUFFERS_IN_GMEM = 0,
94757cfe41cSRob Clark 	BUFFERS_IN_SYSMEM = 3,
94857cfe41cSRob Clark };
94957cfe41cSRob Clark 
950f73343faSRob Clark enum a6xx_lrz_dir_status {
951f73343faSRob Clark 	LRZ_DIR_LE = 1,
952f73343faSRob Clark 	LRZ_DIR_GE = 2,
953f73343faSRob Clark 	LRZ_DIR_INVALID = 3,
954f73343faSRob Clark };
955f73343faSRob Clark 
95657cfe41cSRob Clark enum a6xx_fragcoord_sample_mode {
95757cfe41cSRob Clark 	FRAGCOORD_CENTER = 0,
95857cfe41cSRob Clark 	FRAGCOORD_SAMPLE = 3,
95957cfe41cSRob Clark };
96057cfe41cSRob Clark 
961c28c82e9SRob Clark enum a6xx_rotation {
962c28c82e9SRob Clark 	ROTATE_0 = 0,
963c28c82e9SRob Clark 	ROTATE_90 = 1,
964c28c82e9SRob Clark 	ROTATE_180 = 2,
965c28c82e9SRob Clark 	ROTATE_270 = 3,
966c28c82e9SRob Clark 	ROTATE_HFLIP = 4,
967c28c82e9SRob Clark 	ROTATE_VFLIP = 5,
968c28c82e9SRob Clark };
969c28c82e9SRob Clark 
970c28c82e9SRob Clark enum a6xx_tess_spacing {
971c28c82e9SRob Clark 	TESS_EQUAL = 0,
972c28c82e9SRob Clark 	TESS_FRACTIONAL_ODD = 2,
973c28c82e9SRob Clark 	TESS_FRACTIONAL_EVEN = 3,
974c28c82e9SRob Clark };
975c28c82e9SRob Clark 
976c28c82e9SRob Clark enum a6xx_tess_output {
977c28c82e9SRob Clark 	TESS_POINTS = 0,
978c28c82e9SRob Clark 	TESS_LINES = 1,
979c28c82e9SRob Clark 	TESS_CW_TRIS = 2,
980c28c82e9SRob Clark 	TESS_CCW_TRIS = 3,
981c28c82e9SRob Clark };
982c28c82e9SRob Clark 
983cc4c26d4SRob Clark enum a6xx_threadsize {
984cc4c26d4SRob Clark 	THREAD64 = 0,
985cc4c26d4SRob Clark 	THREAD128 = 1,
986cc4c26d4SRob Clark };
987cc4c26d4SRob Clark 
988f73343faSRob Clark enum a6xx_bindless_descriptor_size {
989f73343faSRob Clark 	BINDLESS_DESCRIPTOR_16B = 1,
990f73343faSRob Clark 	BINDLESS_DESCRIPTOR_64B = 3,
991f73343faSRob Clark };
992f73343faSRob Clark 
99357cfe41cSRob Clark enum a6xx_isam_mode {
99457cfe41cSRob Clark 	ISAMMODE_GL = 2,
99557cfe41cSRob Clark };
99657cfe41cSRob Clark 
9972d756322SRob Clark enum a6xx_tex_filter {
9982d756322SRob Clark 	A6XX_TEX_NEAREST = 0,
9992d756322SRob Clark 	A6XX_TEX_LINEAR = 1,
10002d756322SRob Clark 	A6XX_TEX_ANISO = 2,
1001c28c82e9SRob Clark 	A6XX_TEX_CUBIC = 3,
10022d756322SRob Clark };
10032d756322SRob Clark 
10042d756322SRob Clark enum a6xx_tex_clamp {
10052d756322SRob Clark 	A6XX_TEX_REPEAT = 0,
10062d756322SRob Clark 	A6XX_TEX_CLAMP_TO_EDGE = 1,
10072d756322SRob Clark 	A6XX_TEX_MIRROR_REPEAT = 2,
10082d756322SRob Clark 	A6XX_TEX_CLAMP_TO_BORDER = 3,
10092d756322SRob Clark 	A6XX_TEX_MIRROR_CLAMP = 4,
10102d756322SRob Clark };
10112d756322SRob Clark 
10122d756322SRob Clark enum a6xx_tex_aniso {
10132d756322SRob Clark 	A6XX_TEX_ANISO_1 = 0,
10142d756322SRob Clark 	A6XX_TEX_ANISO_2 = 1,
10152d756322SRob Clark 	A6XX_TEX_ANISO_4 = 2,
10162d756322SRob Clark 	A6XX_TEX_ANISO_8 = 3,
10172d756322SRob Clark 	A6XX_TEX_ANISO_16 = 4,
10182d756322SRob Clark };
10192d756322SRob Clark 
1020c28c82e9SRob Clark enum a6xx_reduction_mode {
1021c28c82e9SRob Clark 	A6XX_REDUCTION_MODE_AVERAGE = 0,
1022c28c82e9SRob Clark 	A6XX_REDUCTION_MODE_MIN = 1,
1023c28c82e9SRob Clark 	A6XX_REDUCTION_MODE_MAX = 2,
1024c28c82e9SRob Clark };
1025c28c82e9SRob Clark 
10262d756322SRob Clark enum a6xx_tex_swiz {
10272d756322SRob Clark 	A6XX_TEX_X = 0,
10282d756322SRob Clark 	A6XX_TEX_Y = 1,
10292d756322SRob Clark 	A6XX_TEX_Z = 2,
10302d756322SRob Clark 	A6XX_TEX_W = 3,
10312d756322SRob Clark 	A6XX_TEX_ZERO = 4,
10322d756322SRob Clark 	A6XX_TEX_ONE = 5,
10332d756322SRob Clark };
10342d756322SRob Clark 
10352d756322SRob Clark enum a6xx_tex_type {
10362d756322SRob Clark 	A6XX_TEX_1D = 0,
10372d756322SRob Clark 	A6XX_TEX_2D = 1,
10382d756322SRob Clark 	A6XX_TEX_CUBE = 2,
10392d756322SRob Clark 	A6XX_TEX_3D = 3,
104057cfe41cSRob Clark 	A6XX_TEX_BUFFER = 4,
10412d756322SRob Clark };
10422d756322SRob Clark 
10432d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_RBBM_GPU_IDLE			0x00000001
10442d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_AHB_ERROR			0x00000002
1045f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_CP_IPC_INTR_0			0x00000010
1046f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_CP_IPC_INTR_1			0x00000020
10472d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_RBBM_ATB_ASYNCFIFO_OVERFLOW	0x00000040
10482d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_RBBM_GPC_ERROR			0x00000080
10492d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_SW				0x00000100
10502d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_HW_ERROR			0x00000200
10512d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_DEPTH_TS		0x00000400
10522d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_CCU_FLUSH_COLOR_TS		0x00000800
10532d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_CCU_RESOLVE_TS			0x00001000
10542d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_IB2				0x00002000
10552d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_IB1				0x00004000
10562d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_RB				0x00008000
1057f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_PM4CPINTERRUPT			0x00008000
1058f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_PM4CPINTERRUPTLPAC			0x00010000
10592d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_RB_DONE_TS			0x00020000
10602d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_WT_DONE_TS			0x00040000
10612d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS			0x00100000
1062f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_CP_CACHE_FLUSH_TS_LPAC		0x00200000
10632d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_RBBM_ATB_BUS_OVERFLOW		0x00400000
10642d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_RBBM_HANG_DETECT			0x00800000
10652d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_UCHE_OOB_ACCESS			0x01000000
10662d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_UCHE_TRAP_INTR			0x02000000
10672d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_0			0x04000000
10682d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_DEBBUS_INTR_1			0x08000000
1069f73343faSRob Clark #define A6XX_RBBM_INT_0_MASK_TSBWRITEERROR			0x10000000
10702d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_ISDB_CPU_IRQ			0x40000000
10712d756322SRob Clark #define A6XX_RBBM_INT_0_MASK_ISDB_UNDER_DEBUG			0x80000000
10722d756322SRob Clark #define A6XX_CP_INT_CP_OPCODE_ERROR				0x00000001
10732d756322SRob Clark #define A6XX_CP_INT_CP_UCODE_ERROR				0x00000002
10742d756322SRob Clark #define A6XX_CP_INT_CP_HW_FAULT_ERROR				0x00000004
10752d756322SRob Clark #define A6XX_CP_INT_CP_REGISTER_PROTECTION_ERROR		0x00000010
10762d756322SRob Clark #define A6XX_CP_INT_CP_AHB_ERROR				0x00000020
10772d756322SRob Clark #define A6XX_CP_INT_CP_VSD_PARITY_ERROR				0x00000040
10782d756322SRob Clark #define A6XX_CP_INT_CP_ILLEGAL_INSTR_ERROR			0x00000080
1079f73343faSRob Clark #define A6XX_CP_INT_CP_OPCODE_ERROR_LPAC			0x00000100
1080f73343faSRob Clark #define A6XX_CP_INT_CP_UCODE_ERROR_LPAC				0x00000200
1081f73343faSRob Clark #define A6XX_CP_INT_CP_HW_FAULT_ERROR_LPAC			0x00000400
1082f73343faSRob Clark #define A6XX_CP_INT_CP_REGISTER_PROTECTION_ERROR_LPAC		0x00000800
1083f73343faSRob Clark #define A6XX_CP_INT_CP_ILLEGAL_INSTR_ERROR_LPAC			0x00001000
1084f73343faSRob Clark #define A6XX_CP_INT_CP_OPCODE_ERROR_BV				0x00002000
1085f73343faSRob Clark #define A6XX_CP_INT_CP_UCODE_ERROR_BV				0x00004000
1086f73343faSRob Clark #define A6XX_CP_INT_CP_HW_FAULT_ERROR_BV			0x00008000
1087f73343faSRob Clark #define A6XX_CP_INT_CP_REGISTER_PROTECTION_ERROR_BV		0x00010000
1088f73343faSRob Clark #define A6XX_CP_INT_CP_ILLEGAL_INSTR_ERROR_BV			0x00020000
10892d756322SRob Clark #define REG_A6XX_CP_RB_BASE					0x00000800
10902d756322SRob Clark 
10912d756322SRob Clark #define REG_A6XX_CP_RB_CNTL					0x00000802
10922d756322SRob Clark 
1093f73343faSRob Clark #define REG_A6XX_CP_RB_RPTR_ADDR				0x00000804
10942d756322SRob Clark 
10952d756322SRob Clark #define REG_A6XX_CP_RB_RPTR					0x00000806
10962d756322SRob Clark 
10972d756322SRob Clark #define REG_A6XX_CP_RB_WPTR					0x00000807
10982d756322SRob Clark 
10992d756322SRob Clark #define REG_A6XX_CP_SQE_CNTL					0x00000808
11002d756322SRob Clark 
1101c28c82e9SRob Clark #define REG_A6XX_CP_CP2GMU_STATUS				0x00000812
1102c28c82e9SRob Clark #define A6XX_CP_CP2GMU_STATUS_IFPC				0x00000001
1103c28c82e9SRob Clark 
11042d756322SRob Clark #define REG_A6XX_CP_HW_FAULT					0x00000821
11052d756322SRob Clark 
11062d756322SRob Clark #define REG_A6XX_CP_INTERRUPT_STATUS				0x00000823
11072d756322SRob Clark 
11082d756322SRob Clark #define REG_A6XX_CP_PROTECT_STATUS				0x00000824
11092d756322SRob Clark 
1110f73343faSRob Clark #define REG_A6XX_CP_STATUS_1					0x00000825
1111f73343faSRob Clark 
1112cc4c26d4SRob Clark #define REG_A6XX_CP_SQE_INSTR_BASE				0x00000830
11132d756322SRob Clark 
11142d756322SRob Clark #define REG_A6XX_CP_MISC_CNTL					0x00000840
11152d756322SRob Clark 
111624e6938eSJonathan Marek #define REG_A6XX_CP_APRIV_CNTL					0x00000844
111724e6938eSJonathan Marek 
1118f73343faSRob Clark #define REG_A6XX_CP_PREEMPT_THRESHOLD				0x000008c0
1119f73343faSRob Clark 
11202d756322SRob Clark #define REG_A6XX_CP_ROQ_THRESHOLDS_1				0x000008c1
1121f73343faSRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_MRB_START__MASK		0x000000ff
1122f73343faSRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_MRB_START__SHIFT		0
A6XX_CP_ROQ_THRESHOLDS_1_MRB_START(uint32_t val)1123f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_MRB_START(uint32_t val)
1124c28c82e9SRob Clark {
1125f73343faSRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_MRB_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_MRB_START__MASK;
1126c28c82e9SRob Clark }
1127f73343faSRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_VSD_START__MASK		0x0000ff00
1128f73343faSRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_VSD_START__SHIFT		8
A6XX_CP_ROQ_THRESHOLDS_1_VSD_START(uint32_t val)1129f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_VSD_START(uint32_t val)
1130c28c82e9SRob Clark {
1131f73343faSRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_VSD_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_VSD_START__MASK;
1132c28c82e9SRob Clark }
1133c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK		0x00ff0000
1134c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT		16
A6XX_CP_ROQ_THRESHOLDS_1_IB1_START(uint32_t val)1135c28c82e9SRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB1_START(uint32_t val)
1136c28c82e9SRob Clark {
1137c28c82e9SRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB1_START__MASK;
1138c28c82e9SRob Clark }
1139c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK		0xff000000
1140c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT		24
A6XX_CP_ROQ_THRESHOLDS_1_IB2_START(uint32_t val)1141c28c82e9SRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_1_IB2_START(uint32_t val)
1142c28c82e9SRob Clark {
1143c28c82e9SRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_1_IB2_START__MASK;
1144c28c82e9SRob Clark }
11452d756322SRob Clark 
11462d756322SRob Clark #define REG_A6XX_CP_ROQ_THRESHOLDS_2				0x000008c2
1147c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK		0x000001ff
1148c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT		0
A6XX_CP_ROQ_THRESHOLDS_2_SDS_START(uint32_t val)1149c28c82e9SRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_SDS_START(uint32_t val)
1150c28c82e9SRob Clark {
1151c28c82e9SRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_SDS_START__MASK;
1152c28c82e9SRob Clark }
1153c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK			0xffff0000
1154c28c82e9SRob Clark #define A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT		16
A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE(uint32_t val)1155c28c82e9SRob Clark static inline uint32_t A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE(uint32_t val)
1156c28c82e9SRob Clark {
1157c28c82e9SRob Clark 	return ((val >> 2) << A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__SHIFT) & A6XX_CP_ROQ_THRESHOLDS_2_ROQ_SIZE__MASK;
1158c28c82e9SRob Clark }
11592d756322SRob Clark 
11602d756322SRob Clark #define REG_A6XX_CP_MEM_POOL_SIZE				0x000008c3
11612d756322SRob Clark 
11622d756322SRob Clark #define REG_A6XX_CP_CHICKEN_DBG					0x00000841
11632d756322SRob Clark 
11642d756322SRob Clark #define REG_A6XX_CP_ADDR_MODE_CNTL				0x00000842
11652d756322SRob Clark 
11662d756322SRob Clark #define REG_A6XX_CP_DBG_ECO_CNTL				0x00000843
11672d756322SRob Clark 
11682d756322SRob Clark #define REG_A6XX_CP_PROTECT_CNTL				0x0000084f
1169*b3ba797eSKonrad Dybcio #define A6XX_CP_PROTECT_CNTL_LAST_SPAN_INF_RANGE		0x00000008
1170*b3ba797eSKonrad Dybcio #define A6XX_CP_PROTECT_CNTL_ACCESS_FAULT_ON_VIOL_EN		0x00000002
1171*b3ba797eSKonrad Dybcio #define A6XX_CP_PROTECT_CNTL_ACCESS_PROT_EN			0x00000001
11722d756322SRob Clark 
REG_A6XX_CP_SCRATCH(uint32_t i0)11732d756322SRob Clark static inline uint32_t REG_A6XX_CP_SCRATCH(uint32_t i0) { return 0x00000883 + 0x1*i0; }
11742d756322SRob Clark 
REG_A6XX_CP_SCRATCH_REG(uint32_t i0)11752d756322SRob Clark static inline uint32_t REG_A6XX_CP_SCRATCH_REG(uint32_t i0) { return 0x00000883 + 0x1*i0; }
11762d756322SRob Clark 
REG_A6XX_CP_PROTECT(uint32_t i0)11772d756322SRob Clark static inline uint32_t REG_A6XX_CP_PROTECT(uint32_t i0) { return 0x00000850 + 0x1*i0; }
11782d756322SRob Clark 
REG_A6XX_CP_PROTECT_REG(uint32_t i0)11792d756322SRob Clark static inline uint32_t REG_A6XX_CP_PROTECT_REG(uint32_t i0) { return 0x00000850 + 0x1*i0; }
11802d756322SRob Clark #define A6XX_CP_PROTECT_REG_BASE_ADDR__MASK			0x0003ffff
11812d756322SRob Clark #define A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT			0
A6XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)11822d756322SRob Clark static inline uint32_t A6XX_CP_PROTECT_REG_BASE_ADDR(uint32_t val)
11832d756322SRob Clark {
11842d756322SRob Clark 	return ((val) << A6XX_CP_PROTECT_REG_BASE_ADDR__SHIFT) & A6XX_CP_PROTECT_REG_BASE_ADDR__MASK;
11852d756322SRob Clark }
11862d756322SRob Clark #define A6XX_CP_PROTECT_REG_MASK_LEN__MASK			0x7ffc0000
11872d756322SRob Clark #define A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT			18
A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)11882d756322SRob Clark static inline uint32_t A6XX_CP_PROTECT_REG_MASK_LEN(uint32_t val)
11892d756322SRob Clark {
11902d756322SRob Clark 	return ((val) << A6XX_CP_PROTECT_REG_MASK_LEN__SHIFT) & A6XX_CP_PROTECT_REG_MASK_LEN__MASK;
11912d756322SRob Clark }
11922d756322SRob Clark #define A6XX_CP_PROTECT_REG_READ				0x80000000
11932d756322SRob Clark 
11942d756322SRob Clark #define REG_A6XX_CP_CONTEXT_SWITCH_CNTL				0x000008a0
11952d756322SRob Clark 
1196f73343faSRob Clark #define REG_A6XX_CP_CONTEXT_SWITCH_SMMU_INFO			0x000008a1
11972d756322SRob Clark 
1198f73343faSRob Clark #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_NON_SECURE_RESTORE_ADDR	0x000008a3
11992d756322SRob Clark 
1200f73343faSRob Clark #define REG_A6XX_CP_CONTEXT_SWITCH_PRIV_SECURE_RESTORE_ADDR	0x000008a5
12012d756322SRob Clark 
1202f73343faSRob Clark #define REG_A6XX_CP_CONTEXT_SWITCH_NON_PRIV_RESTORE_ADDR	0x000008a7
12032d756322SRob Clark 
1204f73343faSRob Clark #define REG_A7XX_CP_CONTEXT_SWITCH_LEVEL_STATUS			0x000008ab
12052d756322SRob Clark 
REG_A6XX_CP_PERFCTR_CP_SEL(uint32_t i0)1206cc4c26d4SRob Clark static inline uint32_t REG_A6XX_CP_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008d0 + 0x1*i0; }
12072d756322SRob Clark 
REG_A7XX_CP_BV_PERFCTR_CP_SEL(uint32_t i0)1208f73343faSRob Clark static inline uint32_t REG_A7XX_CP_BV_PERFCTR_CP_SEL(uint32_t i0) { return 0x000008e0 + 0x1*i0; }
12092d756322SRob Clark 
1210f73343faSRob Clark #define REG_A6XX_CP_CRASH_SCRIPT_BASE				0x00000900
12112d756322SRob Clark 
12122d756322SRob Clark #define REG_A6XX_CP_CRASH_DUMP_CNTL				0x00000902
12132d756322SRob Clark 
12142d756322SRob Clark #define REG_A6XX_CP_CRASH_DUMP_STATUS				0x00000903
12152d756322SRob Clark 
12162d756322SRob Clark #define REG_A6XX_CP_SQE_STAT_ADDR				0x00000908
12172d756322SRob Clark 
12182d756322SRob Clark #define REG_A6XX_CP_SQE_STAT_DATA				0x00000909
12192d756322SRob Clark 
12202d756322SRob Clark #define REG_A6XX_CP_DRAW_STATE_ADDR				0x0000090a
12212d756322SRob Clark 
12222d756322SRob Clark #define REG_A6XX_CP_DRAW_STATE_DATA				0x0000090b
12232d756322SRob Clark 
12242d756322SRob Clark #define REG_A6XX_CP_ROQ_DBG_ADDR				0x0000090c
12252d756322SRob Clark 
12262d756322SRob Clark #define REG_A6XX_CP_ROQ_DBG_DATA				0x0000090d
12272d756322SRob Clark 
12282d756322SRob Clark #define REG_A6XX_CP_MEM_POOL_DBG_ADDR				0x0000090e
12292d756322SRob Clark 
12302d756322SRob Clark #define REG_A6XX_CP_MEM_POOL_DBG_DATA				0x0000090f
12312d756322SRob Clark 
12322d756322SRob Clark #define REG_A6XX_CP_SQE_UCODE_DBG_ADDR				0x00000910
12332d756322SRob Clark 
12342d756322SRob Clark #define REG_A6XX_CP_SQE_UCODE_DBG_DATA				0x00000911
12352d756322SRob Clark 
12362d756322SRob Clark #define REG_A6XX_CP_IB1_BASE					0x00000928
12372d756322SRob Clark 
12382d756322SRob Clark #define REG_A6XX_CP_IB1_REM_SIZE				0x0000092a
12392d756322SRob Clark 
12402d756322SRob Clark #define REG_A6XX_CP_IB2_BASE					0x0000092b
12412d756322SRob Clark 
12422d756322SRob Clark #define REG_A6XX_CP_IB2_REM_SIZE				0x0000092d
12432d756322SRob Clark 
1244c28c82e9SRob Clark #define REG_A6XX_CP_SDS_BASE					0x0000092e
1245c28c82e9SRob Clark 
1246cc4c26d4SRob Clark #define REG_A6XX_CP_SDS_REM_SIZE				0x00000930
1247c28c82e9SRob Clark 
1248cc4c26d4SRob Clark #define REG_A6XX_CP_MRB_BASE					0x00000931
1249c28c82e9SRob Clark 
1250cc4c26d4SRob Clark #define REG_A6XX_CP_MRB_REM_SIZE				0x00000933
1251c28c82e9SRob Clark 
1252cc4c26d4SRob Clark #define REG_A6XX_CP_VSD_BASE					0x00000934
1253cc4c26d4SRob Clark 
1254f73343faSRob Clark #define REG_A6XX_CP_ROQ_RB_STAT					0x00000939
1255f73343faSRob Clark #define A6XX_CP_ROQ_RB_STAT_RPTR__MASK				0x000003ff
1256f73343faSRob Clark #define A6XX_CP_ROQ_RB_STAT_RPTR__SHIFT				0
A6XX_CP_ROQ_RB_STAT_RPTR(uint32_t val)1257f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_RB_STAT_RPTR(uint32_t val)
1258f73343faSRob Clark {
1259f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_RB_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_RB_STAT_RPTR__MASK;
1260f73343faSRob Clark }
1261f73343faSRob Clark #define A6XX_CP_ROQ_RB_STAT_WPTR__MASK				0x03ff0000
1262f73343faSRob Clark #define A6XX_CP_ROQ_RB_STAT_WPTR__SHIFT				16
A6XX_CP_ROQ_RB_STAT_WPTR(uint32_t val)1263f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_RB_STAT_WPTR(uint32_t val)
1264f73343faSRob Clark {
1265f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_RB_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_RB_STAT_WPTR__MASK;
1266f73343faSRob Clark }
1267f73343faSRob Clark 
1268f73343faSRob Clark #define REG_A6XX_CP_ROQ_IB1_STAT				0x0000093a
1269f73343faSRob Clark #define A6XX_CP_ROQ_IB1_STAT_RPTR__MASK				0x000003ff
1270f73343faSRob Clark #define A6XX_CP_ROQ_IB1_STAT_RPTR__SHIFT			0
A6XX_CP_ROQ_IB1_STAT_RPTR(uint32_t val)1271f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_IB1_STAT_RPTR(uint32_t val)
1272f73343faSRob Clark {
1273f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_IB1_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_IB1_STAT_RPTR__MASK;
1274f73343faSRob Clark }
1275f73343faSRob Clark #define A6XX_CP_ROQ_IB1_STAT_WPTR__MASK				0x03ff0000
1276f73343faSRob Clark #define A6XX_CP_ROQ_IB1_STAT_WPTR__SHIFT			16
A6XX_CP_ROQ_IB1_STAT_WPTR(uint32_t val)1277f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_IB1_STAT_WPTR(uint32_t val)
1278f73343faSRob Clark {
1279f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_IB1_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_IB1_STAT_WPTR__MASK;
1280f73343faSRob Clark }
1281f73343faSRob Clark 
1282f73343faSRob Clark #define REG_A6XX_CP_ROQ_IB2_STAT				0x0000093b
1283f73343faSRob Clark #define A6XX_CP_ROQ_IB2_STAT_RPTR__MASK				0x000003ff
1284f73343faSRob Clark #define A6XX_CP_ROQ_IB2_STAT_RPTR__SHIFT			0
A6XX_CP_ROQ_IB2_STAT_RPTR(uint32_t val)1285f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_IB2_STAT_RPTR(uint32_t val)
1286f73343faSRob Clark {
1287f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_IB2_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_IB2_STAT_RPTR__MASK;
1288f73343faSRob Clark }
1289f73343faSRob Clark #define A6XX_CP_ROQ_IB2_STAT_WPTR__MASK				0x03ff0000
1290f73343faSRob Clark #define A6XX_CP_ROQ_IB2_STAT_WPTR__SHIFT			16
A6XX_CP_ROQ_IB2_STAT_WPTR(uint32_t val)1291f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_IB2_STAT_WPTR(uint32_t val)
1292f73343faSRob Clark {
1293f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_IB2_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_IB2_STAT_WPTR__MASK;
1294f73343faSRob Clark }
1295f73343faSRob Clark 
1296f73343faSRob Clark #define REG_A6XX_CP_ROQ_SDS_STAT				0x0000093c
1297f73343faSRob Clark #define A6XX_CP_ROQ_SDS_STAT_RPTR__MASK				0x000003ff
1298f73343faSRob Clark #define A6XX_CP_ROQ_SDS_STAT_RPTR__SHIFT			0
A6XX_CP_ROQ_SDS_STAT_RPTR(uint32_t val)1299f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_SDS_STAT_RPTR(uint32_t val)
1300f73343faSRob Clark {
1301f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_SDS_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_SDS_STAT_RPTR__MASK;
1302f73343faSRob Clark }
1303f73343faSRob Clark #define A6XX_CP_ROQ_SDS_STAT_WPTR__MASK				0x03ff0000
1304f73343faSRob Clark #define A6XX_CP_ROQ_SDS_STAT_WPTR__SHIFT			16
A6XX_CP_ROQ_SDS_STAT_WPTR(uint32_t val)1305f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_SDS_STAT_WPTR(uint32_t val)
1306f73343faSRob Clark {
1307f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_SDS_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_SDS_STAT_WPTR__MASK;
1308f73343faSRob Clark }
1309f73343faSRob Clark 
1310f73343faSRob Clark #define REG_A6XX_CP_ROQ_MRB_STAT				0x0000093d
1311f73343faSRob Clark #define A6XX_CP_ROQ_MRB_STAT_RPTR__MASK				0x000003ff
1312f73343faSRob Clark #define A6XX_CP_ROQ_MRB_STAT_RPTR__SHIFT			0
A6XX_CP_ROQ_MRB_STAT_RPTR(uint32_t val)1313f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_MRB_STAT_RPTR(uint32_t val)
1314f73343faSRob Clark {
1315f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_MRB_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_MRB_STAT_RPTR__MASK;
1316f73343faSRob Clark }
1317f73343faSRob Clark #define A6XX_CP_ROQ_MRB_STAT_WPTR__MASK				0x03ff0000
1318f73343faSRob Clark #define A6XX_CP_ROQ_MRB_STAT_WPTR__SHIFT			16
A6XX_CP_ROQ_MRB_STAT_WPTR(uint32_t val)1319f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_MRB_STAT_WPTR(uint32_t val)
1320f73343faSRob Clark {
1321f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_MRB_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_MRB_STAT_WPTR__MASK;
1322f73343faSRob Clark }
1323f73343faSRob Clark 
1324f73343faSRob Clark #define REG_A6XX_CP_ROQ_VSD_STAT				0x0000093e
1325f73343faSRob Clark #define A6XX_CP_ROQ_VSD_STAT_RPTR__MASK				0x000003ff
1326f73343faSRob Clark #define A6XX_CP_ROQ_VSD_STAT_RPTR__SHIFT			0
A6XX_CP_ROQ_VSD_STAT_RPTR(uint32_t val)1327f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_VSD_STAT_RPTR(uint32_t val)
1328f73343faSRob Clark {
1329f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_VSD_STAT_RPTR__SHIFT) & A6XX_CP_ROQ_VSD_STAT_RPTR__MASK;
1330f73343faSRob Clark }
1331f73343faSRob Clark #define A6XX_CP_ROQ_VSD_STAT_WPTR__MASK				0x03ff0000
1332f73343faSRob Clark #define A6XX_CP_ROQ_VSD_STAT_WPTR__SHIFT			16
A6XX_CP_ROQ_VSD_STAT_WPTR(uint32_t val)1333f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_VSD_STAT_WPTR(uint32_t val)
1334f73343faSRob Clark {
1335f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_VSD_STAT_WPTR__SHIFT) & A6XX_CP_ROQ_VSD_STAT_WPTR__MASK;
1336f73343faSRob Clark }
1337f73343faSRob Clark 
1338f73343faSRob Clark #define REG_A6XX_CP_IB1_DWORDS					0x00000943
1339f73343faSRob Clark 
1340f73343faSRob Clark #define REG_A6XX_CP_IB2_DWORDS					0x00000944
1341f73343faSRob Clark 
1342f73343faSRob Clark #define REG_A6XX_CP_SDS_DWORDS					0x00000945
1343cc4c26d4SRob Clark 
1344cc4c26d4SRob Clark #define REG_A6XX_CP_MRB_DWORDS					0x00000946
1345cc4c26d4SRob Clark 
1346cc4c26d4SRob Clark #define REG_A6XX_CP_VSD_DWORDS					0x00000947
1347c28c82e9SRob Clark 
1348f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_RB				0x00000948
1349f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_RB_REM__MASK				0xffff0000
1350f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_RB_REM__SHIFT				16
A6XX_CP_ROQ_AVAIL_RB_REM(uint32_t val)1351f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_RB_REM(uint32_t val)
1352c28c82e9SRob Clark {
1353f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_RB_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_RB_REM__MASK;
1354c28c82e9SRob Clark }
1355c28c82e9SRob Clark 
1356f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_IB1				0x00000949
1357f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_IB1_REM__MASK				0xffff0000
1358f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_IB1_REM__SHIFT			16
A6XX_CP_ROQ_AVAIL_IB1_REM(uint32_t val)1359f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_IB1_REM(uint32_t val)
1360c28c82e9SRob Clark {
1361f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_IB1_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_IB1_REM__MASK;
1362c28c82e9SRob Clark }
1363c28c82e9SRob Clark 
1364f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_IB2				0x0000094a
1365f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_IB2_REM__MASK				0xffff0000
1366f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_IB2_REM__SHIFT			16
A6XX_CP_ROQ_AVAIL_IB2_REM(uint32_t val)1367f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_IB2_REM(uint32_t val)
1368cc4c26d4SRob Clark {
1369f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_IB2_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_IB2_REM__MASK;
1370cc4c26d4SRob Clark }
1371cc4c26d4SRob Clark 
1372f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_SDS				0x0000094b
1373f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_SDS_REM__MASK				0xffff0000
1374f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_SDS_REM__SHIFT			16
A6XX_CP_ROQ_AVAIL_SDS_REM(uint32_t val)1375f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_SDS_REM(uint32_t val)
1376f73343faSRob Clark {
1377f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_SDS_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_SDS_REM__MASK;
1378f73343faSRob Clark }
13792d756322SRob Clark 
1380f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_MRB				0x0000094c
1381f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_MRB_REM__MASK				0xffff0000
1382f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_MRB_REM__SHIFT			16
A6XX_CP_ROQ_AVAIL_MRB_REM(uint32_t val)1383f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_MRB_REM(uint32_t val)
1384f73343faSRob Clark {
1385f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_MRB_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_MRB_REM__MASK;
1386f73343faSRob Clark }
1387f73343faSRob Clark 
1388f73343faSRob Clark #define REG_A6XX_CP_ROQ_AVAIL_VSD				0x0000094d
1389f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_VSD_REM__MASK				0xffff0000
1390f73343faSRob Clark #define A6XX_CP_ROQ_AVAIL_VSD_REM__SHIFT			16
A6XX_CP_ROQ_AVAIL_VSD_REM(uint32_t val)1391f73343faSRob Clark static inline uint32_t A6XX_CP_ROQ_AVAIL_VSD_REM(uint32_t val)
1392f73343faSRob Clark {
1393f73343faSRob Clark 	return ((val) << A6XX_CP_ROQ_AVAIL_VSD_REM__SHIFT) & A6XX_CP_ROQ_AVAIL_VSD_REM__MASK;
1394f73343faSRob Clark }
1395f73343faSRob Clark 
1396f73343faSRob Clark #define REG_A6XX_CP_ALWAYS_ON_COUNTER				0x00000980
13972d756322SRob Clark 
13982d756322SRob Clark #define REG_A6XX_CP_AHB_CNTL					0x0000098d
13992d756322SRob Clark 
14002d756322SRob Clark #define REG_A6XX_CP_APERTURE_CNTL_HOST				0x00000a00
14012d756322SRob Clark 
14022d756322SRob Clark #define REG_A6XX_CP_APERTURE_CNTL_CD				0x00000a03
14032d756322SRob Clark 
1404f73343faSRob Clark #define REG_A7XX_CP_BV_PROTECT_STATUS				0x00000a61
1405f73343faSRob Clark 
1406f73343faSRob Clark #define REG_A7XX_CP_BV_HW_FAULT					0x00000a64
1407f73343faSRob Clark 
1408f73343faSRob Clark #define REG_A7XX_CP_BV_DRAW_STATE_ADDR				0x00000a81
1409f73343faSRob Clark 
1410f73343faSRob Clark #define REG_A7XX_CP_BV_DRAW_STATE_DATA				0x00000a82
1411f73343faSRob Clark 
1412f73343faSRob Clark #define REG_A7XX_CP_BV_ROQ_DBG_ADDR				0x00000a83
1413f73343faSRob Clark 
1414f73343faSRob Clark #define REG_A7XX_CP_BV_ROQ_DBG_DATA				0x00000a84
1415f73343faSRob Clark 
1416f73343faSRob Clark #define REG_A7XX_CP_BV_SQE_UCODE_DBG_ADDR			0x00000a85
1417f73343faSRob Clark 
1418f73343faSRob Clark #define REG_A7XX_CP_BV_SQE_UCODE_DBG_DATA			0x00000a86
1419f73343faSRob Clark 
1420f73343faSRob Clark #define REG_A7XX_CP_BV_SQE_STAT_ADDR				0x00000a87
1421f73343faSRob Clark 
1422f73343faSRob Clark #define REG_A7XX_CP_BV_SQE_STAT_DATA				0x00000a88
1423f73343faSRob Clark 
1424f73343faSRob Clark #define REG_A7XX_CP_BV_MEM_POOL_DBG_ADDR			0x00000a96
1425f73343faSRob Clark 
1426f73343faSRob Clark #define REG_A7XX_CP_BV_MEM_POOL_DBG_DATA			0x00000a97
1427f73343faSRob Clark 
1428f73343faSRob Clark #define REG_A7XX_CP_BV_RB_RPTR_ADDR				0x00000a98
1429f73343faSRob Clark 
1430f73343faSRob Clark #define REG_A7XX_CP_RESOURCE_TBL_DBG_ADDR			0x00000a9a
1431f73343faSRob Clark 
1432f73343faSRob Clark #define REG_A7XX_CP_RESOURCE_TBL_DBG_DATA			0x00000a9b
1433f73343faSRob Clark 
1434f73343faSRob Clark #define REG_A7XX_CP_BV_APRIV_CNTL				0x00000ad0
1435f73343faSRob Clark 
1436f73343faSRob Clark #define REG_A7XX_CP_BV_CHICKEN_DBG				0x00000ada
1437f73343faSRob Clark 
1438f73343faSRob Clark #define REG_A7XX_CP_LPAC_DRAW_STATE_ADDR			0x00000b0a
1439f73343faSRob Clark 
1440f73343faSRob Clark #define REG_A7XX_CP_LPAC_DRAW_STATE_DATA			0x00000b0b
1441f73343faSRob Clark 
1442f73343faSRob Clark #define REG_A7XX_CP_LPAC_ROQ_DBG_ADDR				0x00000b0c
1443f73343faSRob Clark 
1444f73343faSRob Clark #define REG_A7XX_CP_SQE_AC_UCODE_DBG_ADDR			0x00000b27
1445f73343faSRob Clark 
1446f73343faSRob Clark #define REG_A7XX_CP_SQE_AC_UCODE_DBG_DATA			0x00000b28
1447f73343faSRob Clark 
1448f73343faSRob Clark #define REG_A7XX_CP_SQE_AC_STAT_ADDR				0x00000b29
1449f73343faSRob Clark 
1450f73343faSRob Clark #define REG_A7XX_CP_SQE_AC_STAT_DATA				0x00000b2a
1451f73343faSRob Clark 
1452f73343faSRob Clark #define REG_A7XX_CP_LPAC_APRIV_CNTL				0x00000b31
1453f73343faSRob Clark 
1454cc4c26d4SRob Clark #define REG_A6XX_CP_LPAC_PROG_FIFO_SIZE				0x00000b34
1455cc4c26d4SRob Clark 
1456f73343faSRob Clark #define REG_A7XX_CP_LPAC_ROQ_DBG_DATA				0x00000b35
1457f73343faSRob Clark 
1458f73343faSRob Clark #define REG_A7XX_CP_LPAC_FIFO_DBG_DATA				0x00000b36
1459f73343faSRob Clark 
1460f73343faSRob Clark #define REG_A7XX_CP_LPAC_FIFO_DBG_ADDR				0x00000b40
1461f73343faSRob Clark 
1462cc4c26d4SRob Clark #define REG_A6XX_CP_LPAC_SQE_INSTR_BASE				0x00000b82
1463cc4c26d4SRob Clark 
14642d756322SRob Clark #define REG_A6XX_VSC_ADDR_MODE_CNTL				0x00000c01
14652d756322SRob Clark 
1466f73343faSRob Clark #define REG_A6XX_RBBM_GPR0_CNTL					0x00000018
1467f73343faSRob Clark 
14682d756322SRob Clark #define REG_A6XX_RBBM_INT_0_STATUS				0x00000201
14692d756322SRob Clark 
14702d756322SRob Clark #define REG_A6XX_RBBM_STATUS					0x00000210
14712d756322SRob Clark #define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB			0x00800000
14722d756322SRob Clark #define A6XX_RBBM_STATUS_GPU_BUSY_IGN_AHB_CP			0x00400000
14732d756322SRob Clark #define A6XX_RBBM_STATUS_HLSQ_BUSY				0x00200000
14742d756322SRob Clark #define A6XX_RBBM_STATUS_VSC_BUSY				0x00100000
14752d756322SRob Clark #define A6XX_RBBM_STATUS_TPL1_BUSY				0x00080000
14762d756322SRob Clark #define A6XX_RBBM_STATUS_SP_BUSY				0x00040000
14772d756322SRob Clark #define A6XX_RBBM_STATUS_UCHE_BUSY				0x00020000
14782d756322SRob Clark #define A6XX_RBBM_STATUS_VPC_BUSY				0x00010000
14792d756322SRob Clark #define A6XX_RBBM_STATUS_VFD_BUSY				0x00008000
14802d756322SRob Clark #define A6XX_RBBM_STATUS_TESS_BUSY				0x00004000
14812d756322SRob Clark #define A6XX_RBBM_STATUS_PC_VSD_BUSY				0x00002000
14822d756322SRob Clark #define A6XX_RBBM_STATUS_PC_DCALL_BUSY				0x00001000
14832d756322SRob Clark #define A6XX_RBBM_STATUS_COM_DCOM_BUSY				0x00000800
14842d756322SRob Clark #define A6XX_RBBM_STATUS_LRZ_BUSY				0x00000400
14852d756322SRob Clark #define A6XX_RBBM_STATUS_A2D_BUSY				0x00000200
14862d756322SRob Clark #define A6XX_RBBM_STATUS_CCU_BUSY				0x00000100
14872d756322SRob Clark #define A6XX_RBBM_STATUS_RB_BUSY				0x00000080
14882d756322SRob Clark #define A6XX_RBBM_STATUS_RAS_BUSY				0x00000040
14892d756322SRob Clark #define A6XX_RBBM_STATUS_TSE_BUSY				0x00000020
14902d756322SRob Clark #define A6XX_RBBM_STATUS_VBIF_BUSY				0x00000010
14912d756322SRob Clark #define A6XX_RBBM_STATUS_GFX_DBGC_BUSY				0x00000008
14922d756322SRob Clark #define A6XX_RBBM_STATUS_CP_BUSY				0x00000004
14932d756322SRob Clark #define A6XX_RBBM_STATUS_CP_AHB_BUSY_CP_MASTER			0x00000002
14942d756322SRob Clark #define A6XX_RBBM_STATUS_CP_AHB_BUSY_CX_MASTER			0x00000001
14952d756322SRob Clark 
1496f73343faSRob Clark #define REG_A6XX_RBBM_STATUS1					0x00000211
1497f73343faSRob Clark 
1498f73343faSRob Clark #define REG_A6XX_RBBM_STATUS2					0x00000212
1499f73343faSRob Clark 
15002d756322SRob Clark #define REG_A6XX_RBBM_STATUS3					0x00000213
1501c28c82e9SRob Clark #define A6XX_RBBM_STATUS3_SMMU_STALLED_ON_FAULT			0x01000000
15022d756322SRob Clark 
15032d756322SRob Clark #define REG_A6XX_RBBM_VBIF_GX_RESET_STATUS			0x00000215
15042d756322SRob Clark 
1505f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE_CP				0x00000260
1506f73343faSRob Clark 
1507f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE_BV_LRZ				0x00000284
1508f73343faSRob Clark 
1509f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE_BV_GRAS			0x00000285
1510f73343faSRob Clark 
1511f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE2_GRAS				0x00000286
1512f73343faSRob Clark 
1513f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE_BV_VFD				0x00000287
1514f73343faSRob Clark 
1515f73343faSRob Clark #define REG_A7XX_RBBM_CLOCK_MODE_BV_GPC				0x00000288
1516f73343faSRob Clark 
REG_A6XX_RBBM_PERFCTR_CP(uint32_t i0)1517cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_CP(uint32_t i0) { return 0x00000400 + 0x2*i0; }
15182d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_RBBM(uint32_t i0)1519cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_RBBM(uint32_t i0) { return 0x0000041c + 0x2*i0; }
15202d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_PC(uint32_t i0)1521cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_PC(uint32_t i0) { return 0x00000424 + 0x2*i0; }
15222d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_VFD(uint32_t i0)1523cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_VFD(uint32_t i0) { return 0x00000434 + 0x2*i0; }
15242d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_HLSQ(uint32_t i0)1525cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_HLSQ(uint32_t i0) { return 0x00000444 + 0x2*i0; }
15262d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_VPC(uint32_t i0)1527cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_VPC(uint32_t i0) { return 0x00000450 + 0x2*i0; }
15282d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_CCU(uint32_t i0)1529cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_CCU(uint32_t i0) { return 0x0000045c + 0x2*i0; }
15302d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_TSE(uint32_t i0)1531cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_TSE(uint32_t i0) { return 0x00000466 + 0x2*i0; }
15322d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_RAS(uint32_t i0)1533cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_RAS(uint32_t i0) { return 0x0000046e + 0x2*i0; }
15342d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_UCHE(uint32_t i0)1535cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_UCHE(uint32_t i0) { return 0x00000476 + 0x2*i0; }
15362d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_TP(uint32_t i0)1537cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_TP(uint32_t i0) { return 0x0000048e + 0x2*i0; }
15382d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_SP(uint32_t i0)1539cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_SP(uint32_t i0) { return 0x000004a6 + 0x2*i0; }
15402d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_RB(uint32_t i0)1541cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_RB(uint32_t i0) { return 0x000004d6 + 0x2*i0; }
15422d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_VSC(uint32_t i0)1543cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_VSC(uint32_t i0) { return 0x000004e6 + 0x2*i0; }
15442d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_LRZ(uint32_t i0)1545cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_LRZ(uint32_t i0) { return 0x000004ea + 0x2*i0; }
15462d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_CMP(uint32_t i0)1547cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_CMP(uint32_t i0) { return 0x000004f2 + 0x2*i0; }
15482d756322SRob Clark 
REG_A7XX_RBBM_PERFCTR_CP(uint32_t i0)1549f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_CP(uint32_t i0) { return 0x00000300 + 0x2*i0; }
1550f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_RBBM(uint32_t i0)1551f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_RBBM(uint32_t i0) { return 0x0000031c + 0x2*i0; }
1552f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_PC(uint32_t i0)1553f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_PC(uint32_t i0) { return 0x00000324 + 0x2*i0; }
1554f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_VFD(uint32_t i0)1555f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_VFD(uint32_t i0) { return 0x00000334 + 0x2*i0; }
1556f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_HLSQ(uint32_t i0)1557f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_HLSQ(uint32_t i0) { return 0x00000344 + 0x2*i0; }
1558f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_VPC(uint32_t i0)1559f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_VPC(uint32_t i0) { return 0x00000350 + 0x2*i0; }
1560f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_CCU(uint32_t i0)1561f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_CCU(uint32_t i0) { return 0x0000035c + 0x2*i0; }
1562f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_TSE(uint32_t i0)1563f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_TSE(uint32_t i0) { return 0x00000366 + 0x2*i0; }
1564f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_RAS(uint32_t i0)1565f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_RAS(uint32_t i0) { return 0x0000036e + 0x2*i0; }
1566f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_UCHE(uint32_t i0)1567f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_UCHE(uint32_t i0) { return 0x00000376 + 0x2*i0; }
1568f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_TP(uint32_t i0)1569f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_TP(uint32_t i0) { return 0x0000038e + 0x2*i0; }
1570f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_SP(uint32_t i0)1571f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_SP(uint32_t i0) { return 0x000003a6 + 0x2*i0; }
1572f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_RB(uint32_t i0)1573f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_RB(uint32_t i0) { return 0x000003d6 + 0x2*i0; }
1574f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_VSC(uint32_t i0)1575f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_VSC(uint32_t i0) { return 0x000003e6 + 0x2*i0; }
1576f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_LRZ(uint32_t i0)1577f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_LRZ(uint32_t i0) { return 0x000003ea + 0x2*i0; }
1578f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_CMP(uint32_t i0)1579f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_CMP(uint32_t i0) { return 0x000003f2 + 0x2*i0; }
1580f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_UFC(uint32_t i0)1581f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_UFC(uint32_t i0) { return 0x000003fa + 0x2*i0; }
1582f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR2_HLSQ(uint32_t i0)1583f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR2_HLSQ(uint32_t i0) { return 0x00000410 + 0x2*i0; }
1584f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR2_CP(uint32_t i0)1585f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR2_CP(uint32_t i0) { return 0x0000041c + 0x2*i0; }
1586f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR2_SP(uint32_t i0)1587f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR2_SP(uint32_t i0) { return 0x0000042a + 0x2*i0; }
1588f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR2_TP(uint32_t i0)1589f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR2_TP(uint32_t i0) { return 0x00000442 + 0x2*i0; }
1590f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR2_UFC(uint32_t i0)1591f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR2_UFC(uint32_t i0) { return 0x0000044e + 0x2*i0; }
1592f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_PC(uint32_t i0)1593f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_PC(uint32_t i0) { return 0x00000460 + 0x2*i0; }
1594f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_VFD(uint32_t i0)1595f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VFD(uint32_t i0) { return 0x00000470 + 0x2*i0; }
1596f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_VPC(uint32_t i0)1597f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_VPC(uint32_t i0) { return 0x00000480 + 0x2*i0; }
1598f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_TSE(uint32_t i0)1599f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_TSE(uint32_t i0) { return 0x0000048c + 0x2*i0; }
1600f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_RAS(uint32_t i0)1601f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_RAS(uint32_t i0) { return 0x00000494 + 0x2*i0; }
1602f73343faSRob Clark 
REG_A7XX_RBBM_PERFCTR_BV_LRZ(uint32_t i0)1603f73343faSRob Clark static inline uint32_t REG_A7XX_RBBM_PERFCTR_BV_LRZ(uint32_t i0) { return 0x0000049c + 0x2*i0; }
1604f73343faSRob Clark 
16052d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_CNTL				0x00000500
16062d756322SRob Clark 
16072d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD0				0x00000501
16082d756322SRob Clark 
16092d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD1				0x00000502
16102d756322SRob Clark 
16112d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD2				0x00000503
16122d756322SRob Clark 
16132d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_CMD3				0x00000504
16142d756322SRob Clark 
16152d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_LO			0x00000505
16162d756322SRob Clark 
16172d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_LOAD_VALUE_HI			0x00000506
16182d756322SRob Clark 
REG_A6XX_RBBM_PERFCTR_RBBM_SEL(uint32_t i0)1619cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RBBM_PERFCTR_RBBM_SEL(uint32_t i0) { return 0x00000507 + 0x1*i0; }
16202d756322SRob Clark 
16212d756322SRob Clark #define REG_A6XX_RBBM_PERFCTR_GPU_BUSY_MASKED			0x0000050b
16222d756322SRob Clark 
162357cfe41cSRob Clark #define REG_A6XX_RBBM_PERFCTR_SRAM_INIT_CMD			0x0000050e
162457cfe41cSRob Clark 
162557cfe41cSRob Clark #define REG_A6XX_RBBM_PERFCTR_SRAM_INIT_STATUS			0x0000050f
162657cfe41cSRob Clark 
16272d756322SRob Clark #define REG_A6XX_RBBM_ISDB_CNT					0x00000533
16282d756322SRob Clark 
1629f73343faSRob Clark #define REG_A7XX_RBBM_NC_MODE_CNTL				0x00000534
1630f73343faSRob Clark 
1631f73343faSRob Clark #define REG_A7XX_RBBM_SNAPSHOT_STATUS				0x00000535
1632f73343faSRob Clark 
1633c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_0_LO				0x00000540
1634c28c82e9SRob Clark 
1635c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_0_HI				0x00000541
1636c28c82e9SRob Clark 
1637c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_1_LO				0x00000542
1638c28c82e9SRob Clark 
1639c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_1_HI				0x00000543
1640c28c82e9SRob Clark 
1641c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_2_LO				0x00000544
1642c28c82e9SRob Clark 
1643c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_2_HI				0x00000545
1644c28c82e9SRob Clark 
1645c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_3_LO				0x00000546
1646c28c82e9SRob Clark 
1647c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_3_HI				0x00000547
1648c28c82e9SRob Clark 
1649c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_4_LO				0x00000548
1650c28c82e9SRob Clark 
1651c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_4_HI				0x00000549
1652c28c82e9SRob Clark 
1653c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_5_LO				0x0000054a
1654c28c82e9SRob Clark 
1655c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_5_HI				0x0000054b
1656c28c82e9SRob Clark 
1657c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_6_LO				0x0000054c
1658c28c82e9SRob Clark 
1659c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_6_HI				0x0000054d
1660c28c82e9SRob Clark 
1661c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_7_LO				0x0000054e
1662c28c82e9SRob Clark 
1663c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_7_HI				0x0000054f
1664c28c82e9SRob Clark 
1665c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_8_LO				0x00000550
1666c28c82e9SRob Clark 
1667c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_8_HI				0x00000551
1668c28c82e9SRob Clark 
1669c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_9_LO				0x00000552
1670c28c82e9SRob Clark 
1671c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_9_HI				0x00000553
1672c28c82e9SRob Clark 
1673c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_10_LO				0x00000554
1674c28c82e9SRob Clark 
1675c28c82e9SRob Clark #define REG_A6XX_RBBM_PRIMCTR_10_HI				0x00000555
1676c28c82e9SRob Clark 
16772d756322SRob Clark #define REG_A6XX_RBBM_SECVID_TRUST_CNTL				0x0000f400
16782d756322SRob Clark 
1679f73343faSRob Clark #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_BASE			0x0000f800
16802d756322SRob Clark 
16812d756322SRob Clark #define REG_A6XX_RBBM_SECVID_TSB_TRUSTED_SIZE			0x0000f802
16822d756322SRob Clark 
16832d756322SRob Clark #define REG_A6XX_RBBM_SECVID_TSB_CNTL				0x0000f803
16842d756322SRob Clark 
16852d756322SRob Clark #define REG_A6XX_RBBM_SECVID_TSB_ADDR_MODE_CNTL			0x0000f810
16862d756322SRob Clark 
1687f73343faSRob Clark #define REG_A7XX_RBBM_SECVID_TSB_STATUS				0x0000fc00
1688f73343faSRob Clark 
16892d756322SRob Clark #define REG_A6XX_RBBM_VBIF_CLIENT_QOS_CNTL			0x00000010
16902d756322SRob Clark 
169124e6938eSJonathan Marek #define REG_A6XX_RBBM_GBIF_CLIENT_QOS_CNTL			0x00000011
169224e6938eSJonathan Marek 
16933a9dd708SAkhil P Oommen #define REG_A6XX_RBBM_GBIF_HALT					0x00000016
16943a9dd708SAkhil P Oommen 
16953a9dd708SAkhil P Oommen #define REG_A6XX_RBBM_GBIF_HALT_ACK				0x00000017
16963a9dd708SAkhil P Oommen 
1697c28c82e9SRob Clark #define REG_A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD			0x0000001c
1698c28c82e9SRob Clark #define A6XX_RBBM_WAIT_FOR_GPU_IDLE_CMD_WAIT_GPU_IDLE		0x00000001
1699c28c82e9SRob Clark 
1700f73343faSRob Clark #define REG_A7XX_RBBM_GBIF_HALT					0x00000016
1701f73343faSRob Clark 
1702f73343faSRob Clark #define REG_A7XX_RBBM_GBIF_HALT_ACK				0x00000017
1703f73343faSRob Clark 
17042d756322SRob Clark #define REG_A6XX_RBBM_INTERFACE_HANG_INT_CNTL			0x0000001f
17052d756322SRob Clark 
17062d756322SRob Clark #define REG_A6XX_RBBM_INT_CLEAR_CMD				0x00000037
17072d756322SRob Clark 
17082d756322SRob Clark #define REG_A6XX_RBBM_INT_0_MASK				0x00000038
17092d756322SRob Clark 
1710f73343faSRob Clark #define REG_A7XX_RBBM_INT_2_MASK				0x0000003a
1711f73343faSRob Clark 
17122d756322SRob Clark #define REG_A6XX_RBBM_SP_HYST_CNT				0x00000042
17132d756322SRob Clark 
17142d756322SRob Clark #define REG_A6XX_RBBM_SW_RESET_CMD				0x00000043
17152d756322SRob Clark 
17162d756322SRob Clark #define REG_A6XX_RBBM_RAC_THRESHOLD_CNT				0x00000044
17172d756322SRob Clark 
17182d756322SRob Clark #define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD			0x00000045
17192d756322SRob Clark 
17202d756322SRob Clark #define REG_A6XX_RBBM_BLOCK_SW_RESET_CMD2			0x00000046
17212d756322SRob Clark 
17222d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL				0x000000ae
17232d756322SRob Clark 
17242d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_SP0				0x000000b0
17252d756322SRob Clark 
17262d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_SP1				0x000000b1
17272d756322SRob Clark 
17282d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_SP2				0x000000b2
17292d756322SRob Clark 
17302d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_SP3				0x000000b3
17312d756322SRob Clark 
17322d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_SP0				0x000000b4
17332d756322SRob Clark 
17342d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_SP1				0x000000b5
17352d756322SRob Clark 
17362d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_SP2				0x000000b6
17372d756322SRob Clark 
17382d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_SP3				0x000000b7
17392d756322SRob Clark 
17402d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_SP0				0x000000b8
17412d756322SRob Clark 
17422d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_SP1				0x000000b9
17432d756322SRob Clark 
17442d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_SP2				0x000000ba
17452d756322SRob Clark 
17462d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_SP3				0x000000bb
17472d756322SRob Clark 
17482d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_SP0				0x000000bc
17492d756322SRob Clark 
17502d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_SP1				0x000000bd
17512d756322SRob Clark 
17522d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_SP2				0x000000be
17532d756322SRob Clark 
17542d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_SP3				0x000000bf
17552d756322SRob Clark 
17562d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TP0				0x000000c0
17572d756322SRob Clark 
17582d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TP1				0x000000c1
17592d756322SRob Clark 
17602d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TP2				0x000000c2
17612d756322SRob Clark 
17622d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TP3				0x000000c3
17632d756322SRob Clark 
17642d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_TP0				0x000000c4
17652d756322SRob Clark 
17662d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_TP1				0x000000c5
17672d756322SRob Clark 
17682d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_TP2				0x000000c6
17692d756322SRob Clark 
17702d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_TP3				0x000000c7
17712d756322SRob Clark 
17722d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL3_TP0				0x000000c8
17732d756322SRob Clark 
17742d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL3_TP1				0x000000c9
17752d756322SRob Clark 
17762d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL3_TP2				0x000000ca
17772d756322SRob Clark 
17782d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL3_TP3				0x000000cb
17792d756322SRob Clark 
17802d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL4_TP0				0x000000cc
17812d756322SRob Clark 
17822d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL4_TP1				0x000000cd
17832d756322SRob Clark 
17842d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL4_TP2				0x000000ce
17852d756322SRob Clark 
17862d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL4_TP3				0x000000cf
17872d756322SRob Clark 
17882d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TP0				0x000000d0
17892d756322SRob Clark 
17902d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TP1				0x000000d1
17912d756322SRob Clark 
17922d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TP2				0x000000d2
17932d756322SRob Clark 
17942d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TP3				0x000000d3
17952d756322SRob Clark 
17962d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY2_TP0				0x000000d4
17972d756322SRob Clark 
17982d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY2_TP1				0x000000d5
17992d756322SRob Clark 
18002d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY2_TP2				0x000000d6
18012d756322SRob Clark 
18022d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY2_TP3				0x000000d7
18032d756322SRob Clark 
18042d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY3_TP0				0x000000d8
18052d756322SRob Clark 
18062d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY3_TP1				0x000000d9
18072d756322SRob Clark 
18082d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY3_TP2				0x000000da
18092d756322SRob Clark 
18102d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY3_TP3				0x000000db
18112d756322SRob Clark 
18122d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY4_TP0				0x000000dc
18132d756322SRob Clark 
18142d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY4_TP1				0x000000dd
18152d756322SRob Clark 
18162d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY4_TP2				0x000000de
18172d756322SRob Clark 
18182d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY4_TP3				0x000000df
18192d756322SRob Clark 
18202d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TP0				0x000000e0
18212d756322SRob Clark 
18222d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TP1				0x000000e1
18232d756322SRob Clark 
18242d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TP2				0x000000e2
18252d756322SRob Clark 
18262d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TP3				0x000000e3
18272d756322SRob Clark 
18282d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST2_TP0				0x000000e4
18292d756322SRob Clark 
18302d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST2_TP1				0x000000e5
18312d756322SRob Clark 
18322d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST2_TP2				0x000000e6
18332d756322SRob Clark 
18342d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST2_TP3				0x000000e7
18352d756322SRob Clark 
18362d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST3_TP0				0x000000e8
18372d756322SRob Clark 
18382d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST3_TP1				0x000000e9
18392d756322SRob Clark 
18402d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST3_TP2				0x000000ea
18412d756322SRob Clark 
18422d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST3_TP3				0x000000eb
18432d756322SRob Clark 
18442d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST4_TP0				0x000000ec
18452d756322SRob Clark 
18462d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST4_TP1				0x000000ed
18472d756322SRob Clark 
18482d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST4_TP2				0x000000ee
18492d756322SRob Clark 
18502d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST4_TP3				0x000000ef
18512d756322SRob Clark 
18522d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_RB0				0x000000f0
18532d756322SRob Clark 
18542d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_RB1				0x000000f1
18552d756322SRob Clark 
18562d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_RB2				0x000000f2
18572d756322SRob Clark 
18582d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_RB3				0x000000f3
18592d756322SRob Clark 
18602d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_RB0				0x000000f4
18612d756322SRob Clark 
18622d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_RB1				0x000000f5
18632d756322SRob Clark 
18642d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_RB2				0x000000f6
18652d756322SRob Clark 
18662d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_RB3				0x000000f7
18672d756322SRob Clark 
18682d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_CCU0				0x000000f8
18692d756322SRob Clark 
18702d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_CCU1				0x000000f9
18712d756322SRob Clark 
18722d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_CCU2				0x000000fa
18732d756322SRob Clark 
18742d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_CCU3				0x000000fb
18752d756322SRob Clark 
18762d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU0			0x00000100
18772d756322SRob Clark 
18782d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU1			0x00000101
18792d756322SRob Clark 
18802d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU2			0x00000102
18812d756322SRob Clark 
18822d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_RB_CCU3			0x00000103
18832d756322SRob Clark 
18842d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_RAC				0x00000104
18852d756322SRob Clark 
18862d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_RAC				0x00000105
18872d756322SRob Clark 
18882d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_RAC				0x00000106
18892d756322SRob Clark 
18902d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_RAC				0x00000107
18912d756322SRob Clark 
18922d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TSE_RAS_RBBM			0x00000108
18932d756322SRob Clark 
18942d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TSE_RAS_RBBM			0x00000109
18952d756322SRob Clark 
18962d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TSE_RAS_RBBM			0x0000010a
18972d756322SRob Clark 
18982d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_UCHE				0x0000010b
18992d756322SRob Clark 
19002d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL2_UCHE				0x0000010c
19012d756322SRob Clark 
19022d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL3_UCHE				0x0000010d
19032d756322SRob Clark 
19042d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL4_UCHE				0x0000010e
19052d756322SRob Clark 
19062d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_UCHE				0x0000010f
19072d756322SRob Clark 
19082d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_UCHE				0x00000110
19092d756322SRob Clark 
19102d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_MODE_VFD				0x00000111
19112d756322SRob Clark 
19122d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_VFD				0x00000112
19132d756322SRob Clark 
19142d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_VFD				0x00000113
19152d756322SRob Clark 
19162d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_MODE_GPC				0x00000114
19172d756322SRob Clark 
19182d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_GPC				0x00000115
19192d756322SRob Clark 
19202d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_GPC				0x00000116
19212d756322SRob Clark 
19222d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ_2			0x00000117
19232d756322SRob Clark 
19242d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_GMU_GX				0x00000118
19252d756322SRob Clark 
19262d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_GMU_GX			0x00000119
19272d756322SRob Clark 
19282d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_GMU_GX				0x0000011a
19292d756322SRob Clark 
19302d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_MODE_HLSQ				0x0000011b
19312d756322SRob Clark 
19322d756322SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_HLSQ				0x0000011c
19332d756322SRob Clark 
1934c28c82e9SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_HLSQ				0x0000011d
1935c28c82e9SRob Clark 
1936c28c82e9SRob Clark #define REG_A6XX_RBBM_CLOCK_CNTL_TEX_FCHE			0x00000120
1937c28c82e9SRob Clark 
1938c28c82e9SRob Clark #define REG_A6XX_RBBM_CLOCK_DELAY_TEX_FCHE			0x00000121
1939c28c82e9SRob Clark 
1940c28c82e9SRob Clark #define REG_A6XX_RBBM_CLOCK_HYST_TEX_FCHE			0x00000122
1941c28c82e9SRob Clark 
1942f73343faSRob Clark #define REG_A6XX_RBBM_LPAC_GBIF_CLIENT_QOS_CNTL			0x000005ff
1943f73343faSRob Clark 
19442d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_A				0x00000600
19452d756322SRob Clark 
19462d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_B				0x00000601
19472d756322SRob Clark 
19482d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_C				0x00000602
19492d756322SRob Clark 
19502d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_SEL_D				0x00000603
19512d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK		0x000000ff
19522d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)19532d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(uint32_t val)
19542d756322SRob Clark {
19552d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX__MASK;
19562d756322SRob Clark }
19572d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK		0x0000ff00
19582d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)19592d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(uint32_t val)
19602d756322SRob Clark {
19612d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__SHIFT) & A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL__MASK;
19622d756322SRob Clark }
19632d756322SRob Clark 
19642d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_CNTLT				0x00000604
19652d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK		0x0000003f
19662d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)19672d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
19682d756322SRob Clark {
19692d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
19702d756322SRob Clark }
19712d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK			0x00007000
19722d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT			12
A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)19732d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
19742d756322SRob Clark {
19752d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
19762d756322SRob Clark }
19772d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK			0xf0000000
19782d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT			28
A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)19792d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
19802d756322SRob Clark {
19812d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
19822d756322SRob Clark }
19832d756322SRob Clark 
19842d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_CNTLM				0x00000605
19852d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK			0x0f000000
19862d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)19872d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
19882d756322SRob Clark {
19892d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
19902d756322SRob Clark }
19912d756322SRob Clark 
19922d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_0				0x00000608
19932d756322SRob Clark 
19942d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_1				0x00000609
19952d756322SRob Clark 
19962d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_2				0x0000060a
19972d756322SRob Clark 
19982d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_IVTL_3				0x0000060b
19992d756322SRob Clark 
20002d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_0			0x0000060c
20012d756322SRob Clark 
20022d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_1			0x0000060d
20032d756322SRob Clark 
20042d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_2			0x0000060e
20052d756322SRob Clark 
20062d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_MASKL_3			0x0000060f
20072d756322SRob Clark 
20082d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_0			0x00000610
20092d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK		0x0000000f
20102d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)20112d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
20122d756322SRob Clark {
20132d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
20142d756322SRob Clark }
20152d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK		0x000000f0
20162d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT		4
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)20172d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
20182d756322SRob Clark {
20192d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
20202d756322SRob Clark }
20212d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK		0x00000f00
20222d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)20232d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
20242d756322SRob Clark {
20252d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
20262d756322SRob Clark }
20272d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK		0x0000f000
20282d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT		12
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)20292d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
20302d756322SRob Clark {
20312d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
20322d756322SRob Clark }
20332d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK		0x000f0000
20342d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT		16
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)20352d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
20362d756322SRob Clark {
20372d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
20382d756322SRob Clark }
20392d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK		0x00f00000
20402d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT		20
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)20412d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
20422d756322SRob Clark {
20432d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
20442d756322SRob Clark }
20452d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK		0x0f000000
20462d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)20472d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
20482d756322SRob Clark {
20492d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
20502d756322SRob Clark }
20512d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK		0xf0000000
20522d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT		28
A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)20532d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
20542d756322SRob Clark {
20552d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
20562d756322SRob Clark }
20572d756322SRob Clark 
20582d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_BYTEL_1			0x00000611
20592d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK		0x0000000f
20602d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT		0
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)20612d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
20622d756322SRob Clark {
20632d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
20642d756322SRob Clark }
20652d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK		0x000000f0
20662d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT		4
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)20672d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
20682d756322SRob Clark {
20692d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
20702d756322SRob Clark }
20712d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK		0x00000f00
20722d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT		8
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)20732d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
20742d756322SRob Clark {
20752d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
20762d756322SRob Clark }
20772d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK		0x0000f000
20782d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT		12
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)20792d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
20802d756322SRob Clark {
20812d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
20822d756322SRob Clark }
20832d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK		0x000f0000
20842d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT		16
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)20852d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
20862d756322SRob Clark {
20872d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
20882d756322SRob Clark }
20892d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK		0x00f00000
20902d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT		20
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)20912d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
20922d756322SRob Clark {
20932d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
20942d756322SRob Clark }
20952d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK		0x0f000000
20962d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT		24
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)20972d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
20982d756322SRob Clark {
20992d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
21002d756322SRob Clark }
21012d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK		0xf0000000
21022d756322SRob Clark #define A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT		28
A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)21032d756322SRob Clark static inline uint32_t A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
21042d756322SRob Clark {
21052d756322SRob Clark 	return ((val) << A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
21062d756322SRob Clark }
21072d756322SRob Clark 
21082d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF1			0x0000062f
21092d756322SRob Clark 
21102d756322SRob Clark #define REG_A6XX_DBGC_CFG_DBGBUS_TRACE_BUF2			0x00000630
21112d756322SRob Clark 
REG_A6XX_VSC_PERFCTR_VSC_SEL(uint32_t i0)2112cc4c26d4SRob Clark static inline uint32_t REG_A6XX_VSC_PERFCTR_VSC_SEL(uint32_t i0) { return 0x00000cd8 + 0x1*i0; }
21132d756322SRob Clark 
21142d756322SRob Clark #define REG_A6XX_HLSQ_DBG_AHB_READ_APERTURE			0x0000c800
21152d756322SRob Clark 
21162d756322SRob Clark #define REG_A6XX_HLSQ_DBG_READ_SEL				0x0000d000
21172d756322SRob Clark 
21182d756322SRob Clark #define REG_A6XX_UCHE_ADDR_MODE_CNTL				0x00000e00
21192d756322SRob Clark 
21202d756322SRob Clark #define REG_A6XX_UCHE_MODE_CNTL					0x00000e01
21212d756322SRob Clark 
2122f73343faSRob Clark #define REG_A6XX_UCHE_WRITE_RANGE_MAX				0x00000e05
21232d756322SRob Clark 
2124f73343faSRob Clark #define REG_A6XX_UCHE_WRITE_THRU_BASE				0x00000e07
21252d756322SRob Clark 
2126f73343faSRob Clark #define REG_A6XX_UCHE_TRAP_BASE					0x00000e09
21272d756322SRob Clark 
2128f73343faSRob Clark #define REG_A6XX_UCHE_GMEM_RANGE_MIN				0x00000e0b
21292d756322SRob Clark 
2130f73343faSRob Clark #define REG_A6XX_UCHE_GMEM_RANGE_MAX				0x00000e0d
21312d756322SRob Clark 
21322d756322SRob Clark #define REG_A6XX_UCHE_CACHE_WAYS				0x00000e17
21332d756322SRob Clark 
21342d756322SRob Clark #define REG_A6XX_UCHE_FILTER_CNTL				0x00000e18
21352d756322SRob Clark 
21362d756322SRob Clark #define REG_A6XX_UCHE_CLIENT_PF					0x00000e19
21372d756322SRob Clark #define A6XX_UCHE_CLIENT_PF_PERFSEL__MASK			0x000000ff
21382d756322SRob Clark #define A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT			0
A6XX_UCHE_CLIENT_PF_PERFSEL(uint32_t val)21392d756322SRob Clark static inline uint32_t A6XX_UCHE_CLIENT_PF_PERFSEL(uint32_t val)
21402d756322SRob Clark {
21412d756322SRob Clark 	return ((val) << A6XX_UCHE_CLIENT_PF_PERFSEL__SHIFT) & A6XX_UCHE_CLIENT_PF_PERFSEL__MASK;
21422d756322SRob Clark }
21432d756322SRob Clark 
REG_A6XX_UCHE_PERFCTR_UCHE_SEL(uint32_t i0)2144cc4c26d4SRob Clark static inline uint32_t REG_A6XX_UCHE_PERFCTR_UCHE_SEL(uint32_t i0) { return 0x00000e1c + 0x1*i0; }
21452d756322SRob Clark 
2146f73343faSRob Clark #define REG_A6XX_UCHE_GBIF_GX_CONFIG				0x00000e3a
2147f73343faSRob Clark 
2148cc4c26d4SRob Clark #define REG_A6XX_UCHE_CMDQ_CONFIG				0x00000e3c
21492d756322SRob Clark 
21502d756322SRob Clark #define REG_A6XX_VBIF_VERSION					0x00003000
21512d756322SRob Clark 
2152a69c5ed2SRob Clark #define REG_A6XX_VBIF_CLKON					0x00003001
2153a69c5ed2SRob Clark #define A6XX_VBIF_CLKON_FORCE_ON_TESTBUS			0x00000002
2154a69c5ed2SRob Clark 
21552d756322SRob Clark #define REG_A6XX_VBIF_GATE_OFF_WRREQ_EN				0x0000302a
21562d756322SRob Clark 
21572d756322SRob Clark #define REG_A6XX_VBIF_XIN_HALT_CTRL0				0x00003080
21582d756322SRob Clark 
21592d756322SRob Clark #define REG_A6XX_VBIF_XIN_HALT_CTRL1				0x00003081
21602d756322SRob Clark 
2161a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS_OUT_CTRL				0x00003084
2162a69c5ed2SRob Clark 
2163a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS1_CTRL0				0x00003085
2164a69c5ed2SRob Clark 
2165a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS1_CTRL1				0x00003086
2166a69c5ed2SRob Clark #define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__MASK		0x0000000f
2167a69c5ed2SRob Clark #define A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__SHIFT		0
A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL(uint32_t val)2168a69c5ed2SRob Clark static inline uint32_t A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL(uint32_t val)
2169a69c5ed2SRob Clark {
2170a69c5ed2SRob Clark 	return ((val) << A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__SHIFT) & A6XX_VBIF_TEST_BUS1_CTRL1_DATA_SEL__MASK;
2171a69c5ed2SRob Clark }
2172a69c5ed2SRob Clark 
2173a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS2_CTRL0				0x00003087
2174a69c5ed2SRob Clark 
2175a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS2_CTRL1				0x00003088
2176a69c5ed2SRob Clark #define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__MASK		0x000001ff
2177a69c5ed2SRob Clark #define A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__SHIFT		0
A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL(uint32_t val)2178a69c5ed2SRob Clark static inline uint32_t A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL(uint32_t val)
2179a69c5ed2SRob Clark {
2180a69c5ed2SRob Clark 	return ((val) << A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__SHIFT) & A6XX_VBIF_TEST_BUS2_CTRL1_DATA_SEL__MASK;
2181a69c5ed2SRob Clark }
2182a69c5ed2SRob Clark 
2183a69c5ed2SRob Clark #define REG_A6XX_VBIF_TEST_BUS_OUT				0x0000308c
2184a69c5ed2SRob Clark 
21852d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_SEL0				0x000030d0
21862d756322SRob Clark 
21872d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_SEL1				0x000030d1
21882d756322SRob Clark 
21892d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_SEL2				0x000030d2
21902d756322SRob Clark 
21912d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_SEL3				0x000030d3
21922d756322SRob Clark 
21932d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_LOW0				0x000030d8
21942d756322SRob Clark 
21952d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_LOW1				0x000030d9
21962d756322SRob Clark 
21972d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_LOW2				0x000030da
21982d756322SRob Clark 
21992d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_LOW3				0x000030db
22002d756322SRob Clark 
22012d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_HIGH0				0x000030e0
22022d756322SRob Clark 
22032d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_HIGH1				0x000030e1
22042d756322SRob Clark 
22052d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_HIGH2				0x000030e2
22062d756322SRob Clark 
22072d756322SRob Clark #define REG_A6XX_VBIF_PERF_CNT_HIGH3				0x000030e3
22082d756322SRob Clark 
22092d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_EN0				0x00003100
22102d756322SRob Clark 
22112d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_EN1				0x00003101
22122d756322SRob Clark 
22132d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_EN2				0x00003102
22142d756322SRob Clark 
22152d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW0				0x00003110
22162d756322SRob Clark 
22172d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW1				0x00003111
22182d756322SRob Clark 
22192d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_LOW2				0x00003112
22202d756322SRob Clark 
22212d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH0			0x00003118
22222d756322SRob Clark 
22232d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH1			0x00003119
22242d756322SRob Clark 
22252d756322SRob Clark #define REG_A6XX_VBIF_PERF_PWR_CNT_HIGH2			0x0000311a
22262d756322SRob Clark 
2227cc4c26d4SRob Clark #define REG_A6XX_GBIF_SCACHE_CNTL0				0x00003c01
2228cc4c26d4SRob Clark 
2229e812744cSSharat Masetty #define REG_A6XX_GBIF_SCACHE_CNTL1				0x00003c02
2230e812744cSSharat Masetty 
2231e812744cSSharat Masetty #define REG_A6XX_GBIF_QSB_SIDE0					0x00003c03
2232e812744cSSharat Masetty 
2233e812744cSSharat Masetty #define REG_A6XX_GBIF_QSB_SIDE1					0x00003c04
2234e812744cSSharat Masetty 
2235e812744cSSharat Masetty #define REG_A6XX_GBIF_QSB_SIDE2					0x00003c05
2236e812744cSSharat Masetty 
2237e812744cSSharat Masetty #define REG_A6XX_GBIF_QSB_SIDE3					0x00003c06
2238e812744cSSharat Masetty 
2239e812744cSSharat Masetty #define REG_A6XX_GBIF_HALT					0x00003c45
2240e812744cSSharat Masetty 
2241e812744cSSharat Masetty #define REG_A6XX_GBIF_HALT_ACK					0x00003c46
2242e812744cSSharat Masetty 
2243e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_PWR_CNT_EN				0x00003cc0
2244e812744cSSharat Masetty 
2245f73343faSRob Clark #define REG_A6XX_GBIF_PERF_PWR_CNT_CLR				0x00003cc1
2246f73343faSRob Clark 
2247e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_SEL				0x00003cc2
2248e812744cSSharat Masetty 
2249e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_PWR_CNT_SEL				0x00003cc3
2250e812744cSSharat Masetty 
2251e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_LOW0				0x00003cc4
2252e812744cSSharat Masetty 
2253e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_LOW1				0x00003cc5
2254e812744cSSharat Masetty 
2255e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_LOW2				0x00003cc6
2256e812744cSSharat Masetty 
2257e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_LOW3				0x00003cc7
2258e812744cSSharat Masetty 
2259e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_HIGH0				0x00003cc8
2260e812744cSSharat Masetty 
2261e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_HIGH1				0x00003cc9
2262e812744cSSharat Masetty 
2263e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_HIGH2				0x00003cca
2264e812744cSSharat Masetty 
2265e812744cSSharat Masetty #define REG_A6XX_GBIF_PERF_CNT_HIGH3				0x00003ccb
2266e812744cSSharat Masetty 
2267e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_LOW0				0x00003ccc
2268e812744cSSharat Masetty 
2269e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_LOW1				0x00003ccd
2270e812744cSSharat Masetty 
2271e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_LOW2				0x00003cce
2272e812744cSSharat Masetty 
2273e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_HIGH0				0x00003ccf
2274e812744cSSharat Masetty 
2275e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_HIGH1				0x00003cd0
2276e812744cSSharat Masetty 
2277e812744cSSharat Masetty #define REG_A6XX_GBIF_PWR_CNT_HIGH2				0x00003cd1
2278e812744cSSharat Masetty 
227957cfe41cSRob Clark #define REG_A6XX_VSC_DBG_ECO_CNTL				0x00000c00
228057cfe41cSRob Clark 
22812d756322SRob Clark #define REG_A6XX_VSC_BIN_SIZE					0x00000c02
22822d756322SRob Clark #define A6XX_VSC_BIN_SIZE_WIDTH__MASK				0x000000ff
22832d756322SRob Clark #define A6XX_VSC_BIN_SIZE_WIDTH__SHIFT				0
A6XX_VSC_BIN_SIZE_WIDTH(uint32_t val)22842d756322SRob Clark static inline uint32_t A6XX_VSC_BIN_SIZE_WIDTH(uint32_t val)
22852d756322SRob Clark {
22862d756322SRob Clark 	return ((val >> 5) << A6XX_VSC_BIN_SIZE_WIDTH__SHIFT) & A6XX_VSC_BIN_SIZE_WIDTH__MASK;
22872d756322SRob Clark }
22882d756322SRob Clark #define A6XX_VSC_BIN_SIZE_HEIGHT__MASK				0x0001ff00
22892d756322SRob Clark #define A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT				8
A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)22902d756322SRob Clark static inline uint32_t A6XX_VSC_BIN_SIZE_HEIGHT(uint32_t val)
22912d756322SRob Clark {
22922d756322SRob Clark 	return ((val >> 4) << A6XX_VSC_BIN_SIZE_HEIGHT__SHIFT) & A6XX_VSC_BIN_SIZE_HEIGHT__MASK;
22932d756322SRob Clark }
22942d756322SRob Clark 
2295c28c82e9SRob Clark #define REG_A6XX_VSC_DRAW_STRM_SIZE_ADDRESS			0x00000c03
22962d756322SRob Clark 
22972d756322SRob Clark #define REG_A6XX_VSC_BIN_COUNT					0x00000c06
22982d756322SRob Clark #define A6XX_VSC_BIN_COUNT_NX__MASK				0x000007fe
22992d756322SRob Clark #define A6XX_VSC_BIN_COUNT_NX__SHIFT				1
A6XX_VSC_BIN_COUNT_NX(uint32_t val)23002d756322SRob Clark static inline uint32_t A6XX_VSC_BIN_COUNT_NX(uint32_t val)
23012d756322SRob Clark {
23022d756322SRob Clark 	return ((val) << A6XX_VSC_BIN_COUNT_NX__SHIFT) & A6XX_VSC_BIN_COUNT_NX__MASK;
23032d756322SRob Clark }
23042d756322SRob Clark #define A6XX_VSC_BIN_COUNT_NY__MASK				0x001ff800
23052d756322SRob Clark #define A6XX_VSC_BIN_COUNT_NY__SHIFT				11
A6XX_VSC_BIN_COUNT_NY(uint32_t val)23062d756322SRob Clark static inline uint32_t A6XX_VSC_BIN_COUNT_NY(uint32_t val)
23072d756322SRob Clark {
23082d756322SRob Clark 	return ((val) << A6XX_VSC_BIN_COUNT_NY__SHIFT) & A6XX_VSC_BIN_COUNT_NY__MASK;
23092d756322SRob Clark }
23102d756322SRob Clark 
REG_A6XX_VSC_PIPE_CONFIG(uint32_t i0)23112d756322SRob Clark static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
23122d756322SRob Clark 
REG_A6XX_VSC_PIPE_CONFIG_REG(uint32_t i0)23132d756322SRob Clark static inline uint32_t REG_A6XX_VSC_PIPE_CONFIG_REG(uint32_t i0) { return 0x00000c10 + 0x1*i0; }
23142d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_X__MASK			0x000003ff
23152d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT			0
A6XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)23162d756322SRob Clark static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_X(uint32_t val)
23172d756322SRob Clark {
23182d756322SRob Clark 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_X__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_X__MASK;
23192d756322SRob Clark }
23202d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_Y__MASK			0x000ffc00
23212d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT			10
A6XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)23222d756322SRob Clark static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_Y(uint32_t val)
23232d756322SRob Clark {
23242d756322SRob Clark 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_Y__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_Y__MASK;
23252d756322SRob Clark }
23262d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_W__MASK			0x03f00000
23272d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT			20
A6XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)23282d756322SRob Clark static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_W(uint32_t val)
23292d756322SRob Clark {
23302d756322SRob Clark 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_W__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_W__MASK;
23312d756322SRob Clark }
23322d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_H__MASK			0xfc000000
23332d756322SRob Clark #define A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT			26
A6XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)23342d756322SRob Clark static inline uint32_t A6XX_VSC_PIPE_CONFIG_REG_H(uint32_t val)
23352d756322SRob Clark {
23362d756322SRob Clark 	return ((val) << A6XX_VSC_PIPE_CONFIG_REG_H__SHIFT) & A6XX_VSC_PIPE_CONFIG_REG_H__MASK;
23372d756322SRob Clark }
23382d756322SRob Clark 
2339c28c82e9SRob Clark #define REG_A6XX_VSC_PRIM_STRM_ADDRESS				0x00000c30
2340a69c5ed2SRob Clark 
2341c28c82e9SRob Clark #define REG_A6XX_VSC_PRIM_STRM_PITCH				0x00000c32
23422d756322SRob Clark 
2343c28c82e9SRob Clark #define REG_A6XX_VSC_PRIM_STRM_LIMIT				0x00000c33
23442d756322SRob Clark 
2345c28c82e9SRob Clark #define REG_A6XX_VSC_DRAW_STRM_ADDRESS				0x00000c34
2346a69c5ed2SRob Clark 
2347c28c82e9SRob Clark #define REG_A6XX_VSC_DRAW_STRM_PITCH				0x00000c36
23482d756322SRob Clark 
2349c28c82e9SRob Clark #define REG_A6XX_VSC_DRAW_STRM_LIMIT				0x00000c37
2350c28c82e9SRob Clark 
REG_A6XX_VSC_STATE(uint32_t i0)2351c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_STATE(uint32_t i0) { return 0x00000c38 + 0x1*i0; }
2352c28c82e9SRob Clark 
REG_A6XX_VSC_STATE_REG(uint32_t i0)2353c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_STATE_REG(uint32_t i0) { return 0x00000c38 + 0x1*i0; }
2354c28c82e9SRob Clark 
REG_A6XX_VSC_PRIM_STRM_SIZE(uint32_t i0)2355c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE(uint32_t i0) { return 0x00000c58 + 0x1*i0; }
2356c28c82e9SRob Clark 
REG_A6XX_VSC_PRIM_STRM_SIZE_REG(uint32_t i0)2357c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_PRIM_STRM_SIZE_REG(uint32_t i0) { return 0x00000c58 + 0x1*i0; }
2358c28c82e9SRob Clark 
REG_A6XX_VSC_DRAW_STRM_SIZE(uint32_t i0)2359c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_DRAW_STRM_SIZE(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
2360c28c82e9SRob Clark 
REG_A6XX_VSC_DRAW_STRM_SIZE_REG(uint32_t i0)2361c28c82e9SRob Clark static inline uint32_t REG_A6XX_VSC_DRAW_STRM_SIZE_REG(uint32_t i0) { return 0x00000c78 + 0x1*i0; }
23622d756322SRob Clark 
23632d756322SRob Clark #define REG_A6XX_UCHE_UNKNOWN_0E12				0x00000e12
23642d756322SRob Clark 
2365c28c82e9SRob Clark #define REG_A6XX_GRAS_CL_CNTL					0x00008000
2366c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_CLIP_DISABLE				0x00000001
2367c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_ZNEAR_CLIP_DISABLE			0x00000002
2368c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_ZFAR_CLIP_DISABLE			0x00000004
2369f73343faSRob Clark #define A6XX_GRAS_CL_CNTL_Z_CLAMP_ENABLE			0x00000020
2370c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_ZERO_GB_SCALE_Z			0x00000040
2371c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_VP_CLIP_CODE_IGNORE			0x00000080
2372c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_VP_XFORM_DISABLE			0x00000100
2373c28c82e9SRob Clark #define A6XX_GRAS_CL_CNTL_PERSP_DIVISION_DISABLE		0x00000200
2374a69c5ed2SRob Clark 
2375c28c82e9SRob Clark #define REG_A6XX_GRAS_VS_CL_CNTL				0x00008001
2376c28c82e9SRob Clark #define A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2377c28c82e9SRob Clark #define A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_VS_CL_CNTL_CLIP_MASK(uint32_t val)2378c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_VS_CL_CNTL_CLIP_MASK(uint32_t val)
2379c28c82e9SRob Clark {
2380c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_VS_CL_CNTL_CLIP_MASK__MASK;
2381c28c82e9SRob Clark }
2382c28c82e9SRob Clark #define A6XX_GRAS_VS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2383c28c82e9SRob Clark #define A6XX_GRAS_VS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_VS_CL_CNTL_CULL_MASK(uint32_t val)2384c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_VS_CL_CNTL_CULL_MASK(uint32_t val)
2385c28c82e9SRob Clark {
2386c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_VS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_VS_CL_CNTL_CULL_MASK__MASK;
2387c28c82e9SRob Clark }
23882d756322SRob Clark 
2389c28c82e9SRob Clark #define REG_A6XX_GRAS_DS_CL_CNTL				0x00008002
2390c28c82e9SRob Clark #define A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2391c28c82e9SRob Clark #define A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_DS_CL_CNTL_CLIP_MASK(uint32_t val)2392c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_DS_CL_CNTL_CLIP_MASK(uint32_t val)
2393c28c82e9SRob Clark {
2394c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_DS_CL_CNTL_CLIP_MASK__MASK;
2395c28c82e9SRob Clark }
2396c28c82e9SRob Clark #define A6XX_GRAS_DS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2397c28c82e9SRob Clark #define A6XX_GRAS_DS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_DS_CL_CNTL_CULL_MASK(uint32_t val)2398c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_DS_CL_CNTL_CULL_MASK(uint32_t val)
2399c28c82e9SRob Clark {
2400c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_DS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_DS_CL_CNTL_CULL_MASK__MASK;
2401c28c82e9SRob Clark }
2402c28c82e9SRob Clark 
2403c28c82e9SRob Clark #define REG_A6XX_GRAS_GS_CL_CNTL				0x00008003
2404c28c82e9SRob Clark #define A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__MASK			0x000000ff
2405c28c82e9SRob Clark #define A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__SHIFT			0
A6XX_GRAS_GS_CL_CNTL_CLIP_MASK(uint32_t val)2406c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_GS_CL_CNTL_CLIP_MASK(uint32_t val)
2407c28c82e9SRob Clark {
2408c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__SHIFT) & A6XX_GRAS_GS_CL_CNTL_CLIP_MASK__MASK;
2409c28c82e9SRob Clark }
2410c28c82e9SRob Clark #define A6XX_GRAS_GS_CL_CNTL_CULL_MASK__MASK			0x0000ff00
2411c28c82e9SRob Clark #define A6XX_GRAS_GS_CL_CNTL_CULL_MASK__SHIFT			8
A6XX_GRAS_GS_CL_CNTL_CULL_MASK(uint32_t val)2412c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_GS_CL_CNTL_CULL_MASK(uint32_t val)
2413c28c82e9SRob Clark {
2414c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_GS_CL_CNTL_CULL_MASK__SHIFT) & A6XX_GRAS_GS_CL_CNTL_CULL_MASK__MASK;
2415c28c82e9SRob Clark }
2416c28c82e9SRob Clark 
2417c28c82e9SRob Clark #define REG_A6XX_GRAS_MAX_LAYER_INDEX				0x00008004
24182d756322SRob Clark 
24192d756322SRob Clark #define REG_A6XX_GRAS_CNTL					0x00008005
2420c28c82e9SRob Clark #define A6XX_GRAS_CNTL_IJ_PERSP_PIXEL				0x00000001
2421c28c82e9SRob Clark #define A6XX_GRAS_CNTL_IJ_PERSP_CENTROID			0x00000002
2422c28c82e9SRob Clark #define A6XX_GRAS_CNTL_IJ_PERSP_SAMPLE				0x00000004
242357cfe41cSRob Clark #define A6XX_GRAS_CNTL_IJ_LINEAR_PIXEL				0x00000008
242457cfe41cSRob Clark #define A6XX_GRAS_CNTL_IJ_LINEAR_CENTROID			0x00000010
242557cfe41cSRob Clark #define A6XX_GRAS_CNTL_IJ_LINEAR_SAMPLE				0x00000020
2426c28c82e9SRob Clark #define A6XX_GRAS_CNTL_COORD_MASK__MASK				0x000003c0
2427c28c82e9SRob Clark #define A6XX_GRAS_CNTL_COORD_MASK__SHIFT			6
A6XX_GRAS_CNTL_COORD_MASK(uint32_t val)2428c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CNTL_COORD_MASK(uint32_t val)
2429c28c82e9SRob Clark {
2430c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_CNTL_COORD_MASK__SHIFT) & A6XX_GRAS_CNTL_COORD_MASK__MASK;
2431c28c82e9SRob Clark }
24322d756322SRob Clark 
24332d756322SRob Clark #define REG_A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ			0x00008006
2434c28c82e9SRob Clark #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK		0x000001ff
24352d756322SRob Clark #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT		0
A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)24362d756322SRob Clark static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ(uint32_t val)
24372d756322SRob Clark {
24382d756322SRob Clark 	return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_HORZ__MASK;
24392d756322SRob Clark }
2440c28c82e9SRob Clark #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK		0x0007fc00
24412d756322SRob Clark #define A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT		10
A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)24422d756322SRob Clark static inline uint32_t A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT(uint32_t val)
24432d756322SRob Clark {
24442d756322SRob Clark 	return ((val) << A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__SHIFT) & A6XX_GRAS_CL_GUARDBAND_CLIP_ADJ_VERT__MASK;
24452d756322SRob Clark }
24462d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT(uint32_t i0)2447c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT(uint32_t i0) { return 0x00008010 + 0x6*i0; }
2448c28c82e9SRob Clark 
REG_A6XX_GRAS_CL_VPORT_XOFFSET(uint32_t i0)2449c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_XOFFSET(uint32_t i0) { return 0x00008010 + 0x6*i0; }
2450c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_XOFFSET__MASK			0xffffffff
2451c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_XOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_XOFFSET(float val)2452c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_XOFFSET(float val)
24532d756322SRob Clark {
2454c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_XOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_XOFFSET__MASK;
24552d756322SRob Clark }
24562d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT_XSCALE(uint32_t i0)2457c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_XSCALE(uint32_t i0) { return 0x00008011 + 0x6*i0; }
2458c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_XSCALE__MASK				0xffffffff
2459c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_XSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_XSCALE(float val)2460c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_XSCALE(float val)
24612d756322SRob Clark {
2462c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_XSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_XSCALE__MASK;
24632d756322SRob Clark }
24642d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT_YOFFSET(uint32_t i0)2465c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_YOFFSET(uint32_t i0) { return 0x00008012 + 0x6*i0; }
2466c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_YOFFSET__MASK			0xffffffff
2467c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_YOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_YOFFSET(float val)2468c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_YOFFSET(float val)
24692d756322SRob Clark {
2470c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_YOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_YOFFSET__MASK;
24712d756322SRob Clark }
24722d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT_YSCALE(uint32_t i0)2473c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_YSCALE(uint32_t i0) { return 0x00008013 + 0x6*i0; }
2474c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_YSCALE__MASK				0xffffffff
2475c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_YSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_YSCALE(float val)2476c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_YSCALE(float val)
24772d756322SRob Clark {
2478c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_YSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_YSCALE__MASK;
24792d756322SRob Clark }
24802d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT_ZOFFSET(uint32_t i0)2481c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_ZOFFSET(uint32_t i0) { return 0x00008014 + 0x6*i0; }
2482c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_ZOFFSET__MASK			0xffffffff
2483c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_ZOFFSET__SHIFT			0
A6XX_GRAS_CL_VPORT_ZOFFSET(float val)2484c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_ZOFFSET(float val)
24852d756322SRob Clark {
2486c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZOFFSET__SHIFT) & A6XX_GRAS_CL_VPORT_ZOFFSET__MASK;
24872d756322SRob Clark }
24882d756322SRob Clark 
REG_A6XX_GRAS_CL_VPORT_ZSCALE(uint32_t i0)2489c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_VPORT_ZSCALE(uint32_t i0) { return 0x00008015 + 0x6*i0; }
2490c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_ZSCALE__MASK				0xffffffff
2491c28c82e9SRob Clark #define A6XX_GRAS_CL_VPORT_ZSCALE__SHIFT			0
A6XX_GRAS_CL_VPORT_ZSCALE(float val)2492c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_VPORT_ZSCALE(float val)
24932d756322SRob Clark {
2494c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_VPORT_ZSCALE__SHIFT) & A6XX_GRAS_CL_VPORT_ZSCALE__MASK;
2495c28c82e9SRob Clark }
2496c28c82e9SRob Clark 
REG_A6XX_GRAS_CL_Z_CLAMP(uint32_t i0)2497c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP(uint32_t i0) { return 0x00008070 + 0x2*i0; }
2498c28c82e9SRob Clark 
REG_A6XX_GRAS_CL_Z_CLAMP_MIN(uint32_t i0)2499c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP_MIN(uint32_t i0) { return 0x00008070 + 0x2*i0; }
2500c28c82e9SRob Clark #define A6XX_GRAS_CL_Z_CLAMP_MIN__MASK				0xffffffff
2501c28c82e9SRob Clark #define A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT				0
A6XX_GRAS_CL_Z_CLAMP_MIN(float val)2502c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MIN(float val)
2503c28c82e9SRob Clark {
2504c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MIN__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MIN__MASK;
2505c28c82e9SRob Clark }
2506c28c82e9SRob Clark 
REG_A6XX_GRAS_CL_Z_CLAMP_MAX(uint32_t i0)2507c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_CL_Z_CLAMP_MAX(uint32_t i0) { return 0x00008071 + 0x2*i0; }
2508c28c82e9SRob Clark #define A6XX_GRAS_CL_Z_CLAMP_MAX__MASK				0xffffffff
2509c28c82e9SRob Clark #define A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT				0
A6XX_GRAS_CL_Z_CLAMP_MAX(float val)2510c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_CL_Z_CLAMP_MAX(float val)
2511c28c82e9SRob Clark {
2512c28c82e9SRob Clark 	return ((fui(val)) << A6XX_GRAS_CL_Z_CLAMP_MAX__SHIFT) & A6XX_GRAS_CL_Z_CLAMP_MAX__MASK;
25132d756322SRob Clark }
25142d756322SRob Clark 
25152d756322SRob Clark #define REG_A6XX_GRAS_SU_CNTL					0x00008090
25162d756322SRob Clark #define A6XX_GRAS_SU_CNTL_CULL_FRONT				0x00000001
25172d756322SRob Clark #define A6XX_GRAS_SU_CNTL_CULL_BACK				0x00000002
25182d756322SRob Clark #define A6XX_GRAS_SU_CNTL_FRONT_CW				0x00000004
25192d756322SRob Clark #define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK			0x000007f8
25202d756322SRob Clark #define A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT			3
A6XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)25212d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_CNTL_LINEHALFWIDTH(float val)
25222d756322SRob Clark {
25232d756322SRob Clark 	return ((((int32_t)(val * 4.0))) << A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__SHIFT) & A6XX_GRAS_SU_CNTL_LINEHALFWIDTH__MASK;
25242d756322SRob Clark }
25252d756322SRob Clark #define A6XX_GRAS_SU_CNTL_POLY_OFFSET				0x00000800
2526c28c82e9SRob Clark #define A6XX_GRAS_SU_CNTL_UNK12__MASK				0x00001000
2527c28c82e9SRob Clark #define A6XX_GRAS_SU_CNTL_UNK12__SHIFT				12
A6XX_GRAS_SU_CNTL_UNK12(uint32_t val)2528c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SU_CNTL_UNK12(uint32_t val)
2529c28c82e9SRob Clark {
2530c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SU_CNTL_UNK12__SHIFT) & A6XX_GRAS_SU_CNTL_UNK12__MASK;
2531c28c82e9SRob Clark }
253257cfe41cSRob Clark #define A6XX_GRAS_SU_CNTL_LINE_MODE__MASK			0x00002000
253357cfe41cSRob Clark #define A6XX_GRAS_SU_CNTL_LINE_MODE__SHIFT			13
A6XX_GRAS_SU_CNTL_LINE_MODE(enum a5xx_line_mode val)253457cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SU_CNTL_LINE_MODE(enum a5xx_line_mode val)
253557cfe41cSRob Clark {
253657cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SU_CNTL_LINE_MODE__SHIFT) & A6XX_GRAS_SU_CNTL_LINE_MODE__MASK;
253757cfe41cSRob Clark }
2538cc4c26d4SRob Clark #define A6XX_GRAS_SU_CNTL_UNK15__MASK				0x00018000
2539c28c82e9SRob Clark #define A6XX_GRAS_SU_CNTL_UNK15__SHIFT				15
A6XX_GRAS_SU_CNTL_UNK15(uint32_t val)2540c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SU_CNTL_UNK15(uint32_t val)
2541c28c82e9SRob Clark {
2542c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SU_CNTL_UNK15__SHIFT) & A6XX_GRAS_SU_CNTL_UNK15__MASK;
2543c28c82e9SRob Clark }
2544cc4c26d4SRob Clark #define A6XX_GRAS_SU_CNTL_UNK17					0x00020000
2545cc4c26d4SRob Clark #define A6XX_GRAS_SU_CNTL_MULTIVIEW_ENABLE			0x00040000
2546cc4c26d4SRob Clark #define A6XX_GRAS_SU_CNTL_UNK19__MASK				0x00780000
2547cc4c26d4SRob Clark #define A6XX_GRAS_SU_CNTL_UNK19__SHIFT				19
A6XX_GRAS_SU_CNTL_UNK19(uint32_t val)2548cc4c26d4SRob Clark static inline uint32_t A6XX_GRAS_SU_CNTL_UNK19(uint32_t val)
2549cc4c26d4SRob Clark {
2550cc4c26d4SRob Clark 	return ((val) << A6XX_GRAS_SU_CNTL_UNK19__SHIFT) & A6XX_GRAS_SU_CNTL_UNK19__MASK;
2551cc4c26d4SRob Clark }
25522d756322SRob Clark 
25532d756322SRob Clark #define REG_A6XX_GRAS_SU_POINT_MINMAX				0x00008091
25542d756322SRob Clark #define A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK			0x0000ffff
25552d756322SRob Clark #define A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT			0
A6XX_GRAS_SU_POINT_MINMAX_MIN(float val)25562d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MIN(float val)
25572d756322SRob Clark {
25582d756322SRob Clark 	return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MIN__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MIN__MASK;
25592d756322SRob Clark }
25602d756322SRob Clark #define A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK			0xffff0000
25612d756322SRob Clark #define A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT			16
A6XX_GRAS_SU_POINT_MINMAX_MAX(float val)25622d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POINT_MINMAX_MAX(float val)
25632d756322SRob Clark {
25642d756322SRob Clark 	return ((((uint32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_MINMAX_MAX__SHIFT) & A6XX_GRAS_SU_POINT_MINMAX_MAX__MASK;
25652d756322SRob Clark }
25662d756322SRob Clark 
25672d756322SRob Clark #define REG_A6XX_GRAS_SU_POINT_SIZE				0x00008092
2568c28c82e9SRob Clark #define A6XX_GRAS_SU_POINT_SIZE__MASK				0x0000ffff
25692d756322SRob Clark #define A6XX_GRAS_SU_POINT_SIZE__SHIFT				0
A6XX_GRAS_SU_POINT_SIZE(float val)25702d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POINT_SIZE(float val)
25712d756322SRob Clark {
25722d756322SRob Clark 	return ((((int32_t)(val * 16.0))) << A6XX_GRAS_SU_POINT_SIZE__SHIFT) & A6XX_GRAS_SU_POINT_SIZE__MASK;
25732d756322SRob Clark }
25742d756322SRob Clark 
2575a69c5ed2SRob Clark #define REG_A6XX_GRAS_SU_DEPTH_PLANE_CNTL			0x00008094
2576c28c82e9SRob Clark #define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK		0x00000003
2577c28c82e9SRob Clark #define A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT		0
A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)2578c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)
2579c28c82e9SRob Clark {
2580c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_GRAS_SU_DEPTH_PLANE_CNTL_Z_MODE__MASK;
2581c28c82e9SRob Clark }
2582a69c5ed2SRob Clark 
25832d756322SRob Clark #define REG_A6XX_GRAS_SU_POLY_OFFSET_SCALE			0x00008095
25842d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK			0xffffffff
25852d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT			0
A6XX_GRAS_SU_POLY_OFFSET_SCALE(float val)25862d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_SCALE(float val)
25872d756322SRob Clark {
25882d756322SRob Clark 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_SCALE__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_SCALE__MASK;
25892d756322SRob Clark }
25902d756322SRob Clark 
25912d756322SRob Clark #define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET			0x00008096
25922d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK			0xffffffff
25932d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT			0
A6XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)25942d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET(float val)
25952d756322SRob Clark {
25962d756322SRob Clark 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET__MASK;
25972d756322SRob Clark }
25982d756322SRob Clark 
25992d756322SRob Clark #define REG_A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP		0x00008097
26002d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK		0xffffffff
26012d756322SRob Clark #define A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT		0
A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)26022d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP(float val)
26032d756322SRob Clark {
26042d756322SRob Clark 	return ((fui(val)) << A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__SHIFT) & A6XX_GRAS_SU_POLY_OFFSET_OFFSET_CLAMP__MASK;
26052d756322SRob Clark }
26062d756322SRob Clark 
26072d756322SRob Clark #define REG_A6XX_GRAS_SU_DEPTH_BUFFER_INFO			0x00008098
26082d756322SRob Clark #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK	0x00000007
26092d756322SRob Clark #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT	0
A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)26102d756322SRob Clark static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
26112d756322SRob Clark {
26122d756322SRob Clark 	return ((val) << A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_GRAS_SU_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
26132d756322SRob Clark }
2614c28c82e9SRob Clark #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__MASK		0x00000008
2615c28c82e9SRob Clark #define A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__SHIFT		3
A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3(uint32_t val)2616c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3(uint32_t val)
2617c28c82e9SRob Clark {
2618c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__SHIFT) & A6XX_GRAS_SU_DEPTH_BUFFER_INFO_UNK3__MASK;
2619c28c82e9SRob Clark }
26202d756322SRob Clark 
262157cfe41cSRob Clark #define REG_A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL			0x00008099
262257cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_CONSERVATIVERASEN	0x00000001
262357cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT__MASK	0x00000006
262457cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT__SHIFT	1
A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT(uint32_t val)262557cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT(uint32_t val)
262657cfe41cSRob Clark {
262757cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT__SHIFT) & A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_SHIFTAMOUNT__MASK;
262857cfe41cSRob Clark }
262957cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_INNERCONSERVATIVERASEN	0x00000008
263057cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4__MASK		0x00000030
263157cfe41cSRob Clark #define A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4__SHIFT		4
A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4(uint32_t val)263257cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4(uint32_t val)
263357cfe41cSRob Clark {
263457cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4__SHIFT) & A6XX_GRAS_SU_CONSERVATIVE_RAS_CNTL_UNK4__MASK;
263557cfe41cSRob Clark }
26362d756322SRob Clark 
263757cfe41cSRob Clark #define REG_A6XX_GRAS_SU_PATH_RENDERING_CNTL			0x0000809a
263857cfe41cSRob Clark #define A6XX_GRAS_SU_PATH_RENDERING_CNTL_UNK0			0x00000001
263957cfe41cSRob Clark #define A6XX_GRAS_SU_PATH_RENDERING_CNTL_LINELENGTHEN		0x00000002
2640c28c82e9SRob Clark 
2641c28c82e9SRob Clark #define REG_A6XX_GRAS_VS_LAYER_CNTL				0x0000809b
2642c28c82e9SRob Clark #define A6XX_GRAS_VS_LAYER_CNTL_WRITES_LAYER			0x00000001
2643c28c82e9SRob Clark #define A6XX_GRAS_VS_LAYER_CNTL_WRITES_VIEW			0x00000002
2644c28c82e9SRob Clark 
2645c28c82e9SRob Clark #define REG_A6XX_GRAS_GS_LAYER_CNTL				0x0000809c
2646c28c82e9SRob Clark #define A6XX_GRAS_GS_LAYER_CNTL_WRITES_LAYER			0x00000001
2647c28c82e9SRob Clark #define A6XX_GRAS_GS_LAYER_CNTL_WRITES_VIEW			0x00000002
2648c28c82e9SRob Clark 
2649c28c82e9SRob Clark #define REG_A6XX_GRAS_DS_LAYER_CNTL				0x0000809d
2650c28c82e9SRob Clark #define A6XX_GRAS_DS_LAYER_CNTL_WRITES_LAYER			0x00000001
2651c28c82e9SRob Clark #define A6XX_GRAS_DS_LAYER_CNTL_WRITES_VIEW			0x00000002
26522d756322SRob Clark 
265357cfe41cSRob Clark #define REG_A6XX_GRAS_SC_CNTL					0x000080a0
265457cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE__MASK		0x00000007
265557cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE__SHIFT		0
A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE(uint32_t val)265657cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE(uint32_t val)
265757cfe41cSRob Clark {
265857cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE__SHIFT) & A6XX_GRAS_SC_CNTL_CCUSINGLECACHELINESIZE__MASK;
265957cfe41cSRob Clark }
266057cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE__MASK		0x00000018
266157cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE__SHIFT		3
A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE(enum a6xx_single_prim_mode val)266257cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE(enum a6xx_single_prim_mode val)
266357cfe41cSRob Clark {
266457cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE__SHIFT) & A6XX_GRAS_SC_CNTL_SINGLE_PRIM_MODE__MASK;
266557cfe41cSRob Clark }
266657cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_RASTER_MODE__MASK			0x00000020
266757cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_RASTER_MODE__SHIFT			5
A6XX_GRAS_SC_CNTL_RASTER_MODE(enum a6xx_raster_mode val)266857cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_RASTER_MODE(enum a6xx_raster_mode val)
266957cfe41cSRob Clark {
267057cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_RASTER_MODE__SHIFT) & A6XX_GRAS_SC_CNTL_RASTER_MODE__MASK;
267157cfe41cSRob Clark }
267257cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_RASTER_DIRECTION__MASK		0x000000c0
267357cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_RASTER_DIRECTION__SHIFT		6
A6XX_GRAS_SC_CNTL_RASTER_DIRECTION(enum a6xx_raster_direction val)267457cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_RASTER_DIRECTION(enum a6xx_raster_direction val)
267557cfe41cSRob Clark {
267657cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_RASTER_DIRECTION__SHIFT) & A6XX_GRAS_SC_CNTL_RASTER_DIRECTION__MASK;
267757cfe41cSRob Clark }
267857cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION__MASK	0x00000100
267957cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION__SHIFT	8
A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION(enum a6xx_sequenced_thread_dist val)268057cfe41cSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION(enum a6xx_sequenced_thread_dist val)
268157cfe41cSRob Clark {
268257cfe41cSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION__SHIFT) & A6XX_GRAS_SC_CNTL_SEQUENCED_THREAD_DISTRIBUTION__MASK;
268357cfe41cSRob Clark }
2684f73343faSRob Clark #define A6XX_GRAS_SC_CNTL_UNK9					0x00000200
2685f73343faSRob Clark #define A6XX_GRAS_SC_CNTL_ROTATION__MASK			0x00000c00
2686f73343faSRob Clark #define A6XX_GRAS_SC_CNTL_ROTATION__SHIFT			10
A6XX_GRAS_SC_CNTL_ROTATION(uint32_t val)2687f73343faSRob Clark static inline uint32_t A6XX_GRAS_SC_CNTL_ROTATION(uint32_t val)
268857cfe41cSRob Clark {
2689f73343faSRob Clark 	return ((val) << A6XX_GRAS_SC_CNTL_ROTATION__SHIFT) & A6XX_GRAS_SC_CNTL_ROTATION__MASK;
269057cfe41cSRob Clark }
269157cfe41cSRob Clark #define A6XX_GRAS_SC_CNTL_EARLYVIZOUTEN				0x00001000
2692a69c5ed2SRob Clark 
2693c28c82e9SRob Clark #define REG_A6XX_GRAS_BIN_CONTROL				0x000080a1
2694c28c82e9SRob Clark #define A6XX_GRAS_BIN_CONTROL_BINW__MASK			0x0000003f
2695c28c82e9SRob Clark #define A6XX_GRAS_BIN_CONTROL_BINW__SHIFT			0
A6XX_GRAS_BIN_CONTROL_BINW(uint32_t val)2696c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_BINW(uint32_t val)
2697c28c82e9SRob Clark {
2698c28c82e9SRob Clark 	return ((val >> 5) << A6XX_GRAS_BIN_CONTROL_BINW__SHIFT) & A6XX_GRAS_BIN_CONTROL_BINW__MASK;
2699c28c82e9SRob Clark }
2700c28c82e9SRob Clark #define A6XX_GRAS_BIN_CONTROL_BINH__MASK			0x00007f00
2701c28c82e9SRob Clark #define A6XX_GRAS_BIN_CONTROL_BINH__SHIFT			8
A6XX_GRAS_BIN_CONTROL_BINH(uint32_t val)2702c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_BINH(uint32_t val)
2703c28c82e9SRob Clark {
2704c28c82e9SRob Clark 	return ((val >> 4) << A6XX_GRAS_BIN_CONTROL_BINH__SHIFT) & A6XX_GRAS_BIN_CONTROL_BINH__MASK;
2705c28c82e9SRob Clark }
270657cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_RENDER_MODE__MASK			0x001c0000
270757cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_RENDER_MODE__SHIFT		18
A6XX_GRAS_BIN_CONTROL_RENDER_MODE(enum a6xx_render_mode val)270857cfe41cSRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_RENDER_MODE(enum a6xx_render_mode val)
2709c28c82e9SRob Clark {
271057cfe41cSRob Clark 	return ((val) << A6XX_GRAS_BIN_CONTROL_RENDER_MODE__SHIFT) & A6XX_GRAS_BIN_CONTROL_RENDER_MODE__MASK;
2711c28c82e9SRob Clark }
271257cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_FORCE_LRZ_WRITE_DIS		0x00200000
271357cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION__MASK		0x00c00000
271457cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION__SHIFT		22
A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION(enum a6xx_buffers_location val)271557cfe41cSRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION(enum a6xx_buffers_location val)
2716c28c82e9SRob Clark {
271757cfe41cSRob Clark 	return ((val) << A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION__SHIFT) & A6XX_GRAS_BIN_CONTROL_BUFFERS_LOCATION__MASK;
2718c28c82e9SRob Clark }
271957cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__MASK	0x07000000
272057cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__SHIFT	24
A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK(uint32_t val)272157cfe41cSRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK(uint32_t val)
2722c28c82e9SRob Clark {
272357cfe41cSRob Clark 	return ((val) << A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__SHIFT) & A6XX_GRAS_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__MASK;
272457cfe41cSRob Clark }
272557cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_UNK27__MASK			0x08000000
272657cfe41cSRob Clark #define A6XX_GRAS_BIN_CONTROL_UNK27__SHIFT			27
A6XX_GRAS_BIN_CONTROL_UNK27(uint32_t val)272757cfe41cSRob Clark static inline uint32_t A6XX_GRAS_BIN_CONTROL_UNK27(uint32_t val)
272857cfe41cSRob Clark {
272957cfe41cSRob Clark 	return ((val) << A6XX_GRAS_BIN_CONTROL_UNK27__SHIFT) & A6XX_GRAS_BIN_CONTROL_UNK27__MASK;
2730c28c82e9SRob Clark }
2731c28c82e9SRob Clark 
27322d756322SRob Clark #define REG_A6XX_GRAS_RAS_MSAA_CNTL				0x000080a2
27332d756322SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
27342d756322SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)27352d756322SRob Clark static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
27362d756322SRob Clark {
27372d756322SRob Clark 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_SAMPLES__MASK;
27382d756322SRob Clark }
2739c28c82e9SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_UNK2__MASK			0x00000004
2740c28c82e9SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_UNK2__SHIFT			2
A6XX_GRAS_RAS_MSAA_CNTL_UNK2(uint32_t val)2741c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_UNK2(uint32_t val)
2742c28c82e9SRob Clark {
2743c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_UNK2__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_UNK2__MASK;
2744c28c82e9SRob Clark }
2745c28c82e9SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_UNK3__MASK			0x00000008
2746c28c82e9SRob Clark #define A6XX_GRAS_RAS_MSAA_CNTL_UNK3__SHIFT			3
A6XX_GRAS_RAS_MSAA_CNTL_UNK3(uint32_t val)2747c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_RAS_MSAA_CNTL_UNK3(uint32_t val)
2748c28c82e9SRob Clark {
2749c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_RAS_MSAA_CNTL_UNK3__SHIFT) & A6XX_GRAS_RAS_MSAA_CNTL_UNK3__MASK;
2750c28c82e9SRob Clark }
27512d756322SRob Clark 
27522d756322SRob Clark #define REG_A6XX_GRAS_DEST_MSAA_CNTL				0x000080a3
27532d756322SRob Clark #define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
27542d756322SRob Clark #define A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)27552d756322SRob Clark static inline uint32_t A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
27562d756322SRob Clark {
27572d756322SRob Clark 	return ((val) << A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_GRAS_DEST_MSAA_CNTL_SAMPLES__MASK;
27582d756322SRob Clark }
27592d756322SRob Clark #define A6XX_GRAS_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
27602d756322SRob Clark 
2761c28c82e9SRob Clark #define REG_A6XX_GRAS_SAMPLE_CONFIG				0x000080a4
2762c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_CONFIG_UNK0				0x00000001
2763c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_CONFIG_LOCATION_ENABLE			0x00000002
27642d756322SRob Clark 
2765c28c82e9SRob Clark #define REG_A6XX_GRAS_SAMPLE_LOCATION_0				0x000080a5
2766c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
2767c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)2768c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
2769c28c82e9SRob Clark {
2770c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK;
2771c28c82e9SRob Clark }
2772c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
2773c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)2774c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
2775c28c82e9SRob Clark {
2776c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK;
2777c28c82e9SRob Clark }
2778c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
2779c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)2780c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
2781c28c82e9SRob Clark {
2782c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK;
2783c28c82e9SRob Clark }
2784c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
2785c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)2786c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
2787c28c82e9SRob Clark {
2788c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK;
2789c28c82e9SRob Clark }
2790c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
2791c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)2792c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
2793c28c82e9SRob Clark {
2794c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK;
2795c28c82e9SRob Clark }
2796c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
2797c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)2798c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
2799c28c82e9SRob Clark {
2800c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK;
2801c28c82e9SRob Clark }
2802c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
2803c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)2804c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
2805c28c82e9SRob Clark {
2806c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK;
2807c28c82e9SRob Clark }
2808c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
2809c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)2810c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
2811c28c82e9SRob Clark {
2812c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK;
2813c28c82e9SRob Clark }
28142d756322SRob Clark 
2815c28c82e9SRob Clark #define REG_A6XX_GRAS_SAMPLE_LOCATION_1				0x000080a6
2816c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
2817c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)2818c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
2819c28c82e9SRob Clark {
2820c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK;
2821c28c82e9SRob Clark }
2822c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
2823c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)2824c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
2825c28c82e9SRob Clark {
2826c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK;
2827c28c82e9SRob Clark }
2828c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
2829c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)2830c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
2831c28c82e9SRob Clark {
2832c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK;
2833c28c82e9SRob Clark }
2834c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
2835c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)2836c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
2837c28c82e9SRob Clark {
2838c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK;
2839c28c82e9SRob Clark }
2840c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
2841c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)2842c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
2843c28c82e9SRob Clark {
2844c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK;
2845c28c82e9SRob Clark }
2846c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
2847c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)2848c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
2849c28c82e9SRob Clark {
2850c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK;
2851c28c82e9SRob Clark }
2852c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
2853c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)2854c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
2855c28c82e9SRob Clark {
2856c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK;
2857c28c82e9SRob Clark }
2858c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
2859c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)2860c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
2861c28c82e9SRob Clark {
2862c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_GRAS_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK;
2863c28c82e9SRob Clark }
28642d756322SRob Clark 
28652d756322SRob Clark #define REG_A6XX_GRAS_UNKNOWN_80AF				0x000080af
28662d756322SRob Clark 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR(uint32_t i0)2867c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR(uint32_t i0) { return 0x000080b0 + 0x2*i0; }
2868c28c82e9SRob Clark 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR_TL(uint32_t i0)2869c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR_TL(uint32_t i0) { return 0x000080b0 + 0x2*i0; }
2870c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK			0x0000ffff
2871c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT			0
A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)2872c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X(uint32_t val)
28732d756322SRob Clark {
2874c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_X__MASK;
28752d756322SRob Clark }
2876c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK			0xffff0000
2877c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT			16
A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)2878c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y(uint32_t val)
28792d756322SRob Clark {
2880c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_TL_Y__MASK;
28812d756322SRob Clark }
28822d756322SRob Clark 
REG_A6XX_GRAS_SC_SCREEN_SCISSOR_BR(uint32_t i0)2883c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_SCREEN_SCISSOR_BR(uint32_t i0) { return 0x000080b1 + 0x2*i0; }
2884c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK			0x0000ffff
2885c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT			0
A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)2886c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X(uint32_t val)
28872d756322SRob Clark {
2888c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_X__MASK;
28892d756322SRob Clark }
2890c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK			0xffff0000
2891c28c82e9SRob Clark #define A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT			16
A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)2892c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y(uint32_t val)
28932d756322SRob Clark {
2894c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_SCREEN_SCISSOR_BR_Y__MASK;
28952d756322SRob Clark }
28962d756322SRob Clark 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR(uint32_t i0)2897c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR(uint32_t i0) { return 0x000080d0 + 0x2*i0; }
2898c28c82e9SRob Clark 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL(uint32_t i0)2899c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL(uint32_t i0) { return 0x000080d0 + 0x2*i0; }
2900c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__MASK		0x0000ffff
2901c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__SHIFT		0
A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X(uint32_t val)2902c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X(uint32_t val)
29032d756322SRob Clark {
2904c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_X__MASK;
29052d756322SRob Clark }
2906c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__MASK		0xffff0000
2907c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__SHIFT		16
A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y(uint32_t val)2908c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y(uint32_t val)
29092d756322SRob Clark {
2910c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_TL_Y__MASK;
29112d756322SRob Clark }
29122d756322SRob Clark 
REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR(uint32_t i0)2913c28c82e9SRob Clark static inline uint32_t REG_A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR(uint32_t i0) { return 0x000080d1 + 0x2*i0; }
2914c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__MASK		0x0000ffff
2915c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__SHIFT		0
A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X(uint32_t val)2916c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X(uint32_t val)
29172d756322SRob Clark {
2918c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_X__MASK;
29192d756322SRob Clark }
2920c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__MASK		0xffff0000
2921c28c82e9SRob Clark #define A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__SHIFT		16
A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y(uint32_t val)2922c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y(uint32_t val)
29232d756322SRob Clark {
2924c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_VIEWPORT_SCISSOR_BR_Y__MASK;
29252d756322SRob Clark }
29262d756322SRob Clark 
29272d756322SRob Clark #define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_TL			0x000080f0
2928c28c82e9SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK			0x00003fff
29292d756322SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT			0
A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)29302d756322SRob Clark static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X(uint32_t val)
29312d756322SRob Clark {
29322d756322SRob Clark 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_X__MASK;
29332d756322SRob Clark }
2934c28c82e9SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK			0x3fff0000
29352d756322SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT			16
A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)29362d756322SRob Clark static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y(uint32_t val)
29372d756322SRob Clark {
29382d756322SRob Clark 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_TL_Y__MASK;
29392d756322SRob Clark }
29402d756322SRob Clark 
29412d756322SRob Clark #define REG_A6XX_GRAS_SC_WINDOW_SCISSOR_BR			0x000080f1
2942c28c82e9SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK			0x00003fff
29432d756322SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT			0
A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)29442d756322SRob Clark static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X(uint32_t val)
29452d756322SRob Clark {
29462d756322SRob Clark 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_X__MASK;
29472d756322SRob Clark }
2948c28c82e9SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK			0x3fff0000
29492d756322SRob Clark #define A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT			16
A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)29502d756322SRob Clark static inline uint32_t A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y(uint32_t val)
29512d756322SRob Clark {
29522d756322SRob Clark 	return ((val) << A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__SHIFT) & A6XX_GRAS_SC_WINDOW_SCISSOR_BR_Y__MASK;
29532d756322SRob Clark }
29542d756322SRob Clark 
29552d756322SRob Clark #define REG_A6XX_GRAS_LRZ_CNTL					0x00008100
29562d756322SRob Clark #define A6XX_GRAS_LRZ_CNTL_ENABLE				0x00000001
29572d756322SRob Clark #define A6XX_GRAS_LRZ_CNTL_LRZ_WRITE				0x00000002
29582d756322SRob Clark #define A6XX_GRAS_LRZ_CNTL_GREATER				0x00000004
2959c28c82e9SRob Clark #define A6XX_GRAS_LRZ_CNTL_FC_ENABLE				0x00000008
2960c28c82e9SRob Clark #define A6XX_GRAS_LRZ_CNTL_Z_TEST_ENABLE			0x00000010
2961cc4c26d4SRob Clark #define A6XX_GRAS_LRZ_CNTL_Z_BOUNDS_ENABLE			0x00000020
2962f73343faSRob Clark #define A6XX_GRAS_LRZ_CNTL_DIR__MASK				0x000000c0
2963f73343faSRob Clark #define A6XX_GRAS_LRZ_CNTL_DIR__SHIFT				6
A6XX_GRAS_LRZ_CNTL_DIR(enum a6xx_lrz_dir_status val)2964f73343faSRob Clark static inline uint32_t A6XX_GRAS_LRZ_CNTL_DIR(enum a6xx_lrz_dir_status val)
2965c28c82e9SRob Clark {
2966f73343faSRob Clark 	return ((val) << A6XX_GRAS_LRZ_CNTL_DIR__SHIFT) & A6XX_GRAS_LRZ_CNTL_DIR__MASK;
2967c28c82e9SRob Clark }
2968f73343faSRob Clark #define A6XX_GRAS_LRZ_CNTL_DIR_WRITE				0x00000100
2969f73343faSRob Clark #define A6XX_GRAS_LRZ_CNTL_DISABLE_ON_WRONG_DIR			0x00000200
29702d756322SRob Clark 
297157cfe41cSRob Clark #define REG_A6XX_GRAS_LRZ_PS_INPUT_CNTL				0x00008101
297257cfe41cSRob Clark #define A6XX_GRAS_LRZ_PS_INPUT_CNTL_SAMPLEID			0x00000001
297357cfe41cSRob Clark #define A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE__MASK	0x00000006
297457cfe41cSRob Clark #define A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE__SHIFT	1
A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE(enum a6xx_fragcoord_sample_mode val)297557cfe41cSRob Clark static inline uint32_t A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE(enum a6xx_fragcoord_sample_mode val)
29762d756322SRob Clark {
297757cfe41cSRob Clark 	return ((val) << A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE__SHIFT) & A6XX_GRAS_LRZ_PS_INPUT_CNTL_FRAGCOORDSAMPLEMODE__MASK;
297857cfe41cSRob Clark }
297957cfe41cSRob Clark 
298057cfe41cSRob Clark #define REG_A6XX_GRAS_LRZ_MRT_BUF_INFO_0			0x00008102
298157cfe41cSRob Clark #define A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT__MASK		0x000000ff
298257cfe41cSRob Clark #define A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT__SHIFT	0
A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT(enum a6xx_format val)298357cfe41cSRob Clark static inline uint32_t A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT(enum a6xx_format val)
298457cfe41cSRob Clark {
298557cfe41cSRob Clark 	return ((val) << A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT__SHIFT) & A6XX_GRAS_LRZ_MRT_BUF_INFO_0_COLOR_FORMAT__MASK;
29862d756322SRob Clark }
29872d756322SRob Clark 
2988c28c82e9SRob Clark #define REG_A6XX_GRAS_LRZ_BUFFER_BASE				0x00008103
2989c28c82e9SRob Clark #define A6XX_GRAS_LRZ_BUFFER_BASE__MASK				0xffffffff
2990c28c82e9SRob Clark #define A6XX_GRAS_LRZ_BUFFER_BASE__SHIFT			0
A6XX_GRAS_LRZ_BUFFER_BASE(uint32_t val)2991c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_LRZ_BUFFER_BASE(uint32_t val)
2992c28c82e9SRob Clark {
2993c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_LRZ_BUFFER_BASE__SHIFT) & A6XX_GRAS_LRZ_BUFFER_BASE__MASK;
2994c28c82e9SRob Clark }
2995c28c82e9SRob Clark 
29962d756322SRob Clark #define REG_A6XX_GRAS_LRZ_BUFFER_PITCH				0x00008105
2997c28c82e9SRob Clark #define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK			0x000000ff
29982d756322SRob Clark #define A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT			0
A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH(uint32_t val)29992d756322SRob Clark static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH(uint32_t val)
30002d756322SRob Clark {
30012d756322SRob Clark 	return ((val >> 5) << A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_PITCH__MASK;
30022d756322SRob Clark }
3003c28c82e9SRob Clark #define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK		0x1ffffc00
3004c28c82e9SRob Clark #define A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT		10
A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)30052d756322SRob Clark static inline uint32_t A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
30062d756322SRob Clark {
3007c28c82e9SRob Clark 	return ((val >> 4) << A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_GRAS_LRZ_BUFFER_PITCH_ARRAY_PITCH__MASK;
30082d756322SRob Clark }
30092d756322SRob Clark 
3010c28c82e9SRob Clark #define REG_A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE		0x00008106
3011c28c82e9SRob Clark #define A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__MASK		0xffffffff
3012c28c82e9SRob Clark #define A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__SHIFT		0
A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE(uint32_t val)3013c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE(uint32_t val)
3014c28c82e9SRob Clark {
3015c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__SHIFT) & A6XX_GRAS_LRZ_FAST_CLEAR_BUFFER_BASE__MASK;
3016c28c82e9SRob Clark }
3017c28c82e9SRob Clark 
3018c28c82e9SRob Clark #define REG_A6XX_GRAS_SAMPLE_CNTL				0x00008109
3019c28c82e9SRob Clark #define A6XX_GRAS_SAMPLE_CNTL_PER_SAMP_MODE			0x00000001
3020c28c82e9SRob Clark 
3021f73343faSRob Clark #define REG_A6XX_GRAS_LRZ_DEPTH_VIEW				0x0000810a
3022f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER__MASK		0x000007ff
3023f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER__SHIFT		0
A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER(uint32_t val)3024f73343faSRob Clark static inline uint32_t A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER(uint32_t val)
3025c28c82e9SRob Clark {
3026f73343faSRob Clark 	return ((val) << A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER__SHIFT) & A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_LAYER__MASK;
3027c28c82e9SRob Clark }
3028f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT__MASK		0x07ff0000
3029f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT__SHIFT		16
A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT(uint32_t val)3030f73343faSRob Clark static inline uint32_t A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT(uint32_t val)
3031c28c82e9SRob Clark {
3032f73343faSRob Clark 	return ((val) << A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT__SHIFT) & A6XX_GRAS_LRZ_DEPTH_VIEW_LAYER_COUNT__MASK;
3033c28c82e9SRob Clark }
3034f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL__MASK		0xf0000000
3035f73343faSRob Clark #define A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL__SHIFT		28
A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL(uint32_t val)3036f73343faSRob Clark static inline uint32_t A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL(uint32_t val)
3037c28c82e9SRob Clark {
3038f73343faSRob Clark 	return ((val) << A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL__SHIFT) & A6XX_GRAS_LRZ_DEPTH_VIEW_BASE_MIP_LEVEL__MASK;
3039c28c82e9SRob Clark }
3040a69c5ed2SRob Clark 
3041a69c5ed2SRob Clark #define REG_A6XX_GRAS_UNKNOWN_8110				0x00008110
3042a69c5ed2SRob Clark 
30432d756322SRob Clark #define REG_A6XX_GRAS_2D_BLIT_CNTL				0x00008400
3044c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK			0x00000007
3045c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT			0
A6XX_GRAS_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)3046c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)
3047c28c82e9SRob Clark {
3048c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_ROTATE__MASK;
3049c28c82e9SRob Clark }
305057cfe41cSRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_OVERWRITEEN			0x00000008
305157cfe41cSRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_UNK4__MASK			0x00000070
305257cfe41cSRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_UNK4__SHIFT			4
A6XX_GRAS_2D_BLIT_CNTL_UNK4(uint32_t val)305357cfe41cSRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK4(uint32_t val)
3054c28c82e9SRob Clark {
305557cfe41cSRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK4__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK4__MASK;
3056c28c82e9SRob Clark }
3057c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_SOLID_COLOR			0x00000080
3058ccdf7e28SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK		0x0000ff00
3059ccdf7e28SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT		8
A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)3060c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)
3061ccdf7e28SRob Clark {
3062ccdf7e28SRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_COLOR_FORMAT__MASK;
3063ccdf7e28SRob Clark }
3064ccdf7e28SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_SCISSOR				0x00010000
3065c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_UNK17__MASK			0x00060000
3066c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_UNK17__SHIFT			17
A6XX_GRAS_2D_BLIT_CNTL_UNK17(uint32_t val)3067c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_UNK17(uint32_t val)
3068c28c82e9SRob Clark {
3069c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_UNK17__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_UNK17__MASK;
3070c28c82e9SRob Clark }
3071c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_D24S8				0x00080000
3072c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK			0x00f00000
3073c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT			20
A6XX_GRAS_2D_BLIT_CNTL_MASK(uint32_t val)3074c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_MASK(uint32_t val)
3075c28c82e9SRob Clark {
3076c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_MASK__MASK;
3077c28c82e9SRob Clark }
3078c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK			0x1f000000
3079c28c82e9SRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT			24
A6XX_GRAS_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)3080c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)
3081c28c82e9SRob Clark {
3082c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_IFMT__MASK;
3083c28c82e9SRob Clark }
308457cfe41cSRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE__MASK		0x20000000
308557cfe41cSRob Clark #define A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE__SHIFT		29
A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE(enum a6xx_raster_mode val)308657cfe41cSRob Clark static inline uint32_t A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE(enum a6xx_raster_mode val)
3087c28c82e9SRob Clark {
308857cfe41cSRob Clark 	return ((val) << A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE__SHIFT) & A6XX_GRAS_2D_BLIT_CNTL_RASTER_MODE__MASK;
3089c28c82e9SRob Clark }
30902d756322SRob Clark 
30912d756322SRob Clark #define REG_A6XX_GRAS_2D_SRC_TL_X				0x00008401
30922d756322SRob Clark 
30932d756322SRob Clark #define REG_A6XX_GRAS_2D_SRC_BR_X				0x00008402
30942d756322SRob Clark 
30952d756322SRob Clark #define REG_A6XX_GRAS_2D_SRC_TL_Y				0x00008403
30962d756322SRob Clark 
30972d756322SRob Clark #define REG_A6XX_GRAS_2D_SRC_BR_Y				0x00008404
30982d756322SRob Clark 
30992d756322SRob Clark #define REG_A6XX_GRAS_2D_DST_TL					0x00008405
3100c28c82e9SRob Clark #define A6XX_GRAS_2D_DST_TL_X__MASK				0x00003fff
31012d756322SRob Clark #define A6XX_GRAS_2D_DST_TL_X__SHIFT				0
A6XX_GRAS_2D_DST_TL_X(uint32_t val)31022d756322SRob Clark static inline uint32_t A6XX_GRAS_2D_DST_TL_X(uint32_t val)
31032d756322SRob Clark {
31042d756322SRob Clark 	return ((val) << A6XX_GRAS_2D_DST_TL_X__SHIFT) & A6XX_GRAS_2D_DST_TL_X__MASK;
31052d756322SRob Clark }
3106c28c82e9SRob Clark #define A6XX_GRAS_2D_DST_TL_Y__MASK				0x3fff0000
31072d756322SRob Clark #define A6XX_GRAS_2D_DST_TL_Y__SHIFT				16
A6XX_GRAS_2D_DST_TL_Y(uint32_t val)31082d756322SRob Clark static inline uint32_t A6XX_GRAS_2D_DST_TL_Y(uint32_t val)
31092d756322SRob Clark {
31102d756322SRob Clark 	return ((val) << A6XX_GRAS_2D_DST_TL_Y__SHIFT) & A6XX_GRAS_2D_DST_TL_Y__MASK;
31112d756322SRob Clark }
31122d756322SRob Clark 
31132d756322SRob Clark #define REG_A6XX_GRAS_2D_DST_BR					0x00008406
3114c28c82e9SRob Clark #define A6XX_GRAS_2D_DST_BR_X__MASK				0x00003fff
31152d756322SRob Clark #define A6XX_GRAS_2D_DST_BR_X__SHIFT				0
A6XX_GRAS_2D_DST_BR_X(uint32_t val)31162d756322SRob Clark static inline uint32_t A6XX_GRAS_2D_DST_BR_X(uint32_t val)
31172d756322SRob Clark {
31182d756322SRob Clark 	return ((val) << A6XX_GRAS_2D_DST_BR_X__SHIFT) & A6XX_GRAS_2D_DST_BR_X__MASK;
31192d756322SRob Clark }
3120c28c82e9SRob Clark #define A6XX_GRAS_2D_DST_BR_Y__MASK				0x3fff0000
31212d756322SRob Clark #define A6XX_GRAS_2D_DST_BR_Y__SHIFT				16
A6XX_GRAS_2D_DST_BR_Y(uint32_t val)31222d756322SRob Clark static inline uint32_t A6XX_GRAS_2D_DST_BR_Y(uint32_t val)
31232d756322SRob Clark {
31242d756322SRob Clark 	return ((val) << A6XX_GRAS_2D_DST_BR_Y__SHIFT) & A6XX_GRAS_2D_DST_BR_Y__MASK;
31252d756322SRob Clark }
31262d756322SRob Clark 
3127c28c82e9SRob Clark #define REG_A6XX_GRAS_2D_UNKNOWN_8407				0x00008407
3128c28c82e9SRob Clark 
3129c28c82e9SRob Clark #define REG_A6XX_GRAS_2D_UNKNOWN_8408				0x00008408
3130c28c82e9SRob Clark 
3131c28c82e9SRob Clark #define REG_A6XX_GRAS_2D_UNKNOWN_8409				0x00008409
3132c28c82e9SRob Clark 
3133c28c82e9SRob Clark #define REG_A6XX_GRAS_2D_RESOLVE_CNTL_1				0x0000840a
3134c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_1_X__MASK			0x00003fff
3135c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_1_X__SHIFT			0
A6XX_GRAS_2D_RESOLVE_CNTL_1_X(uint32_t val)3136c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_1_X(uint32_t val)
31372d756322SRob Clark {
3138c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_1_X__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_1_X__MASK;
31392d756322SRob Clark }
3140c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__MASK			0x3fff0000
3141c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__SHIFT			16
A6XX_GRAS_2D_RESOLVE_CNTL_1_Y(uint32_t val)3142c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_1_Y(uint32_t val)
31432d756322SRob Clark {
3144c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_1_Y__MASK;
31452d756322SRob Clark }
31462d756322SRob Clark 
3147c28c82e9SRob Clark #define REG_A6XX_GRAS_2D_RESOLVE_CNTL_2				0x0000840b
3148c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_2_X__MASK			0x00003fff
3149c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_2_X__SHIFT			0
A6XX_GRAS_2D_RESOLVE_CNTL_2_X(uint32_t val)3150c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_2_X(uint32_t val)
31512d756322SRob Clark {
3152c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_2_X__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_2_X__MASK;
31532d756322SRob Clark }
3154c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__MASK			0x3fff0000
3155c28c82e9SRob Clark #define A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__SHIFT			16
A6XX_GRAS_2D_RESOLVE_CNTL_2_Y(uint32_t val)3156c28c82e9SRob Clark static inline uint32_t A6XX_GRAS_2D_RESOLVE_CNTL_2_Y(uint32_t val)
31572d756322SRob Clark {
3158c28c82e9SRob Clark 	return ((val) << A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__SHIFT) & A6XX_GRAS_2D_RESOLVE_CNTL_2_Y__MASK;
31592d756322SRob Clark }
31602d756322SRob Clark 
316157cfe41cSRob Clark #define REG_A6XX_GRAS_DBG_ECO_CNTL				0x00008600
316257cfe41cSRob Clark #define A6XX_GRAS_DBG_ECO_CNTL_UNK7				0x00000080
316357cfe41cSRob Clark #define A6XX_GRAS_DBG_ECO_CNTL_LRZCACHELOCKDIS			0x00000800
31642d756322SRob Clark 
3165c28c82e9SRob Clark #define REG_A6XX_GRAS_ADDR_MODE_CNTL				0x00008601
3166c28c82e9SRob Clark 
3167f73343faSRob Clark #define REG_A7XX_GRAS_NC_MODE_CNTL				0x00008602
3168f73343faSRob Clark 
REG_A6XX_GRAS_PERFCTR_TSE_SEL(uint32_t i0)3169cc4c26d4SRob Clark static inline uint32_t REG_A6XX_GRAS_PERFCTR_TSE_SEL(uint32_t i0) { return 0x00008610 + 0x1*i0; }
3170c28c82e9SRob Clark 
REG_A6XX_GRAS_PERFCTR_RAS_SEL(uint32_t i0)3171cc4c26d4SRob Clark static inline uint32_t REG_A6XX_GRAS_PERFCTR_RAS_SEL(uint32_t i0) { return 0x00008614 + 0x1*i0; }
3172c28c82e9SRob Clark 
REG_A6XX_GRAS_PERFCTR_LRZ_SEL(uint32_t i0)3173cc4c26d4SRob Clark static inline uint32_t REG_A6XX_GRAS_PERFCTR_LRZ_SEL(uint32_t i0) { return 0x00008618 + 0x1*i0; }
3174c28c82e9SRob Clark 
3175a69c5ed2SRob Clark #define REG_A6XX_RB_BIN_CONTROL					0x00008800
3176c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL_BINW__MASK				0x0000003f
3177a69c5ed2SRob Clark #define A6XX_RB_BIN_CONTROL_BINW__SHIFT				0
A6XX_RB_BIN_CONTROL_BINW(uint32_t val)3178a69c5ed2SRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL_BINW(uint32_t val)
3179a69c5ed2SRob Clark {
3180a69c5ed2SRob Clark 	return ((val >> 5) << A6XX_RB_BIN_CONTROL_BINW__SHIFT) & A6XX_RB_BIN_CONTROL_BINW__MASK;
3181a69c5ed2SRob Clark }
3182c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL_BINH__MASK				0x00007f00
3183a69c5ed2SRob Clark #define A6XX_RB_BIN_CONTROL_BINH__SHIFT				8
A6XX_RB_BIN_CONTROL_BINH(uint32_t val)3184a69c5ed2SRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL_BINH(uint32_t val)
3185a69c5ed2SRob Clark {
3186a69c5ed2SRob Clark 	return ((val >> 4) << A6XX_RB_BIN_CONTROL_BINH__SHIFT) & A6XX_RB_BIN_CONTROL_BINH__MASK;
3187a69c5ed2SRob Clark }
318857cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_RENDER_MODE__MASK			0x001c0000
318957cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_RENDER_MODE__SHIFT			18
A6XX_RB_BIN_CONTROL_RENDER_MODE(enum a6xx_render_mode val)319057cfe41cSRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL_RENDER_MODE(enum a6xx_render_mode val)
3191c28c82e9SRob Clark {
319257cfe41cSRob Clark 	return ((val) << A6XX_RB_BIN_CONTROL_RENDER_MODE__SHIFT) & A6XX_RB_BIN_CONTROL_RENDER_MODE__MASK;
3193c28c82e9SRob Clark }
319457cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_FORCE_LRZ_WRITE_DIS			0x00200000
319557cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION__MASK		0x00c00000
319657cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION__SHIFT		22
A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION(enum a6xx_buffers_location val)319757cfe41cSRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION(enum a6xx_buffers_location val)
3198c28c82e9SRob Clark {
319957cfe41cSRob Clark 	return ((val) << A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION__SHIFT) & A6XX_RB_BIN_CONTROL_BUFFERS_LOCATION__MASK;
3200c28c82e9SRob Clark }
320157cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__MASK	0x07000000
320257cfe41cSRob Clark #define A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__SHIFT	24
A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK(uint32_t val)320357cfe41cSRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK(uint32_t val)
3204c28c82e9SRob Clark {
320557cfe41cSRob Clark 	return ((val) << A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__SHIFT) & A6XX_RB_BIN_CONTROL_LRZ_FEEDBACK_ZMODE_MASK__MASK;
3206c28c82e9SRob Clark }
3207a69c5ed2SRob Clark 
3208a69c5ed2SRob Clark #define REG_A6XX_RB_RENDER_CNTL					0x00008801
320957cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE__MASK	0x00000038
321057cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE__SHIFT	3
A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE(uint32_t val)321157cfe41cSRob Clark static inline uint32_t A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE(uint32_t val)
3212c28c82e9SRob Clark {
321357cfe41cSRob Clark 	return ((val) << A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE__SHIFT) & A6XX_RB_RENDER_CNTL_CCUSINGLECACHELINESIZE__MASK;
3214c28c82e9SRob Clark }
321557cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_EARLYVIZOUTEN			0x00000040
3216a69c5ed2SRob Clark #define A6XX_RB_RENDER_CNTL_BINNING				0x00000080
321757cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_UNK8__MASK				0x00000700
3218c28c82e9SRob Clark #define A6XX_RB_RENDER_CNTL_UNK8__SHIFT				8
A6XX_RB_RENDER_CNTL_UNK8(uint32_t val)3219c28c82e9SRob Clark static inline uint32_t A6XX_RB_RENDER_CNTL_UNK8(uint32_t val)
3220c28c82e9SRob Clark {
3221c28c82e9SRob Clark 	return ((val) << A6XX_RB_RENDER_CNTL_UNK8__SHIFT) & A6XX_RB_RENDER_CNTL_UNK8__MASK;
3222c28c82e9SRob Clark }
322357cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_RASTER_MODE__MASK			0x00000100
322457cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_RASTER_MODE__SHIFT			8
A6XX_RB_RENDER_CNTL_RASTER_MODE(enum a6xx_raster_mode val)322557cfe41cSRob Clark static inline uint32_t A6XX_RB_RENDER_CNTL_RASTER_MODE(enum a6xx_raster_mode val)
322657cfe41cSRob Clark {
322757cfe41cSRob Clark 	return ((val) << A6XX_RB_RENDER_CNTL_RASTER_MODE__SHIFT) & A6XX_RB_RENDER_CNTL_RASTER_MODE__MASK;
322857cfe41cSRob Clark }
322957cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_RASTER_DIRECTION__MASK		0x00000600
323057cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_RASTER_DIRECTION__SHIFT		9
A6XX_RB_RENDER_CNTL_RASTER_DIRECTION(enum a6xx_raster_direction val)323157cfe41cSRob Clark static inline uint32_t A6XX_RB_RENDER_CNTL_RASTER_DIRECTION(enum a6xx_raster_direction val)
323257cfe41cSRob Clark {
323357cfe41cSRob Clark 	return ((val) << A6XX_RB_RENDER_CNTL_RASTER_DIRECTION__SHIFT) & A6XX_RB_RENDER_CNTL_RASTER_DIRECTION__MASK;
323457cfe41cSRob Clark }
323557cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_CONSERVATIVERASEN			0x00000800
323657cfe41cSRob Clark #define A6XX_RB_RENDER_CNTL_INNERCONSERVATIVERASEN		0x00001000
3237a69c5ed2SRob Clark #define A6XX_RB_RENDER_CNTL_FLAG_DEPTH				0x00004000
3238a69c5ed2SRob Clark #define A6XX_RB_RENDER_CNTL_FLAG_MRTS__MASK			0x00ff0000
3239a69c5ed2SRob Clark #define A6XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT			16
A6XX_RB_RENDER_CNTL_FLAG_MRTS(uint32_t val)3240a69c5ed2SRob Clark static inline uint32_t A6XX_RB_RENDER_CNTL_FLAG_MRTS(uint32_t val)
3241a69c5ed2SRob Clark {
3242a69c5ed2SRob Clark 	return ((val) << A6XX_RB_RENDER_CNTL_FLAG_MRTS__SHIFT) & A6XX_RB_RENDER_CNTL_FLAG_MRTS__MASK;
3243a69c5ed2SRob Clark }
3244a69c5ed2SRob Clark 
32452d756322SRob Clark #define REG_A6XX_RB_RAS_MSAA_CNTL				0x00008802
32462d756322SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
32472d756322SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)32482d756322SRob Clark static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
32492d756322SRob Clark {
32502d756322SRob Clark 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_SAMPLES__MASK;
32512d756322SRob Clark }
3252c28c82e9SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_UNK2__MASK			0x00000004
3253c28c82e9SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_UNK2__SHIFT			2
A6XX_RB_RAS_MSAA_CNTL_UNK2(uint32_t val)3254c28c82e9SRob Clark static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_UNK2(uint32_t val)
3255c28c82e9SRob Clark {
3256c28c82e9SRob Clark 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_UNK2__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_UNK2__MASK;
3257c28c82e9SRob Clark }
3258c28c82e9SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_UNK3__MASK			0x00000008
3259c28c82e9SRob Clark #define A6XX_RB_RAS_MSAA_CNTL_UNK3__SHIFT			3
A6XX_RB_RAS_MSAA_CNTL_UNK3(uint32_t val)3260c28c82e9SRob Clark static inline uint32_t A6XX_RB_RAS_MSAA_CNTL_UNK3(uint32_t val)
3261c28c82e9SRob Clark {
3262c28c82e9SRob Clark 	return ((val) << A6XX_RB_RAS_MSAA_CNTL_UNK3__SHIFT) & A6XX_RB_RAS_MSAA_CNTL_UNK3__MASK;
3263c28c82e9SRob Clark }
32642d756322SRob Clark 
32652d756322SRob Clark #define REG_A6XX_RB_DEST_MSAA_CNTL				0x00008803
32662d756322SRob Clark #define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
32672d756322SRob Clark #define A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)32682d756322SRob Clark static inline uint32_t A6XX_RB_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
32692d756322SRob Clark {
32702d756322SRob Clark 	return ((val) << A6XX_RB_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_DEST_MSAA_CNTL_SAMPLES__MASK;
32712d756322SRob Clark }
32722d756322SRob Clark #define A6XX_RB_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
32732d756322SRob Clark 
3274c28c82e9SRob Clark #define REG_A6XX_RB_SAMPLE_CONFIG				0x00008804
3275c28c82e9SRob Clark #define A6XX_RB_SAMPLE_CONFIG_UNK0				0x00000001
3276c28c82e9SRob Clark #define A6XX_RB_SAMPLE_CONFIG_LOCATION_ENABLE			0x00000002
32772d756322SRob Clark 
3278c28c82e9SRob Clark #define REG_A6XX_RB_SAMPLE_LOCATION_0				0x00008805
3279c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
3280c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)3281c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
3282c28c82e9SRob Clark {
3283c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK;
3284c28c82e9SRob Clark }
3285c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
3286c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)3287c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
3288c28c82e9SRob Clark {
3289c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK;
3290c28c82e9SRob Clark }
3291c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
3292c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)3293c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
3294c28c82e9SRob Clark {
3295c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK;
3296c28c82e9SRob Clark }
3297c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
3298c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)3299c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
3300c28c82e9SRob Clark {
3301c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK;
3302c28c82e9SRob Clark }
3303c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
3304c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)3305c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
3306c28c82e9SRob Clark {
3307c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK;
3308c28c82e9SRob Clark }
3309c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
3310c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)3311c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
3312c28c82e9SRob Clark {
3313c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK;
3314c28c82e9SRob Clark }
3315c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
3316c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)3317c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
3318c28c82e9SRob Clark {
3319c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK;
3320c28c82e9SRob Clark }
3321c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
3322c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)3323c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
3324c28c82e9SRob Clark {
3325c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK;
3326c28c82e9SRob Clark }
33272d756322SRob Clark 
3328c28c82e9SRob Clark #define REG_A6XX_RB_SAMPLE_LOCATION_1				0x00008806
3329c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
3330c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)3331c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
3332c28c82e9SRob Clark {
3333c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK;
3334c28c82e9SRob Clark }
3335c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
3336c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)3337c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
3338c28c82e9SRob Clark {
3339c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK;
3340c28c82e9SRob Clark }
3341c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
3342c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)3343c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
3344c28c82e9SRob Clark {
3345c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK;
3346c28c82e9SRob Clark }
3347c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
3348c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)3349c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
3350c28c82e9SRob Clark {
3351c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK;
3352c28c82e9SRob Clark }
3353c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
3354c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)3355c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
3356c28c82e9SRob Clark {
3357c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK;
3358c28c82e9SRob Clark }
3359c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
3360c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)3361c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
3362c28c82e9SRob Clark {
3363c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK;
3364c28c82e9SRob Clark }
3365c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
3366c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)3367c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
3368c28c82e9SRob Clark {
3369c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK;
3370c28c82e9SRob Clark }
3371c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
3372c28c82e9SRob Clark #define A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)3373c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
3374c28c82e9SRob Clark {
3375c28c82e9SRob Clark 	return ((((int32_t)(val * 1.0))) << A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT) & A6XX_RB_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK;
3376c28c82e9SRob Clark }
33772d756322SRob Clark 
33782d756322SRob Clark #define REG_A6XX_RB_RENDER_CONTROL0				0x00008809
3379c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_PIXEL			0x00000001
3380c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_CENTROID		0x00000002
3381c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_PERSP_SAMPLE			0x00000004
338257cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_LINEAR_PIXEL			0x00000008
338357cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_LINEAR_CENTROID		0x00000010
338457cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL0_IJ_LINEAR_SAMPLE		0x00000020
3385c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK		0x000003c0
3386c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT		6
A6XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val)3387c28c82e9SRob Clark static inline uint32_t A6XX_RB_RENDER_CONTROL0_COORD_MASK(uint32_t val)
3388c28c82e9SRob Clark {
3389c28c82e9SRob Clark 	return ((val) << A6XX_RB_RENDER_CONTROL0_COORD_MASK__SHIFT) & A6XX_RB_RENDER_CONTROL0_COORD_MASK__MASK;
3390c28c82e9SRob Clark }
33912d756322SRob Clark #define A6XX_RB_RENDER_CONTROL0_UNK10				0x00000400
33922d756322SRob Clark 
33932d756322SRob Clark #define REG_A6XX_RB_RENDER_CONTROL1				0x0000880a
33942d756322SRob Clark #define A6XX_RB_RENDER_CONTROL1_SAMPLEMASK			0x00000001
3395f73343faSRob Clark #define A6XX_RB_RENDER_CONTROL1_POSTDEPTHCOVERAGE		0x00000002
3396c28c82e9SRob Clark #define A6XX_RB_RENDER_CONTROL1_FACENESS			0x00000004
33972d756322SRob Clark #define A6XX_RB_RENDER_CONTROL1_SAMPLEID			0x00000008
339857cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE__MASK	0x00000030
339957cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE__SHIFT	4
A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE(enum a6xx_fragcoord_sample_mode val)340057cfe41cSRob Clark static inline uint32_t A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE(enum a6xx_fragcoord_sample_mode val)
340157cfe41cSRob Clark {
340257cfe41cSRob Clark 	return ((val) << A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE__SHIFT) & A6XX_RB_RENDER_CONTROL1_FRAGCOORDSAMPLEMODE__MASK;
340357cfe41cSRob Clark }
3404f73343faSRob Clark #define A6XX_RB_RENDER_CONTROL1_CENTERRHW			0x00000040
340557cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL1_LINELENGTHEN			0x00000080
340657cfe41cSRob Clark #define A6XX_RB_RENDER_CONTROL1_FOVEATION			0x00000100
34072d756322SRob Clark 
34082d756322SRob Clark #define REG_A6XX_RB_FS_OUTPUT_CNTL0				0x0000880b
3409c28c82e9SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE		0x00000001
34102d756322SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_Z			0x00000002
3411c28c82e9SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_SAMPMASK		0x00000004
3412c28c82e9SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL0_FRAG_WRITES_STENCILREF		0x00000008
34132d756322SRob Clark 
34142d756322SRob Clark #define REG_A6XX_RB_FS_OUTPUT_CNTL1				0x0000880c
34152d756322SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK			0x0000000f
34162d756322SRob Clark #define A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT			0
A6XX_RB_FS_OUTPUT_CNTL1_MRT(uint32_t val)34172d756322SRob Clark static inline uint32_t A6XX_RB_FS_OUTPUT_CNTL1_MRT(uint32_t val)
34182d756322SRob Clark {
34192d756322SRob Clark 	return ((val) << A6XX_RB_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_RB_FS_OUTPUT_CNTL1_MRT__MASK;
34202d756322SRob Clark }
34212d756322SRob Clark 
34222d756322SRob Clark #define REG_A6XX_RB_RENDER_COMPONENTS				0x0000880d
34232d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT0__MASK			0x0000000f
34242d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT			0
A6XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)34252d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT0(uint32_t val)
34262d756322SRob Clark {
34272d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT0__MASK;
34282d756322SRob Clark }
34292d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT1__MASK			0x000000f0
34302d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT			4
A6XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)34312d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT1(uint32_t val)
34322d756322SRob Clark {
34332d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT1__MASK;
34342d756322SRob Clark }
34352d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT2__MASK			0x00000f00
34362d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT			8
A6XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)34372d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT2(uint32_t val)
34382d756322SRob Clark {
34392d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT2__MASK;
34402d756322SRob Clark }
34412d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT3__MASK			0x0000f000
34422d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT			12
A6XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)34432d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT3(uint32_t val)
34442d756322SRob Clark {
34452d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT3__MASK;
34462d756322SRob Clark }
34472d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT4__MASK			0x000f0000
34482d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT			16
A6XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)34492d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT4(uint32_t val)
34502d756322SRob Clark {
34512d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT4__MASK;
34522d756322SRob Clark }
34532d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT5__MASK			0x00f00000
34542d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT			20
A6XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)34552d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT5(uint32_t val)
34562d756322SRob Clark {
34572d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT5__MASK;
34582d756322SRob Clark }
34592d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT6__MASK			0x0f000000
34602d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT			24
A6XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)34612d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT6(uint32_t val)
34622d756322SRob Clark {
34632d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT6__MASK;
34642d756322SRob Clark }
34652d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT7__MASK			0xf0000000
34662d756322SRob Clark #define A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT			28
A6XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)34672d756322SRob Clark static inline uint32_t A6XX_RB_RENDER_COMPONENTS_RT7(uint32_t val)
34682d756322SRob Clark {
34692d756322SRob Clark 	return ((val) << A6XX_RB_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_RB_RENDER_COMPONENTS_RT7__MASK;
34702d756322SRob Clark }
34712d756322SRob Clark 
34722d756322SRob Clark #define REG_A6XX_RB_DITHER_CNTL					0x0000880e
34732d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK		0x00000003
34742d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT		0
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0(enum adreno_rb_dither_mode val)34752d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0(enum adreno_rb_dither_mode val)
34762d756322SRob Clark {
34772d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT0__MASK;
34782d756322SRob Clark }
34792d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK		0x0000000c
34802d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT		2
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1(enum adreno_rb_dither_mode val)34812d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1(enum adreno_rb_dither_mode val)
34822d756322SRob Clark {
34832d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT1__MASK;
34842d756322SRob Clark }
34852d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK		0x00000030
34862d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT		4
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2(enum adreno_rb_dither_mode val)34872d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2(enum adreno_rb_dither_mode val)
34882d756322SRob Clark {
34892d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT2__MASK;
34902d756322SRob Clark }
34912d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK		0x000000c0
34922d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT		6
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3(enum adreno_rb_dither_mode val)34932d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3(enum adreno_rb_dither_mode val)
34942d756322SRob Clark {
34952d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT3__MASK;
34962d756322SRob Clark }
34972d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK		0x00000300
34982d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT		8
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4(enum adreno_rb_dither_mode val)34992d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4(enum adreno_rb_dither_mode val)
35002d756322SRob Clark {
35012d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT4__MASK;
35022d756322SRob Clark }
35032d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK		0x00000c00
35042d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT		10
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5(enum adreno_rb_dither_mode val)35052d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5(enum adreno_rb_dither_mode val)
35062d756322SRob Clark {
35072d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT5__MASK;
35082d756322SRob Clark }
35092d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK		0x00001000
35102d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT		12
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6(enum adreno_rb_dither_mode val)35112d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6(enum adreno_rb_dither_mode val)
35122d756322SRob Clark {
35132d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT6__MASK;
35142d756322SRob Clark }
35152d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK		0x0000c000
35162d756322SRob Clark #define A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT		14
A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dither_mode val)35172d756322SRob Clark static inline uint32_t A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7(enum adreno_rb_dither_mode val)
35182d756322SRob Clark {
35192d756322SRob Clark 	return ((val) << A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__SHIFT) & A6XX_RB_DITHER_CNTL_DITHER_MODE_MRT7__MASK;
35202d756322SRob Clark }
35212d756322SRob Clark 
35222d756322SRob Clark #define REG_A6XX_RB_SRGB_CNTL					0x0000880f
35232d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT0				0x00000001
35242d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT1				0x00000002
35252d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT2				0x00000004
35262d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT3				0x00000008
35272d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT4				0x00000010
35282d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT5				0x00000020
35292d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT6				0x00000040
35302d756322SRob Clark #define A6XX_RB_SRGB_CNTL_SRGB_MRT7				0x00000080
35312d756322SRob Clark 
3532c28c82e9SRob Clark #define REG_A6XX_RB_SAMPLE_CNTL					0x00008810
3533c28c82e9SRob Clark #define A6XX_RB_SAMPLE_CNTL_PER_SAMP_MODE			0x00000001
3534a69c5ed2SRob Clark 
3535a69c5ed2SRob Clark #define REG_A6XX_RB_UNKNOWN_8811				0x00008811
3536a69c5ed2SRob Clark 
35372d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_8818				0x00008818
35382d756322SRob Clark 
35392d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_8819				0x00008819
35402d756322SRob Clark 
35412d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_881A				0x0000881a
35422d756322SRob Clark 
35432d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_881B				0x0000881b
35442d756322SRob Clark 
35452d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_881C				0x0000881c
35462d756322SRob Clark 
35472d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_881D				0x0000881d
35482d756322SRob Clark 
35492d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_881E				0x0000881e
35502d756322SRob Clark 
REG_A6XX_RB_MRT(uint32_t i0)35512d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT(uint32_t i0) { return 0x00008820 + 0x8*i0; }
35522d756322SRob Clark 
REG_A6XX_RB_MRT_CONTROL(uint32_t i0)35532d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_CONTROL(uint32_t i0) { return 0x00008820 + 0x8*i0; }
35542d756322SRob Clark #define A6XX_RB_MRT_CONTROL_BLEND				0x00000001
35552d756322SRob Clark #define A6XX_RB_MRT_CONTROL_BLEND2				0x00000002
35562d756322SRob Clark #define A6XX_RB_MRT_CONTROL_ROP_ENABLE				0x00000004
35572d756322SRob Clark #define A6XX_RB_MRT_CONTROL_ROP_CODE__MASK			0x00000078
35582d756322SRob Clark #define A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT			3
A6XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)35592d756322SRob Clark static inline uint32_t A6XX_RB_MRT_CONTROL_ROP_CODE(enum a3xx_rop_code val)
35602d756322SRob Clark {
35612d756322SRob Clark 	return ((val) << A6XX_RB_MRT_CONTROL_ROP_CODE__SHIFT) & A6XX_RB_MRT_CONTROL_ROP_CODE__MASK;
35622d756322SRob Clark }
35632d756322SRob Clark #define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK		0x00000780
35642d756322SRob Clark #define A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT		7
A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)35652d756322SRob Clark static inline uint32_t A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE(uint32_t val)
35662d756322SRob Clark {
35672d756322SRob Clark 	return ((val) << A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__SHIFT) & A6XX_RB_MRT_CONTROL_COMPONENT_ENABLE__MASK;
35682d756322SRob Clark }
35692d756322SRob Clark 
REG_A6XX_RB_MRT_BLEND_CONTROL(uint32_t i0)35702d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_BLEND_CONTROL(uint32_t i0) { return 0x00008821 + 0x8*i0; }
35712d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK		0x0000001f
35722d756322SRob Clark #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)35732d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR(enum adreno_rb_blend_factor val)
35742d756322SRob Clark {
35752d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_SRC_FACTOR__MASK;
35762d756322SRob Clark }
35772d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK	0x000000e0
35782d756322SRob Clark #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)35792d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
35802d756322SRob Clark {
35812d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_BLEND_OPCODE__MASK;
35822d756322SRob Clark }
35832d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK		0x00001f00
35842d756322SRob Clark #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)35852d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR(enum adreno_rb_blend_factor val)
35862d756322SRob Clark {
35872d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_RGB_DEST_FACTOR__MASK;
35882d756322SRob Clark }
35892d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK	0x001f0000
35902d756322SRob Clark #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)35912d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR(enum adreno_rb_blend_factor val)
35922d756322SRob Clark {
35932d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_SRC_FACTOR__MASK;
35942d756322SRob Clark }
35952d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK	0x00e00000
35962d756322SRob Clark #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)35972d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE(enum a3xx_rb_blend_opcode val)
35982d756322SRob Clark {
35992d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_BLEND_OPCODE__MASK;
36002d756322SRob Clark }
36012d756322SRob Clark #define A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK	0x1f000000
36022d756322SRob Clark #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)36032d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR(enum adreno_rb_blend_factor val)
36042d756322SRob Clark {
36052d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__SHIFT) & A6XX_RB_MRT_BLEND_CONTROL_ALPHA_DEST_FACTOR__MASK;
36062d756322SRob Clark }
36072d756322SRob Clark 
REG_A6XX_RB_MRT_BUF_INFO(uint32_t i0)36082d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_BUF_INFO(uint32_t i0) { return 0x00008822 + 0x8*i0; }
36092d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK			0x000000ff
36102d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT		0
A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_format val)3611c28c82e9SRob Clark static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT(enum a6xx_format val)
36122d756322SRob Clark {
36132d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_FORMAT__MASK;
36142d756322SRob Clark }
36152d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK		0x00000300
36162d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT		8
A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a6xx_tile_mode val)36172d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE(enum a6xx_tile_mode val)
36182d756322SRob Clark {
36192d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_TILE_MODE__MASK;
36202d756322SRob Clark }
3621c28c82e9SRob Clark #define A6XX_RB_MRT_BUF_INFO_UNK10__MASK			0x00000400
3622c28c82e9SRob Clark #define A6XX_RB_MRT_BUF_INFO_UNK10__SHIFT			10
A6XX_RB_MRT_BUF_INFO_UNK10(uint32_t val)3623c28c82e9SRob Clark static inline uint32_t A6XX_RB_MRT_BUF_INFO_UNK10(uint32_t val)
3624c28c82e9SRob Clark {
3625c28c82e9SRob Clark 	return ((val) << A6XX_RB_MRT_BUF_INFO_UNK10__SHIFT) & A6XX_RB_MRT_BUF_INFO_UNK10__MASK;
3626c28c82e9SRob Clark }
36272d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK			0x00006000
36282d756322SRob Clark #define A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT			13
A6XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)36292d756322SRob Clark static inline uint32_t A6XX_RB_MRT_BUF_INFO_COLOR_SWAP(enum a3xx_color_swap val)
36302d756322SRob Clark {
36312d756322SRob Clark 	return ((val) << A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_MRT_BUF_INFO_COLOR_SWAP__MASK;
36322d756322SRob Clark }
36332d756322SRob Clark 
REG_A6XX_RB_MRT_PITCH(uint32_t i0)36342d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_PITCH(uint32_t i0) { return 0x00008823 + 0x8*i0; }
3635c28c82e9SRob Clark #define A6XX_RB_MRT_PITCH__MASK					0x0000ffff
36362d756322SRob Clark #define A6XX_RB_MRT_PITCH__SHIFT				0
A6XX_RB_MRT_PITCH(uint32_t val)36372d756322SRob Clark static inline uint32_t A6XX_RB_MRT_PITCH(uint32_t val)
36382d756322SRob Clark {
36392d756322SRob Clark 	return ((val >> 6) << A6XX_RB_MRT_PITCH__SHIFT) & A6XX_RB_MRT_PITCH__MASK;
36402d756322SRob Clark }
36412d756322SRob Clark 
REG_A6XX_RB_MRT_ARRAY_PITCH(uint32_t i0)36422d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_ARRAY_PITCH(uint32_t i0) { return 0x00008824 + 0x8*i0; }
3643c28c82e9SRob Clark #define A6XX_RB_MRT_ARRAY_PITCH__MASK				0x1fffffff
36442d756322SRob Clark #define A6XX_RB_MRT_ARRAY_PITCH__SHIFT				0
A6XX_RB_MRT_ARRAY_PITCH(uint32_t val)36452d756322SRob Clark static inline uint32_t A6XX_RB_MRT_ARRAY_PITCH(uint32_t val)
36462d756322SRob Clark {
36472d756322SRob Clark 	return ((val >> 6) << A6XX_RB_MRT_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_ARRAY_PITCH__MASK;
36482d756322SRob Clark }
36492d756322SRob Clark 
REG_A6XX_RB_MRT_BASE(uint32_t i0)3650c28c82e9SRob Clark static inline uint32_t REG_A6XX_RB_MRT_BASE(uint32_t i0) { return 0x00008825 + 0x8*i0; }
3651c28c82e9SRob Clark #define A6XX_RB_MRT_BASE__MASK					0xffffffff
3652c28c82e9SRob Clark #define A6XX_RB_MRT_BASE__SHIFT					0
A6XX_RB_MRT_BASE(uint32_t val)3653c28c82e9SRob Clark static inline uint32_t A6XX_RB_MRT_BASE(uint32_t val)
3654c28c82e9SRob Clark {
3655c28c82e9SRob Clark 	return ((val) << A6XX_RB_MRT_BASE__SHIFT) & A6XX_RB_MRT_BASE__MASK;
3656c28c82e9SRob Clark }
3657c28c82e9SRob Clark 
REG_A6XX_RB_MRT_BASE_GMEM(uint32_t i0)36582d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_BASE_GMEM(uint32_t i0) { return 0x00008827 + 0x8*i0; }
3659c28c82e9SRob Clark #define A6XX_RB_MRT_BASE_GMEM__MASK				0xfffff000
3660c28c82e9SRob Clark #define A6XX_RB_MRT_BASE_GMEM__SHIFT				12
A6XX_RB_MRT_BASE_GMEM(uint32_t val)3661c28c82e9SRob Clark static inline uint32_t A6XX_RB_MRT_BASE_GMEM(uint32_t val)
3662c28c82e9SRob Clark {
3663c28c82e9SRob Clark 	return ((val >> 12) << A6XX_RB_MRT_BASE_GMEM__SHIFT) & A6XX_RB_MRT_BASE_GMEM__MASK;
3664c28c82e9SRob Clark }
36652d756322SRob Clark 
36662d756322SRob Clark #define REG_A6XX_RB_BLEND_RED_F32				0x00008860
36672d756322SRob Clark #define A6XX_RB_BLEND_RED_F32__MASK				0xffffffff
36682d756322SRob Clark #define A6XX_RB_BLEND_RED_F32__SHIFT				0
A6XX_RB_BLEND_RED_F32(float val)36692d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_RED_F32(float val)
36702d756322SRob Clark {
36712d756322SRob Clark 	return ((fui(val)) << A6XX_RB_BLEND_RED_F32__SHIFT) & A6XX_RB_BLEND_RED_F32__MASK;
36722d756322SRob Clark }
36732d756322SRob Clark 
36742d756322SRob Clark #define REG_A6XX_RB_BLEND_GREEN_F32				0x00008861
36752d756322SRob Clark #define A6XX_RB_BLEND_GREEN_F32__MASK				0xffffffff
36762d756322SRob Clark #define A6XX_RB_BLEND_GREEN_F32__SHIFT				0
A6XX_RB_BLEND_GREEN_F32(float val)36772d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_GREEN_F32(float val)
36782d756322SRob Clark {
36792d756322SRob Clark 	return ((fui(val)) << A6XX_RB_BLEND_GREEN_F32__SHIFT) & A6XX_RB_BLEND_GREEN_F32__MASK;
36802d756322SRob Clark }
36812d756322SRob Clark 
36822d756322SRob Clark #define REG_A6XX_RB_BLEND_BLUE_F32				0x00008862
36832d756322SRob Clark #define A6XX_RB_BLEND_BLUE_F32__MASK				0xffffffff
36842d756322SRob Clark #define A6XX_RB_BLEND_BLUE_F32__SHIFT				0
A6XX_RB_BLEND_BLUE_F32(float val)36852d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_BLUE_F32(float val)
36862d756322SRob Clark {
36872d756322SRob Clark 	return ((fui(val)) << A6XX_RB_BLEND_BLUE_F32__SHIFT) & A6XX_RB_BLEND_BLUE_F32__MASK;
36882d756322SRob Clark }
36892d756322SRob Clark 
36902d756322SRob Clark #define REG_A6XX_RB_BLEND_ALPHA_F32				0x00008863
36912d756322SRob Clark #define A6XX_RB_BLEND_ALPHA_F32__MASK				0xffffffff
36922d756322SRob Clark #define A6XX_RB_BLEND_ALPHA_F32__SHIFT				0
A6XX_RB_BLEND_ALPHA_F32(float val)36932d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_ALPHA_F32(float val)
36942d756322SRob Clark {
36952d756322SRob Clark 	return ((fui(val)) << A6XX_RB_BLEND_ALPHA_F32__SHIFT) & A6XX_RB_BLEND_ALPHA_F32__MASK;
36962d756322SRob Clark }
36972d756322SRob Clark 
36982d756322SRob Clark #define REG_A6XX_RB_ALPHA_CONTROL				0x00008864
36992d756322SRob Clark #define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK			0x000000ff
37002d756322SRob Clark #define A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT			0
A6XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)37012d756322SRob Clark static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_REF(uint32_t val)
37022d756322SRob Clark {
37032d756322SRob Clark 	return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_REF__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_REF__MASK;
37042d756322SRob Clark }
37052d756322SRob Clark #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST			0x00000100
37062d756322SRob Clark #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK		0x00000e00
37072d756322SRob Clark #define A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT		9
A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)37082d756322SRob Clark static inline uint32_t A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC(enum adreno_compare_func val)
37092d756322SRob Clark {
37102d756322SRob Clark 	return ((val) << A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__SHIFT) & A6XX_RB_ALPHA_CONTROL_ALPHA_TEST_FUNC__MASK;
37112d756322SRob Clark }
37122d756322SRob Clark 
37132d756322SRob Clark #define REG_A6XX_RB_BLEND_CNTL					0x00008865
37142d756322SRob Clark #define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK			0x000000ff
37152d756322SRob Clark #define A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT			0
A6XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)37162d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_CNTL_ENABLE_BLEND(uint32_t val)
37172d756322SRob Clark {
37182d756322SRob Clark 	return ((val) << A6XX_RB_BLEND_CNTL_ENABLE_BLEND__SHIFT) & A6XX_RB_BLEND_CNTL_ENABLE_BLEND__MASK;
37192d756322SRob Clark }
37202d756322SRob Clark #define A6XX_RB_BLEND_CNTL_INDEPENDENT_BLEND			0x00000100
3721c28c82e9SRob Clark #define A6XX_RB_BLEND_CNTL_DUAL_COLOR_IN_ENABLE			0x00000200
3722ccdf7e28SRob Clark #define A6XX_RB_BLEND_CNTL_ALPHA_TO_COVERAGE			0x00000400
3723c28c82e9SRob Clark #define A6XX_RB_BLEND_CNTL_ALPHA_TO_ONE				0x00000800
37242d756322SRob Clark #define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK			0xffff0000
37252d756322SRob Clark #define A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT			16
A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)37262d756322SRob Clark static inline uint32_t A6XX_RB_BLEND_CNTL_SAMPLE_MASK(uint32_t val)
37272d756322SRob Clark {
37282d756322SRob Clark 	return ((val) << A6XX_RB_BLEND_CNTL_SAMPLE_MASK__SHIFT) & A6XX_RB_BLEND_CNTL_SAMPLE_MASK__MASK;
37292d756322SRob Clark }
37302d756322SRob Clark 
3731a69c5ed2SRob Clark #define REG_A6XX_RB_DEPTH_PLANE_CNTL				0x00008870
3732c28c82e9SRob Clark #define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK			0x00000003
3733c28c82e9SRob Clark #define A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT			0
A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)3734c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE(enum a6xx_ztest_mode val)
3735c28c82e9SRob Clark {
3736c28c82e9SRob Clark 	return ((val) << A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__SHIFT) & A6XX_RB_DEPTH_PLANE_CNTL_Z_MODE__MASK;
3737c28c82e9SRob Clark }
3738a69c5ed2SRob Clark 
37392d756322SRob Clark #define REG_A6XX_RB_DEPTH_CNTL					0x00008871
374057cfe41cSRob Clark #define A6XX_RB_DEPTH_CNTL_Z_TEST_ENABLE			0x00000001
37412d756322SRob Clark #define A6XX_RB_DEPTH_CNTL_Z_WRITE_ENABLE			0x00000002
37422d756322SRob Clark #define A6XX_RB_DEPTH_CNTL_ZFUNC__MASK				0x0000001c
37432d756322SRob Clark #define A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT				2
A6XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)37442d756322SRob Clark static inline uint32_t A6XX_RB_DEPTH_CNTL_ZFUNC(enum adreno_compare_func val)
37452d756322SRob Clark {
37462d756322SRob Clark 	return ((val) << A6XX_RB_DEPTH_CNTL_ZFUNC__SHIFT) & A6XX_RB_DEPTH_CNTL_ZFUNC__MASK;
37472d756322SRob Clark }
3748c28c82e9SRob Clark #define A6XX_RB_DEPTH_CNTL_Z_CLAMP_ENABLE			0x00000020
374957cfe41cSRob Clark #define A6XX_RB_DEPTH_CNTL_Z_READ_ENABLE			0x00000040
3750c28c82e9SRob Clark #define A6XX_RB_DEPTH_CNTL_Z_BOUNDS_ENABLE			0x00000080
37512d756322SRob Clark 
37522d756322SRob Clark #define REG_A6XX_RB_DEPTH_BUFFER_INFO				0x00008872
37532d756322SRob Clark #define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK		0x00000007
37542d756322SRob Clark #define A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT		0
A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)37552d756322SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT(enum a6xx_depth_format val)
37562d756322SRob Clark {
37572d756322SRob Clark 	return ((val) << A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__SHIFT) & A6XX_RB_DEPTH_BUFFER_INFO_DEPTH_FORMAT__MASK;
37582d756322SRob Clark }
3759c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_INFO_UNK3__MASK			0x00000018
3760c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_INFO_UNK3__SHIFT			3
A6XX_RB_DEPTH_BUFFER_INFO_UNK3(uint32_t val)3761c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_INFO_UNK3(uint32_t val)
3762c28c82e9SRob Clark {
3763c28c82e9SRob Clark 	return ((val) << A6XX_RB_DEPTH_BUFFER_INFO_UNK3__SHIFT) & A6XX_RB_DEPTH_BUFFER_INFO_UNK3__MASK;
3764c28c82e9SRob Clark }
37652d756322SRob Clark 
37662d756322SRob Clark #define REG_A6XX_RB_DEPTH_BUFFER_PITCH				0x00008873
3767c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_PITCH__MASK			0x00003fff
37682d756322SRob Clark #define A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT			0
A6XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)37692d756322SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_PITCH(uint32_t val)
37702d756322SRob Clark {
37712d756322SRob Clark 	return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_PITCH__MASK;
37722d756322SRob Clark }
37732d756322SRob Clark 
37742d756322SRob Clark #define REG_A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH			0x00008874
3775c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK			0x0fffffff
37762d756322SRob Clark #define A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT			0
A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)37772d756322SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH(uint32_t val)
37782d756322SRob Clark {
37792d756322SRob Clark 	return ((val >> 6) << A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_BUFFER_ARRAY_PITCH__MASK;
37802d756322SRob Clark }
37812d756322SRob Clark 
3782c28c82e9SRob Clark #define REG_A6XX_RB_DEPTH_BUFFER_BASE				0x00008875
3783c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_BASE__MASK				0xffffffff
3784c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_BASE__SHIFT			0
A6XX_RB_DEPTH_BUFFER_BASE(uint32_t val)3785c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_BASE(uint32_t val)
3786c28c82e9SRob Clark {
3787c28c82e9SRob Clark 	return ((val) << A6XX_RB_DEPTH_BUFFER_BASE__SHIFT) & A6XX_RB_DEPTH_BUFFER_BASE__MASK;
3788c28c82e9SRob Clark }
3789c28c82e9SRob Clark 
37902d756322SRob Clark #define REG_A6XX_RB_DEPTH_BUFFER_BASE_GMEM			0x00008877
3791c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_BASE_GMEM__MASK			0xfffff000
3792c28c82e9SRob Clark #define A6XX_RB_DEPTH_BUFFER_BASE_GMEM__SHIFT			12
A6XX_RB_DEPTH_BUFFER_BASE_GMEM(uint32_t val)3793c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_BUFFER_BASE_GMEM(uint32_t val)
3794c28c82e9SRob Clark {
3795c28c82e9SRob Clark 	return ((val >> 12) << A6XX_RB_DEPTH_BUFFER_BASE_GMEM__SHIFT) & A6XX_RB_DEPTH_BUFFER_BASE_GMEM__MASK;
3796c28c82e9SRob Clark }
37972d756322SRob Clark 
3798c28c82e9SRob Clark #define REG_A6XX_RB_Z_BOUNDS_MIN				0x00008878
3799c28c82e9SRob Clark #define A6XX_RB_Z_BOUNDS_MIN__MASK				0xffffffff
3800c28c82e9SRob Clark #define A6XX_RB_Z_BOUNDS_MIN__SHIFT				0
A6XX_RB_Z_BOUNDS_MIN(float val)3801c28c82e9SRob Clark static inline uint32_t A6XX_RB_Z_BOUNDS_MIN(float val)
3802c28c82e9SRob Clark {
3803c28c82e9SRob Clark 	return ((fui(val)) << A6XX_RB_Z_BOUNDS_MIN__SHIFT) & A6XX_RB_Z_BOUNDS_MIN__MASK;
3804c28c82e9SRob Clark }
38052d756322SRob Clark 
3806c28c82e9SRob Clark #define REG_A6XX_RB_Z_BOUNDS_MAX				0x00008879
3807c28c82e9SRob Clark #define A6XX_RB_Z_BOUNDS_MAX__MASK				0xffffffff
3808c28c82e9SRob Clark #define A6XX_RB_Z_BOUNDS_MAX__SHIFT				0
A6XX_RB_Z_BOUNDS_MAX(float val)3809c28c82e9SRob Clark static inline uint32_t A6XX_RB_Z_BOUNDS_MAX(float val)
3810c28c82e9SRob Clark {
3811c28c82e9SRob Clark 	return ((fui(val)) << A6XX_RB_Z_BOUNDS_MAX__SHIFT) & A6XX_RB_Z_BOUNDS_MAX__MASK;
3812c28c82e9SRob Clark }
38132d756322SRob Clark 
38142d756322SRob Clark #define REG_A6XX_RB_STENCIL_CONTROL				0x00008880
38152d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE			0x00000001
38162d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_STENCIL_ENABLE_BF		0x00000002
38172d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_STENCIL_READ			0x00000004
38182d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FUNC__MASK			0x00000700
38192d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT			8
A6XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)38202d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC(enum adreno_compare_func val)
38212d756322SRob Clark {
38222d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC__MASK;
38232d756322SRob Clark }
38242d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FAIL__MASK			0x00003800
38252d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT			11
A6XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)38262d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL(enum adreno_stencil_op val)
38272d756322SRob Clark {
38282d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL__MASK;
38292d756322SRob Clark }
38302d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZPASS__MASK			0x0001c000
38312d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT			14
A6XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)38322d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS(enum adreno_stencil_op val)
38332d756322SRob Clark {
38342d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS__MASK;
38352d756322SRob Clark }
38362d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK			0x000e0000
38372d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT			17
A6XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)38382d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL(enum adreno_stencil_op val)
38392d756322SRob Clark {
38402d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL__MASK;
38412d756322SRob Clark }
38422d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK			0x00700000
38432d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT			20
A6XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)38442d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_FUNC_BF(enum adreno_compare_func val)
38452d756322SRob Clark {
38462d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_FUNC_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FUNC_BF__MASK;
38472d756322SRob Clark }
38482d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK			0x03800000
38492d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT			23
A6XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)38502d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_FAIL_BF(enum adreno_stencil_op val)
38512d756322SRob Clark {
38522d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_FAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_FAIL_BF__MASK;
38532d756322SRob Clark }
38542d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK			0x1c000000
38552d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT			26
A6XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)38562d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZPASS_BF(enum adreno_stencil_op val)
38572d756322SRob Clark {
38582d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZPASS_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZPASS_BF__MASK;
38592d756322SRob Clark }
38602d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK			0xe0000000
38612d756322SRob Clark #define A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT			29
A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)38622d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_CONTROL_ZFAIL_BF(enum adreno_stencil_op val)
38632d756322SRob Clark {
38642d756322SRob Clark 	return ((val) << A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__SHIFT) & A6XX_RB_STENCIL_CONTROL_ZFAIL_BF__MASK;
38652d756322SRob Clark }
38662d756322SRob Clark 
38672d756322SRob Clark #define REG_A6XX_RB_STENCIL_INFO				0x00008881
38682d756322SRob Clark #define A6XX_RB_STENCIL_INFO_SEPARATE_STENCIL			0x00000001
3869c28c82e9SRob Clark #define A6XX_RB_STENCIL_INFO_UNK1				0x00000002
38702d756322SRob Clark 
38712d756322SRob Clark #define REG_A6XX_RB_STENCIL_BUFFER_PITCH			0x00008882
3872c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_PITCH__MASK			0x00000fff
38732d756322SRob Clark #define A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT			0
A6XX_RB_STENCIL_BUFFER_PITCH(uint32_t val)38742d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_BUFFER_PITCH(uint32_t val)
38752d756322SRob Clark {
38762d756322SRob Clark 	return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_PITCH__MASK;
38772d756322SRob Clark }
38782d756322SRob Clark 
38792d756322SRob Clark #define REG_A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH			0x00008883
3880c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK		0x00ffffff
38812d756322SRob Clark #define A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT		0
A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val)38822d756322SRob Clark static inline uint32_t A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH(uint32_t val)
38832d756322SRob Clark {
38842d756322SRob Clark 	return ((val >> 6) << A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_RB_STENCIL_BUFFER_ARRAY_PITCH__MASK;
38852d756322SRob Clark }
38862d756322SRob Clark 
3887c28c82e9SRob Clark #define REG_A6XX_RB_STENCIL_BUFFER_BASE				0x00008884
3888c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_BASE__MASK			0xffffffff
3889c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_BASE__SHIFT			0
A6XX_RB_STENCIL_BUFFER_BASE(uint32_t val)3890c28c82e9SRob Clark static inline uint32_t A6XX_RB_STENCIL_BUFFER_BASE(uint32_t val)
3891c28c82e9SRob Clark {
3892c28c82e9SRob Clark 	return ((val) << A6XX_RB_STENCIL_BUFFER_BASE__SHIFT) & A6XX_RB_STENCIL_BUFFER_BASE__MASK;
3893c28c82e9SRob Clark }
3894c28c82e9SRob Clark 
38952d756322SRob Clark #define REG_A6XX_RB_STENCIL_BUFFER_BASE_GMEM			0x00008886
3896c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_BASE_GMEM__MASK			0xfffff000
3897c28c82e9SRob Clark #define A6XX_RB_STENCIL_BUFFER_BASE_GMEM__SHIFT			12
A6XX_RB_STENCIL_BUFFER_BASE_GMEM(uint32_t val)3898c28c82e9SRob Clark static inline uint32_t A6XX_RB_STENCIL_BUFFER_BASE_GMEM(uint32_t val)
3899c28c82e9SRob Clark {
3900c28c82e9SRob Clark 	return ((val >> 12) << A6XX_RB_STENCIL_BUFFER_BASE_GMEM__SHIFT) & A6XX_RB_STENCIL_BUFFER_BASE_GMEM__MASK;
3901c28c82e9SRob Clark }
39022d756322SRob Clark 
39032d756322SRob Clark #define REG_A6XX_RB_STENCILREF					0x00008887
39042d756322SRob Clark #define A6XX_RB_STENCILREF_REF__MASK				0x000000ff
39052d756322SRob Clark #define A6XX_RB_STENCILREF_REF__SHIFT				0
A6XX_RB_STENCILREF_REF(uint32_t val)39062d756322SRob Clark static inline uint32_t A6XX_RB_STENCILREF_REF(uint32_t val)
39072d756322SRob Clark {
39082d756322SRob Clark 	return ((val) << A6XX_RB_STENCILREF_REF__SHIFT) & A6XX_RB_STENCILREF_REF__MASK;
39092d756322SRob Clark }
3910a69c5ed2SRob Clark #define A6XX_RB_STENCILREF_BFREF__MASK				0x0000ff00
3911a69c5ed2SRob Clark #define A6XX_RB_STENCILREF_BFREF__SHIFT				8
A6XX_RB_STENCILREF_BFREF(uint32_t val)3912a69c5ed2SRob Clark static inline uint32_t A6XX_RB_STENCILREF_BFREF(uint32_t val)
3913a69c5ed2SRob Clark {
3914a69c5ed2SRob Clark 	return ((val) << A6XX_RB_STENCILREF_BFREF__SHIFT) & A6XX_RB_STENCILREF_BFREF__MASK;
3915a69c5ed2SRob Clark }
39162d756322SRob Clark 
39172d756322SRob Clark #define REG_A6XX_RB_STENCILMASK					0x00008888
39182d756322SRob Clark #define A6XX_RB_STENCILMASK_MASK__MASK				0x000000ff
39192d756322SRob Clark #define A6XX_RB_STENCILMASK_MASK__SHIFT				0
A6XX_RB_STENCILMASK_MASK(uint32_t val)39202d756322SRob Clark static inline uint32_t A6XX_RB_STENCILMASK_MASK(uint32_t val)
39212d756322SRob Clark {
39222d756322SRob Clark 	return ((val) << A6XX_RB_STENCILMASK_MASK__SHIFT) & A6XX_RB_STENCILMASK_MASK__MASK;
39232d756322SRob Clark }
3924a69c5ed2SRob Clark #define A6XX_RB_STENCILMASK_BFMASK__MASK			0x0000ff00
3925a69c5ed2SRob Clark #define A6XX_RB_STENCILMASK_BFMASK__SHIFT			8
A6XX_RB_STENCILMASK_BFMASK(uint32_t val)3926a69c5ed2SRob Clark static inline uint32_t A6XX_RB_STENCILMASK_BFMASK(uint32_t val)
3927a69c5ed2SRob Clark {
3928a69c5ed2SRob Clark 	return ((val) << A6XX_RB_STENCILMASK_BFMASK__SHIFT) & A6XX_RB_STENCILMASK_BFMASK__MASK;
3929a69c5ed2SRob Clark }
39302d756322SRob Clark 
39312d756322SRob Clark #define REG_A6XX_RB_STENCILWRMASK				0x00008889
39322d756322SRob Clark #define A6XX_RB_STENCILWRMASK_WRMASK__MASK			0x000000ff
39332d756322SRob Clark #define A6XX_RB_STENCILWRMASK_WRMASK__SHIFT			0
A6XX_RB_STENCILWRMASK_WRMASK(uint32_t val)39342d756322SRob Clark static inline uint32_t A6XX_RB_STENCILWRMASK_WRMASK(uint32_t val)
39352d756322SRob Clark {
39362d756322SRob Clark 	return ((val) << A6XX_RB_STENCILWRMASK_WRMASK__SHIFT) & A6XX_RB_STENCILWRMASK_WRMASK__MASK;
39372d756322SRob Clark }
3938a69c5ed2SRob Clark #define A6XX_RB_STENCILWRMASK_BFWRMASK__MASK			0x0000ff00
3939a69c5ed2SRob Clark #define A6XX_RB_STENCILWRMASK_BFWRMASK__SHIFT			8
A6XX_RB_STENCILWRMASK_BFWRMASK(uint32_t val)3940a69c5ed2SRob Clark static inline uint32_t A6XX_RB_STENCILWRMASK_BFWRMASK(uint32_t val)
3941a69c5ed2SRob Clark {
3942a69c5ed2SRob Clark 	return ((val) << A6XX_RB_STENCILWRMASK_BFWRMASK__SHIFT) & A6XX_RB_STENCILWRMASK_BFWRMASK__MASK;
3943a69c5ed2SRob Clark }
39442d756322SRob Clark 
39452d756322SRob Clark #define REG_A6XX_RB_WINDOW_OFFSET				0x00008890
3946c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET_X__MASK				0x00003fff
39472d756322SRob Clark #define A6XX_RB_WINDOW_OFFSET_X__SHIFT				0
A6XX_RB_WINDOW_OFFSET_X(uint32_t val)39482d756322SRob Clark static inline uint32_t A6XX_RB_WINDOW_OFFSET_X(uint32_t val)
39492d756322SRob Clark {
39502d756322SRob Clark 	return ((val) << A6XX_RB_WINDOW_OFFSET_X__SHIFT) & A6XX_RB_WINDOW_OFFSET_X__MASK;
39512d756322SRob Clark }
3952c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET_Y__MASK				0x3fff0000
39532d756322SRob Clark #define A6XX_RB_WINDOW_OFFSET_Y__SHIFT				16
A6XX_RB_WINDOW_OFFSET_Y(uint32_t val)39542d756322SRob Clark static inline uint32_t A6XX_RB_WINDOW_OFFSET_Y(uint32_t val)
39552d756322SRob Clark {
39562d756322SRob Clark 	return ((val) << A6XX_RB_WINDOW_OFFSET_Y__SHIFT) & A6XX_RB_WINDOW_OFFSET_Y__MASK;
39572d756322SRob Clark }
39582d756322SRob Clark 
39592d756322SRob Clark #define REG_A6XX_RB_SAMPLE_COUNT_CONTROL			0x00008891
3960f73343faSRob Clark #define A6XX_RB_SAMPLE_COUNT_CONTROL_DISABLE			0x00000001
39612d756322SRob Clark #define A6XX_RB_SAMPLE_COUNT_CONTROL_COPY			0x00000002
39622d756322SRob Clark 
3963ccdf7e28SRob Clark #define REG_A6XX_RB_LRZ_CNTL					0x00008898
3964ccdf7e28SRob Clark #define A6XX_RB_LRZ_CNTL_ENABLE					0x00000001
3965ccdf7e28SRob Clark 
3966c28c82e9SRob Clark #define REG_A6XX_RB_Z_CLAMP_MIN					0x000088c0
3967c28c82e9SRob Clark #define A6XX_RB_Z_CLAMP_MIN__MASK				0xffffffff
3968c28c82e9SRob Clark #define A6XX_RB_Z_CLAMP_MIN__SHIFT				0
A6XX_RB_Z_CLAMP_MIN(float val)3969c28c82e9SRob Clark static inline uint32_t A6XX_RB_Z_CLAMP_MIN(float val)
3970c28c82e9SRob Clark {
3971c28c82e9SRob Clark 	return ((fui(val)) << A6XX_RB_Z_CLAMP_MIN__SHIFT) & A6XX_RB_Z_CLAMP_MIN__MASK;
3972c28c82e9SRob Clark }
3973c28c82e9SRob Clark 
3974c28c82e9SRob Clark #define REG_A6XX_RB_Z_CLAMP_MAX					0x000088c1
3975c28c82e9SRob Clark #define A6XX_RB_Z_CLAMP_MAX__MASK				0xffffffff
3976c28c82e9SRob Clark #define A6XX_RB_Z_CLAMP_MAX__SHIFT				0
A6XX_RB_Z_CLAMP_MAX(float val)3977c28c82e9SRob Clark static inline uint32_t A6XX_RB_Z_CLAMP_MAX(float val)
3978c28c82e9SRob Clark {
3979c28c82e9SRob Clark 	return ((fui(val)) << A6XX_RB_Z_CLAMP_MAX__SHIFT) & A6XX_RB_Z_CLAMP_MAX__MASK;
3980c28c82e9SRob Clark }
3981c28c82e9SRob Clark 
39822d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_88D0				0x000088d0
3983c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_88D0_UNK0__MASK				0x00001fff
3984c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_88D0_UNK0__SHIFT			0
A6XX_RB_UNKNOWN_88D0_UNK0(uint32_t val)3985c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNKNOWN_88D0_UNK0(uint32_t val)
3986c28c82e9SRob Clark {
3987c28c82e9SRob Clark 	return ((val) << A6XX_RB_UNKNOWN_88D0_UNK0__SHIFT) & A6XX_RB_UNKNOWN_88D0_UNK0__MASK;
3988c28c82e9SRob Clark }
3989c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_88D0_UNK16__MASK			0x07ff0000
3990c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_88D0_UNK16__SHIFT			16
A6XX_RB_UNKNOWN_88D0_UNK16(uint32_t val)3991c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNKNOWN_88D0_UNK16(uint32_t val)
3992c28c82e9SRob Clark {
3993c28c82e9SRob Clark 	return ((val) << A6XX_RB_UNKNOWN_88D0_UNK16__SHIFT) & A6XX_RB_UNKNOWN_88D0_UNK16__MASK;
3994c28c82e9SRob Clark }
39952d756322SRob Clark 
39962d756322SRob Clark #define REG_A6XX_RB_BLIT_SCISSOR_TL				0x000088d1
3997c28c82e9SRob Clark #define A6XX_RB_BLIT_SCISSOR_TL_X__MASK				0x00003fff
39982d756322SRob Clark #define A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT			0
A6XX_RB_BLIT_SCISSOR_TL_X(uint32_t val)39992d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_X(uint32_t val)
40002d756322SRob Clark {
40012d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_SCISSOR_TL_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_X__MASK;
40022d756322SRob Clark }
4003c28c82e9SRob Clark #define A6XX_RB_BLIT_SCISSOR_TL_Y__MASK				0x3fff0000
40042d756322SRob Clark #define A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT			16
A6XX_RB_BLIT_SCISSOR_TL_Y(uint32_t val)40052d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_SCISSOR_TL_Y(uint32_t val)
40062d756322SRob Clark {
40072d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_SCISSOR_TL_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_TL_Y__MASK;
40082d756322SRob Clark }
40092d756322SRob Clark 
40102d756322SRob Clark #define REG_A6XX_RB_BLIT_SCISSOR_BR				0x000088d2
4011c28c82e9SRob Clark #define A6XX_RB_BLIT_SCISSOR_BR_X__MASK				0x00003fff
40122d756322SRob Clark #define A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT			0
A6XX_RB_BLIT_SCISSOR_BR_X(uint32_t val)40132d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_X(uint32_t val)
40142d756322SRob Clark {
40152d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_SCISSOR_BR_X__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_X__MASK;
40162d756322SRob Clark }
4017c28c82e9SRob Clark #define A6XX_RB_BLIT_SCISSOR_BR_Y__MASK				0x3fff0000
40182d756322SRob Clark #define A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT			16
A6XX_RB_BLIT_SCISSOR_BR_Y(uint32_t val)40192d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_SCISSOR_BR_Y(uint32_t val)
40202d756322SRob Clark {
40212d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_SCISSOR_BR_Y__SHIFT) & A6XX_RB_BLIT_SCISSOR_BR_Y__MASK;
40222d756322SRob Clark }
40232d756322SRob Clark 
4024c28c82e9SRob Clark #define REG_A6XX_RB_BIN_CONTROL2				0x000088d3
4025c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL2_BINW__MASK				0x0000003f
4026c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL2_BINW__SHIFT			0
A6XX_RB_BIN_CONTROL2_BINW(uint32_t val)4027c28c82e9SRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL2_BINW(uint32_t val)
4028c28c82e9SRob Clark {
4029c28c82e9SRob Clark 	return ((val >> 5) << A6XX_RB_BIN_CONTROL2_BINW__SHIFT) & A6XX_RB_BIN_CONTROL2_BINW__MASK;
4030c28c82e9SRob Clark }
4031c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL2_BINH__MASK				0x00007f00
4032c28c82e9SRob Clark #define A6XX_RB_BIN_CONTROL2_BINH__SHIFT			8
A6XX_RB_BIN_CONTROL2_BINH(uint32_t val)4033c28c82e9SRob Clark static inline uint32_t A6XX_RB_BIN_CONTROL2_BINH(uint32_t val)
4034c28c82e9SRob Clark {
4035c28c82e9SRob Clark 	return ((val >> 4) << A6XX_RB_BIN_CONTROL2_BINH__SHIFT) & A6XX_RB_BIN_CONTROL2_BINH__MASK;
4036c28c82e9SRob Clark }
4037c28c82e9SRob Clark 
4038c28c82e9SRob Clark #define REG_A6XX_RB_WINDOW_OFFSET2				0x000088d4
4039c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET2_X__MASK				0x00003fff
4040c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET2_X__SHIFT				0
A6XX_RB_WINDOW_OFFSET2_X(uint32_t val)4041c28c82e9SRob Clark static inline uint32_t A6XX_RB_WINDOW_OFFSET2_X(uint32_t val)
4042c28c82e9SRob Clark {
4043c28c82e9SRob Clark 	return ((val) << A6XX_RB_WINDOW_OFFSET2_X__SHIFT) & A6XX_RB_WINDOW_OFFSET2_X__MASK;
4044c28c82e9SRob Clark }
4045c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET2_Y__MASK				0x3fff0000
4046c28c82e9SRob Clark #define A6XX_RB_WINDOW_OFFSET2_Y__SHIFT				16
A6XX_RB_WINDOW_OFFSET2_Y(uint32_t val)4047c28c82e9SRob Clark static inline uint32_t A6XX_RB_WINDOW_OFFSET2_Y(uint32_t val)
4048c28c82e9SRob Clark {
4049c28c82e9SRob Clark 	return ((val) << A6XX_RB_WINDOW_OFFSET2_Y__SHIFT) & A6XX_RB_WINDOW_OFFSET2_Y__MASK;
4050c28c82e9SRob Clark }
4051c28c82e9SRob Clark 
4052f73343faSRob Clark #define REG_A6XX_RB_BLIT_GMEM_MSAA_CNTL				0x000088d5
4053f73343faSRob Clark #define A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES__MASK		0x00000018
4054f73343faSRob Clark #define A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES__SHIFT		3
A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)4055f73343faSRob Clark static inline uint32_t A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
4056ccdf7e28SRob Clark {
4057f73343faSRob Clark 	return ((val) << A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_RB_BLIT_GMEM_MSAA_CNTL_SAMPLES__MASK;
4058ccdf7e28SRob Clark }
4059ccdf7e28SRob Clark 
40602d756322SRob Clark #define REG_A6XX_RB_BLIT_BASE_GMEM				0x000088d6
4061c28c82e9SRob Clark #define A6XX_RB_BLIT_BASE_GMEM__MASK				0xfffff000
4062c28c82e9SRob Clark #define A6XX_RB_BLIT_BASE_GMEM__SHIFT				12
A6XX_RB_BLIT_BASE_GMEM(uint32_t val)4063c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_BASE_GMEM(uint32_t val)
4064c28c82e9SRob Clark {
4065c28c82e9SRob Clark 	return ((val >> 12) << A6XX_RB_BLIT_BASE_GMEM__SHIFT) & A6XX_RB_BLIT_BASE_GMEM__MASK;
4066c28c82e9SRob Clark }
40672d756322SRob Clark 
40682d756322SRob Clark #define REG_A6XX_RB_BLIT_DST_INFO				0x000088d7
40692d756322SRob Clark #define A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK			0x00000003
40702d756322SRob Clark #define A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT			0
A6XX_RB_BLIT_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)40712d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
40722d756322SRob Clark {
40732d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_BLIT_DST_INFO_TILE_MODE__MASK;
40742d756322SRob Clark }
40752d756322SRob Clark #define A6XX_RB_BLIT_DST_INFO_FLAGS				0x00000004
4076ccdf7e28SRob Clark #define A6XX_RB_BLIT_DST_INFO_SAMPLES__MASK			0x00000018
4077ccdf7e28SRob Clark #define A6XX_RB_BLIT_DST_INFO_SAMPLES__SHIFT			3
A6XX_RB_BLIT_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)4078ccdf7e28SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)
4079ccdf7e28SRob Clark {
4080ccdf7e28SRob Clark 	return ((val) << A6XX_RB_BLIT_DST_INFO_SAMPLES__SHIFT) & A6XX_RB_BLIT_DST_INFO_SAMPLES__MASK;
4081ccdf7e28SRob Clark }
40822d756322SRob Clark #define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK			0x00000060
40832d756322SRob Clark #define A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT			5
A6XX_RB_BLIT_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)40842d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
40852d756322SRob Clark {
40862d756322SRob Clark 	return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_SWAP__MASK;
40872d756322SRob Clark }
4088c28c82e9SRob Clark #define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK		0x00007f80
4089c28c82e9SRob Clark #define A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT		7
A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_format val)4090c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT(enum a6xx_format val)
4091c28c82e9SRob Clark {
4092c28c82e9SRob Clark 	return ((val) << A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_BLIT_DST_INFO_COLOR_FORMAT__MASK;
4093c28c82e9SRob Clark }
4094c28c82e9SRob Clark #define A6XX_RB_BLIT_DST_INFO_UNK15				0x00008000
4095c28c82e9SRob Clark 
4096c28c82e9SRob Clark #define REG_A6XX_RB_BLIT_DST					0x000088d8
4097c28c82e9SRob Clark #define A6XX_RB_BLIT_DST__MASK					0xffffffff
4098c28c82e9SRob Clark #define A6XX_RB_BLIT_DST__SHIFT					0
A6XX_RB_BLIT_DST(uint32_t val)4099c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_DST(uint32_t val)
4100c28c82e9SRob Clark {
4101c28c82e9SRob Clark 	return ((val) << A6XX_RB_BLIT_DST__SHIFT) & A6XX_RB_BLIT_DST__MASK;
4102c28c82e9SRob Clark }
41032d756322SRob Clark 
41042d756322SRob Clark #define REG_A6XX_RB_BLIT_DST_PITCH				0x000088da
4105c28c82e9SRob Clark #define A6XX_RB_BLIT_DST_PITCH__MASK				0x0000ffff
41062d756322SRob Clark #define A6XX_RB_BLIT_DST_PITCH__SHIFT				0
A6XX_RB_BLIT_DST_PITCH(uint32_t val)41072d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_PITCH(uint32_t val)
41082d756322SRob Clark {
41092d756322SRob Clark 	return ((val >> 6) << A6XX_RB_BLIT_DST_PITCH__SHIFT) & A6XX_RB_BLIT_DST_PITCH__MASK;
41102d756322SRob Clark }
41112d756322SRob Clark 
41122d756322SRob Clark #define REG_A6XX_RB_BLIT_DST_ARRAY_PITCH			0x000088db
4113c28c82e9SRob Clark #define A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK			0x1fffffff
41142d756322SRob Clark #define A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT			0
A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)41152d756322SRob Clark static inline uint32_t A6XX_RB_BLIT_DST_ARRAY_PITCH(uint32_t val)
41162d756322SRob Clark {
41172d756322SRob Clark 	return ((val >> 6) << A6XX_RB_BLIT_DST_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_DST_ARRAY_PITCH__MASK;
41182d756322SRob Clark }
41192d756322SRob Clark 
4120c28c82e9SRob Clark #define REG_A6XX_RB_BLIT_FLAG_DST				0x000088dc
4121c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST__MASK				0xffffffff
4122c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST__SHIFT				0
A6XX_RB_BLIT_FLAG_DST(uint32_t val)4123c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_FLAG_DST(uint32_t val)
4124c28c82e9SRob Clark {
4125c28c82e9SRob Clark 	return ((val) << A6XX_RB_BLIT_FLAG_DST__SHIFT) & A6XX_RB_BLIT_FLAG_DST__MASK;
4126c28c82e9SRob Clark }
4127c28c82e9SRob Clark 
4128c28c82e9SRob Clark #define REG_A6XX_RB_BLIT_FLAG_DST_PITCH				0x000088de
4129c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK			0x000007ff
4130c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT		0
A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH(uint32_t val)4131c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH(uint32_t val)
4132c28c82e9SRob Clark {
4133c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_PITCH__MASK;
4134c28c82e9SRob Clark }
4135c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK		0x0ffff800
4136c28c82e9SRob Clark #define A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT		11
A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH(uint32_t val)4137c28c82e9SRob Clark static inline uint32_t A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH(uint32_t val)
4138c28c82e9SRob Clark {
4139c28c82e9SRob Clark 	return ((val >> 7) << A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_BLIT_FLAG_DST_PITCH_ARRAY_PITCH__MASK;
4140c28c82e9SRob Clark }
4141c28c82e9SRob Clark 
41422d756322SRob Clark #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW0			0x000088df
41432d756322SRob Clark 
41442d756322SRob Clark #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW1			0x000088e0
41452d756322SRob Clark 
41462d756322SRob Clark #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW2			0x000088e1
41472d756322SRob Clark 
41482d756322SRob Clark #define REG_A6XX_RB_BLIT_CLEAR_COLOR_DW3			0x000088e2
41492d756322SRob Clark 
41502d756322SRob Clark #define REG_A6XX_RB_BLIT_INFO					0x000088e3
41512d756322SRob Clark #define A6XX_RB_BLIT_INFO_UNK0					0x00000001
4152a69c5ed2SRob Clark #define A6XX_RB_BLIT_INFO_GMEM					0x00000002
4153cc4c26d4SRob Clark #define A6XX_RB_BLIT_INFO_SAMPLE_0				0x00000004
4154a69c5ed2SRob Clark #define A6XX_RB_BLIT_INFO_DEPTH					0x00000008
4155a69c5ed2SRob Clark #define A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK			0x000000f0
4156a69c5ed2SRob Clark #define A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT			4
A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val)4157a69c5ed2SRob Clark static inline uint32_t A6XX_RB_BLIT_INFO_CLEAR_MASK(uint32_t val)
41582d756322SRob Clark {
4159a69c5ed2SRob Clark 	return ((val) << A6XX_RB_BLIT_INFO_CLEAR_MASK__SHIFT) & A6XX_RB_BLIT_INFO_CLEAR_MASK__MASK;
41602d756322SRob Clark }
4161f73343faSRob Clark #define A6XX_RB_BLIT_INFO_LAST__MASK				0x00000300
4162f73343faSRob Clark #define A6XX_RB_BLIT_INFO_LAST__SHIFT				8
A6XX_RB_BLIT_INFO_LAST(uint32_t val)4163f73343faSRob Clark static inline uint32_t A6XX_RB_BLIT_INFO_LAST(uint32_t val)
4164c28c82e9SRob Clark {
4165f73343faSRob Clark 	return ((val) << A6XX_RB_BLIT_INFO_LAST__SHIFT) & A6XX_RB_BLIT_INFO_LAST__MASK;
4166c28c82e9SRob Clark }
4167f73343faSRob Clark #define A6XX_RB_BLIT_INFO_BUFFER_ID__MASK			0x0000f000
4168f73343faSRob Clark #define A6XX_RB_BLIT_INFO_BUFFER_ID__SHIFT			12
A6XX_RB_BLIT_INFO_BUFFER_ID(uint32_t val)4169f73343faSRob Clark static inline uint32_t A6XX_RB_BLIT_INFO_BUFFER_ID(uint32_t val)
4170c28c82e9SRob Clark {
4171f73343faSRob Clark 	return ((val) << A6XX_RB_BLIT_INFO_BUFFER_ID__SHIFT) & A6XX_RB_BLIT_INFO_BUFFER_ID__MASK;
4172c28c82e9SRob Clark }
41732d756322SRob Clark 
41742d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_88F0				0x000088f0
41752d756322SRob Clark 
4176c28c82e9SRob Clark #define REG_A6XX_RB_UNK_FLAG_BUFFER_BASE			0x000088f1
4177c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_BASE__MASK			0xffffffff
4178c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_BASE__SHIFT			0
A6XX_RB_UNK_FLAG_BUFFER_BASE(uint32_t val)4179c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_BASE(uint32_t val)
4180c28c82e9SRob Clark {
4181c28c82e9SRob Clark 	return ((val) << A6XX_RB_UNK_FLAG_BUFFER_BASE__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_BASE__MASK;
4182c28c82e9SRob Clark }
4183c28c82e9SRob Clark 
4184c28c82e9SRob Clark #define REG_A6XX_RB_UNK_FLAG_BUFFER_PITCH			0x000088f3
4185c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__MASK		0x000007ff
4186c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH(uint32_t val)4187c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
4188c28c82e9SRob Clark {
4189c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_PITCH_PITCH__MASK;
4190c28c82e9SRob Clark }
4191c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK		0x00fff800
4192c28c82e9SRob Clark #define A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)4193c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
4194c28c82e9SRob Clark {
4195c28c82e9SRob Clark 	return ((val >> 7) << A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_UNK_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
4196c28c82e9SRob Clark }
4197c28c82e9SRob Clark 
4198c28c82e9SRob Clark #define REG_A6XX_RB_UNKNOWN_88F4				0x000088f4
4199c28c82e9SRob Clark 
4200c28c82e9SRob Clark #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_BASE			0x00008900
4201c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_BASE__MASK			0xffffffff
4202c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_BASE__SHIFT			0
A6XX_RB_DEPTH_FLAG_BUFFER_BASE(uint32_t val)4203c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_BASE(uint32_t val)
4204c28c82e9SRob Clark {
4205c28c82e9SRob Clark 	return ((val) << A6XX_RB_DEPTH_FLAG_BUFFER_BASE__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_BASE__MASK;
4206c28c82e9SRob Clark }
4207c28c82e9SRob Clark 
42082d756322SRob Clark #define REG_A6XX_RB_DEPTH_FLAG_BUFFER_PITCH			0x00008902
4209c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK		0x0000007f
4210c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH(uint32_t val)4211c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
4212c28c82e9SRob Clark {
4213c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_PITCH__MASK;
4214c28c82e9SRob Clark }
4215c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__MASK		0x00000700
4216c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__SHIFT		8
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8(uint32_t val)4217c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8(uint32_t val)
4218c28c82e9SRob Clark {
4219c28c82e9SRob Clark 	return ((val) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_UNK8__MASK;
4220c28c82e9SRob Clark }
4221c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK	0x0ffff800
4222c28c82e9SRob Clark #define A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)4223c28c82e9SRob Clark static inline uint32_t A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
4224c28c82e9SRob Clark {
4225c28c82e9SRob Clark 	return ((val >> 7) << A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_DEPTH_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
4226c28c82e9SRob Clark }
42272d756322SRob Clark 
REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0)42282d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER(uint32_t i0) { return 0x00008903 + 0x3*i0; }
42292d756322SRob Clark 
REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t i0)4230c28c82e9SRob Clark static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t i0) { return 0x00008903 + 0x3*i0; }
4231c28c82e9SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_ADDR__MASK			0xffffffff
4232c28c82e9SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_ADDR__SHIFT			0
A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t val)4233c28c82e9SRob Clark static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_ADDR(uint32_t val)
4234c28c82e9SRob Clark {
4235c28c82e9SRob Clark 	return ((val) << A6XX_RB_MRT_FLAG_BUFFER_ADDR__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_ADDR__MASK;
4236c28c82e9SRob Clark }
4237c28c82e9SRob Clark 
REG_A6XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0)42382d756322SRob Clark static inline uint32_t REG_A6XX_RB_MRT_FLAG_BUFFER_PITCH(uint32_t i0) { return 0x00008905 + 0x3*i0; }
42392d756322SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK		0x000007ff
42402d756322SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT		0
A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH(uint32_t val)42412d756322SRob Clark static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH(uint32_t val)
42422d756322SRob Clark {
4243c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_PITCH__MASK;
42442d756322SRob Clark }
4245c28c82e9SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK		0x1ffff800
42462d756322SRob Clark #define A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT	11
A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)42472d756322SRob Clark static inline uint32_t A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH(uint32_t val)
42482d756322SRob Clark {
4249c28c82e9SRob Clark 	return ((val >> 7) << A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__SHIFT) & A6XX_RB_MRT_FLAG_BUFFER_PITCH_ARRAY_PITCH__MASK;
42502d756322SRob Clark }
42512d756322SRob Clark 
4252c28c82e9SRob Clark #define REG_A6XX_RB_SAMPLE_COUNT_ADDR				0x00008927
4253c28c82e9SRob Clark #define A6XX_RB_SAMPLE_COUNT_ADDR__MASK				0xffffffff
4254c28c82e9SRob Clark #define A6XX_RB_SAMPLE_COUNT_ADDR__SHIFT			0
A6XX_RB_SAMPLE_COUNT_ADDR(uint32_t val)4255c28c82e9SRob Clark static inline uint32_t A6XX_RB_SAMPLE_COUNT_ADDR(uint32_t val)
4256c28c82e9SRob Clark {
4257c28c82e9SRob Clark 	return ((val) << A6XX_RB_SAMPLE_COUNT_ADDR__SHIFT) & A6XX_RB_SAMPLE_COUNT_ADDR__MASK;
4258c28c82e9SRob Clark }
4259c28c82e9SRob Clark 
426057cfe41cSRob Clark #define REG_A6XX_RB_UNKNOWN_8A00				0x00008a00
426157cfe41cSRob Clark 
426257cfe41cSRob Clark #define REG_A6XX_RB_UNKNOWN_8A10				0x00008a10
426357cfe41cSRob Clark 
426457cfe41cSRob Clark #define REG_A6XX_RB_UNKNOWN_8A20				0x00008a20
426557cfe41cSRob Clark 
426657cfe41cSRob Clark #define REG_A6XX_RB_UNKNOWN_8A30				0x00008a30
426757cfe41cSRob Clark 
42682d756322SRob Clark #define REG_A6XX_RB_2D_BLIT_CNTL				0x00008c00
4269c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK			0x00000007
4270c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT			0
A6XX_RB_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)4271c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_ROTATE(enum a6xx_rotation val)
4272c28c82e9SRob Clark {
4273c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_ROTATE__SHIFT) & A6XX_RB_2D_BLIT_CNTL_ROTATE__MASK;
4274c28c82e9SRob Clark }
427557cfe41cSRob Clark #define A6XX_RB_2D_BLIT_CNTL_OVERWRITEEN			0x00000008
427657cfe41cSRob Clark #define A6XX_RB_2D_BLIT_CNTL_UNK4__MASK				0x00000070
427757cfe41cSRob Clark #define A6XX_RB_2D_BLIT_CNTL_UNK4__SHIFT			4
A6XX_RB_2D_BLIT_CNTL_UNK4(uint32_t val)427857cfe41cSRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK4(uint32_t val)
4279c28c82e9SRob Clark {
428057cfe41cSRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK4__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK4__MASK;
4281c28c82e9SRob Clark }
4282c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_SOLID_COLOR			0x00000080
42832d756322SRob Clark #define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK			0x0000ff00
42842d756322SRob Clark #define A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT		8
A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)4285c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT(enum a6xx_format val)
42862d756322SRob Clark {
42872d756322SRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_COLOR_FORMAT__MASK;
42882d756322SRob Clark }
4289ccdf7e28SRob Clark #define A6XX_RB_2D_BLIT_CNTL_SCISSOR				0x00010000
4290c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_UNK17__MASK			0x00060000
4291c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_UNK17__SHIFT			17
A6XX_RB_2D_BLIT_CNTL_UNK17(uint32_t val)4292c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_UNK17(uint32_t val)
4293c28c82e9SRob Clark {
4294c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_UNK17__SHIFT) & A6XX_RB_2D_BLIT_CNTL_UNK17__MASK;
4295c28c82e9SRob Clark }
4296c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_D24S8				0x00080000
4297c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_MASK__MASK				0x00f00000
4298c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT			20
A6XX_RB_2D_BLIT_CNTL_MASK(uint32_t val)4299c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_MASK(uint32_t val)
4300c28c82e9SRob Clark {
4301c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_MASK__SHIFT) & A6XX_RB_2D_BLIT_CNTL_MASK__MASK;
4302c28c82e9SRob Clark }
4303c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_IFMT__MASK				0x1f000000
4304c28c82e9SRob Clark #define A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT			24
A6XX_RB_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)4305c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_IFMT(enum a6xx_2d_ifmt val)
4306c28c82e9SRob Clark {
4307c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_IFMT__SHIFT) & A6XX_RB_2D_BLIT_CNTL_IFMT__MASK;
4308c28c82e9SRob Clark }
430957cfe41cSRob Clark #define A6XX_RB_2D_BLIT_CNTL_RASTER_MODE__MASK			0x20000000
431057cfe41cSRob Clark #define A6XX_RB_2D_BLIT_CNTL_RASTER_MODE__SHIFT			29
A6XX_RB_2D_BLIT_CNTL_RASTER_MODE(enum a6xx_raster_mode val)431157cfe41cSRob Clark static inline uint32_t A6XX_RB_2D_BLIT_CNTL_RASTER_MODE(enum a6xx_raster_mode val)
4312c28c82e9SRob Clark {
431357cfe41cSRob Clark 	return ((val) << A6XX_RB_2D_BLIT_CNTL_RASTER_MODE__SHIFT) & A6XX_RB_2D_BLIT_CNTL_RASTER_MODE__MASK;
4314c28c82e9SRob Clark }
4315ccdf7e28SRob Clark 
4316c28c82e9SRob Clark #define REG_A6XX_RB_2D_UNKNOWN_8C01				0x00008c01
43172d756322SRob Clark 
43182d756322SRob Clark #define REG_A6XX_RB_2D_DST_INFO					0x00008c17
43192d756322SRob Clark #define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK			0x000000ff
43202d756322SRob Clark #define A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT			0
A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_format val)4321c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_FORMAT(enum a6xx_format val)
43222d756322SRob Clark {
43232d756322SRob Clark 	return ((val) << A6XX_RB_2D_DST_INFO_COLOR_FORMAT__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_FORMAT__MASK;
43242d756322SRob Clark }
43252d756322SRob Clark #define A6XX_RB_2D_DST_INFO_TILE_MODE__MASK			0x00000300
43262d756322SRob Clark #define A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT			8
A6XX_RB_2D_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)43272d756322SRob Clark static inline uint32_t A6XX_RB_2D_DST_INFO_TILE_MODE(enum a6xx_tile_mode val)
43282d756322SRob Clark {
43292d756322SRob Clark 	return ((val) << A6XX_RB_2D_DST_INFO_TILE_MODE__SHIFT) & A6XX_RB_2D_DST_INFO_TILE_MODE__MASK;
43302d756322SRob Clark }
43312d756322SRob Clark #define A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK			0x00000c00
43322d756322SRob Clark #define A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT			10
A6XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)43332d756322SRob Clark static inline uint32_t A6XX_RB_2D_DST_INFO_COLOR_SWAP(enum a3xx_color_swap val)
43342d756322SRob Clark {
43352d756322SRob Clark 	return ((val) << A6XX_RB_2D_DST_INFO_COLOR_SWAP__SHIFT) & A6XX_RB_2D_DST_INFO_COLOR_SWAP__MASK;
43362d756322SRob Clark }
43372d756322SRob Clark #define A6XX_RB_2D_DST_INFO_FLAGS				0x00001000
4338c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_SRGB				0x00002000
4339c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_SAMPLES__MASK			0x0000c000
4340c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT			14
A6XX_RB_2D_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)4341c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_INFO_SAMPLES(enum a3xx_msaa_samples val)
4342c28c82e9SRob Clark {
4343c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST_INFO_SAMPLES__SHIFT) & A6XX_RB_2D_DST_INFO_SAMPLES__MASK;
4344c28c82e9SRob Clark }
4345c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_FILTER				0x00010000
4346cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK17				0x00020000
4347c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_SAMPLES_AVERAGE			0x00040000
4348cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK19				0x00080000
4349c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_UNK20				0x00100000
4350cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK21				0x00200000
4351c28c82e9SRob Clark #define A6XX_RB_2D_DST_INFO_UNK22				0x00400000
4352cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK23__MASK				0x07800000
4353cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK23__SHIFT			23
A6XX_RB_2D_DST_INFO_UNK23(uint32_t val)4354cc4c26d4SRob Clark static inline uint32_t A6XX_RB_2D_DST_INFO_UNK23(uint32_t val)
4355cc4c26d4SRob Clark {
4356cc4c26d4SRob Clark 	return ((val) << A6XX_RB_2D_DST_INFO_UNK23__SHIFT) & A6XX_RB_2D_DST_INFO_UNK23__MASK;
4357cc4c26d4SRob Clark }
4358cc4c26d4SRob Clark #define A6XX_RB_2D_DST_INFO_UNK28				0x10000000
43592d756322SRob Clark 
4360c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST					0x00008c18
4361c28c82e9SRob Clark #define A6XX_RB_2D_DST__MASK					0xffffffff
4362c28c82e9SRob Clark #define A6XX_RB_2D_DST__SHIFT					0
A6XX_RB_2D_DST(uint32_t val)4363c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST(uint32_t val)
43642d756322SRob Clark {
4365c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST__SHIFT) & A6XX_RB_2D_DST__MASK;
4366c28c82e9SRob Clark }
4367c28c82e9SRob Clark 
4368c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_PITCH				0x00008c1a
4369c28c82e9SRob Clark #define A6XX_RB_2D_DST_PITCH__MASK				0x0000ffff
4370c28c82e9SRob Clark #define A6XX_RB_2D_DST_PITCH__SHIFT				0
A6XX_RB_2D_DST_PITCH(uint32_t val)4371c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_PITCH(uint32_t val)
4372c28c82e9SRob Clark {
4373c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_2D_DST_PITCH__SHIFT) & A6XX_RB_2D_DST_PITCH__MASK;
4374c28c82e9SRob Clark }
4375c28c82e9SRob Clark 
4376c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_PLANE1				0x00008c1b
4377c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE1__MASK				0xffffffff
4378c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE1__SHIFT				0
A6XX_RB_2D_DST_PLANE1(uint32_t val)4379c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_PLANE1(uint32_t val)
4380c28c82e9SRob Clark {
4381c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST_PLANE1__SHIFT) & A6XX_RB_2D_DST_PLANE1__MASK;
4382c28c82e9SRob Clark }
4383c28c82e9SRob Clark 
4384c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_PLANE_PITCH				0x00008c1d
4385c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE_PITCH__MASK			0x0000ffff
4386c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE_PITCH__SHIFT			0
A6XX_RB_2D_DST_PLANE_PITCH(uint32_t val)4387c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_PLANE_PITCH(uint32_t val)
4388c28c82e9SRob Clark {
4389c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_2D_DST_PLANE_PITCH__SHIFT) & A6XX_RB_2D_DST_PLANE_PITCH__MASK;
4390c28c82e9SRob Clark }
4391c28c82e9SRob Clark 
4392c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_PLANE2				0x00008c1e
4393c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE2__MASK				0xffffffff
4394c28c82e9SRob Clark #define A6XX_RB_2D_DST_PLANE2__SHIFT				0
A6XX_RB_2D_DST_PLANE2(uint32_t val)4395c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_PLANE2(uint32_t val)
4396c28c82e9SRob Clark {
4397c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST_PLANE2__SHIFT) & A6XX_RB_2D_DST_PLANE2__MASK;
43982d756322SRob Clark }
43992d756322SRob Clark 
4400c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_FLAGS				0x00008c20
4401c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS__MASK				0xffffffff
4402c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS__SHIFT				0
A6XX_RB_2D_DST_FLAGS(uint32_t val)4403c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_FLAGS(uint32_t val)
4404c28c82e9SRob Clark {
4405c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST_FLAGS__SHIFT) & A6XX_RB_2D_DST_FLAGS__MASK;
4406c28c82e9SRob Clark }
4407c28c82e9SRob Clark 
4408c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_FLAGS_PITCH				0x00008c22
4409c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PITCH__MASK			0x000000ff
4410c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PITCH__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PITCH(uint32_t val)4411c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_FLAGS_PITCH(uint32_t val)
4412c28c82e9SRob Clark {
4413c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_2D_DST_FLAGS_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PITCH__MASK;
4414c28c82e9SRob Clark }
4415c28c82e9SRob Clark 
4416c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_FLAGS_PLANE				0x00008c23
4417c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PLANE__MASK			0xffffffff
4418c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PLANE__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PLANE(uint32_t val)4419c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_FLAGS_PLANE(uint32_t val)
4420c28c82e9SRob Clark {
4421c28c82e9SRob Clark 	return ((val) << A6XX_RB_2D_DST_FLAGS_PLANE__SHIFT) & A6XX_RB_2D_DST_FLAGS_PLANE__MASK;
4422c28c82e9SRob Clark }
4423c28c82e9SRob Clark 
4424c28c82e9SRob Clark #define REG_A6XX_RB_2D_DST_FLAGS_PLANE_PITCH			0x00008c25
4425c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__MASK			0x000000ff
4426c28c82e9SRob Clark #define A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__SHIFT			0
A6XX_RB_2D_DST_FLAGS_PLANE_PITCH(uint32_t val)4427c28c82e9SRob Clark static inline uint32_t A6XX_RB_2D_DST_FLAGS_PLANE_PITCH(uint32_t val)
4428c28c82e9SRob Clark {
4429c28c82e9SRob Clark 	return ((val >> 6) << A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__SHIFT) & A6XX_RB_2D_DST_FLAGS_PLANE_PITCH__MASK;
4430c28c82e9SRob Clark }
4431c28c82e9SRob Clark 
44322d756322SRob Clark #define REG_A6XX_RB_2D_SRC_SOLID_C0				0x00008c2c
44332d756322SRob Clark 
44342d756322SRob Clark #define REG_A6XX_RB_2D_SRC_SOLID_C1				0x00008c2d
44352d756322SRob Clark 
44362d756322SRob Clark #define REG_A6XX_RB_2D_SRC_SOLID_C2				0x00008c2e
44372d756322SRob Clark 
44382d756322SRob Clark #define REG_A6XX_RB_2D_SRC_SOLID_C3				0x00008c2f
44392d756322SRob Clark 
44402d756322SRob Clark #define REG_A6XX_RB_UNKNOWN_8E01				0x00008e01
44412d756322SRob Clark 
4442f73343faSRob Clark #define REG_A6XX_RB_DBG_ECO_CNTL				0x00008e04
4443a69c5ed2SRob Clark 
4444c28c82e9SRob Clark #define REG_A6XX_RB_ADDR_MODE_CNTL				0x00008e05
4445c28c82e9SRob Clark 
44462d756322SRob Clark #define REG_A6XX_RB_CCU_CNTL					0x00008e07
4447f73343faSRob Clark #define A6XX_RB_CCU_CNTL_CONCURRENT_RESOLVE			0x00000004
4448f73343faSRob Clark #define A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI__MASK			0x00000080
4449f73343faSRob Clark #define A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI__SHIFT			7
A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI(uint32_t val)4450f73343faSRob Clark static inline uint32_t A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI(uint32_t val)
4451c28c82e9SRob Clark {
4452f73343faSRob Clark 	return ((val) << A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI__SHIFT) & A6XX_RB_CCU_CNTL_DEPTH_OFFSET_HI__MASK;
4453f73343faSRob Clark }
4454f73343faSRob Clark #define A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI__MASK			0x00000200
4455f73343faSRob Clark #define A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI__SHIFT			9
A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI(uint32_t val)4456f73343faSRob Clark static inline uint32_t A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI(uint32_t val)
4457f73343faSRob Clark {
4458f73343faSRob Clark 	return ((val) << A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI__SHIFT) & A6XX_RB_CCU_CNTL_COLOR_OFFSET_HI__MASK;
445957cfe41cSRob Clark }
446057cfe41cSRob Clark #define A6XX_RB_CCU_CNTL_DEPTH_OFFSET__MASK			0x001ff000
446157cfe41cSRob Clark #define A6XX_RB_CCU_CNTL_DEPTH_OFFSET__SHIFT			12
A6XX_RB_CCU_CNTL_DEPTH_OFFSET(uint32_t val)446257cfe41cSRob Clark static inline uint32_t A6XX_RB_CCU_CNTL_DEPTH_OFFSET(uint32_t val)
446357cfe41cSRob Clark {
446457cfe41cSRob Clark 	return ((val >> 12) << A6XX_RB_CCU_CNTL_DEPTH_OFFSET__SHIFT) & A6XX_RB_CCU_CNTL_DEPTH_OFFSET__MASK;
4465c28c82e9SRob Clark }
4466c28c82e9SRob Clark #define A6XX_RB_CCU_CNTL_GMEM					0x00400000
4467f73343faSRob Clark #define A6XX_RB_CCU_CNTL_COLOR_OFFSET__MASK			0xff800000
4468f73343faSRob Clark #define A6XX_RB_CCU_CNTL_COLOR_OFFSET__SHIFT			23
A6XX_RB_CCU_CNTL_COLOR_OFFSET(uint32_t val)4469f73343faSRob Clark static inline uint32_t A6XX_RB_CCU_CNTL_COLOR_OFFSET(uint32_t val)
4470f73343faSRob Clark {
4471f73343faSRob Clark 	return ((val >> 12) << A6XX_RB_CCU_CNTL_COLOR_OFFSET__SHIFT) & A6XX_RB_CCU_CNTL_COLOR_OFFSET__MASK;
4472f73343faSRob Clark }
44732d756322SRob Clark 
4474c28c82e9SRob Clark #define REG_A6XX_RB_NC_MODE_CNTL				0x00008e08
4475c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_MODE				0x00000001
4476c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_LOWER_BIT__MASK			0x00000006
4477c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_LOWER_BIT__SHIFT			1
A6XX_RB_NC_MODE_CNTL_LOWER_BIT(uint32_t val)4478c28c82e9SRob Clark static inline uint32_t A6XX_RB_NC_MODE_CNTL_LOWER_BIT(uint32_t val)
4479c28c82e9SRob Clark {
4480c28c82e9SRob Clark 	return ((val) << A6XX_RB_NC_MODE_CNTL_LOWER_BIT__SHIFT) & A6XX_RB_NC_MODE_CNTL_LOWER_BIT__MASK;
4481c28c82e9SRob Clark }
4482c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_MIN_ACCESS_LENGTH			0x00000008
4483c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_AMSBC				0x00000010
4484c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_UPPER_BIT__MASK			0x00000400
4485c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_UPPER_BIT__SHIFT			10
A6XX_RB_NC_MODE_CNTL_UPPER_BIT(uint32_t val)4486c28c82e9SRob Clark static inline uint32_t A6XX_RB_NC_MODE_CNTL_UPPER_BIT(uint32_t val)
4487c28c82e9SRob Clark {
4488c28c82e9SRob Clark 	return ((val) << A6XX_RB_NC_MODE_CNTL_UPPER_BIT__SHIFT) & A6XX_RB_NC_MODE_CNTL_UPPER_BIT__MASK;
4489c28c82e9SRob Clark }
4490c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_RGB565_PREDICATOR			0x00000800
4491c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_UNK12__MASK			0x00003000
4492c28c82e9SRob Clark #define A6XX_RB_NC_MODE_CNTL_UNK12__SHIFT			12
A6XX_RB_NC_MODE_CNTL_UNK12(uint32_t val)4493c28c82e9SRob Clark static inline uint32_t A6XX_RB_NC_MODE_CNTL_UNK12(uint32_t val)
4494c28c82e9SRob Clark {
4495c28c82e9SRob Clark 	return ((val) << A6XX_RB_NC_MODE_CNTL_UNK12__SHIFT) & A6XX_RB_NC_MODE_CNTL_UNK12__MASK;
4496c28c82e9SRob Clark }
44972d756322SRob Clark 
REG_A6XX_RB_PERFCTR_RB_SEL(uint32_t i0)4498cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RB_PERFCTR_RB_SEL(uint32_t i0) { return 0x00008e10 + 0x1*i0; }
4499c28c82e9SRob Clark 
REG_A6XX_RB_PERFCTR_CCU_SEL(uint32_t i0)4500cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RB_PERFCTR_CCU_SEL(uint32_t i0) { return 0x00008e18 + 0x1*i0; }
4501c28c82e9SRob Clark 
4502c28c82e9SRob Clark #define REG_A6XX_RB_UNKNOWN_8E28				0x00008e28
4503c28c82e9SRob Clark 
REG_A6XX_RB_PERFCTR_CMP_SEL(uint32_t i0)4504cc4c26d4SRob Clark static inline uint32_t REG_A6XX_RB_PERFCTR_CMP_SEL(uint32_t i0) { return 0x00008e2c + 0x1*i0; }
4505c28c82e9SRob Clark 
REG_A7XX_RB_PERFCTR_UFC_SEL(uint32_t i0)4506f73343faSRob Clark static inline uint32_t REG_A7XX_RB_PERFCTR_UFC_SEL(uint32_t i0) { return 0x00008e30 + 0x1*i0; }
4507f73343faSRob Clark 
4508c28c82e9SRob Clark #define REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_HOST			0x00008e3b
4509c28c82e9SRob Clark 
4510c28c82e9SRob Clark #define REG_A6XX_RB_RB_SUB_BLOCK_SEL_CNTL_CD			0x00008e3d
4511c28c82e9SRob Clark 
4512c28c82e9SRob Clark #define REG_A6XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE		0x00008e50
4513c28c82e9SRob Clark 
4514c28c82e9SRob Clark #define REG_A6XX_RB_UNKNOWN_8E51				0x00008e51
4515c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_8E51__MASK				0xffffffff
4516c28c82e9SRob Clark #define A6XX_RB_UNKNOWN_8E51__SHIFT				0
A6XX_RB_UNKNOWN_8E51(uint32_t val)4517c28c82e9SRob Clark static inline uint32_t A6XX_RB_UNKNOWN_8E51(uint32_t val)
4518c28c82e9SRob Clark {
4519c28c82e9SRob Clark 	return ((val) << A6XX_RB_UNKNOWN_8E51__SHIFT) & A6XX_RB_UNKNOWN_8E51__MASK;
4520c28c82e9SRob Clark }
4521c28c82e9SRob Clark 
452257cfe41cSRob Clark #define REG_A6XX_VPC_GS_PARAM					0x00009100
452357cfe41cSRob Clark #define A6XX_VPC_GS_PARAM_LINELENGTHLOC__MASK			0x000000ff
452457cfe41cSRob Clark #define A6XX_VPC_GS_PARAM_LINELENGTHLOC__SHIFT			0
A6XX_VPC_GS_PARAM_LINELENGTHLOC(uint32_t val)452557cfe41cSRob Clark static inline uint32_t A6XX_VPC_GS_PARAM_LINELENGTHLOC(uint32_t val)
452657cfe41cSRob Clark {
452757cfe41cSRob Clark 	return ((val) << A6XX_VPC_GS_PARAM_LINELENGTHLOC__SHIFT) & A6XX_VPC_GS_PARAM_LINELENGTHLOC__MASK;
452857cfe41cSRob Clark }
4529c28c82e9SRob Clark 
4530c28c82e9SRob Clark #define REG_A6XX_VPC_VS_CLIP_CNTL				0x00009101
4531c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4532c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK(uint32_t val)4533c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4534c28c82e9SRob Clark {
4535c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_MASK__MASK;
4536c28c82e9SRob Clark }
4537c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4538c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4539c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4540c28c82e9SRob Clark {
4541c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4542c28c82e9SRob Clark }
4543c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4544c28c82e9SRob Clark #define A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4545c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4546c28c82e9SRob Clark {
4547c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_VS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4548c28c82e9SRob Clark }
4549c28c82e9SRob Clark 
4550c28c82e9SRob Clark #define REG_A6XX_VPC_GS_CLIP_CNTL				0x00009102
4551c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4552c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK(uint32_t val)4553c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4554c28c82e9SRob Clark {
4555c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_MASK__MASK;
4556c28c82e9SRob Clark }
4557c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4558c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4559c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4560c28c82e9SRob Clark {
4561c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4562c28c82e9SRob Clark }
4563c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4564c28c82e9SRob Clark #define A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4565c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4566c28c82e9SRob Clark {
4567c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_GS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4568c28c82e9SRob Clark }
4569c28c82e9SRob Clark 
4570c28c82e9SRob Clark #define REG_A6XX_VPC_DS_CLIP_CNTL				0x00009103
4571c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__MASK			0x000000ff
4572c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__SHIFT			0
A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK(uint32_t val)4573c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK(uint32_t val)
4574c28c82e9SRob Clark {
4575c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_MASK__MASK;
4576c28c82e9SRob Clark }
4577c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK		0x0000ff00
4578c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT		8
A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)4579c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC(uint32_t val)
4580c28c82e9SRob Clark {
4581c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_03_LOC__MASK;
4582c28c82e9SRob Clark }
4583c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK		0x00ff0000
4584c28c82e9SRob Clark #define A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT		16
A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)4585c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC(uint32_t val)
4586c28c82e9SRob Clark {
4587c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__SHIFT) & A6XX_VPC_DS_CLIP_CNTL_CLIP_DIST_47_LOC__MASK;
4588c28c82e9SRob Clark }
4589c28c82e9SRob Clark 
4590c28c82e9SRob Clark #define REG_A6XX_VPC_VS_LAYER_CNTL				0x00009104
4591c28c82e9SRob Clark #define A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4592c28c82e9SRob Clark #define A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_VS_LAYER_CNTL_LAYERLOC(uint32_t val)4593c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_LAYER_CNTL_LAYERLOC(uint32_t val)
4594c28c82e9SRob Clark {
4595c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_VS_LAYER_CNTL_LAYERLOC__MASK;
4596c28c82e9SRob Clark }
4597c28c82e9SRob Clark #define A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4598c28c82e9SRob Clark #define A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_VS_LAYER_CNTL_VIEWLOC(uint32_t val)4599c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_LAYER_CNTL_VIEWLOC(uint32_t val)
4600c28c82e9SRob Clark {
4601c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_VS_LAYER_CNTL_VIEWLOC__MASK;
4602c28c82e9SRob Clark }
4603c28c82e9SRob Clark 
4604c28c82e9SRob Clark #define REG_A6XX_VPC_GS_LAYER_CNTL				0x00009105
4605c28c82e9SRob Clark #define A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4606c28c82e9SRob Clark #define A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_GS_LAYER_CNTL_LAYERLOC(uint32_t val)4607c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_LAYER_CNTL_LAYERLOC(uint32_t val)
4608c28c82e9SRob Clark {
4609c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_GS_LAYER_CNTL_LAYERLOC__MASK;
4610c28c82e9SRob Clark }
4611c28c82e9SRob Clark #define A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4612c28c82e9SRob Clark #define A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_GS_LAYER_CNTL_VIEWLOC(uint32_t val)4613c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_LAYER_CNTL_VIEWLOC(uint32_t val)
4614c28c82e9SRob Clark {
4615c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_GS_LAYER_CNTL_VIEWLOC__MASK;
4616c28c82e9SRob Clark }
4617c28c82e9SRob Clark 
4618c28c82e9SRob Clark #define REG_A6XX_VPC_DS_LAYER_CNTL				0x00009106
4619c28c82e9SRob Clark #define A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__MASK			0x000000ff
4620c28c82e9SRob Clark #define A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__SHIFT			0
A6XX_VPC_DS_LAYER_CNTL_LAYERLOC(uint32_t val)4621c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_LAYER_CNTL_LAYERLOC(uint32_t val)
4622c28c82e9SRob Clark {
4623c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__SHIFT) & A6XX_VPC_DS_LAYER_CNTL_LAYERLOC__MASK;
4624c28c82e9SRob Clark }
4625c28c82e9SRob Clark #define A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__MASK			0x0000ff00
4626c28c82e9SRob Clark #define A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__SHIFT			8
A6XX_VPC_DS_LAYER_CNTL_VIEWLOC(uint32_t val)4627c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_LAYER_CNTL_VIEWLOC(uint32_t val)
4628c28c82e9SRob Clark {
4629c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__SHIFT) & A6XX_VPC_DS_LAYER_CNTL_VIEWLOC__MASK;
4630c28c82e9SRob Clark }
46312d756322SRob Clark 
4632a69c5ed2SRob Clark #define REG_A6XX_VPC_UNKNOWN_9107				0x00009107
4633cc4c26d4SRob Clark #define A6XX_VPC_UNKNOWN_9107_RASTER_DISCARD			0x00000001
4634cc4c26d4SRob Clark #define A6XX_VPC_UNKNOWN_9107_UNK2				0x00000004
4635a69c5ed2SRob Clark 
4636c28c82e9SRob Clark #define REG_A6XX_VPC_POLYGON_MODE				0x00009108
4637c28c82e9SRob Clark #define A6XX_VPC_POLYGON_MODE_MODE__MASK			0x00000003
4638c28c82e9SRob Clark #define A6XX_VPC_POLYGON_MODE_MODE__SHIFT			0
A6XX_VPC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)4639c28c82e9SRob Clark static inline uint32_t A6XX_VPC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)
4640c28c82e9SRob Clark {
4641c28c82e9SRob Clark 	return ((val) << A6XX_VPC_POLYGON_MODE_MODE__SHIFT) & A6XX_VPC_POLYGON_MODE_MODE__MASK;
4642c28c82e9SRob Clark }
46432d756322SRob Clark 
REG_A6XX_VPC_VARYING_INTERP(uint32_t i0)46442d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VARYING_INTERP(uint32_t i0) { return 0x00009200 + 0x1*i0; }
46452d756322SRob Clark 
REG_A6XX_VPC_VARYING_INTERP_MODE(uint32_t i0)46462d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VARYING_INTERP_MODE(uint32_t i0) { return 0x00009200 + 0x1*i0; }
46472d756322SRob Clark 
REG_A6XX_VPC_VARYING_PS_REPL(uint32_t i0)46482d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL(uint32_t i0) { return 0x00009208 + 0x1*i0; }
46492d756322SRob Clark 
REG_A6XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0)46502d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VARYING_PS_REPL_MODE(uint32_t i0) { return 0x00009208 + 0x1*i0; }
46512d756322SRob Clark 
46522d756322SRob Clark #define REG_A6XX_VPC_UNKNOWN_9210				0x00009210
46532d756322SRob Clark 
46542d756322SRob Clark #define REG_A6XX_VPC_UNKNOWN_9211				0x00009211
46552d756322SRob Clark 
REG_A6XX_VPC_VAR(uint32_t i0)46562d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VAR(uint32_t i0) { return 0x00009212 + 0x1*i0; }
46572d756322SRob Clark 
REG_A6XX_VPC_VAR_DISABLE(uint32_t i0)46582d756322SRob Clark static inline uint32_t REG_A6XX_VPC_VAR_DISABLE(uint32_t i0) { return 0x00009212 + 0x1*i0; }
46592d756322SRob Clark 
46602d756322SRob Clark #define REG_A6XX_VPC_SO_CNTL					0x00009216
4661cc4c26d4SRob Clark #define A6XX_VPC_SO_CNTL_ADDR__MASK				0x000000ff
4662cc4c26d4SRob Clark #define A6XX_VPC_SO_CNTL_ADDR__SHIFT				0
A6XX_VPC_SO_CNTL_ADDR(uint32_t val)4663cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_CNTL_ADDR(uint32_t val)
4664c28c82e9SRob Clark {
4665cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_CNTL_ADDR__SHIFT) & A6XX_VPC_SO_CNTL_ADDR__MASK;
4666c28c82e9SRob Clark }
4667cc4c26d4SRob Clark #define A6XX_VPC_SO_CNTL_RESET					0x00010000
46682d756322SRob Clark 
46692d756322SRob Clark #define REG_A6XX_VPC_SO_PROG					0x00009217
46702d756322SRob Clark #define A6XX_VPC_SO_PROG_A_BUF__MASK				0x00000003
46712d756322SRob Clark #define A6XX_VPC_SO_PROG_A_BUF__SHIFT				0
A6XX_VPC_SO_PROG_A_BUF(uint32_t val)46722d756322SRob Clark static inline uint32_t A6XX_VPC_SO_PROG_A_BUF(uint32_t val)
46732d756322SRob Clark {
46742d756322SRob Clark 	return ((val) << A6XX_VPC_SO_PROG_A_BUF__SHIFT) & A6XX_VPC_SO_PROG_A_BUF__MASK;
46752d756322SRob Clark }
46762d756322SRob Clark #define A6XX_VPC_SO_PROG_A_OFF__MASK				0x000007fc
46772d756322SRob Clark #define A6XX_VPC_SO_PROG_A_OFF__SHIFT				2
A6XX_VPC_SO_PROG_A_OFF(uint32_t val)46782d756322SRob Clark static inline uint32_t A6XX_VPC_SO_PROG_A_OFF(uint32_t val)
46792d756322SRob Clark {
46802d756322SRob Clark 	return ((val >> 2) << A6XX_VPC_SO_PROG_A_OFF__SHIFT) & A6XX_VPC_SO_PROG_A_OFF__MASK;
46812d756322SRob Clark }
46822d756322SRob Clark #define A6XX_VPC_SO_PROG_A_EN					0x00000800
46832d756322SRob Clark #define A6XX_VPC_SO_PROG_B_BUF__MASK				0x00003000
46842d756322SRob Clark #define A6XX_VPC_SO_PROG_B_BUF__SHIFT				12
A6XX_VPC_SO_PROG_B_BUF(uint32_t val)46852d756322SRob Clark static inline uint32_t A6XX_VPC_SO_PROG_B_BUF(uint32_t val)
46862d756322SRob Clark {
46872d756322SRob Clark 	return ((val) << A6XX_VPC_SO_PROG_B_BUF__SHIFT) & A6XX_VPC_SO_PROG_B_BUF__MASK;
46882d756322SRob Clark }
46892d756322SRob Clark #define A6XX_VPC_SO_PROG_B_OFF__MASK				0x007fc000
46902d756322SRob Clark #define A6XX_VPC_SO_PROG_B_OFF__SHIFT				14
A6XX_VPC_SO_PROG_B_OFF(uint32_t val)46912d756322SRob Clark static inline uint32_t A6XX_VPC_SO_PROG_B_OFF(uint32_t val)
46922d756322SRob Clark {
46932d756322SRob Clark 	return ((val >> 2) << A6XX_VPC_SO_PROG_B_OFF__SHIFT) & A6XX_VPC_SO_PROG_B_OFF__MASK;
46942d756322SRob Clark }
46952d756322SRob Clark #define A6XX_VPC_SO_PROG_B_EN					0x00800000
46962d756322SRob Clark 
4697c28c82e9SRob Clark #define REG_A6XX_VPC_SO_STREAM_COUNTS				0x00009218
4698c28c82e9SRob Clark #define A6XX_VPC_SO_STREAM_COUNTS__MASK				0xffffffff
4699c28c82e9SRob Clark #define A6XX_VPC_SO_STREAM_COUNTS__SHIFT			0
A6XX_VPC_SO_STREAM_COUNTS(uint32_t val)4700c28c82e9SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_COUNTS(uint32_t val)
4701c28c82e9SRob Clark {
4702c28c82e9SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_COUNTS__SHIFT) & A6XX_VPC_SO_STREAM_COUNTS__MASK;
4703c28c82e9SRob Clark }
4704c28c82e9SRob Clark 
REG_A6XX_VPC_SO(uint32_t i0)47052d756322SRob Clark static inline uint32_t REG_A6XX_VPC_SO(uint32_t i0) { return 0x0000921a + 0x7*i0; }
47062d756322SRob Clark 
REG_A6XX_VPC_SO_BUFFER_BASE(uint32_t i0)4707c28c82e9SRob Clark static inline uint32_t REG_A6XX_VPC_SO_BUFFER_BASE(uint32_t i0) { return 0x0000921a + 0x7*i0; }
4708c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_BASE__MASK				0xffffffff
4709c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_BASE__SHIFT				0
A6XX_VPC_SO_BUFFER_BASE(uint32_t val)4710c28c82e9SRob Clark static inline uint32_t A6XX_VPC_SO_BUFFER_BASE(uint32_t val)
4711c28c82e9SRob Clark {
4712c28c82e9SRob Clark 	return ((val) << A6XX_VPC_SO_BUFFER_BASE__SHIFT) & A6XX_VPC_SO_BUFFER_BASE__MASK;
4713c28c82e9SRob Clark }
4714c28c82e9SRob Clark 
REG_A6XX_VPC_SO_BUFFER_SIZE(uint32_t i0)47152d756322SRob Clark static inline uint32_t REG_A6XX_VPC_SO_BUFFER_SIZE(uint32_t i0) { return 0x0000921c + 0x7*i0; }
4716c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_SIZE__MASK				0xfffffffc
4717c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_SIZE__SHIFT				2
A6XX_VPC_SO_BUFFER_SIZE(uint32_t val)4718c28c82e9SRob Clark static inline uint32_t A6XX_VPC_SO_BUFFER_SIZE(uint32_t val)
4719c28c82e9SRob Clark {
4720c28c82e9SRob Clark 	return ((val >> 2) << A6XX_VPC_SO_BUFFER_SIZE__SHIFT) & A6XX_VPC_SO_BUFFER_SIZE__MASK;
4721c28c82e9SRob Clark }
47222d756322SRob Clark 
REG_A6XX_VPC_SO_BUFFER_STRIDE(uint32_t i0)4723f73343faSRob Clark static inline uint32_t REG_A6XX_VPC_SO_BUFFER_STRIDE(uint32_t i0) { return 0x0000921d + 0x7*i0; }
4724f73343faSRob Clark #define A6XX_VPC_SO_BUFFER_STRIDE__MASK				0x000003ff
4725f73343faSRob Clark #define A6XX_VPC_SO_BUFFER_STRIDE__SHIFT			0
A6XX_VPC_SO_BUFFER_STRIDE(uint32_t val)4726f73343faSRob Clark static inline uint32_t A6XX_VPC_SO_BUFFER_STRIDE(uint32_t val)
4727f73343faSRob Clark {
4728f73343faSRob Clark 	return ((val >> 2) << A6XX_VPC_SO_BUFFER_STRIDE__SHIFT) & A6XX_VPC_SO_BUFFER_STRIDE__MASK;
4729f73343faSRob Clark }
47302d756322SRob Clark 
REG_A6XX_VPC_SO_BUFFER_OFFSET(uint32_t i0)47312d756322SRob Clark static inline uint32_t REG_A6XX_VPC_SO_BUFFER_OFFSET(uint32_t i0) { return 0x0000921e + 0x7*i0; }
4732c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_OFFSET__MASK				0xfffffffc
4733c28c82e9SRob Clark #define A6XX_VPC_SO_BUFFER_OFFSET__SHIFT			2
A6XX_VPC_SO_BUFFER_OFFSET(uint32_t val)4734c28c82e9SRob Clark static inline uint32_t A6XX_VPC_SO_BUFFER_OFFSET(uint32_t val)
4735c28c82e9SRob Clark {
4736c28c82e9SRob Clark 	return ((val >> 2) << A6XX_VPC_SO_BUFFER_OFFSET__SHIFT) & A6XX_VPC_SO_BUFFER_OFFSET__MASK;
4737c28c82e9SRob Clark }
4738c28c82e9SRob Clark 
REG_A6XX_VPC_SO_FLUSH_BASE(uint32_t i0)4739c28c82e9SRob Clark static inline uint32_t REG_A6XX_VPC_SO_FLUSH_BASE(uint32_t i0) { return 0x0000921f + 0x7*i0; }
4740c28c82e9SRob Clark #define A6XX_VPC_SO_FLUSH_BASE__MASK				0xffffffff
4741c28c82e9SRob Clark #define A6XX_VPC_SO_FLUSH_BASE__SHIFT				0
A6XX_VPC_SO_FLUSH_BASE(uint32_t val)4742c28c82e9SRob Clark static inline uint32_t A6XX_VPC_SO_FLUSH_BASE(uint32_t val)
4743c28c82e9SRob Clark {
4744c28c82e9SRob Clark 	return ((val) << A6XX_VPC_SO_FLUSH_BASE__SHIFT) & A6XX_VPC_SO_FLUSH_BASE__MASK;
4745c28c82e9SRob Clark }
47462d756322SRob Clark 
4747c28c82e9SRob Clark #define REG_A6XX_VPC_POINT_COORD_INVERT				0x00009236
4748c28c82e9SRob Clark #define A6XX_VPC_POINT_COORD_INVERT_INVERT			0x00000001
47492d756322SRob Clark 
47502d756322SRob Clark #define REG_A6XX_VPC_UNKNOWN_9300				0x00009300
47512d756322SRob Clark 
4752c28c82e9SRob Clark #define REG_A6XX_VPC_VS_PACK					0x00009301
4753c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
4754c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_VS_PACK_STRIDE_IN_VPC(uint32_t val)4755c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_PACK_STRIDE_IN_VPC(uint32_t val)
47562d756322SRob Clark {
4757c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_VS_PACK_STRIDE_IN_VPC__MASK;
47582d756322SRob Clark }
4759c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_POSITIONLOC__MASK			0x0000ff00
4760c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_VS_PACK_POSITIONLOC(uint32_t val)4761c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_PACK_POSITIONLOC(uint32_t val)
47622d756322SRob Clark {
4763c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_VS_PACK_POSITIONLOC__MASK;
47642d756322SRob Clark }
4765c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_PSIZELOC__MASK				0x00ff0000
4766c28c82e9SRob Clark #define A6XX_VPC_VS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_VS_PACK_PSIZELOC(uint32_t val)4767c28c82e9SRob Clark static inline uint32_t A6XX_VPC_VS_PACK_PSIZELOC(uint32_t val)
47682d756322SRob Clark {
4769c28c82e9SRob Clark 	return ((val) << A6XX_VPC_VS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_VS_PACK_PSIZELOC__MASK;
4770c28c82e9SRob Clark }
4771cc4c26d4SRob Clark #define A6XX_VPC_VS_PACK_EXTRAPOS__MASK				0x0f000000
4772cc4c26d4SRob Clark #define A6XX_VPC_VS_PACK_EXTRAPOS__SHIFT			24
A6XX_VPC_VS_PACK_EXTRAPOS(uint32_t val)4773cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_VS_PACK_EXTRAPOS(uint32_t val)
4774c28c82e9SRob Clark {
4775cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_VS_PACK_EXTRAPOS__SHIFT) & A6XX_VPC_VS_PACK_EXTRAPOS__MASK;
4776c28c82e9SRob Clark }
4777c28c82e9SRob Clark 
4778c28c82e9SRob Clark #define REG_A6XX_VPC_GS_PACK					0x00009302
4779c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
4780c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_GS_PACK_STRIDE_IN_VPC(uint32_t val)4781c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_PACK_STRIDE_IN_VPC(uint32_t val)
4782c28c82e9SRob Clark {
4783c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_GS_PACK_STRIDE_IN_VPC__MASK;
4784c28c82e9SRob Clark }
4785c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_POSITIONLOC__MASK			0x0000ff00
4786c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_GS_PACK_POSITIONLOC(uint32_t val)4787c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_PACK_POSITIONLOC(uint32_t val)
4788c28c82e9SRob Clark {
4789c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_GS_PACK_POSITIONLOC__MASK;
4790c28c82e9SRob Clark }
4791c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_PSIZELOC__MASK				0x00ff0000
4792c28c82e9SRob Clark #define A6XX_VPC_GS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_GS_PACK_PSIZELOC(uint32_t val)4793c28c82e9SRob Clark static inline uint32_t A6XX_VPC_GS_PACK_PSIZELOC(uint32_t val)
4794c28c82e9SRob Clark {
4795c28c82e9SRob Clark 	return ((val) << A6XX_VPC_GS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_GS_PACK_PSIZELOC__MASK;
4796c28c82e9SRob Clark }
4797cc4c26d4SRob Clark #define A6XX_VPC_GS_PACK_EXTRAPOS__MASK				0x0f000000
4798cc4c26d4SRob Clark #define A6XX_VPC_GS_PACK_EXTRAPOS__SHIFT			24
A6XX_VPC_GS_PACK_EXTRAPOS(uint32_t val)4799cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_GS_PACK_EXTRAPOS(uint32_t val)
4800c28c82e9SRob Clark {
4801cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_GS_PACK_EXTRAPOS__SHIFT) & A6XX_VPC_GS_PACK_EXTRAPOS__MASK;
4802c28c82e9SRob Clark }
4803c28c82e9SRob Clark 
4804c28c82e9SRob Clark #define REG_A6XX_VPC_DS_PACK					0x00009303
4805c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_STRIDE_IN_VPC__MASK			0x000000ff
4806c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_STRIDE_IN_VPC__SHIFT			0
A6XX_VPC_DS_PACK_STRIDE_IN_VPC(uint32_t val)4807c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_PACK_STRIDE_IN_VPC(uint32_t val)
4808c28c82e9SRob Clark {
4809c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_PACK_STRIDE_IN_VPC__SHIFT) & A6XX_VPC_DS_PACK_STRIDE_IN_VPC__MASK;
4810c28c82e9SRob Clark }
4811c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_POSITIONLOC__MASK			0x0000ff00
4812c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_POSITIONLOC__SHIFT			8
A6XX_VPC_DS_PACK_POSITIONLOC(uint32_t val)4813c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_PACK_POSITIONLOC(uint32_t val)
4814c28c82e9SRob Clark {
4815c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_PACK_POSITIONLOC__SHIFT) & A6XX_VPC_DS_PACK_POSITIONLOC__MASK;
4816c28c82e9SRob Clark }
4817c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_PSIZELOC__MASK				0x00ff0000
4818c28c82e9SRob Clark #define A6XX_VPC_DS_PACK_PSIZELOC__SHIFT			16
A6XX_VPC_DS_PACK_PSIZELOC(uint32_t val)4819c28c82e9SRob Clark static inline uint32_t A6XX_VPC_DS_PACK_PSIZELOC(uint32_t val)
4820c28c82e9SRob Clark {
4821c28c82e9SRob Clark 	return ((val) << A6XX_VPC_DS_PACK_PSIZELOC__SHIFT) & A6XX_VPC_DS_PACK_PSIZELOC__MASK;
4822c28c82e9SRob Clark }
4823cc4c26d4SRob Clark #define A6XX_VPC_DS_PACK_EXTRAPOS__MASK				0x0f000000
4824cc4c26d4SRob Clark #define A6XX_VPC_DS_PACK_EXTRAPOS__SHIFT			24
A6XX_VPC_DS_PACK_EXTRAPOS(uint32_t val)4825cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_DS_PACK_EXTRAPOS(uint32_t val)
4826c28c82e9SRob Clark {
4827cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_DS_PACK_EXTRAPOS__SHIFT) & A6XX_VPC_DS_PACK_EXTRAPOS__MASK;
48282d756322SRob Clark }
48292d756322SRob Clark 
48302d756322SRob Clark #define REG_A6XX_VPC_CNTL_0					0x00009304
48312d756322SRob Clark #define A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK			0x000000ff
48322d756322SRob Clark #define A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT			0
A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val)48332d756322SRob Clark static inline uint32_t A6XX_VPC_CNTL_0_NUMNONPOSVAR(uint32_t val)
48342d756322SRob Clark {
48352d756322SRob Clark 	return ((val) << A6XX_VPC_CNTL_0_NUMNONPOSVAR__SHIFT) & A6XX_VPC_CNTL_0_NUMNONPOSVAR__MASK;
48362d756322SRob Clark }
4837c28c82e9SRob Clark #define A6XX_VPC_CNTL_0_PRIMIDLOC__MASK				0x0000ff00
4838c28c82e9SRob Clark #define A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT			8
A6XX_VPC_CNTL_0_PRIMIDLOC(uint32_t val)4839c28c82e9SRob Clark static inline uint32_t A6XX_VPC_CNTL_0_PRIMIDLOC(uint32_t val)
4840c28c82e9SRob Clark {
4841c28c82e9SRob Clark 	return ((val) << A6XX_VPC_CNTL_0_PRIMIDLOC__SHIFT) & A6XX_VPC_CNTL_0_PRIMIDLOC__MASK;
4842c28c82e9SRob Clark }
48432d756322SRob Clark #define A6XX_VPC_CNTL_0_VARYING					0x00010000
4844cc4c26d4SRob Clark #define A6XX_VPC_CNTL_0_VIEWIDLOC__MASK				0xff000000
4845cc4c26d4SRob Clark #define A6XX_VPC_CNTL_0_VIEWIDLOC__SHIFT			24
A6XX_VPC_CNTL_0_VIEWIDLOC(uint32_t val)4846cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_CNTL_0_VIEWIDLOC(uint32_t val)
4847c28c82e9SRob Clark {
4848cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_CNTL_0_VIEWIDLOC__SHIFT) & A6XX_VPC_CNTL_0_VIEWIDLOC__MASK;
4849c28c82e9SRob Clark }
48502d756322SRob Clark 
4851cc4c26d4SRob Clark #define REG_A6XX_VPC_SO_STREAM_CNTL				0x00009305
4852cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM__MASK		0x00000007
4853cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM__SHIFT		0
A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM(uint32_t val)4854cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM(uint32_t val)
4855c28c82e9SRob Clark {
4856cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM__SHIFT) & A6XX_VPC_SO_STREAM_CNTL_BUF0_STREAM__MASK;
4857cc4c26d4SRob Clark }
4858cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM__MASK		0x00000038
4859cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM__SHIFT		3
A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM(uint32_t val)4860cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM(uint32_t val)
4861cc4c26d4SRob Clark {
4862cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM__SHIFT) & A6XX_VPC_SO_STREAM_CNTL_BUF1_STREAM__MASK;
4863cc4c26d4SRob Clark }
4864cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM__MASK		0x000001c0
4865cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM__SHIFT		6
A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM(uint32_t val)4866cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM(uint32_t val)
4867cc4c26d4SRob Clark {
4868cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM__SHIFT) & A6XX_VPC_SO_STREAM_CNTL_BUF2_STREAM__MASK;
4869cc4c26d4SRob Clark }
4870cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM__MASK		0x00000e00
4871cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM__SHIFT		9
A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM(uint32_t val)4872cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM(uint32_t val)
4873cc4c26d4SRob Clark {
4874cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM__SHIFT) & A6XX_VPC_SO_STREAM_CNTL_BUF3_STREAM__MASK;
4875cc4c26d4SRob Clark }
4876cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE__MASK		0x00078000
4877cc4c26d4SRob Clark #define A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE__SHIFT		15
A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE(uint32_t val)4878cc4c26d4SRob Clark static inline uint32_t A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE(uint32_t val)
4879cc4c26d4SRob Clark {
4880cc4c26d4SRob Clark 	return ((val) << A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE__SHIFT) & A6XX_VPC_SO_STREAM_CNTL_STREAM_ENABLE__MASK;
4881c28c82e9SRob Clark }
48822d756322SRob Clark 
4883c28c82e9SRob Clark #define REG_A6XX_VPC_SO_DISABLE					0x00009306
4884c28c82e9SRob Clark #define A6XX_VPC_SO_DISABLE_DISABLE				0x00000001
4885a69c5ed2SRob Clark 
4886f73343faSRob Clark #define REG_A6XX_VPC_DBG_ECO_CNTL				0x00009600
48872d756322SRob Clark 
4888c28c82e9SRob Clark #define REG_A6XX_VPC_ADDR_MODE_CNTL				0x00009601
4889c28c82e9SRob Clark 
48902d756322SRob Clark #define REG_A6XX_VPC_UNKNOWN_9602				0x00009602
48912d756322SRob Clark 
4892c28c82e9SRob Clark #define REG_A6XX_VPC_UNKNOWN_9603				0x00009603
4893c28c82e9SRob Clark 
REG_A6XX_VPC_PERFCTR_VPC_SEL(uint32_t i0)4894cc4c26d4SRob Clark static inline uint32_t REG_A6XX_VPC_PERFCTR_VPC_SEL(uint32_t i0) { return 0x00009604 + 0x1*i0; }
4895c28c82e9SRob Clark 
REG_A7XX_VPC_PERFCTR_VPC_SEL(uint32_t i0)4896f73343faSRob Clark static inline uint32_t REG_A7XX_VPC_PERFCTR_VPC_SEL(uint32_t i0) { return 0x0000960b + 0x1*i0; }
4897f73343faSRob Clark 
4898c28c82e9SRob Clark #define REG_A6XX_PC_TESS_NUM_VERTEX				0x00009800
4899c28c82e9SRob Clark 
4900cc4c26d4SRob Clark #define REG_A6XX_PC_HS_INPUT_SIZE				0x00009801
4901cc4c26d4SRob Clark #define A6XX_PC_HS_INPUT_SIZE_SIZE__MASK			0x000007ff
4902cc4c26d4SRob Clark #define A6XX_PC_HS_INPUT_SIZE_SIZE__SHIFT			0
A6XX_PC_HS_INPUT_SIZE_SIZE(uint32_t val)4903cc4c26d4SRob Clark static inline uint32_t A6XX_PC_HS_INPUT_SIZE_SIZE(uint32_t val)
4904c28c82e9SRob Clark {
4905cc4c26d4SRob Clark 	return ((val) << A6XX_PC_HS_INPUT_SIZE_SIZE__SHIFT) & A6XX_PC_HS_INPUT_SIZE_SIZE__MASK;
4906c28c82e9SRob Clark }
4907cc4c26d4SRob Clark #define A6XX_PC_HS_INPUT_SIZE_UNK13__MASK			0x00002000
4908cc4c26d4SRob Clark #define A6XX_PC_HS_INPUT_SIZE_UNK13__SHIFT			13
A6XX_PC_HS_INPUT_SIZE_UNK13(uint32_t val)4909cc4c26d4SRob Clark static inline uint32_t A6XX_PC_HS_INPUT_SIZE_UNK13(uint32_t val)
4910c28c82e9SRob Clark {
4911cc4c26d4SRob Clark 	return ((val) << A6XX_PC_HS_INPUT_SIZE_UNK13__SHIFT) & A6XX_PC_HS_INPUT_SIZE_UNK13__MASK;
4912c28c82e9SRob Clark }
4913c28c82e9SRob Clark 
4914c28c82e9SRob Clark #define REG_A6XX_PC_TESS_CNTL					0x00009802
4915c28c82e9SRob Clark #define A6XX_PC_TESS_CNTL_SPACING__MASK				0x00000003
4916c28c82e9SRob Clark #define A6XX_PC_TESS_CNTL_SPACING__SHIFT			0
A6XX_PC_TESS_CNTL_SPACING(enum a6xx_tess_spacing val)4917c28c82e9SRob Clark static inline uint32_t A6XX_PC_TESS_CNTL_SPACING(enum a6xx_tess_spacing val)
4918c28c82e9SRob Clark {
4919c28c82e9SRob Clark 	return ((val) << A6XX_PC_TESS_CNTL_SPACING__SHIFT) & A6XX_PC_TESS_CNTL_SPACING__MASK;
4920c28c82e9SRob Clark }
4921c28c82e9SRob Clark #define A6XX_PC_TESS_CNTL_OUTPUT__MASK				0x0000000c
4922c28c82e9SRob Clark #define A6XX_PC_TESS_CNTL_OUTPUT__SHIFT				2
A6XX_PC_TESS_CNTL_OUTPUT(enum a6xx_tess_output val)4923c28c82e9SRob Clark static inline uint32_t A6XX_PC_TESS_CNTL_OUTPUT(enum a6xx_tess_output val)
4924c28c82e9SRob Clark {
4925c28c82e9SRob Clark 	return ((val) << A6XX_PC_TESS_CNTL_OUTPUT__SHIFT) & A6XX_PC_TESS_CNTL_OUTPUT__MASK;
4926c28c82e9SRob Clark }
49272d756322SRob Clark 
49282d756322SRob Clark #define REG_A6XX_PC_RESTART_INDEX				0x00009803
49292d756322SRob Clark 
49302d756322SRob Clark #define REG_A6XX_PC_MODE_CNTL					0x00009804
49312d756322SRob Clark 
493257cfe41cSRob Clark #define REG_A6XX_PC_POWER_CNTL					0x00009805
49332d756322SRob Clark 
4934c28c82e9SRob Clark #define REG_A6XX_PC_PRIMID_PASSTHRU				0x00009806
4935c28c82e9SRob Clark 
493657cfe41cSRob Clark #define REG_A6XX_PC_SO_STREAM_CNTL				0x00009808
4937f73343faSRob Clark #define A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE__MASK		0x00078000
4938f73343faSRob Clark #define A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE__SHIFT		15
A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE(uint32_t val)4939f73343faSRob Clark static inline uint32_t A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE(uint32_t val)
4940f73343faSRob Clark {
4941f73343faSRob Clark 	return ((val) << A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE__SHIFT) & A6XX_PC_SO_STREAM_CNTL_STREAM_ENABLE__MASK;
4942f73343faSRob Clark }
494357cfe41cSRob Clark 
494457cfe41cSRob Clark #define REG_A6XX_PC_DGEN_SU_CONSERVATIVE_RAS_CNTL		0x0000980a
494557cfe41cSRob Clark #define A6XX_PC_DGEN_SU_CONSERVATIVE_RAS_CNTL_CONSERVATIVERASEN	0x00000001
494657cfe41cSRob Clark 
4947c28c82e9SRob Clark #define REG_A6XX_PC_DRAW_CMD					0x00009840
4948c28c82e9SRob Clark #define A6XX_PC_DRAW_CMD_STATE_ID__MASK				0x000000ff
4949c28c82e9SRob Clark #define A6XX_PC_DRAW_CMD_STATE_ID__SHIFT			0
A6XX_PC_DRAW_CMD_STATE_ID(uint32_t val)4950c28c82e9SRob Clark static inline uint32_t A6XX_PC_DRAW_CMD_STATE_ID(uint32_t val)
4951c28c82e9SRob Clark {
4952c28c82e9SRob Clark 	return ((val) << A6XX_PC_DRAW_CMD_STATE_ID__SHIFT) & A6XX_PC_DRAW_CMD_STATE_ID__MASK;
4953c28c82e9SRob Clark }
4954c28c82e9SRob Clark 
4955c28c82e9SRob Clark #define REG_A6XX_PC_DISPATCH_CMD				0x00009841
4956c28c82e9SRob Clark #define A6XX_PC_DISPATCH_CMD_STATE_ID__MASK			0x000000ff
4957c28c82e9SRob Clark #define A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT			0
A6XX_PC_DISPATCH_CMD_STATE_ID(uint32_t val)4958c28c82e9SRob Clark static inline uint32_t A6XX_PC_DISPATCH_CMD_STATE_ID(uint32_t val)
4959c28c82e9SRob Clark {
4960c28c82e9SRob Clark 	return ((val) << A6XX_PC_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_PC_DISPATCH_CMD_STATE_ID__MASK;
4961c28c82e9SRob Clark }
4962c28c82e9SRob Clark 
4963c28c82e9SRob Clark #define REG_A6XX_PC_EVENT_CMD					0x00009842
4964c28c82e9SRob Clark #define A6XX_PC_EVENT_CMD_STATE_ID__MASK			0x00ff0000
4965c28c82e9SRob Clark #define A6XX_PC_EVENT_CMD_STATE_ID__SHIFT			16
A6XX_PC_EVENT_CMD_STATE_ID(uint32_t val)4966c28c82e9SRob Clark static inline uint32_t A6XX_PC_EVENT_CMD_STATE_ID(uint32_t val)
4967c28c82e9SRob Clark {
4968c28c82e9SRob Clark 	return ((val) << A6XX_PC_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_EVENT_CMD_STATE_ID__MASK;
4969c28c82e9SRob Clark }
4970c28c82e9SRob Clark #define A6XX_PC_EVENT_CMD_EVENT__MASK				0x0000007f
4971c28c82e9SRob Clark #define A6XX_PC_EVENT_CMD_EVENT__SHIFT				0
A6XX_PC_EVENT_CMD_EVENT(enum vgt_event_type val)4972c28c82e9SRob Clark static inline uint32_t A6XX_PC_EVENT_CMD_EVENT(enum vgt_event_type val)
4973c28c82e9SRob Clark {
4974c28c82e9SRob Clark 	return ((val) << A6XX_PC_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_EVENT_CMD_EVENT__MASK;
4975c28c82e9SRob Clark }
4976c28c82e9SRob Clark 
4977cc4c26d4SRob Clark #define REG_A6XX_PC_MARKER					0x00009880
4978cc4c26d4SRob Clark 
4979c28c82e9SRob Clark #define REG_A6XX_PC_POLYGON_MODE				0x00009981
4980c28c82e9SRob Clark #define A6XX_PC_POLYGON_MODE_MODE__MASK				0x00000003
4981c28c82e9SRob Clark #define A6XX_PC_POLYGON_MODE_MODE__SHIFT			0
A6XX_PC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)4982c28c82e9SRob Clark static inline uint32_t A6XX_PC_POLYGON_MODE_MODE(enum a6xx_polygon_mode val)
4983c28c82e9SRob Clark {
4984c28c82e9SRob Clark 	return ((val) << A6XX_PC_POLYGON_MODE_MODE__SHIFT) & A6XX_PC_POLYGON_MODE_MODE__MASK;
4985c28c82e9SRob Clark }
4986a69c5ed2SRob Clark 
4987cc4c26d4SRob Clark #define REG_A6XX_PC_RASTER_CNTL					0x00009980
4988cc4c26d4SRob Clark #define A6XX_PC_RASTER_CNTL_STREAM__MASK			0x00000003
4989cc4c26d4SRob Clark #define A6XX_PC_RASTER_CNTL_STREAM__SHIFT			0
A6XX_PC_RASTER_CNTL_STREAM(uint32_t val)4990cc4c26d4SRob Clark static inline uint32_t A6XX_PC_RASTER_CNTL_STREAM(uint32_t val)
4991cc4c26d4SRob Clark {
4992cc4c26d4SRob Clark 	return ((val) << A6XX_PC_RASTER_CNTL_STREAM__SHIFT) & A6XX_PC_RASTER_CNTL_STREAM__MASK;
4993cc4c26d4SRob Clark }
4994cc4c26d4SRob Clark #define A6XX_PC_RASTER_CNTL_DISCARD				0x00000004
4995a69c5ed2SRob Clark 
49962d756322SRob Clark #define REG_A6XX_PC_PRIMITIVE_CNTL_0				0x00009b00
49972d756322SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_0_PRIMITIVE_RESTART		0x00000001
49982d756322SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_0_PROVOKING_VTX_LAST		0x00000002
4999c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_0_TESS_UPPER_LEFT_DOMAIN_ORIGIN	0x00000004
5000c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_0_UNK3				0x00000008
50012d756322SRob Clark 
5002c28c82e9SRob Clark #define REG_A6XX_PC_VS_OUT_CNTL					0x00009b01
5003c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5004c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5005c28c82e9SRob Clark static inline uint32_t A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
50062d756322SRob Clark {
5007c28c82e9SRob Clark 	return ((val) << A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_VS_OUT_CNTL_STRIDE_IN_VPC__MASK;
50082d756322SRob Clark }
5009c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_PSIZE				0x00000100
5010c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_LAYER				0x00000200
5011c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_VIEW				0x00000400
5012c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5013c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5014c28c82e9SRob Clark #define A6XX_PC_VS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_VS_OUT_CNTL_CLIP_MASK(uint32_t val)5015c28c82e9SRob Clark static inline uint32_t A6XX_PC_VS_OUT_CNTL_CLIP_MASK(uint32_t val)
5016c28c82e9SRob Clark {
5017c28c82e9SRob Clark 	return ((val) << A6XX_PC_VS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_VS_OUT_CNTL_CLIP_MASK__MASK;
5018c28c82e9SRob Clark }
50192d756322SRob Clark 
5020c28c82e9SRob Clark #define REG_A6XX_PC_GS_OUT_CNTL					0x00009b02
5021c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5022c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5023c28c82e9SRob Clark static inline uint32_t A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
5024c28c82e9SRob Clark {
5025c28c82e9SRob Clark 	return ((val) << A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_GS_OUT_CNTL_STRIDE_IN_VPC__MASK;
5026c28c82e9SRob Clark }
5027c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_PSIZE				0x00000100
5028c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_LAYER				0x00000200
5029c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_VIEW				0x00000400
5030c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5031c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5032c28c82e9SRob Clark #define A6XX_PC_GS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_GS_OUT_CNTL_CLIP_MASK(uint32_t val)5033c28c82e9SRob Clark static inline uint32_t A6XX_PC_GS_OUT_CNTL_CLIP_MASK(uint32_t val)
5034c28c82e9SRob Clark {
5035c28c82e9SRob Clark 	return ((val) << A6XX_PC_GS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_GS_OUT_CNTL_CLIP_MASK__MASK;
5036c28c82e9SRob Clark }
5037c28c82e9SRob Clark 
503857cfe41cSRob Clark #define REG_A6XX_PC_HS_OUT_CNTL					0x00009b03
503957cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
504057cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)504157cfe41cSRob Clark static inline uint32_t A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
504257cfe41cSRob Clark {
504357cfe41cSRob Clark 	return ((val) << A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_HS_OUT_CNTL_STRIDE_IN_VPC__MASK;
504457cfe41cSRob Clark }
504557cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_PSIZE				0x00000100
504657cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_LAYER				0x00000200
504757cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_VIEW				0x00000400
504857cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_PRIMITIVE_ID			0x00000800
504957cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
505057cfe41cSRob Clark #define A6XX_PC_HS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_HS_OUT_CNTL_CLIP_MASK(uint32_t val)505157cfe41cSRob Clark static inline uint32_t A6XX_PC_HS_OUT_CNTL_CLIP_MASK(uint32_t val)
505257cfe41cSRob Clark {
505357cfe41cSRob Clark 	return ((val) << A6XX_PC_HS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_HS_OUT_CNTL_CLIP_MASK__MASK;
505457cfe41cSRob Clark }
5055c28c82e9SRob Clark 
5056c28c82e9SRob Clark #define REG_A6XX_PC_DS_OUT_CNTL					0x00009b04
5057c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__MASK			0x000000ff
5058c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)5059c28c82e9SRob Clark static inline uint32_t A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC(uint32_t val)
5060c28c82e9SRob Clark {
5061c28c82e9SRob Clark 	return ((val) << A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__SHIFT) & A6XX_PC_DS_OUT_CNTL_STRIDE_IN_VPC__MASK;
5062c28c82e9SRob Clark }
5063c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_PSIZE				0x00000100
5064c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_LAYER				0x00000200
5065c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_VIEW				0x00000400
5066c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_PRIMITIVE_ID			0x00000800
5067c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_CLIP_MASK__MASK			0x00ff0000
5068c28c82e9SRob Clark #define A6XX_PC_DS_OUT_CNTL_CLIP_MASK__SHIFT			16
A6XX_PC_DS_OUT_CNTL_CLIP_MASK(uint32_t val)5069c28c82e9SRob Clark static inline uint32_t A6XX_PC_DS_OUT_CNTL_CLIP_MASK(uint32_t val)
5070c28c82e9SRob Clark {
5071c28c82e9SRob Clark 	return ((val) << A6XX_PC_DS_OUT_CNTL_CLIP_MASK__SHIFT) & A6XX_PC_DS_OUT_CNTL_CLIP_MASK__MASK;
5072c28c82e9SRob Clark }
5073c28c82e9SRob Clark 
5074c28c82e9SRob Clark #define REG_A6XX_PC_PRIMITIVE_CNTL_5				0x00009b05
5075c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK		0x000000ff
5076c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT		0
A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT(uint32_t val)5077c28c82e9SRob Clark static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT(uint32_t val)
5078c28c82e9SRob Clark {
5079c28c82e9SRob Clark 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_VERTICES_OUT__MASK;
5080c28c82e9SRob Clark }
5081c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK		0x00007c00
5082c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT		10
A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS(uint32_t val)5083c28c82e9SRob Clark static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS(uint32_t val)
5084c28c82e9SRob Clark {
5085c28c82e9SRob Clark 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_INVOCATIONS__MASK;
5086c28c82e9SRob Clark }
508757cfe41cSRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_LINELENGTHEN			0x00008000
5088c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK		0x00030000
5089c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT		16
A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT(enum a6xx_tess_output val)5090c28c82e9SRob Clark static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT(enum a6xx_tess_output val)
5091c28c82e9SRob Clark {
5092c28c82e9SRob Clark 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_GS_OUTPUT__MASK;
5093c28c82e9SRob Clark }
5094c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_UNK18__MASK			0x00040000
5095c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_5_UNK18__SHIFT			18
A6XX_PC_PRIMITIVE_CNTL_5_UNK18(uint32_t val)5096c28c82e9SRob Clark static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_5_UNK18(uint32_t val)
5097c28c82e9SRob Clark {
5098c28c82e9SRob Clark 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_5_UNK18__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_5_UNK18__MASK;
5099c28c82e9SRob Clark }
5100c28c82e9SRob Clark 
5101c28c82e9SRob Clark #define REG_A6XX_PC_PRIMITIVE_CNTL_6				0x00009b06
5102c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK		0x000007ff
5103c28c82e9SRob Clark #define A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT		0
A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC(uint32_t val)5104c28c82e9SRob Clark static inline uint32_t A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC(uint32_t val)
5105c28c82e9SRob Clark {
5106c28c82e9SRob Clark 	return ((val) << A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__SHIFT) & A6XX_PC_PRIMITIVE_CNTL_6_STRIDE_IN_VPC__MASK;
5107c28c82e9SRob Clark }
51082d756322SRob Clark 
5109cc4c26d4SRob Clark #define REG_A6XX_PC_MULTIVIEW_CNTL				0x00009b07
5110cc4c26d4SRob Clark #define A6XX_PC_MULTIVIEW_CNTL_ENABLE				0x00000001
5111cc4c26d4SRob Clark #define A6XX_PC_MULTIVIEW_CNTL_DISABLEMULTIPOS			0x00000002
5112cc4c26d4SRob Clark #define A6XX_PC_MULTIVIEW_CNTL_VIEWS__MASK			0x0000007c
5113cc4c26d4SRob Clark #define A6XX_PC_MULTIVIEW_CNTL_VIEWS__SHIFT			2
A6XX_PC_MULTIVIEW_CNTL_VIEWS(uint32_t val)5114cc4c26d4SRob Clark static inline uint32_t A6XX_PC_MULTIVIEW_CNTL_VIEWS(uint32_t val)
5115cc4c26d4SRob Clark {
5116cc4c26d4SRob Clark 	return ((val) << A6XX_PC_MULTIVIEW_CNTL_VIEWS__SHIFT) & A6XX_PC_MULTIVIEW_CNTL_VIEWS__MASK;
5117cc4c26d4SRob Clark }
51182d756322SRob Clark 
5119cc4c26d4SRob Clark #define REG_A6XX_PC_MULTIVIEW_MASK				0x00009b08
5120c28c82e9SRob Clark 
5121c28c82e9SRob Clark #define REG_A6XX_PC_2D_EVENT_CMD				0x00009c00
5122c28c82e9SRob Clark #define A6XX_PC_2D_EVENT_CMD_EVENT__MASK			0x0000007f
5123c28c82e9SRob Clark #define A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT			0
A6XX_PC_2D_EVENT_CMD_EVENT(enum vgt_event_type val)5124c28c82e9SRob Clark static inline uint32_t A6XX_PC_2D_EVENT_CMD_EVENT(enum vgt_event_type val)
5125c28c82e9SRob Clark {
5126c28c82e9SRob Clark 	return ((val) << A6XX_PC_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_PC_2D_EVENT_CMD_EVENT__MASK;
5127c28c82e9SRob Clark }
5128c28c82e9SRob Clark #define A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK			0x0000ff00
5129c28c82e9SRob Clark #define A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT			8
A6XX_PC_2D_EVENT_CMD_STATE_ID(uint32_t val)5130c28c82e9SRob Clark static inline uint32_t A6XX_PC_2D_EVENT_CMD_STATE_ID(uint32_t val)
5131c28c82e9SRob Clark {
5132c28c82e9SRob Clark 	return ((val) << A6XX_PC_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_PC_2D_EVENT_CMD_STATE_ID__MASK;
5133c28c82e9SRob Clark }
5134c28c82e9SRob Clark 
5135c28c82e9SRob Clark #define REG_A6XX_PC_DBG_ECO_CNTL				0x00009e00
5136c28c82e9SRob Clark 
5137c28c82e9SRob Clark #define REG_A6XX_PC_ADDR_MODE_CNTL				0x00009e01
5138c28c82e9SRob Clark 
5139cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_INDX_BASE				0x00009e04
51402d756322SRob Clark 
5141cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_FIRST_INDX				0x00009e06
5142cc4c26d4SRob Clark 
5143cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_MAX_INDICES				0x00009e07
51442d756322SRob Clark 
5145c28c82e9SRob Clark #define REG_A6XX_PC_TESSFACTOR_ADDR				0x00009e08
5146c28c82e9SRob Clark #define A6XX_PC_TESSFACTOR_ADDR__MASK				0xffffffff
5147c28c82e9SRob Clark #define A6XX_PC_TESSFACTOR_ADDR__SHIFT				0
A6XX_PC_TESSFACTOR_ADDR(uint32_t val)5148c28c82e9SRob Clark static inline uint32_t A6XX_PC_TESSFACTOR_ADDR(uint32_t val)
5149c28c82e9SRob Clark {
5150c28c82e9SRob Clark 	return ((val) << A6XX_PC_TESSFACTOR_ADDR__SHIFT) & A6XX_PC_TESSFACTOR_ADDR__MASK;
5151c28c82e9SRob Clark }
5152c28c82e9SRob Clark 
5153cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_INITIATOR				0x00009e0b
5154cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_PRIM_TYPE__MASK			0x0000003f
5155cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_PRIM_TYPE__SHIFT			0
A6XX_PC_DRAW_INITIATOR_PRIM_TYPE(enum pc_di_primtype val)5156cc4c26d4SRob Clark static inline uint32_t A6XX_PC_DRAW_INITIATOR_PRIM_TYPE(enum pc_di_primtype val)
5157cc4c26d4SRob Clark {
5158cc4c26d4SRob Clark 	return ((val) << A6XX_PC_DRAW_INITIATOR_PRIM_TYPE__SHIFT) & A6XX_PC_DRAW_INITIATOR_PRIM_TYPE__MASK;
5159cc4c26d4SRob Clark }
5160cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT__MASK		0x000000c0
5161cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT__SHIFT		6
A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT(enum pc_di_src_sel val)5162cc4c26d4SRob Clark static inline uint32_t A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT(enum pc_di_src_sel val)
5163cc4c26d4SRob Clark {
5164cc4c26d4SRob Clark 	return ((val) << A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT__SHIFT) & A6XX_PC_DRAW_INITIATOR_SOURCE_SELECT__MASK;
5165cc4c26d4SRob Clark }
5166cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_VIS_CULL__MASK			0x00000300
5167cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_VIS_CULL__SHIFT			8
A6XX_PC_DRAW_INITIATOR_VIS_CULL(enum pc_di_vis_cull_mode val)5168cc4c26d4SRob Clark static inline uint32_t A6XX_PC_DRAW_INITIATOR_VIS_CULL(enum pc_di_vis_cull_mode val)
5169cc4c26d4SRob Clark {
5170cc4c26d4SRob Clark 	return ((val) << A6XX_PC_DRAW_INITIATOR_VIS_CULL__SHIFT) & A6XX_PC_DRAW_INITIATOR_VIS_CULL__MASK;
5171cc4c26d4SRob Clark }
5172cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_INDEX_SIZE__MASK			0x00000c00
5173cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_INDEX_SIZE__SHIFT		10
A6XX_PC_DRAW_INITIATOR_INDEX_SIZE(enum a4xx_index_size val)5174cc4c26d4SRob Clark static inline uint32_t A6XX_PC_DRAW_INITIATOR_INDEX_SIZE(enum a4xx_index_size val)
5175cc4c26d4SRob Clark {
5176cc4c26d4SRob Clark 	return ((val) << A6XX_PC_DRAW_INITIATOR_INDEX_SIZE__SHIFT) & A6XX_PC_DRAW_INITIATOR_INDEX_SIZE__MASK;
5177cc4c26d4SRob Clark }
5178cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_PATCH_TYPE__MASK			0x00003000
5179cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_PATCH_TYPE__SHIFT		12
A6XX_PC_DRAW_INITIATOR_PATCH_TYPE(enum a6xx_patch_type val)5180cc4c26d4SRob Clark static inline uint32_t A6XX_PC_DRAW_INITIATOR_PATCH_TYPE(enum a6xx_patch_type val)
5181cc4c26d4SRob Clark {
5182cc4c26d4SRob Clark 	return ((val) << A6XX_PC_DRAW_INITIATOR_PATCH_TYPE__SHIFT) & A6XX_PC_DRAW_INITIATOR_PATCH_TYPE__MASK;
5183cc4c26d4SRob Clark }
5184cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_GS_ENABLE			0x00010000
5185cc4c26d4SRob Clark #define A6XX_PC_DRAW_INITIATOR_TESS_ENABLE			0x00020000
5186cc4c26d4SRob Clark 
5187cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_NUM_INSTANCES				0x00009e0c
5188cc4c26d4SRob Clark 
5189cc4c26d4SRob Clark #define REG_A6XX_PC_DRAW_NUM_INDICES				0x00009e0d
5190cc4c26d4SRob Clark 
5191c28c82e9SRob Clark #define REG_A6XX_PC_VSTREAM_CONTROL				0x00009e11
5192c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_UNK0__MASK			0x0000ffff
5193c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_UNK0__SHIFT			0
A6XX_PC_VSTREAM_CONTROL_UNK0(uint32_t val)5194c28c82e9SRob Clark static inline uint32_t A6XX_PC_VSTREAM_CONTROL_UNK0(uint32_t val)
5195c28c82e9SRob Clark {
5196c28c82e9SRob Clark 	return ((val) << A6XX_PC_VSTREAM_CONTROL_UNK0__SHIFT) & A6XX_PC_VSTREAM_CONTROL_UNK0__MASK;
5197c28c82e9SRob Clark }
5198c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK			0x003f0000
5199c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT			16
A6XX_PC_VSTREAM_CONTROL_VSC_SIZE(uint32_t val)5200c28c82e9SRob Clark static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_SIZE(uint32_t val)
5201c28c82e9SRob Clark {
5202c28c82e9SRob Clark 	return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_SIZE__MASK;
5203c28c82e9SRob Clark }
5204c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK			0x07c00000
5205c28c82e9SRob Clark #define A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT			22
A6XX_PC_VSTREAM_CONTROL_VSC_N(uint32_t val)5206c28c82e9SRob Clark static inline uint32_t A6XX_PC_VSTREAM_CONTROL_VSC_N(uint32_t val)
5207c28c82e9SRob Clark {
5208c28c82e9SRob Clark 	return ((val) << A6XX_PC_VSTREAM_CONTROL_VSC_N__SHIFT) & A6XX_PC_VSTREAM_CONTROL_VSC_N__MASK;
5209c28c82e9SRob Clark }
5210c28c82e9SRob Clark 
5211c28c82e9SRob Clark #define REG_A6XX_PC_BIN_PRIM_STRM				0x00009e12
5212c28c82e9SRob Clark #define A6XX_PC_BIN_PRIM_STRM__MASK				0xffffffff
5213c28c82e9SRob Clark #define A6XX_PC_BIN_PRIM_STRM__SHIFT				0
A6XX_PC_BIN_PRIM_STRM(uint32_t val)5214c28c82e9SRob Clark static inline uint32_t A6XX_PC_BIN_PRIM_STRM(uint32_t val)
5215c28c82e9SRob Clark {
5216c28c82e9SRob Clark 	return ((val) << A6XX_PC_BIN_PRIM_STRM__SHIFT) & A6XX_PC_BIN_PRIM_STRM__MASK;
5217c28c82e9SRob Clark }
5218c28c82e9SRob Clark 
5219c28c82e9SRob Clark #define REG_A6XX_PC_BIN_DRAW_STRM				0x00009e14
5220c28c82e9SRob Clark #define A6XX_PC_BIN_DRAW_STRM__MASK				0xffffffff
5221c28c82e9SRob Clark #define A6XX_PC_BIN_DRAW_STRM__SHIFT				0
A6XX_PC_BIN_DRAW_STRM(uint32_t val)5222c28c82e9SRob Clark static inline uint32_t A6XX_PC_BIN_DRAW_STRM(uint32_t val)
5223c28c82e9SRob Clark {
5224c28c82e9SRob Clark 	return ((val) << A6XX_PC_BIN_DRAW_STRM__SHIFT) & A6XX_PC_BIN_DRAW_STRM__MASK;
5225c28c82e9SRob Clark }
5226c28c82e9SRob Clark 
5227cc4c26d4SRob Clark #define REG_A6XX_PC_VISIBILITY_OVERRIDE				0x00009e1c
5228cc4c26d4SRob Clark #define A6XX_PC_VISIBILITY_OVERRIDE_OVERRIDE			0x00000001
5229c28c82e9SRob Clark 
REG_A6XX_PC_PERFCTR_PC_SEL(uint32_t i0)5230cc4c26d4SRob Clark static inline uint32_t REG_A6XX_PC_PERFCTR_PC_SEL(uint32_t i0) { return 0x00009e34 + 0x1*i0; }
5231c28c82e9SRob Clark 
REG_A7XX_PC_PERFCTR_PC_SEL(uint32_t i0)5232f73343faSRob Clark static inline uint32_t REG_A7XX_PC_PERFCTR_PC_SEL(uint32_t i0) { return 0x00009e42 + 0x1*i0; }
5233f73343faSRob Clark 
52342d756322SRob Clark #define REG_A6XX_PC_UNKNOWN_9E72				0x00009e72
52352d756322SRob Clark 
52362d756322SRob Clark #define REG_A6XX_VFD_CONTROL_0					0x0000a000
5237c28c82e9SRob Clark #define A6XX_VFD_CONTROL_0_FETCH_CNT__MASK			0x0000003f
5238c28c82e9SRob Clark #define A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT			0
A6XX_VFD_CONTROL_0_FETCH_CNT(uint32_t val)5239c28c82e9SRob Clark static inline uint32_t A6XX_VFD_CONTROL_0_FETCH_CNT(uint32_t val)
52402d756322SRob Clark {
5241c28c82e9SRob Clark 	return ((val) << A6XX_VFD_CONTROL_0_FETCH_CNT__SHIFT) & A6XX_VFD_CONTROL_0_FETCH_CNT__MASK;
5242c28c82e9SRob Clark }
5243c28c82e9SRob Clark #define A6XX_VFD_CONTROL_0_DECODE_CNT__MASK			0x00003f00
5244c28c82e9SRob Clark #define A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT			8
A6XX_VFD_CONTROL_0_DECODE_CNT(uint32_t val)5245c28c82e9SRob Clark static inline uint32_t A6XX_VFD_CONTROL_0_DECODE_CNT(uint32_t val)
5246c28c82e9SRob Clark {
5247c28c82e9SRob Clark 	return ((val) << A6XX_VFD_CONTROL_0_DECODE_CNT__SHIFT) & A6XX_VFD_CONTROL_0_DECODE_CNT__MASK;
52482d756322SRob Clark }
52492d756322SRob Clark 
52502d756322SRob Clark #define REG_A6XX_VFD_CONTROL_1					0x0000a001
52512d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4VTX__MASK			0x000000ff
52522d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT			0
A6XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)52532d756322SRob Clark static inline uint32_t A6XX_VFD_CONTROL_1_REGID4VTX(uint32_t val)
52542d756322SRob Clark {
52552d756322SRob Clark 	return ((val) << A6XX_VFD_CONTROL_1_REGID4VTX__SHIFT) & A6XX_VFD_CONTROL_1_REGID4VTX__MASK;
52562d756322SRob Clark }
52572d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4INST__MASK			0x0000ff00
52582d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4INST__SHIFT			8
A6XX_VFD_CONTROL_1_REGID4INST(uint32_t val)52592d756322SRob Clark static inline uint32_t A6XX_VFD_CONTROL_1_REGID4INST(uint32_t val)
52602d756322SRob Clark {
52612d756322SRob Clark 	return ((val) << A6XX_VFD_CONTROL_1_REGID4INST__SHIFT) & A6XX_VFD_CONTROL_1_REGID4INST__MASK;
52622d756322SRob Clark }
52632d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK			0x00ff0000
52642d756322SRob Clark #define A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT			16
A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val)52652d756322SRob Clark static inline uint32_t A6XX_VFD_CONTROL_1_REGID4PRIMID(uint32_t val)
52662d756322SRob Clark {
52672d756322SRob Clark 	return ((val) << A6XX_VFD_CONTROL_1_REGID4PRIMID__SHIFT) & A6XX_VFD_CONTROL_1_REGID4PRIMID__MASK;
52682d756322SRob Clark }
5269cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_1_REGID4VIEWID__MASK			0xff000000
5270cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_1_REGID4VIEWID__SHIFT			24
A6XX_VFD_CONTROL_1_REGID4VIEWID(uint32_t val)5271cc4c26d4SRob Clark static inline uint32_t A6XX_VFD_CONTROL_1_REGID4VIEWID(uint32_t val)
5272cc4c26d4SRob Clark {
5273cc4c26d4SRob Clark 	return ((val) << A6XX_VFD_CONTROL_1_REGID4VIEWID__SHIFT) & A6XX_VFD_CONTROL_1_REGID4VIEWID__MASK;
5274cc4c26d4SRob Clark }
52752d756322SRob Clark 
52762d756322SRob Clark #define REG_A6XX_VFD_CONTROL_2					0x0000a002
527757cfe41cSRob Clark #define A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID__MASK		0x000000ff
527857cfe41cSRob Clark #define A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID__SHIFT		0
A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID(uint32_t val)527957cfe41cSRob Clark static inline uint32_t A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID(uint32_t val)
52802d756322SRob Clark {
528157cfe41cSRob Clark 	return ((val) << A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_HSRELPATCHID__MASK;
5282c28c82e9SRob Clark }
5283c28c82e9SRob Clark #define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__MASK		0x0000ff00
5284c28c82e9SRob Clark #define A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT		8
A6XX_VFD_CONTROL_2_REGID_INVOCATIONID(uint32_t val)5285c28c82e9SRob Clark static inline uint32_t A6XX_VFD_CONTROL_2_REGID_INVOCATIONID(uint32_t val)
5286c28c82e9SRob Clark {
5287c28c82e9SRob Clark 	return ((val) << A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__SHIFT) & A6XX_VFD_CONTROL_2_REGID_INVOCATIONID__MASK;
52882d756322SRob Clark }
52892d756322SRob Clark 
52902d756322SRob Clark #define REG_A6XX_VFD_CONTROL_3					0x0000a003
529157cfe41cSRob Clark #define A6XX_VFD_CONTROL_3_REGID_DSPRIMID__MASK			0x000000ff
529257cfe41cSRob Clark #define A6XX_VFD_CONTROL_3_REGID_DSPRIMID__SHIFT		0
A6XX_VFD_CONTROL_3_REGID_DSPRIMID(uint32_t val)529357cfe41cSRob Clark static inline uint32_t A6XX_VFD_CONTROL_3_REGID_DSPRIMID(uint32_t val)
5294cc4c26d4SRob Clark {
529557cfe41cSRob Clark 	return ((val) << A6XX_VFD_CONTROL_3_REGID_DSPRIMID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_DSPRIMID__MASK;
5296cc4c26d4SRob Clark }
529757cfe41cSRob Clark #define A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID__MASK		0x0000ff00
529857cfe41cSRob Clark #define A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID__SHIFT		8
A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID(uint32_t val)529957cfe41cSRob Clark static inline uint32_t A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID(uint32_t val)
53002d756322SRob Clark {
530157cfe41cSRob Clark 	return ((val) << A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID__SHIFT) & A6XX_VFD_CONTROL_3_REGID_DSRELPATCHID__MASK;
53022d756322SRob Clark }
53032d756322SRob Clark #define A6XX_VFD_CONTROL_3_REGID_TESSX__MASK			0x00ff0000
53042d756322SRob Clark #define A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT			16
A6XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)53052d756322SRob Clark static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSX(uint32_t val)
53062d756322SRob Clark {
53072d756322SRob Clark 	return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSX__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSX__MASK;
53082d756322SRob Clark }
53092d756322SRob Clark #define A6XX_VFD_CONTROL_3_REGID_TESSY__MASK			0xff000000
53102d756322SRob Clark #define A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT			24
A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)53112d756322SRob Clark static inline uint32_t A6XX_VFD_CONTROL_3_REGID_TESSY(uint32_t val)
53122d756322SRob Clark {
53132d756322SRob Clark 	return ((val) << A6XX_VFD_CONTROL_3_REGID_TESSY__SHIFT) & A6XX_VFD_CONTROL_3_REGID_TESSY__MASK;
53142d756322SRob Clark }
53152d756322SRob Clark 
53162d756322SRob Clark #define REG_A6XX_VFD_CONTROL_4					0x0000a004
5317cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_4_UNK0__MASK				0x000000ff
5318cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_4_UNK0__SHIFT				0
A6XX_VFD_CONTROL_4_UNK0(uint32_t val)5319cc4c26d4SRob Clark static inline uint32_t A6XX_VFD_CONTROL_4_UNK0(uint32_t val)
5320cc4c26d4SRob Clark {
5321cc4c26d4SRob Clark 	return ((val) << A6XX_VFD_CONTROL_4_UNK0__SHIFT) & A6XX_VFD_CONTROL_4_UNK0__MASK;
5322cc4c26d4SRob Clark }
53232d756322SRob Clark 
53242d756322SRob Clark #define REG_A6XX_VFD_CONTROL_5					0x0000a005
5325c28c82e9SRob Clark #define A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK			0x000000ff
5326c28c82e9SRob Clark #define A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT		0
A6XX_VFD_CONTROL_5_REGID_GSHEADER(uint32_t val)5327c28c82e9SRob Clark static inline uint32_t A6XX_VFD_CONTROL_5_REGID_GSHEADER(uint32_t val)
5328c28c82e9SRob Clark {
5329c28c82e9SRob Clark 	return ((val) << A6XX_VFD_CONTROL_5_REGID_GSHEADER__SHIFT) & A6XX_VFD_CONTROL_5_REGID_GSHEADER__MASK;
5330c28c82e9SRob Clark }
5331cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_5_UNK8__MASK				0x0000ff00
5332cc4c26d4SRob Clark #define A6XX_VFD_CONTROL_5_UNK8__SHIFT				8
A6XX_VFD_CONTROL_5_UNK8(uint32_t val)5333cc4c26d4SRob Clark static inline uint32_t A6XX_VFD_CONTROL_5_UNK8(uint32_t val)
5334cc4c26d4SRob Clark {
5335cc4c26d4SRob Clark 	return ((val) << A6XX_VFD_CONTROL_5_UNK8__SHIFT) & A6XX_VFD_CONTROL_5_UNK8__MASK;
5336cc4c26d4SRob Clark }
53372d756322SRob Clark 
53382d756322SRob Clark #define REG_A6XX_VFD_CONTROL_6					0x0000a006
5339c28c82e9SRob Clark #define A6XX_VFD_CONTROL_6_PRIMID_PASSTHRU			0x00000001
53402d756322SRob Clark 
53412d756322SRob Clark #define REG_A6XX_VFD_MODE_CNTL					0x0000a007
534257cfe41cSRob Clark #define A6XX_VFD_MODE_CNTL_RENDER_MODE__MASK			0x00000007
534357cfe41cSRob Clark #define A6XX_VFD_MODE_CNTL_RENDER_MODE__SHIFT			0
A6XX_VFD_MODE_CNTL_RENDER_MODE(enum a6xx_render_mode val)534457cfe41cSRob Clark static inline uint32_t A6XX_VFD_MODE_CNTL_RENDER_MODE(enum a6xx_render_mode val)
534557cfe41cSRob Clark {
534657cfe41cSRob Clark 	return ((val) << A6XX_VFD_MODE_CNTL_RENDER_MODE__SHIFT) & A6XX_VFD_MODE_CNTL_RENDER_MODE__MASK;
534757cfe41cSRob Clark }
53482d756322SRob Clark 
5349cc4c26d4SRob Clark #define REG_A6XX_VFD_MULTIVIEW_CNTL				0x0000a008
5350cc4c26d4SRob Clark #define A6XX_VFD_MULTIVIEW_CNTL_ENABLE				0x00000001
5351cc4c26d4SRob Clark #define A6XX_VFD_MULTIVIEW_CNTL_DISABLEMULTIPOS			0x00000002
5352cc4c26d4SRob Clark #define A6XX_VFD_MULTIVIEW_CNTL_VIEWS__MASK			0x0000007c
5353cc4c26d4SRob Clark #define A6XX_VFD_MULTIVIEW_CNTL_VIEWS__SHIFT			2
A6XX_VFD_MULTIVIEW_CNTL_VIEWS(uint32_t val)5354cc4c26d4SRob Clark static inline uint32_t A6XX_VFD_MULTIVIEW_CNTL_VIEWS(uint32_t val)
5355cc4c26d4SRob Clark {
5356cc4c26d4SRob Clark 	return ((val) << A6XX_VFD_MULTIVIEW_CNTL_VIEWS__SHIFT) & A6XX_VFD_MULTIVIEW_CNTL_VIEWS__MASK;
5357cc4c26d4SRob Clark }
53582d756322SRob Clark 
5359c28c82e9SRob Clark #define REG_A6XX_VFD_ADD_OFFSET					0x0000a009
5360c28c82e9SRob Clark #define A6XX_VFD_ADD_OFFSET_VERTEX				0x00000001
5361c28c82e9SRob Clark #define A6XX_VFD_ADD_OFFSET_INSTANCE				0x00000002
5362a69c5ed2SRob Clark 
53632d756322SRob Clark #define REG_A6XX_VFD_INDEX_OFFSET				0x0000a00e
53642d756322SRob Clark 
53652d756322SRob Clark #define REG_A6XX_VFD_INSTANCE_START_OFFSET			0x0000a00f
53662d756322SRob Clark 
REG_A6XX_VFD_FETCH(uint32_t i0)53672d756322SRob Clark static inline uint32_t REG_A6XX_VFD_FETCH(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
53682d756322SRob Clark 
REG_A6XX_VFD_FETCH_BASE(uint32_t i0)5369c28c82e9SRob Clark static inline uint32_t REG_A6XX_VFD_FETCH_BASE(uint32_t i0) { return 0x0000a010 + 0x4*i0; }
5370cc4c26d4SRob Clark #define A6XX_VFD_FETCH_BASE__MASK				0xffffffff
5371cc4c26d4SRob Clark #define A6XX_VFD_FETCH_BASE__SHIFT				0
A6XX_VFD_FETCH_BASE(uint32_t val)5372cc4c26d4SRob Clark static inline uint32_t A6XX_VFD_FETCH_BASE(uint32_t val)
5373cc4c26d4SRob Clark {
5374cc4c26d4SRob Clark 	return ((val) << A6XX_VFD_FETCH_BASE__SHIFT) & A6XX_VFD_FETCH_BASE__MASK;
5375cc4c26d4SRob Clark }
53762d756322SRob Clark 
REG_A6XX_VFD_FETCH_SIZE(uint32_t i0)53772d756322SRob Clark static inline uint32_t REG_A6XX_VFD_FETCH_SIZE(uint32_t i0) { return 0x0000a012 + 0x4*i0; }
53782d756322SRob Clark 
REG_A6XX_VFD_FETCH_STRIDE(uint32_t i0)53792d756322SRob Clark static inline uint32_t REG_A6XX_VFD_FETCH_STRIDE(uint32_t i0) { return 0x0000a013 + 0x4*i0; }
53802d756322SRob Clark 
REG_A6XX_VFD_DECODE(uint32_t i0)53812d756322SRob Clark static inline uint32_t REG_A6XX_VFD_DECODE(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
53822d756322SRob Clark 
REG_A6XX_VFD_DECODE_INSTR(uint32_t i0)53832d756322SRob Clark static inline uint32_t REG_A6XX_VFD_DECODE_INSTR(uint32_t i0) { return 0x0000a090 + 0x2*i0; }
53842d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_IDX__MASK				0x0000001f
53852d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_IDX__SHIFT			0
A6XX_VFD_DECODE_INSTR_IDX(uint32_t val)53862d756322SRob Clark static inline uint32_t A6XX_VFD_DECODE_INSTR_IDX(uint32_t val)
53872d756322SRob Clark {
53882d756322SRob Clark 	return ((val) << A6XX_VFD_DECODE_INSTR_IDX__SHIFT) & A6XX_VFD_DECODE_INSTR_IDX__MASK;
53892d756322SRob Clark }
5390c28c82e9SRob Clark #define A6XX_VFD_DECODE_INSTR_OFFSET__MASK			0x0001ffe0
5391c28c82e9SRob Clark #define A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT			5
A6XX_VFD_DECODE_INSTR_OFFSET(uint32_t val)5392c28c82e9SRob Clark static inline uint32_t A6XX_VFD_DECODE_INSTR_OFFSET(uint32_t val)
5393c28c82e9SRob Clark {
5394c28c82e9SRob Clark 	return ((val) << A6XX_VFD_DECODE_INSTR_OFFSET__SHIFT) & A6XX_VFD_DECODE_INSTR_OFFSET__MASK;
5395c28c82e9SRob Clark }
53962d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_INSTANCED				0x00020000
53972d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_FORMAT__MASK			0x0ff00000
53982d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT			20
A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_format val)5399c28c82e9SRob Clark static inline uint32_t A6XX_VFD_DECODE_INSTR_FORMAT(enum a6xx_format val)
54002d756322SRob Clark {
54012d756322SRob Clark 	return ((val) << A6XX_VFD_DECODE_INSTR_FORMAT__SHIFT) & A6XX_VFD_DECODE_INSTR_FORMAT__MASK;
54022d756322SRob Clark }
54032d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_SWAP__MASK			0x30000000
54042d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_SWAP__SHIFT			28
A6XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)54052d756322SRob Clark static inline uint32_t A6XX_VFD_DECODE_INSTR_SWAP(enum a3xx_color_swap val)
54062d756322SRob Clark {
54072d756322SRob Clark 	return ((val) << A6XX_VFD_DECODE_INSTR_SWAP__SHIFT) & A6XX_VFD_DECODE_INSTR_SWAP__MASK;
54082d756322SRob Clark }
54092d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_UNK30				0x40000000
54102d756322SRob Clark #define A6XX_VFD_DECODE_INSTR_FLOAT				0x80000000
54112d756322SRob Clark 
REG_A6XX_VFD_DECODE_STEP_RATE(uint32_t i0)54122d756322SRob Clark static inline uint32_t REG_A6XX_VFD_DECODE_STEP_RATE(uint32_t i0) { return 0x0000a091 + 0x2*i0; }
54132d756322SRob Clark 
REG_A6XX_VFD_DEST_CNTL(uint32_t i0)54142d756322SRob Clark static inline uint32_t REG_A6XX_VFD_DEST_CNTL(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
54152d756322SRob Clark 
REG_A6XX_VFD_DEST_CNTL_INSTR(uint32_t i0)54162d756322SRob Clark static inline uint32_t REG_A6XX_VFD_DEST_CNTL_INSTR(uint32_t i0) { return 0x0000a0d0 + 0x1*i0; }
54172d756322SRob Clark #define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK		0x0000000f
54182d756322SRob Clark #define A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT		0
A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)54192d756322SRob Clark static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK(uint32_t val)
54202d756322SRob Clark {
54212d756322SRob Clark 	return ((val) << A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_WRITEMASK__MASK;
54222d756322SRob Clark }
54232d756322SRob Clark #define A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK			0x00000ff0
54242d756322SRob Clark #define A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT			4
A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)54252d756322SRob Clark static inline uint32_t A6XX_VFD_DEST_CNTL_INSTR_REGID(uint32_t val)
54262d756322SRob Clark {
54272d756322SRob Clark 	return ((val) << A6XX_VFD_DEST_CNTL_INSTR_REGID__SHIFT) & A6XX_VFD_DEST_CNTL_INSTR_REGID__MASK;
54282d756322SRob Clark }
54292d756322SRob Clark 
543057cfe41cSRob Clark #define REG_A6XX_VFD_POWER_CNTL					0x0000a0f8
54312d756322SRob Clark 
5432cc4c26d4SRob Clark #define REG_A6XX_VFD_ADDR_MODE_CNTL				0x0000a601
5433cc4c26d4SRob Clark 
REG_A6XX_VFD_PERFCTR_VFD_SEL(uint32_t i0)5434cc4c26d4SRob Clark static inline uint32_t REG_A6XX_VFD_PERFCTR_VFD_SEL(uint32_t i0) { return 0x0000a610 + 0x1*i0; }
5435cc4c26d4SRob Clark 
REG_A7XX_VFD_PERFCTR_VFD_SEL(uint32_t i0)5436f73343faSRob Clark static inline uint32_t REG_A7XX_VFD_PERFCTR_VFD_SEL(uint32_t i0) { return 0x0000a610 + 0x1*i0; }
5437f73343faSRob Clark 
5438c28c82e9SRob Clark #define REG_A6XX_SP_VS_CTRL_REG0				0x0000a800
5439cc4c26d4SRob Clark #define A6XX_SP_VS_CTRL_REG0_MERGEDREGS				0x00100000
5440f73343faSRob Clark #define A6XX_SP_VS_CTRL_REG0_EARLYPREAMBLE			0x00200000
5441cc4c26d4SRob Clark #define A6XX_SP_VS_CTRL_REG0_THREADMODE__MASK			0x00000001
5442cc4c26d4SRob Clark #define A6XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)5443cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
5444cc4c26d4SRob Clark {
5445cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_VS_CTRL_REG0_THREADMODE__MASK;
5446cc4c26d4SRob Clark }
5447c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
5448c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)5449c28c82e9SRob Clark static inline uint32_t A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
54502d756322SRob Clark {
5451c28c82e9SRob Clark 	return ((val) << A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
5452c28c82e9SRob Clark }
5453c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
5454c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)5455c28c82e9SRob Clark static inline uint32_t A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
5456c28c82e9SRob Clark {
5457c28c82e9SRob Clark 	return ((val) << A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_VS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
5458c28c82e9SRob Clark }
5459cc4c26d4SRob Clark #define A6XX_SP_VS_CTRL_REG0_UNK13				0x00002000
5460c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
5461c28c82e9SRob Clark #define A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)5462c28c82e9SRob Clark static inline uint32_t A6XX_SP_VS_CTRL_REG0_BRANCHSTACK(uint32_t val)
5463c28c82e9SRob Clark {
5464c28c82e9SRob Clark 	return ((val) << A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_VS_CTRL_REG0_BRANCHSTACK__MASK;
5465c28c82e9SRob Clark }
5466c28c82e9SRob Clark 
5467c28c82e9SRob Clark #define REG_A6XX_SP_VS_BRANCH_COND				0x0000a801
5468c28c82e9SRob Clark 
5469c28c82e9SRob Clark #define REG_A6XX_SP_VS_PRIMITIVE_CNTL				0x0000a802
5470c28c82e9SRob Clark #define A6XX_SP_VS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5471c28c82e9SRob Clark #define A6XX_SP_VS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_VS_PRIMITIVE_CNTL_OUT(uint32_t val)5472c28c82e9SRob Clark static inline uint32_t A6XX_SP_VS_PRIMITIVE_CNTL_OUT(uint32_t val)
5473c28c82e9SRob Clark {
5474c28c82e9SRob Clark 	return ((val) << A6XX_SP_VS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_VS_PRIMITIVE_CNTL_OUT__MASK;
54752d756322SRob Clark }
5476cc4c26d4SRob Clark #define A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID__MASK		0x00003fc0
5477cc4c26d4SRob Clark #define A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT		6
A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)5478cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)
5479cc4c26d4SRob Clark {
5480cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT) & A6XX_SP_VS_PRIMITIVE_CNTL_FLAGS_REGID__MASK;
5481cc4c26d4SRob Clark }
54822d756322SRob Clark 
REG_A6XX_SP_VS_OUT(uint32_t i0)54832d756322SRob Clark static inline uint32_t REG_A6XX_SP_VS_OUT(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
54842d756322SRob Clark 
REG_A6XX_SP_VS_OUT_REG(uint32_t i0)54852d756322SRob Clark static inline uint32_t REG_A6XX_SP_VS_OUT_REG(uint32_t i0) { return 0x0000a803 + 0x1*i0; }
54862d756322SRob Clark #define A6XX_SP_VS_OUT_REG_A_REGID__MASK			0x000000ff
54872d756322SRob Clark #define A6XX_SP_VS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_VS_OUT_REG_A_REGID(uint32_t val)54882d756322SRob Clark static inline uint32_t A6XX_SP_VS_OUT_REG_A_REGID(uint32_t val)
54892d756322SRob Clark {
54902d756322SRob Clark 	return ((val) << A6XX_SP_VS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_A_REGID__MASK;
54912d756322SRob Clark }
54922d756322SRob Clark #define A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK			0x00000f00
54932d756322SRob Clark #define A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)54942d756322SRob Clark static inline uint32_t A6XX_SP_VS_OUT_REG_A_COMPMASK(uint32_t val)
54952d756322SRob Clark {
54962d756322SRob Clark 	return ((val) << A6XX_SP_VS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_A_COMPMASK__MASK;
54972d756322SRob Clark }
54982d756322SRob Clark #define A6XX_SP_VS_OUT_REG_B_REGID__MASK			0x00ff0000
54992d756322SRob Clark #define A6XX_SP_VS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_VS_OUT_REG_B_REGID(uint32_t val)55002d756322SRob Clark static inline uint32_t A6XX_SP_VS_OUT_REG_B_REGID(uint32_t val)
55012d756322SRob Clark {
55022d756322SRob Clark 	return ((val) << A6XX_SP_VS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_VS_OUT_REG_B_REGID__MASK;
55032d756322SRob Clark }
55042d756322SRob Clark #define A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK			0x0f000000
55052d756322SRob Clark #define A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)55062d756322SRob Clark static inline uint32_t A6XX_SP_VS_OUT_REG_B_COMPMASK(uint32_t val)
55072d756322SRob Clark {
55082d756322SRob Clark 	return ((val) << A6XX_SP_VS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_VS_OUT_REG_B_COMPMASK__MASK;
55092d756322SRob Clark }
55102d756322SRob Clark 
REG_A6XX_SP_VS_VPC_DST(uint32_t i0)55112d756322SRob Clark static inline uint32_t REG_A6XX_SP_VS_VPC_DST(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
55122d756322SRob Clark 
REG_A6XX_SP_VS_VPC_DST_REG(uint32_t i0)55132d756322SRob Clark static inline uint32_t REG_A6XX_SP_VS_VPC_DST_REG(uint32_t i0) { return 0x0000a813 + 0x1*i0; }
55142d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
55152d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)55162d756322SRob Clark static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC0(uint32_t val)
55172d756322SRob Clark {
55182d756322SRob Clark 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC0__MASK;
55192d756322SRob Clark }
55202d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
55212d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)55222d756322SRob Clark static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC1(uint32_t val)
55232d756322SRob Clark {
55242d756322SRob Clark 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC1__MASK;
55252d756322SRob Clark }
55262d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
55272d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)55282d756322SRob Clark static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC2(uint32_t val)
55292d756322SRob Clark {
55302d756322SRob Clark 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC2__MASK;
55312d756322SRob Clark }
55322d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
55332d756322SRob Clark #define A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)55342d756322SRob Clark static inline uint32_t A6XX_SP_VS_VPC_DST_REG_OUTLOC3(uint32_t val)
55352d756322SRob Clark {
55362d756322SRob Clark 	return ((val) << A6XX_SP_VS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_VS_VPC_DST_REG_OUTLOC3__MASK;
55372d756322SRob Clark }
55382d756322SRob Clark 
5539cc4c26d4SRob Clark #define REG_A6XX_SP_VS_OBJ_FIRST_EXEC_OFFSET			0x0000a81b
5540a69c5ed2SRob Clark 
5541cc4c26d4SRob Clark #define REG_A6XX_SP_VS_OBJ_START				0x0000a81c
5542cc4c26d4SRob Clark #define A6XX_SP_VS_OBJ_START__MASK				0xffffffff
5543cc4c26d4SRob Clark #define A6XX_SP_VS_OBJ_START__SHIFT				0
A6XX_SP_VS_OBJ_START(uint32_t val)5544cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_OBJ_START(uint32_t val)
5545cc4c26d4SRob Clark {
5546cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_OBJ_START__SHIFT) & A6XX_SP_VS_OBJ_START__MASK;
5547cc4c26d4SRob Clark }
55482d756322SRob Clark 
5549cc4c26d4SRob Clark #define REG_A6XX_SP_VS_PVT_MEM_PARAM				0x0000a81e
5550cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
5551cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)5552cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
5553cc4c26d4SRob Clark {
5554cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_VS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
5555cc4c26d4SRob Clark }
5556cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
5557cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)5558cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
5559cc4c26d4SRob Clark {
5560cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_VS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
5561cc4c26d4SRob Clark }
5562cc4c26d4SRob Clark 
5563cc4c26d4SRob Clark #define REG_A6XX_SP_VS_PVT_MEM_ADDR				0x0000a81f
5564cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_ADDR__MASK				0xffffffff
5565cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_VS_PVT_MEM_ADDR(uint32_t val)5566cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_PVT_MEM_ADDR(uint32_t val)
5567cc4c26d4SRob Clark {
5568cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_VS_PVT_MEM_ADDR__MASK;
5569cc4c26d4SRob Clark }
5570cc4c26d4SRob Clark 
5571cc4c26d4SRob Clark #define REG_A6XX_SP_VS_PVT_MEM_SIZE				0x0000a821
5572cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
5573cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)5574cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
5575cc4c26d4SRob Clark {
5576cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_VS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
5577cc4c26d4SRob Clark }
5578cc4c26d4SRob Clark #define A6XX_SP_VS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
55792d756322SRob Clark 
55802d756322SRob Clark #define REG_A6XX_SP_VS_TEX_COUNT				0x0000a822
55812d756322SRob Clark 
55822d756322SRob Clark #define REG_A6XX_SP_VS_CONFIG					0x0000a823
5583c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_BINDLESS_TEX				0x00000001
5584c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_BINDLESS_SAMP				0x00000002
5585c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_BINDLESS_IBO				0x00000004
5586c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_BINDLESS_UBO				0x00000008
55872d756322SRob Clark #define A6XX_SP_VS_CONFIG_ENABLED				0x00000100
55882d756322SRob Clark #define A6XX_SP_VS_CONFIG_NTEX__MASK				0x0001fe00
55892d756322SRob Clark #define A6XX_SP_VS_CONFIG_NTEX__SHIFT				9
A6XX_SP_VS_CONFIG_NTEX(uint32_t val)55902d756322SRob Clark static inline uint32_t A6XX_SP_VS_CONFIG_NTEX(uint32_t val)
55912d756322SRob Clark {
55922d756322SRob Clark 	return ((val) << A6XX_SP_VS_CONFIG_NTEX__SHIFT) & A6XX_SP_VS_CONFIG_NTEX__MASK;
55932d756322SRob Clark }
5594c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_NSAMP__MASK				0x003e0000
55952d756322SRob Clark #define A6XX_SP_VS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_VS_CONFIG_NSAMP(uint32_t val)55962d756322SRob Clark static inline uint32_t A6XX_SP_VS_CONFIG_NSAMP(uint32_t val)
55972d756322SRob Clark {
55982d756322SRob Clark 	return ((val) << A6XX_SP_VS_CONFIG_NSAMP__SHIFT) & A6XX_SP_VS_CONFIG_NSAMP__MASK;
55992d756322SRob Clark }
5600cc4c26d4SRob Clark #define A6XX_SP_VS_CONFIG_NIBO__MASK				0x1fc00000
5601c28c82e9SRob Clark #define A6XX_SP_VS_CONFIG_NIBO__SHIFT				22
A6XX_SP_VS_CONFIG_NIBO(uint32_t val)5602c28c82e9SRob Clark static inline uint32_t A6XX_SP_VS_CONFIG_NIBO(uint32_t val)
5603c28c82e9SRob Clark {
5604c28c82e9SRob Clark 	return ((val) << A6XX_SP_VS_CONFIG_NIBO__SHIFT) & A6XX_SP_VS_CONFIG_NIBO__MASK;
5605c28c82e9SRob Clark }
56062d756322SRob Clark 
56072d756322SRob Clark #define REG_A6XX_SP_VS_INSTRLEN					0x0000a824
56082d756322SRob Clark 
5609cc4c26d4SRob Clark #define REG_A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET			0x0000a825
561057cfe41cSRob Clark #define A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
561157cfe41cSRob Clark #define A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)561257cfe41cSRob Clark static inline uint32_t A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
5613cc4c26d4SRob Clark {
561457cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_VS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
5615cc4c26d4SRob Clark }
5616cc4c26d4SRob Clark 
56172d756322SRob Clark #define REG_A6XX_SP_HS_CTRL_REG0				0x0000a830
5618f73343faSRob Clark #define A6XX_SP_HS_CTRL_REG0_EARLYPREAMBLE			0x00100000
5619cc4c26d4SRob Clark #define A6XX_SP_HS_CTRL_REG0_THREADMODE__MASK			0x00000001
5620cc4c26d4SRob Clark #define A6XX_SP_HS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_HS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)5621cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
5622cc4c26d4SRob Clark {
5623cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_HS_CTRL_REG0_THREADMODE__MASK;
5624cc4c26d4SRob Clark }
56252d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
56262d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)56272d756322SRob Clark static inline uint32_t A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
56282d756322SRob Clark {
56292d756322SRob Clark 	return ((val) << A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
56302d756322SRob Clark }
56312d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
56322d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)56332d756322SRob Clark static inline uint32_t A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
56342d756322SRob Clark {
56352d756322SRob Clark 	return ((val) << A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_HS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
56362d756322SRob Clark }
5637cc4c26d4SRob Clark #define A6XX_SP_HS_CTRL_REG0_UNK13				0x00002000
56382d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
56392d756322SRob Clark #define A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(uint32_t val)56402d756322SRob Clark static inline uint32_t A6XX_SP_HS_CTRL_REG0_BRANCHSTACK(uint32_t val)
56412d756322SRob Clark {
56422d756322SRob Clark 	return ((val) << A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_HS_CTRL_REG0_BRANCHSTACK__MASK;
56432d756322SRob Clark }
5644cc4c26d4SRob Clark 
5645cc4c26d4SRob Clark #define REG_A6XX_SP_HS_WAVE_INPUT_SIZE				0x0000a831
5646cc4c26d4SRob Clark 
5647cc4c26d4SRob Clark #define REG_A6XX_SP_HS_BRANCH_COND				0x0000a832
5648cc4c26d4SRob Clark 
5649cc4c26d4SRob Clark #define REG_A6XX_SP_HS_OBJ_FIRST_EXEC_OFFSET			0x0000a833
5650cc4c26d4SRob Clark 
5651cc4c26d4SRob Clark #define REG_A6XX_SP_HS_OBJ_START				0x0000a834
5652cc4c26d4SRob Clark #define A6XX_SP_HS_OBJ_START__MASK				0xffffffff
5653cc4c26d4SRob Clark #define A6XX_SP_HS_OBJ_START__SHIFT				0
A6XX_SP_HS_OBJ_START(uint32_t val)5654cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_OBJ_START(uint32_t val)
56552d756322SRob Clark {
5656cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_OBJ_START__SHIFT) & A6XX_SP_HS_OBJ_START__MASK;
56572d756322SRob Clark }
56582d756322SRob Clark 
5659cc4c26d4SRob Clark #define REG_A6XX_SP_HS_PVT_MEM_PARAM				0x0000a836
5660cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
5661cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)5662cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
5663cc4c26d4SRob Clark {
5664cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_HS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
5665cc4c26d4SRob Clark }
5666cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
5667cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)5668cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
5669cc4c26d4SRob Clark {
5670cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_HS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
5671cc4c26d4SRob Clark }
56722d756322SRob Clark 
5673cc4c26d4SRob Clark #define REG_A6XX_SP_HS_PVT_MEM_ADDR				0x0000a837
5674cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_ADDR__MASK				0xffffffff
5675cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_HS_PVT_MEM_ADDR(uint32_t val)5676cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_PVT_MEM_ADDR(uint32_t val)
5677cc4c26d4SRob Clark {
5678cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_HS_PVT_MEM_ADDR__MASK;
5679cc4c26d4SRob Clark }
5680c28c82e9SRob Clark 
5681cc4c26d4SRob Clark #define REG_A6XX_SP_HS_PVT_MEM_SIZE				0x0000a839
5682cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
5683cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)5684cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
5685cc4c26d4SRob Clark {
5686cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_HS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
5687cc4c26d4SRob Clark }
5688cc4c26d4SRob Clark #define A6XX_SP_HS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
56892d756322SRob Clark 
56902d756322SRob Clark #define REG_A6XX_SP_HS_TEX_COUNT				0x0000a83a
56912d756322SRob Clark 
56922d756322SRob Clark #define REG_A6XX_SP_HS_CONFIG					0x0000a83b
5693c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_BINDLESS_TEX				0x00000001
5694c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_BINDLESS_SAMP				0x00000002
5695c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_BINDLESS_IBO				0x00000004
5696c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_BINDLESS_UBO				0x00000008
56972d756322SRob Clark #define A6XX_SP_HS_CONFIG_ENABLED				0x00000100
56982d756322SRob Clark #define A6XX_SP_HS_CONFIG_NTEX__MASK				0x0001fe00
56992d756322SRob Clark #define A6XX_SP_HS_CONFIG_NTEX__SHIFT				9
A6XX_SP_HS_CONFIG_NTEX(uint32_t val)57002d756322SRob Clark static inline uint32_t A6XX_SP_HS_CONFIG_NTEX(uint32_t val)
57012d756322SRob Clark {
57022d756322SRob Clark 	return ((val) << A6XX_SP_HS_CONFIG_NTEX__SHIFT) & A6XX_SP_HS_CONFIG_NTEX__MASK;
57032d756322SRob Clark }
5704c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_NSAMP__MASK				0x003e0000
57052d756322SRob Clark #define A6XX_SP_HS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_HS_CONFIG_NSAMP(uint32_t val)57062d756322SRob Clark static inline uint32_t A6XX_SP_HS_CONFIG_NSAMP(uint32_t val)
57072d756322SRob Clark {
57082d756322SRob Clark 	return ((val) << A6XX_SP_HS_CONFIG_NSAMP__SHIFT) & A6XX_SP_HS_CONFIG_NSAMP__MASK;
57092d756322SRob Clark }
5710cc4c26d4SRob Clark #define A6XX_SP_HS_CONFIG_NIBO__MASK				0x1fc00000
5711c28c82e9SRob Clark #define A6XX_SP_HS_CONFIG_NIBO__SHIFT				22
A6XX_SP_HS_CONFIG_NIBO(uint32_t val)5712c28c82e9SRob Clark static inline uint32_t A6XX_SP_HS_CONFIG_NIBO(uint32_t val)
5713c28c82e9SRob Clark {
5714c28c82e9SRob Clark 	return ((val) << A6XX_SP_HS_CONFIG_NIBO__SHIFT) & A6XX_SP_HS_CONFIG_NIBO__MASK;
5715c28c82e9SRob Clark }
57162d756322SRob Clark 
57172d756322SRob Clark #define REG_A6XX_SP_HS_INSTRLEN					0x0000a83c
57182d756322SRob Clark 
5719cc4c26d4SRob Clark #define REG_A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET			0x0000a83d
572057cfe41cSRob Clark #define A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
572157cfe41cSRob Clark #define A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)572257cfe41cSRob Clark static inline uint32_t A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
5723cc4c26d4SRob Clark {
572457cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_HS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
5725cc4c26d4SRob Clark }
5726cc4c26d4SRob Clark 
57272d756322SRob Clark #define REG_A6XX_SP_DS_CTRL_REG0				0x0000a840
5728f73343faSRob Clark #define A6XX_SP_DS_CTRL_REG0_EARLYPREAMBLE			0x00100000
5729cc4c26d4SRob Clark #define A6XX_SP_DS_CTRL_REG0_THREADMODE__MASK			0x00000001
5730cc4c26d4SRob Clark #define A6XX_SP_DS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_DS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)5731cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
5732cc4c26d4SRob Clark {
5733cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_DS_CTRL_REG0_THREADMODE__MASK;
5734cc4c26d4SRob Clark }
57352d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
57362d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)57372d756322SRob Clark static inline uint32_t A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
57382d756322SRob Clark {
57392d756322SRob Clark 	return ((val) << A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
57402d756322SRob Clark }
57412d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
57422d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)57432d756322SRob Clark static inline uint32_t A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
57442d756322SRob Clark {
57452d756322SRob Clark 	return ((val) << A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_DS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
57462d756322SRob Clark }
5747cc4c26d4SRob Clark #define A6XX_SP_DS_CTRL_REG0_UNK13				0x00002000
57482d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
57492d756322SRob Clark #define A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(uint32_t val)57502d756322SRob Clark static inline uint32_t A6XX_SP_DS_CTRL_REG0_BRANCHSTACK(uint32_t val)
57512d756322SRob Clark {
57522d756322SRob Clark 	return ((val) << A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_DS_CTRL_REG0_BRANCHSTACK__MASK;
57532d756322SRob Clark }
5754cc4c26d4SRob Clark 
5755cc4c26d4SRob Clark #define REG_A6XX_SP_DS_BRANCH_COND				0x0000a841
57562d756322SRob Clark 
5757c28c82e9SRob Clark #define REG_A6XX_SP_DS_PRIMITIVE_CNTL				0x0000a842
5758c28c82e9SRob Clark #define A6XX_SP_DS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5759c28c82e9SRob Clark #define A6XX_SP_DS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_DS_PRIMITIVE_CNTL_OUT(uint32_t val)5760c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_PRIMITIVE_CNTL_OUT(uint32_t val)
5761c28c82e9SRob Clark {
5762c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_DS_PRIMITIVE_CNTL_OUT__MASK;
5763c28c82e9SRob Clark }
5764cc4c26d4SRob Clark #define A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID__MASK		0x00003fc0
5765cc4c26d4SRob Clark #define A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT		6
A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)5766cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)
5767cc4c26d4SRob Clark {
5768cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT) & A6XX_SP_DS_PRIMITIVE_CNTL_FLAGS_REGID__MASK;
5769cc4c26d4SRob Clark }
5770c28c82e9SRob Clark 
REG_A6XX_SP_DS_OUT(uint32_t i0)5771c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_DS_OUT(uint32_t i0) { return 0x0000a843 + 0x1*i0; }
5772c28c82e9SRob Clark 
REG_A6XX_SP_DS_OUT_REG(uint32_t i0)5773c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_DS_OUT_REG(uint32_t i0) { return 0x0000a843 + 0x1*i0; }
5774c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_A_REGID__MASK			0x000000ff
5775c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_DS_OUT_REG_A_REGID(uint32_t val)5776c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_OUT_REG_A_REGID(uint32_t val)
5777c28c82e9SRob Clark {
5778c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_A_REGID__MASK;
5779c28c82e9SRob Clark }
5780c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK			0x00000f00
5781c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)5782c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_OUT_REG_A_COMPMASK(uint32_t val)
5783c28c82e9SRob Clark {
5784c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_A_COMPMASK__MASK;
5785c28c82e9SRob Clark }
5786c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_B_REGID__MASK			0x00ff0000
5787c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_DS_OUT_REG_B_REGID(uint32_t val)5788c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_OUT_REG_B_REGID(uint32_t val)
5789c28c82e9SRob Clark {
5790c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_DS_OUT_REG_B_REGID__MASK;
5791c28c82e9SRob Clark }
5792c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK			0x0f000000
5793c28c82e9SRob Clark #define A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)5794c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_OUT_REG_B_COMPMASK(uint32_t val)
5795c28c82e9SRob Clark {
5796c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_DS_OUT_REG_B_COMPMASK__MASK;
5797c28c82e9SRob Clark }
5798c28c82e9SRob Clark 
REG_A6XX_SP_DS_VPC_DST(uint32_t i0)5799c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_DS_VPC_DST(uint32_t i0) { return 0x0000a853 + 0x1*i0; }
5800c28c82e9SRob Clark 
REG_A6XX_SP_DS_VPC_DST_REG(uint32_t i0)5801c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_DS_VPC_DST_REG(uint32_t i0) { return 0x0000a853 + 0x1*i0; }
5802c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
5803c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)5804c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC0(uint32_t val)
5805c28c82e9SRob Clark {
5806c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC0__MASK;
5807c28c82e9SRob Clark }
5808c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
5809c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)5810c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC1(uint32_t val)
5811c28c82e9SRob Clark {
5812c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC1__MASK;
5813c28c82e9SRob Clark }
5814c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
5815c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)5816c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC2(uint32_t val)
5817c28c82e9SRob Clark {
5818c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC2__MASK;
5819c28c82e9SRob Clark }
5820c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
5821c28c82e9SRob Clark #define A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)5822c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_VPC_DST_REG_OUTLOC3(uint32_t val)
5823c28c82e9SRob Clark {
5824c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_DS_VPC_DST_REG_OUTLOC3__MASK;
5825c28c82e9SRob Clark }
5826c28c82e9SRob Clark 
5827cc4c26d4SRob Clark #define REG_A6XX_SP_DS_OBJ_FIRST_EXEC_OFFSET			0x0000a85b
5828c28c82e9SRob Clark 
5829cc4c26d4SRob Clark #define REG_A6XX_SP_DS_OBJ_START				0x0000a85c
5830cc4c26d4SRob Clark #define A6XX_SP_DS_OBJ_START__MASK				0xffffffff
5831cc4c26d4SRob Clark #define A6XX_SP_DS_OBJ_START__SHIFT				0
A6XX_SP_DS_OBJ_START(uint32_t val)5832cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_OBJ_START(uint32_t val)
5833cc4c26d4SRob Clark {
5834cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_OBJ_START__SHIFT) & A6XX_SP_DS_OBJ_START__MASK;
5835cc4c26d4SRob Clark }
58362d756322SRob Clark 
5837cc4c26d4SRob Clark #define REG_A6XX_SP_DS_PVT_MEM_PARAM				0x0000a85e
5838cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
5839cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)5840cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
5841cc4c26d4SRob Clark {
5842cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_DS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
5843cc4c26d4SRob Clark }
5844cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
5845cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)5846cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
5847cc4c26d4SRob Clark {
5848cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_DS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
5849cc4c26d4SRob Clark }
5850cc4c26d4SRob Clark 
5851cc4c26d4SRob Clark #define REG_A6XX_SP_DS_PVT_MEM_ADDR				0x0000a85f
5852cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_ADDR__MASK				0xffffffff
5853cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_DS_PVT_MEM_ADDR(uint32_t val)5854cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_PVT_MEM_ADDR(uint32_t val)
5855cc4c26d4SRob Clark {
5856cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_DS_PVT_MEM_ADDR__MASK;
5857cc4c26d4SRob Clark }
5858cc4c26d4SRob Clark 
5859cc4c26d4SRob Clark #define REG_A6XX_SP_DS_PVT_MEM_SIZE				0x0000a861
5860cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
5861cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)5862cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
5863cc4c26d4SRob Clark {
5864cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_DS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
5865cc4c26d4SRob Clark }
5866cc4c26d4SRob Clark #define A6XX_SP_DS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
58672d756322SRob Clark 
58682d756322SRob Clark #define REG_A6XX_SP_DS_TEX_COUNT				0x0000a862
58692d756322SRob Clark 
58702d756322SRob Clark #define REG_A6XX_SP_DS_CONFIG					0x0000a863
5871c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_BINDLESS_TEX				0x00000001
5872c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_BINDLESS_SAMP				0x00000002
5873c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_BINDLESS_IBO				0x00000004
5874c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_BINDLESS_UBO				0x00000008
58752d756322SRob Clark #define A6XX_SP_DS_CONFIG_ENABLED				0x00000100
58762d756322SRob Clark #define A6XX_SP_DS_CONFIG_NTEX__MASK				0x0001fe00
58772d756322SRob Clark #define A6XX_SP_DS_CONFIG_NTEX__SHIFT				9
A6XX_SP_DS_CONFIG_NTEX(uint32_t val)58782d756322SRob Clark static inline uint32_t A6XX_SP_DS_CONFIG_NTEX(uint32_t val)
58792d756322SRob Clark {
58802d756322SRob Clark 	return ((val) << A6XX_SP_DS_CONFIG_NTEX__SHIFT) & A6XX_SP_DS_CONFIG_NTEX__MASK;
58812d756322SRob Clark }
5882c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_NSAMP__MASK				0x003e0000
58832d756322SRob Clark #define A6XX_SP_DS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_DS_CONFIG_NSAMP(uint32_t val)58842d756322SRob Clark static inline uint32_t A6XX_SP_DS_CONFIG_NSAMP(uint32_t val)
58852d756322SRob Clark {
58862d756322SRob Clark 	return ((val) << A6XX_SP_DS_CONFIG_NSAMP__SHIFT) & A6XX_SP_DS_CONFIG_NSAMP__MASK;
58872d756322SRob Clark }
5888cc4c26d4SRob Clark #define A6XX_SP_DS_CONFIG_NIBO__MASK				0x1fc00000
5889c28c82e9SRob Clark #define A6XX_SP_DS_CONFIG_NIBO__SHIFT				22
A6XX_SP_DS_CONFIG_NIBO(uint32_t val)5890c28c82e9SRob Clark static inline uint32_t A6XX_SP_DS_CONFIG_NIBO(uint32_t val)
5891c28c82e9SRob Clark {
5892c28c82e9SRob Clark 	return ((val) << A6XX_SP_DS_CONFIG_NIBO__SHIFT) & A6XX_SP_DS_CONFIG_NIBO__MASK;
5893c28c82e9SRob Clark }
58942d756322SRob Clark 
58952d756322SRob Clark #define REG_A6XX_SP_DS_INSTRLEN					0x0000a864
58962d756322SRob Clark 
5897cc4c26d4SRob Clark #define REG_A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET			0x0000a865
589857cfe41cSRob Clark #define A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
589957cfe41cSRob Clark #define A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)590057cfe41cSRob Clark static inline uint32_t A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
5901cc4c26d4SRob Clark {
590257cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_DS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
5903cc4c26d4SRob Clark }
5904cc4c26d4SRob Clark 
59052d756322SRob Clark #define REG_A6XX_SP_GS_CTRL_REG0				0x0000a870
5906f73343faSRob Clark #define A6XX_SP_GS_CTRL_REG0_EARLYPREAMBLE			0x00100000
5907cc4c26d4SRob Clark #define A6XX_SP_GS_CTRL_REG0_THREADMODE__MASK			0x00000001
5908cc4c26d4SRob Clark #define A6XX_SP_GS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_GS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)5909cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
5910cc4c26d4SRob Clark {
5911cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_GS_CTRL_REG0_THREADMODE__MASK;
5912cc4c26d4SRob Clark }
59132d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
59142d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)59152d756322SRob Clark static inline uint32_t A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
59162d756322SRob Clark {
59172d756322SRob Clark 	return ((val) << A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
59182d756322SRob Clark }
59192d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
59202d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)59212d756322SRob Clark static inline uint32_t A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
59222d756322SRob Clark {
59232d756322SRob Clark 	return ((val) << A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_GS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
59242d756322SRob Clark }
5925cc4c26d4SRob Clark #define A6XX_SP_GS_CTRL_REG0_UNK13				0x00002000
59262d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
59272d756322SRob Clark #define A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(uint32_t val)59282d756322SRob Clark static inline uint32_t A6XX_SP_GS_CTRL_REG0_BRANCHSTACK(uint32_t val)
59292d756322SRob Clark {
59302d756322SRob Clark 	return ((val) << A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_GS_CTRL_REG0_BRANCHSTACK__MASK;
59312d756322SRob Clark }
59322d756322SRob Clark 
5933c28c82e9SRob Clark #define REG_A6XX_SP_GS_PRIM_SIZE				0x0000a871
5934c28c82e9SRob Clark 
5935c28c82e9SRob Clark #define REG_A6XX_SP_GS_BRANCH_COND				0x0000a872
5936c28c82e9SRob Clark 
5937c28c82e9SRob Clark #define REG_A6XX_SP_GS_PRIMITIVE_CNTL				0x0000a873
5938c28c82e9SRob Clark #define A6XX_SP_GS_PRIMITIVE_CNTL_OUT__MASK			0x0000003f
5939c28c82e9SRob Clark #define A6XX_SP_GS_PRIMITIVE_CNTL_OUT__SHIFT			0
A6XX_SP_GS_PRIMITIVE_CNTL_OUT(uint32_t val)5940c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_PRIMITIVE_CNTL_OUT(uint32_t val)
5941c28c82e9SRob Clark {
5942c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_PRIMITIVE_CNTL_OUT__SHIFT) & A6XX_SP_GS_PRIMITIVE_CNTL_OUT__MASK;
5943c28c82e9SRob Clark }
5944c28c82e9SRob Clark #define A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__MASK		0x00003fc0
5945c28c82e9SRob Clark #define A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT		6
A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)5946c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID(uint32_t val)
5947c28c82e9SRob Clark {
5948c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__SHIFT) & A6XX_SP_GS_PRIMITIVE_CNTL_FLAGS_REGID__MASK;
5949c28c82e9SRob Clark }
5950c28c82e9SRob Clark 
REG_A6XX_SP_GS_OUT(uint32_t i0)5951c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_GS_OUT(uint32_t i0) { return 0x0000a874 + 0x1*i0; }
5952c28c82e9SRob Clark 
REG_A6XX_SP_GS_OUT_REG(uint32_t i0)5953c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_GS_OUT_REG(uint32_t i0) { return 0x0000a874 + 0x1*i0; }
5954c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_A_REGID__MASK			0x000000ff
5955c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_A_REGID__SHIFT			0
A6XX_SP_GS_OUT_REG_A_REGID(uint32_t val)5956c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_OUT_REG_A_REGID(uint32_t val)
5957c28c82e9SRob Clark {
5958c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_OUT_REG_A_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_A_REGID__MASK;
5959c28c82e9SRob Clark }
5960c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK			0x00000f00
5961c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT			8
A6XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)5962c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_OUT_REG_A_COMPMASK(uint32_t val)
5963c28c82e9SRob Clark {
5964c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_OUT_REG_A_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_A_COMPMASK__MASK;
5965c28c82e9SRob Clark }
5966c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_B_REGID__MASK			0x00ff0000
5967c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_B_REGID__SHIFT			16
A6XX_SP_GS_OUT_REG_B_REGID(uint32_t val)5968c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_OUT_REG_B_REGID(uint32_t val)
5969c28c82e9SRob Clark {
5970c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_OUT_REG_B_REGID__SHIFT) & A6XX_SP_GS_OUT_REG_B_REGID__MASK;
5971c28c82e9SRob Clark }
5972c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK			0x0f000000
5973c28c82e9SRob Clark #define A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT			24
A6XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)5974c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_OUT_REG_B_COMPMASK(uint32_t val)
5975c28c82e9SRob Clark {
5976c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_OUT_REG_B_COMPMASK__SHIFT) & A6XX_SP_GS_OUT_REG_B_COMPMASK__MASK;
5977c28c82e9SRob Clark }
5978c28c82e9SRob Clark 
REG_A6XX_SP_GS_VPC_DST(uint32_t i0)5979c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_GS_VPC_DST(uint32_t i0) { return 0x0000a884 + 0x1*i0; }
5980c28c82e9SRob Clark 
REG_A6XX_SP_GS_VPC_DST_REG(uint32_t i0)5981c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_GS_VPC_DST_REG(uint32_t i0) { return 0x0000a884 + 0x1*i0; }
5982c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK			0x000000ff
5983c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT			0
A6XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)5984c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC0(uint32_t val)
5985c28c82e9SRob Clark {
5986c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC0__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC0__MASK;
5987c28c82e9SRob Clark }
5988c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK			0x0000ff00
5989c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT			8
A6XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)5990c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC1(uint32_t val)
5991c28c82e9SRob Clark {
5992c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC1__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC1__MASK;
5993c28c82e9SRob Clark }
5994c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK			0x00ff0000
5995c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT			16
A6XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)5996c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC2(uint32_t val)
5997c28c82e9SRob Clark {
5998c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC2__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC2__MASK;
5999c28c82e9SRob Clark }
6000c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK			0xff000000
6001c28c82e9SRob Clark #define A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT			24
A6XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)6002c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_VPC_DST_REG_OUTLOC3(uint32_t val)
6003c28c82e9SRob Clark {
6004c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_VPC_DST_REG_OUTLOC3__SHIFT) & A6XX_SP_GS_VPC_DST_REG_OUTLOC3__MASK;
6005c28c82e9SRob Clark }
60062d756322SRob Clark 
6007cc4c26d4SRob Clark #define REG_A6XX_SP_GS_OBJ_FIRST_EXEC_OFFSET			0x0000a88c
60082d756322SRob Clark 
6009cc4c26d4SRob Clark #define REG_A6XX_SP_GS_OBJ_START				0x0000a88d
6010cc4c26d4SRob Clark #define A6XX_SP_GS_OBJ_START__MASK				0xffffffff
6011cc4c26d4SRob Clark #define A6XX_SP_GS_OBJ_START__SHIFT				0
A6XX_SP_GS_OBJ_START(uint32_t val)6012cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_OBJ_START(uint32_t val)
6013cc4c26d4SRob Clark {
6014cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_OBJ_START__SHIFT) & A6XX_SP_GS_OBJ_START__MASK;
6015cc4c26d4SRob Clark }
6016cc4c26d4SRob Clark 
6017cc4c26d4SRob Clark #define REG_A6XX_SP_GS_PVT_MEM_PARAM				0x0000a88f
6018cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
6019cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)6020cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
6021cc4c26d4SRob Clark {
6022cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_GS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
6023cc4c26d4SRob Clark }
6024cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
6025cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)6026cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
6027cc4c26d4SRob Clark {
6028cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_GS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
6029cc4c26d4SRob Clark }
6030cc4c26d4SRob Clark 
6031cc4c26d4SRob Clark #define REG_A6XX_SP_GS_PVT_MEM_ADDR				0x0000a890
6032cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_ADDR__MASK				0xffffffff
6033cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_GS_PVT_MEM_ADDR(uint32_t val)6034cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_PVT_MEM_ADDR(uint32_t val)
6035cc4c26d4SRob Clark {
6036cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_GS_PVT_MEM_ADDR__MASK;
6037cc4c26d4SRob Clark }
6038cc4c26d4SRob Clark 
6039cc4c26d4SRob Clark #define REG_A6XX_SP_GS_PVT_MEM_SIZE				0x0000a892
6040cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
6041cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)6042cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
6043cc4c26d4SRob Clark {
6044cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_GS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
6045cc4c26d4SRob Clark }
6046cc4c26d4SRob Clark #define A6XX_SP_GS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
60472d756322SRob Clark 
60482d756322SRob Clark #define REG_A6XX_SP_GS_TEX_COUNT				0x0000a893
60492d756322SRob Clark 
60502d756322SRob Clark #define REG_A6XX_SP_GS_CONFIG					0x0000a894
6051c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_BINDLESS_TEX				0x00000001
6052c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_BINDLESS_SAMP				0x00000002
6053c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_BINDLESS_IBO				0x00000004
6054c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_BINDLESS_UBO				0x00000008
60552d756322SRob Clark #define A6XX_SP_GS_CONFIG_ENABLED				0x00000100
60562d756322SRob Clark #define A6XX_SP_GS_CONFIG_NTEX__MASK				0x0001fe00
60572d756322SRob Clark #define A6XX_SP_GS_CONFIG_NTEX__SHIFT				9
A6XX_SP_GS_CONFIG_NTEX(uint32_t val)60582d756322SRob Clark static inline uint32_t A6XX_SP_GS_CONFIG_NTEX(uint32_t val)
60592d756322SRob Clark {
60602d756322SRob Clark 	return ((val) << A6XX_SP_GS_CONFIG_NTEX__SHIFT) & A6XX_SP_GS_CONFIG_NTEX__MASK;
60612d756322SRob Clark }
6062c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_NSAMP__MASK				0x003e0000
60632d756322SRob Clark #define A6XX_SP_GS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_GS_CONFIG_NSAMP(uint32_t val)60642d756322SRob Clark static inline uint32_t A6XX_SP_GS_CONFIG_NSAMP(uint32_t val)
60652d756322SRob Clark {
60662d756322SRob Clark 	return ((val) << A6XX_SP_GS_CONFIG_NSAMP__SHIFT) & A6XX_SP_GS_CONFIG_NSAMP__MASK;
60672d756322SRob Clark }
6068cc4c26d4SRob Clark #define A6XX_SP_GS_CONFIG_NIBO__MASK				0x1fc00000
6069c28c82e9SRob Clark #define A6XX_SP_GS_CONFIG_NIBO__SHIFT				22
A6XX_SP_GS_CONFIG_NIBO(uint32_t val)6070c28c82e9SRob Clark static inline uint32_t A6XX_SP_GS_CONFIG_NIBO(uint32_t val)
6071c28c82e9SRob Clark {
6072c28c82e9SRob Clark 	return ((val) << A6XX_SP_GS_CONFIG_NIBO__SHIFT) & A6XX_SP_GS_CONFIG_NIBO__MASK;
6073c28c82e9SRob Clark }
60742d756322SRob Clark 
60752d756322SRob Clark #define REG_A6XX_SP_GS_INSTRLEN					0x0000a895
60762d756322SRob Clark 
6077cc4c26d4SRob Clark #define REG_A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET			0x0000a896
607857cfe41cSRob Clark #define A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
607957cfe41cSRob Clark #define A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)608057cfe41cSRob Clark static inline uint32_t A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
6081cc4c26d4SRob Clark {
608257cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_GS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
6083cc4c26d4SRob Clark }
60842d756322SRob Clark 
6085cc4c26d4SRob Clark #define REG_A6XX_SP_VS_TEX_SAMP					0x0000a8a0
6086cc4c26d4SRob Clark #define A6XX_SP_VS_TEX_SAMP__MASK				0xffffffff
6087cc4c26d4SRob Clark #define A6XX_SP_VS_TEX_SAMP__SHIFT				0
A6XX_SP_VS_TEX_SAMP(uint32_t val)6088cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_TEX_SAMP(uint32_t val)
6089cc4c26d4SRob Clark {
6090cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_TEX_SAMP__SHIFT) & A6XX_SP_VS_TEX_SAMP__MASK;
6091cc4c26d4SRob Clark }
60922d756322SRob Clark 
6093cc4c26d4SRob Clark #define REG_A6XX_SP_HS_TEX_SAMP					0x0000a8a2
6094cc4c26d4SRob Clark #define A6XX_SP_HS_TEX_SAMP__MASK				0xffffffff
6095cc4c26d4SRob Clark #define A6XX_SP_HS_TEX_SAMP__SHIFT				0
A6XX_SP_HS_TEX_SAMP(uint32_t val)6096cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_TEX_SAMP(uint32_t val)
6097cc4c26d4SRob Clark {
6098cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_TEX_SAMP__SHIFT) & A6XX_SP_HS_TEX_SAMP__MASK;
6099cc4c26d4SRob Clark }
61002d756322SRob Clark 
6101cc4c26d4SRob Clark #define REG_A6XX_SP_DS_TEX_SAMP					0x0000a8a4
6102cc4c26d4SRob Clark #define A6XX_SP_DS_TEX_SAMP__MASK				0xffffffff
6103cc4c26d4SRob Clark #define A6XX_SP_DS_TEX_SAMP__SHIFT				0
A6XX_SP_DS_TEX_SAMP(uint32_t val)6104cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_TEX_SAMP(uint32_t val)
6105cc4c26d4SRob Clark {
6106cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_TEX_SAMP__SHIFT) & A6XX_SP_DS_TEX_SAMP__MASK;
6107cc4c26d4SRob Clark }
61082d756322SRob Clark 
6109cc4c26d4SRob Clark #define REG_A6XX_SP_GS_TEX_SAMP					0x0000a8a6
6110cc4c26d4SRob Clark #define A6XX_SP_GS_TEX_SAMP__MASK				0xffffffff
6111cc4c26d4SRob Clark #define A6XX_SP_GS_TEX_SAMP__SHIFT				0
A6XX_SP_GS_TEX_SAMP(uint32_t val)6112cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_TEX_SAMP(uint32_t val)
6113cc4c26d4SRob Clark {
6114cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_TEX_SAMP__SHIFT) & A6XX_SP_GS_TEX_SAMP__MASK;
6115cc4c26d4SRob Clark }
61162d756322SRob Clark 
6117cc4c26d4SRob Clark #define REG_A6XX_SP_VS_TEX_CONST				0x0000a8a8
6118cc4c26d4SRob Clark #define A6XX_SP_VS_TEX_CONST__MASK				0xffffffff
6119cc4c26d4SRob Clark #define A6XX_SP_VS_TEX_CONST__SHIFT				0
A6XX_SP_VS_TEX_CONST(uint32_t val)6120cc4c26d4SRob Clark static inline uint32_t A6XX_SP_VS_TEX_CONST(uint32_t val)
6121cc4c26d4SRob Clark {
6122cc4c26d4SRob Clark 	return ((val) << A6XX_SP_VS_TEX_CONST__SHIFT) & A6XX_SP_VS_TEX_CONST__MASK;
6123cc4c26d4SRob Clark }
61242d756322SRob Clark 
6125cc4c26d4SRob Clark #define REG_A6XX_SP_HS_TEX_CONST				0x0000a8aa
6126cc4c26d4SRob Clark #define A6XX_SP_HS_TEX_CONST__MASK				0xffffffff
6127cc4c26d4SRob Clark #define A6XX_SP_HS_TEX_CONST__SHIFT				0
A6XX_SP_HS_TEX_CONST(uint32_t val)6128cc4c26d4SRob Clark static inline uint32_t A6XX_SP_HS_TEX_CONST(uint32_t val)
6129cc4c26d4SRob Clark {
6130cc4c26d4SRob Clark 	return ((val) << A6XX_SP_HS_TEX_CONST__SHIFT) & A6XX_SP_HS_TEX_CONST__MASK;
6131cc4c26d4SRob Clark }
61322d756322SRob Clark 
6133cc4c26d4SRob Clark #define REG_A6XX_SP_DS_TEX_CONST				0x0000a8ac
6134cc4c26d4SRob Clark #define A6XX_SP_DS_TEX_CONST__MASK				0xffffffff
6135cc4c26d4SRob Clark #define A6XX_SP_DS_TEX_CONST__SHIFT				0
A6XX_SP_DS_TEX_CONST(uint32_t val)6136cc4c26d4SRob Clark static inline uint32_t A6XX_SP_DS_TEX_CONST(uint32_t val)
6137cc4c26d4SRob Clark {
6138cc4c26d4SRob Clark 	return ((val) << A6XX_SP_DS_TEX_CONST__SHIFT) & A6XX_SP_DS_TEX_CONST__MASK;
6139cc4c26d4SRob Clark }
61402d756322SRob Clark 
6141cc4c26d4SRob Clark #define REG_A6XX_SP_GS_TEX_CONST				0x0000a8ae
6142cc4c26d4SRob Clark #define A6XX_SP_GS_TEX_CONST__MASK				0xffffffff
6143cc4c26d4SRob Clark #define A6XX_SP_GS_TEX_CONST__SHIFT				0
A6XX_SP_GS_TEX_CONST(uint32_t val)6144cc4c26d4SRob Clark static inline uint32_t A6XX_SP_GS_TEX_CONST(uint32_t val)
6145cc4c26d4SRob Clark {
6146cc4c26d4SRob Clark 	return ((val) << A6XX_SP_GS_TEX_CONST__SHIFT) & A6XX_SP_GS_TEX_CONST__MASK;
6147cc4c26d4SRob Clark }
61482d756322SRob Clark 
61492d756322SRob Clark #define REG_A6XX_SP_FS_CTRL_REG0				0x0000a980
6150cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK			0x00100000
6151cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a6xx_threadsize val)6152cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_CTRL_REG0_THREADSIZE(enum a6xx_threadsize val)
6153cc4c26d4SRob Clark {
6154cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_FS_CTRL_REG0_THREADSIZE__MASK;
6155cc4c26d4SRob Clark }
6156cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_UNK21				0x00200000
6157cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_VARYING				0x00400000
6158cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_DIFF_FINE				0x00800000
6159cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_UNK24				0x01000000
6160cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_UNK25				0x02000000
6161cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_PIXLODENABLE			0x04000000
6162f73343faSRob Clark #define A6XX_SP_FS_CTRL_REG0_UNK27				0x08000000
6163f73343faSRob Clark #define A6XX_SP_FS_CTRL_REG0_EARLYPREAMBLE			0x10000000
6164cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_MERGEDREGS				0x80000000
6165cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_THREADMODE__MASK			0x00000001
6166cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)6167cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
6168cc4c26d4SRob Clark {
6169cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_FS_CTRL_REG0_THREADMODE__MASK;
6170cc4c26d4SRob Clark }
61712d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
61722d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)61732d756322SRob Clark static inline uint32_t A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
61742d756322SRob Clark {
61752d756322SRob Clark 	return ((val) << A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
61762d756322SRob Clark }
61772d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
61782d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)61792d756322SRob Clark static inline uint32_t A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
61802d756322SRob Clark {
61812d756322SRob Clark 	return ((val) << A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_FS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
61822d756322SRob Clark }
6183cc4c26d4SRob Clark #define A6XX_SP_FS_CTRL_REG0_UNK13				0x00002000
61842d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
61852d756322SRob Clark #define A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)61862d756322SRob Clark static inline uint32_t A6XX_SP_FS_CTRL_REG0_BRANCHSTACK(uint32_t val)
61872d756322SRob Clark {
61882d756322SRob Clark 	return ((val) << A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_FS_CTRL_REG0_BRANCHSTACK__MASK;
61892d756322SRob Clark }
61902d756322SRob Clark 
6191c28c82e9SRob Clark #define REG_A6XX_SP_FS_BRANCH_COND				0x0000a981
6192c28c82e9SRob Clark 
6193cc4c26d4SRob Clark #define REG_A6XX_SP_FS_OBJ_FIRST_EXEC_OFFSET			0x0000a982
6194a69c5ed2SRob Clark 
6195cc4c26d4SRob Clark #define REG_A6XX_SP_FS_OBJ_START				0x0000a983
6196cc4c26d4SRob Clark #define A6XX_SP_FS_OBJ_START__MASK				0xffffffff
6197cc4c26d4SRob Clark #define A6XX_SP_FS_OBJ_START__SHIFT				0
A6XX_SP_FS_OBJ_START(uint32_t val)6198cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_OBJ_START(uint32_t val)
6199cc4c26d4SRob Clark {
6200cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_OBJ_START__SHIFT) & A6XX_SP_FS_OBJ_START__MASK;
6201cc4c26d4SRob Clark }
62022d756322SRob Clark 
6203cc4c26d4SRob Clark #define REG_A6XX_SP_FS_PVT_MEM_PARAM				0x0000a985
6204cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
6205cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)6206cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
6207cc4c26d4SRob Clark {
6208cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_FS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
6209cc4c26d4SRob Clark }
6210cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
6211cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)6212cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
6213cc4c26d4SRob Clark {
6214cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_FS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
6215cc4c26d4SRob Clark }
6216cc4c26d4SRob Clark 
6217cc4c26d4SRob Clark #define REG_A6XX_SP_FS_PVT_MEM_ADDR				0x0000a986
6218cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_ADDR__MASK				0xffffffff
6219cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_FS_PVT_MEM_ADDR(uint32_t val)6220cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_PVT_MEM_ADDR(uint32_t val)
6221cc4c26d4SRob Clark {
6222cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_FS_PVT_MEM_ADDR__MASK;
6223cc4c26d4SRob Clark }
6224cc4c26d4SRob Clark 
6225cc4c26d4SRob Clark #define REG_A6XX_SP_FS_PVT_MEM_SIZE				0x0000a988
6226cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
6227cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)6228cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
6229cc4c26d4SRob Clark {
6230cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_FS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
6231cc4c26d4SRob Clark }
6232cc4c26d4SRob Clark #define A6XX_SP_FS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
62332d756322SRob Clark 
62342d756322SRob Clark #define REG_A6XX_SP_BLEND_CNTL					0x0000a989
6235cc4c26d4SRob Clark #define A6XX_SP_BLEND_CNTL_ENABLE_BLEND__MASK			0x000000ff
6236cc4c26d4SRob Clark #define A6XX_SP_BLEND_CNTL_ENABLE_BLEND__SHIFT			0
A6XX_SP_BLEND_CNTL_ENABLE_BLEND(uint32_t val)6237cc4c26d4SRob Clark static inline uint32_t A6XX_SP_BLEND_CNTL_ENABLE_BLEND(uint32_t val)
6238cc4c26d4SRob Clark {
6239cc4c26d4SRob Clark 	return ((val) << A6XX_SP_BLEND_CNTL_ENABLE_BLEND__SHIFT) & A6XX_SP_BLEND_CNTL_ENABLE_BLEND__MASK;
6240cc4c26d4SRob Clark }
62412d756322SRob Clark #define A6XX_SP_BLEND_CNTL_UNK8					0x00000100
6242c28c82e9SRob Clark #define A6XX_SP_BLEND_CNTL_DUAL_COLOR_IN_ENABLE			0x00000200
6243ccdf7e28SRob Clark #define A6XX_SP_BLEND_CNTL_ALPHA_TO_COVERAGE			0x00000400
62442d756322SRob Clark 
62452d756322SRob Clark #define REG_A6XX_SP_SRGB_CNTL					0x0000a98a
62462d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT0				0x00000001
62472d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT1				0x00000002
62482d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT2				0x00000004
62492d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT3				0x00000008
62502d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT4				0x00000010
62512d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT5				0x00000020
62522d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT6				0x00000040
62532d756322SRob Clark #define A6XX_SP_SRGB_CNTL_SRGB_MRT7				0x00000080
62542d756322SRob Clark 
62552d756322SRob Clark #define REG_A6XX_SP_FS_RENDER_COMPONENTS			0x0000a98b
62562d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK			0x0000000f
62572d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT			0
A6XX_SP_FS_RENDER_COMPONENTS_RT0(uint32_t val)62582d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT0(uint32_t val)
62592d756322SRob Clark {
62602d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT0__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT0__MASK;
62612d756322SRob Clark }
62622d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK			0x000000f0
62632d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT			4
A6XX_SP_FS_RENDER_COMPONENTS_RT1(uint32_t val)62642d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT1(uint32_t val)
62652d756322SRob Clark {
62662d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT1__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT1__MASK;
62672d756322SRob Clark }
62682d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK			0x00000f00
62692d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT			8
A6XX_SP_FS_RENDER_COMPONENTS_RT2(uint32_t val)62702d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT2(uint32_t val)
62712d756322SRob Clark {
62722d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT2__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT2__MASK;
62732d756322SRob Clark }
62742d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK			0x0000f000
62752d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT			12
A6XX_SP_FS_RENDER_COMPONENTS_RT3(uint32_t val)62762d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT3(uint32_t val)
62772d756322SRob Clark {
62782d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT3__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT3__MASK;
62792d756322SRob Clark }
62802d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK			0x000f0000
62812d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT			16
A6XX_SP_FS_RENDER_COMPONENTS_RT4(uint32_t val)62822d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT4(uint32_t val)
62832d756322SRob Clark {
62842d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT4__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT4__MASK;
62852d756322SRob Clark }
62862d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK			0x00f00000
62872d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT			20
A6XX_SP_FS_RENDER_COMPONENTS_RT5(uint32_t val)62882d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT5(uint32_t val)
62892d756322SRob Clark {
62902d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT5__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT5__MASK;
62912d756322SRob Clark }
62922d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK			0x0f000000
62932d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT			24
A6XX_SP_FS_RENDER_COMPONENTS_RT6(uint32_t val)62942d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT6(uint32_t val)
62952d756322SRob Clark {
62962d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT6__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT6__MASK;
62972d756322SRob Clark }
62982d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK			0xf0000000
62992d756322SRob Clark #define A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT			28
A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val)63002d756322SRob Clark static inline uint32_t A6XX_SP_FS_RENDER_COMPONENTS_RT7(uint32_t val)
63012d756322SRob Clark {
63022d756322SRob Clark 	return ((val) << A6XX_SP_FS_RENDER_COMPONENTS_RT7__SHIFT) & A6XX_SP_FS_RENDER_COMPONENTS_RT7__MASK;
63032d756322SRob Clark }
63042d756322SRob Clark 
63052d756322SRob Clark #define REG_A6XX_SP_FS_OUTPUT_CNTL0				0x0000a98c
6306c28c82e9SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_DUAL_COLOR_IN_ENABLE		0x00000001
63072d756322SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK		0x0000ff00
63082d756322SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT		8
A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID(uint32_t val)63092d756322SRob Clark static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID(uint32_t val)
63102d756322SRob Clark {
63112d756322SRob Clark 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_DEPTH_REGID__MASK;
63122d756322SRob Clark }
6313c28c82e9SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK		0x00ff0000
6314c28c82e9SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT		16
A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID(uint32_t val)6315c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID(uint32_t val)
6316c28c82e9SRob Clark {
6317c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_SAMPMASK_REGID__MASK;
6318c28c82e9SRob Clark }
6319c28c82e9SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__MASK		0xff000000
6320c28c82e9SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__SHIFT		24
A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID(uint32_t val)6321c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID(uint32_t val)
6322c28c82e9SRob Clark {
6323c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL0_STENCILREF_REGID__MASK;
6324c28c82e9SRob Clark }
63252d756322SRob Clark 
63262d756322SRob Clark #define REG_A6XX_SP_FS_OUTPUT_CNTL1				0x0000a98d
63272d756322SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK			0x0000000f
63282d756322SRob Clark #define A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT			0
A6XX_SP_FS_OUTPUT_CNTL1_MRT(uint32_t val)63292d756322SRob Clark static inline uint32_t A6XX_SP_FS_OUTPUT_CNTL1_MRT(uint32_t val)
63302d756322SRob Clark {
63312d756322SRob Clark 	return ((val) << A6XX_SP_FS_OUTPUT_CNTL1_MRT__SHIFT) & A6XX_SP_FS_OUTPUT_CNTL1_MRT__MASK;
63322d756322SRob Clark }
63332d756322SRob Clark 
REG_A6XX_SP_FS_OUTPUT(uint32_t i0)6334cc4c26d4SRob Clark static inline uint32_t REG_A6XX_SP_FS_OUTPUT(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
6335cc4c26d4SRob Clark 
REG_A6XX_SP_FS_OUTPUT_REG(uint32_t i0)6336cc4c26d4SRob Clark static inline uint32_t REG_A6XX_SP_FS_OUTPUT_REG(uint32_t i0) { return 0x0000a98e + 0x1*i0; }
6337cc4c26d4SRob Clark #define A6XX_SP_FS_OUTPUT_REG_REGID__MASK			0x000000ff
6338cc4c26d4SRob Clark #define A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT			0
A6XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)6339cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_OUTPUT_REG_REGID(uint32_t val)
6340cc4c26d4SRob Clark {
6341cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_OUTPUT_REG_REGID__SHIFT) & A6XX_SP_FS_OUTPUT_REG_REGID__MASK;
6342cc4c26d4SRob Clark }
6343cc4c26d4SRob Clark #define A6XX_SP_FS_OUTPUT_REG_HALF_PRECISION			0x00000100
6344cc4c26d4SRob Clark 
REG_A6XX_SP_FS_MRT(uint32_t i0)63452d756322SRob Clark static inline uint32_t REG_A6XX_SP_FS_MRT(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
63462d756322SRob Clark 
REG_A6XX_SP_FS_MRT_REG(uint32_t i0)63472d756322SRob Clark static inline uint32_t REG_A6XX_SP_FS_MRT_REG(uint32_t i0) { return 0x0000a996 + 0x1*i0; }
63482d756322SRob Clark #define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK			0x000000ff
63492d756322SRob Clark #define A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT			0
A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_format val)6350c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_MRT_REG_COLOR_FORMAT(enum a6xx_format val)
63512d756322SRob Clark {
63522d756322SRob Clark 	return ((val) << A6XX_SP_FS_MRT_REG_COLOR_FORMAT__SHIFT) & A6XX_SP_FS_MRT_REG_COLOR_FORMAT__MASK;
63532d756322SRob Clark }
63542d756322SRob Clark #define A6XX_SP_FS_MRT_REG_COLOR_SINT				0x00000100
63552d756322SRob Clark #define A6XX_SP_FS_MRT_REG_COLOR_UINT				0x00000200
6356cc4c26d4SRob Clark #define A6XX_SP_FS_MRT_REG_UNK10				0x00000400
6357a69c5ed2SRob Clark 
6358c28c82e9SRob Clark #define REG_A6XX_SP_FS_PREFETCH_CNTL				0x0000a99e
6359c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK			0x00000007
6360c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT			0
A6XX_SP_FS_PREFETCH_CNTL_COUNT(uint32_t val)6361c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_COUNT(uint32_t val)
6362c28c82e9SRob Clark {
6363c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CNTL_COUNT__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_COUNT__MASK;
6364c28c82e9SRob Clark }
6365f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_IJ_WRITE_DISABLE		0x00000008
6366f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_UNK4				0x00000010
6367f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_WRITE_COLOR_TO_OUTPUT		0x00000020
6368f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_UNK6__MASK			0x00007fc0
6369f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CNTL_UNK6__SHIFT			6
A6XX_SP_FS_PREFETCH_CNTL_UNK6(uint32_t val)6370f73343faSRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CNTL_UNK6(uint32_t val)
6371c28c82e9SRob Clark {
6372f73343faSRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CNTL_UNK6__SHIFT) & A6XX_SP_FS_PREFETCH_CNTL_UNK6__MASK;
6373cc4c26d4SRob Clark }
6374c28c82e9SRob Clark 
REG_A6XX_SP_FS_PREFETCH(uint32_t i0)6375c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_FS_PREFETCH(uint32_t i0) { return 0x0000a99f + 0x1*i0; }
6376c28c82e9SRob Clark 
REG_A6XX_SP_FS_PREFETCH_CMD(uint32_t i0)6377c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_FS_PREFETCH_CMD(uint32_t i0) { return 0x0000a99f + 0x1*i0; }
6378c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_SRC__MASK			0x0000007f
6379c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT			0
A6XX_SP_FS_PREFETCH_CMD_SRC(uint32_t val)6380c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SRC(uint32_t val)
6381c28c82e9SRob Clark {
6382c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_SRC__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SRC__MASK;
6383c28c82e9SRob Clark }
6384c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK			0x00000780
6385c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT			7
A6XX_SP_FS_PREFETCH_CMD_SAMP_ID(uint32_t val)6386c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_SAMP_ID(uint32_t val)
6387c28c82e9SRob Clark {
6388c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_SAMP_ID__MASK;
6389c28c82e9SRob Clark }
6390c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK			0x0000f800
6391c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT			11
A6XX_SP_FS_PREFETCH_CMD_TEX_ID(uint32_t val)6392c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_TEX_ID(uint32_t val)
6393c28c82e9SRob Clark {
6394c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_TEX_ID__MASK;
6395c28c82e9SRob Clark }
6396c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_DST__MASK			0x003f0000
6397c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT			16
A6XX_SP_FS_PREFETCH_CMD_DST(uint32_t val)6398c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_DST(uint32_t val)
6399c28c82e9SRob Clark {
6400c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_DST__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_DST__MASK;
6401c28c82e9SRob Clark }
6402c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK			0x03c00000
6403c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT			22
A6XX_SP_FS_PREFETCH_CMD_WRMASK(uint32_t val)6404c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_WRMASK(uint32_t val)
6405c28c82e9SRob Clark {
6406c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_WRMASK__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_WRMASK__MASK;
6407c28c82e9SRob Clark }
6408c28c82e9SRob Clark #define A6XX_SP_FS_PREFETCH_CMD_HALF				0x04000000
6409f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CMD_UNK27				0x08000000
6410f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CMD_BINDLESS			0x10000000
6411f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CMD_CMD__MASK			0xe0000000
6412f73343faSRob Clark #define A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT			29
A6XX_SP_FS_PREFETCH_CMD_CMD(enum a6xx_tex_prefetch_cmd val)6413f73343faSRob Clark static inline uint32_t A6XX_SP_FS_PREFETCH_CMD_CMD(enum a6xx_tex_prefetch_cmd val)
6414c28c82e9SRob Clark {
6415c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_PREFETCH_CMD_CMD__SHIFT) & A6XX_SP_FS_PREFETCH_CMD_CMD__MASK;
6416c28c82e9SRob Clark }
6417c28c82e9SRob Clark 
REG_A6XX_SP_FS_BINDLESS_PREFETCH(uint32_t i0)6418c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; }
6419c28c82e9SRob Clark 
REG_A6XX_SP_FS_BINDLESS_PREFETCH_CMD(uint32_t i0)6420c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_FS_BINDLESS_PREFETCH_CMD(uint32_t i0) { return 0x0000a9a3 + 0x1*i0; }
6421cc4c26d4SRob Clark #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK		0x0000ffff
6422c28c82e9SRob Clark #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT		0
A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID(uint32_t val)6423c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID(uint32_t val)
6424c28c82e9SRob Clark {
6425c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_SAMP_ID__MASK;
6426c28c82e9SRob Clark }
6427cc4c26d4SRob Clark #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK		0xffff0000
6428c28c82e9SRob Clark #define A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT		16
A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID(uint32_t val)6429c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID(uint32_t val)
6430c28c82e9SRob Clark {
6431c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__SHIFT) & A6XX_SP_FS_BINDLESS_PREFETCH_CMD_TEX_ID__MASK;
6432c28c82e9SRob Clark }
64332d756322SRob Clark 
64342d756322SRob Clark #define REG_A6XX_SP_FS_TEX_COUNT				0x0000a9a7
64352d756322SRob Clark 
64362d756322SRob Clark #define REG_A6XX_SP_UNKNOWN_A9A8				0x0000a9a8
64372d756322SRob Clark 
6438cc4c26d4SRob Clark #define REG_A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET			0x0000a9a9
643957cfe41cSRob Clark #define A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
644057cfe41cSRob Clark #define A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)644157cfe41cSRob Clark static inline uint32_t A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
6442c28c82e9SRob Clark {
644357cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_FS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
6444c28c82e9SRob Clark }
6445c28c82e9SRob Clark 
64462d756322SRob Clark #define REG_A6XX_SP_CS_CTRL_REG0				0x0000a9b0
6447cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK			0x00100000
6448cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT			20
A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a6xx_threadsize val)6449cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_CTRL_REG0_THREADSIZE(enum a6xx_threadsize val)
6450cc4c26d4SRob Clark {
6451cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_CTRL_REG0_THREADSIZE__SHIFT) & A6XX_SP_CS_CTRL_REG0_THREADSIZE__MASK;
6452cc4c26d4SRob Clark }
6453cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_UNK21				0x00200000
6454cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_UNK22				0x00400000
6455f73343faSRob Clark #define A6XX_SP_CS_CTRL_REG0_EARLYPREAMBLE			0x00800000
6456cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_MERGEDREGS				0x80000000
6457cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_THREADMODE__MASK			0x00000001
6458cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_THREADMODE__SHIFT			0
A6XX_SP_CS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)6459cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_CTRL_REG0_THREADMODE(enum a3xx_threadmode val)
6460cc4c26d4SRob Clark {
6461cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_CTRL_REG0_THREADMODE__SHIFT) & A6XX_SP_CS_CTRL_REG0_THREADMODE__MASK;
6462cc4c26d4SRob Clark }
64632d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK		0x0000007e
64642d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT		1
A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)64652d756322SRob Clark static inline uint32_t A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT(uint32_t val)
64662d756322SRob Clark {
64672d756322SRob Clark 	return ((val) << A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_HALFREGFOOTPRINT__MASK;
64682d756322SRob Clark }
64692d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK		0x00001f80
64702d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT		7
A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)64712d756322SRob Clark static inline uint32_t A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT(uint32_t val)
64722d756322SRob Clark {
64732d756322SRob Clark 	return ((val) << A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__SHIFT) & A6XX_SP_CS_CTRL_REG0_FULLREGFOOTPRINT__MASK;
64742d756322SRob Clark }
6475cc4c26d4SRob Clark #define A6XX_SP_CS_CTRL_REG0_UNK13				0x00002000
64762d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK			0x000fc000
64772d756322SRob Clark #define A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT			14
A6XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)64782d756322SRob Clark static inline uint32_t A6XX_SP_CS_CTRL_REG0_BRANCHSTACK(uint32_t val)
64792d756322SRob Clark {
64802d756322SRob Clark 	return ((val) << A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__SHIFT) & A6XX_SP_CS_CTRL_REG0_BRANCHSTACK__MASK;
64812d756322SRob Clark }
6482cc4c26d4SRob Clark 
6483cc4c26d4SRob Clark #define REG_A6XX_SP_CS_UNKNOWN_A9B1				0x0000a9b1
6484cc4c26d4SRob Clark #define A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE__MASK		0x0000001f
6485cc4c26d4SRob Clark #define A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE__SHIFT		0
A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE(uint32_t val)6486cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE(uint32_t val)
64872d756322SRob Clark {
6488cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE__SHIFT) & A6XX_SP_CS_UNKNOWN_A9B1_SHARED_SIZE__MASK;
64892d756322SRob Clark }
6490cc4c26d4SRob Clark #define A6XX_SP_CS_UNKNOWN_A9B1_UNK5				0x00000020
6491cc4c26d4SRob Clark #define A6XX_SP_CS_UNKNOWN_A9B1_UNK6				0x00000040
64922d756322SRob Clark 
6493cc4c26d4SRob Clark #define REG_A6XX_SP_CS_BRANCH_COND				0x0000a9b2
64942d756322SRob Clark 
6495cc4c26d4SRob Clark #define REG_A6XX_SP_CS_OBJ_FIRST_EXEC_OFFSET			0x0000a9b3
6496cc4c26d4SRob Clark 
6497cc4c26d4SRob Clark #define REG_A6XX_SP_CS_OBJ_START				0x0000a9b4
6498cc4c26d4SRob Clark #define A6XX_SP_CS_OBJ_START__MASK				0xffffffff
6499cc4c26d4SRob Clark #define A6XX_SP_CS_OBJ_START__SHIFT				0
A6XX_SP_CS_OBJ_START(uint32_t val)6500cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_OBJ_START(uint32_t val)
6501cc4c26d4SRob Clark {
6502cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_OBJ_START__SHIFT) & A6XX_SP_CS_OBJ_START__MASK;
6503cc4c26d4SRob Clark }
6504cc4c26d4SRob Clark 
6505cc4c26d4SRob Clark #define REG_A6XX_SP_CS_PVT_MEM_PARAM				0x0000a9b6
6506cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK		0x000000ff
6507cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT		0
A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)6508cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM(uint32_t val)
6509cc4c26d4SRob Clark {
6510cc4c26d4SRob Clark 	return ((val >> 9) << A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM__SHIFT) & A6XX_SP_CS_PVT_MEM_PARAM_MEMSIZEPERITEM__MASK;
6511cc4c26d4SRob Clark }
6512cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK	0xff000000
6513cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT	24
A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)6514cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD(uint32_t val)
6515cc4c26d4SRob Clark {
6516cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__SHIFT) & A6XX_SP_CS_PVT_MEM_PARAM_HWSTACKSIZEPERTHREAD__MASK;
6517cc4c26d4SRob Clark }
6518cc4c26d4SRob Clark 
6519cc4c26d4SRob Clark #define REG_A6XX_SP_CS_PVT_MEM_ADDR				0x0000a9b7
6520cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_ADDR__MASK				0xffffffff
6521cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_ADDR__SHIFT				0
A6XX_SP_CS_PVT_MEM_ADDR(uint32_t val)6522cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_PVT_MEM_ADDR(uint32_t val)
6523cc4c26d4SRob Clark {
6524cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_PVT_MEM_ADDR__SHIFT) & A6XX_SP_CS_PVT_MEM_ADDR__MASK;
6525cc4c26d4SRob Clark }
6526cc4c26d4SRob Clark 
6527cc4c26d4SRob Clark #define REG_A6XX_SP_CS_PVT_MEM_SIZE				0x0000a9b9
6528cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK		0x0003ffff
6529cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT		0
A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)6530cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE(uint32_t val)
6531cc4c26d4SRob Clark {
6532cc4c26d4SRob Clark 	return ((val >> 12) << A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__SHIFT) & A6XX_SP_CS_PVT_MEM_SIZE_TOTALPVTMEMSIZE__MASK;
6533cc4c26d4SRob Clark }
6534cc4c26d4SRob Clark #define A6XX_SP_CS_PVT_MEM_SIZE_PERWAVEMEMLAYOUT		0x80000000
6535cc4c26d4SRob Clark 
6536cc4c26d4SRob Clark #define REG_A6XX_SP_CS_TEX_COUNT				0x0000a9ba
65372d756322SRob Clark 
6538c28c82e9SRob Clark #define REG_A6XX_SP_CS_CONFIG					0x0000a9bb
6539c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_BINDLESS_TEX				0x00000001
6540c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_BINDLESS_SAMP				0x00000002
6541c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_BINDLESS_IBO				0x00000004
6542c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_BINDLESS_UBO				0x00000008
6543c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_ENABLED				0x00000100
6544c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_NTEX__MASK				0x0001fe00
6545c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_NTEX__SHIFT				9
A6XX_SP_CS_CONFIG_NTEX(uint32_t val)6546c28c82e9SRob Clark static inline uint32_t A6XX_SP_CS_CONFIG_NTEX(uint32_t val)
6547c28c82e9SRob Clark {
6548c28c82e9SRob Clark 	return ((val) << A6XX_SP_CS_CONFIG_NTEX__SHIFT) & A6XX_SP_CS_CONFIG_NTEX__MASK;
6549c28c82e9SRob Clark }
6550c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_NSAMP__MASK				0x003e0000
6551c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_CS_CONFIG_NSAMP(uint32_t val)6552c28c82e9SRob Clark static inline uint32_t A6XX_SP_CS_CONFIG_NSAMP(uint32_t val)
6553c28c82e9SRob Clark {
6554c28c82e9SRob Clark 	return ((val) << A6XX_SP_CS_CONFIG_NSAMP__SHIFT) & A6XX_SP_CS_CONFIG_NSAMP__MASK;
6555c28c82e9SRob Clark }
6556cc4c26d4SRob Clark #define A6XX_SP_CS_CONFIG_NIBO__MASK				0x1fc00000
6557c28c82e9SRob Clark #define A6XX_SP_CS_CONFIG_NIBO__SHIFT				22
A6XX_SP_CS_CONFIG_NIBO(uint32_t val)6558c28c82e9SRob Clark static inline uint32_t A6XX_SP_CS_CONFIG_NIBO(uint32_t val)
6559c28c82e9SRob Clark {
6560c28c82e9SRob Clark 	return ((val) << A6XX_SP_CS_CONFIG_NIBO__SHIFT) & A6XX_SP_CS_CONFIG_NIBO__MASK;
6561c28c82e9SRob Clark }
6562c28c82e9SRob Clark 
65632d756322SRob Clark #define REG_A6XX_SP_CS_INSTRLEN					0x0000a9bc
65642d756322SRob Clark 
6565cc4c26d4SRob Clark #define REG_A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET			0x0000a9bd
656657cfe41cSRob Clark #define A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK		0x0007ffff
656757cfe41cSRob Clark #define A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT	0
A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)656857cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET(uint32_t val)
6569cc4c26d4SRob Clark {
657057cfe41cSRob Clark 	return ((val >> 11) << A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET__SHIFT) & A6XX_SP_CS_PVT_MEM_HW_STACK_OFFSET_OFFSET__MASK;
6571cc4c26d4SRob Clark }
6572c28c82e9SRob Clark 
657357cfe41cSRob Clark #define REG_A6XX_SP_CS_CNTL_0					0x0000a9c2
657457cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGIDCONSTID__MASK			0x000000ff
657557cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGIDCONSTID__SHIFT			0
A6XX_SP_CS_CNTL_0_WGIDCONSTID(uint32_t val)657657cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_0_WGIDCONSTID(uint32_t val)
657757cfe41cSRob Clark {
657857cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_0_WGIDCONSTID__SHIFT) & A6XX_SP_CS_CNTL_0_WGIDCONSTID__MASK;
657957cfe41cSRob Clark }
658057cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGSIZECONSTID__MASK			0x0000ff00
658157cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGSIZECONSTID__SHIFT			8
A6XX_SP_CS_CNTL_0_WGSIZECONSTID(uint32_t val)658257cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_0_WGSIZECONSTID(uint32_t val)
658357cfe41cSRob Clark {
658457cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_0_WGSIZECONSTID__SHIFT) & A6XX_SP_CS_CNTL_0_WGSIZECONSTID__MASK;
658557cfe41cSRob Clark }
658657cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID__MASK			0x00ff0000
658757cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID__SHIFT		16
A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID(uint32_t val)658857cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID(uint32_t val)
658957cfe41cSRob Clark {
659057cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID__SHIFT) & A6XX_SP_CS_CNTL_0_WGOFFSETCONSTID__MASK;
659157cfe41cSRob Clark }
659257cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_LOCALIDREGID__MASK			0xff000000
659357cfe41cSRob Clark #define A6XX_SP_CS_CNTL_0_LOCALIDREGID__SHIFT			24
A6XX_SP_CS_CNTL_0_LOCALIDREGID(uint32_t val)659457cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_0_LOCALIDREGID(uint32_t val)
659557cfe41cSRob Clark {
659657cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_0_LOCALIDREGID__SHIFT) & A6XX_SP_CS_CNTL_0_LOCALIDREGID__MASK;
659757cfe41cSRob Clark }
659857cfe41cSRob Clark 
659957cfe41cSRob Clark #define REG_A6XX_SP_CS_CNTL_1					0x0000a9c3
660057cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID__MASK		0x000000ff
660157cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID__SHIFT		0
A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID(uint32_t val)660257cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID(uint32_t val)
660357cfe41cSRob Clark {
660457cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID__SHIFT) & A6XX_SP_CS_CNTL_1_LINEARLOCALIDREGID__MASK;
660557cfe41cSRob Clark }
660657cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_SINGLE_SP_CORE			0x00000100
660757cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_THREADSIZE__MASK			0x00000200
660857cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_THREADSIZE__SHIFT			9
A6XX_SP_CS_CNTL_1_THREADSIZE(enum a6xx_threadsize val)660957cfe41cSRob Clark static inline uint32_t A6XX_SP_CS_CNTL_1_THREADSIZE(enum a6xx_threadsize val)
661057cfe41cSRob Clark {
661157cfe41cSRob Clark 	return ((val) << A6XX_SP_CS_CNTL_1_THREADSIZE__SHIFT) & A6XX_SP_CS_CNTL_1_THREADSIZE__MASK;
661257cfe41cSRob Clark }
661357cfe41cSRob Clark #define A6XX_SP_CS_CNTL_1_THREADSIZE_SCALAR			0x00000400
661457cfe41cSRob Clark 
6615cc4c26d4SRob Clark #define REG_A6XX_SP_FS_TEX_SAMP					0x0000a9e0
6616cc4c26d4SRob Clark #define A6XX_SP_FS_TEX_SAMP__MASK				0xffffffff
6617cc4c26d4SRob Clark #define A6XX_SP_FS_TEX_SAMP__SHIFT				0
A6XX_SP_FS_TEX_SAMP(uint32_t val)6618cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_TEX_SAMP(uint32_t val)
6619cc4c26d4SRob Clark {
6620cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_TEX_SAMP__SHIFT) & A6XX_SP_FS_TEX_SAMP__MASK;
6621cc4c26d4SRob Clark }
6622cc4c26d4SRob Clark 
6623cc4c26d4SRob Clark #define REG_A6XX_SP_CS_TEX_SAMP					0x0000a9e2
6624cc4c26d4SRob Clark #define A6XX_SP_CS_TEX_SAMP__MASK				0xffffffff
6625cc4c26d4SRob Clark #define A6XX_SP_CS_TEX_SAMP__SHIFT				0
A6XX_SP_CS_TEX_SAMP(uint32_t val)6626cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_TEX_SAMP(uint32_t val)
6627cc4c26d4SRob Clark {
6628cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_TEX_SAMP__SHIFT) & A6XX_SP_CS_TEX_SAMP__MASK;
6629cc4c26d4SRob Clark }
6630cc4c26d4SRob Clark 
6631cc4c26d4SRob Clark #define REG_A6XX_SP_FS_TEX_CONST				0x0000a9e4
6632cc4c26d4SRob Clark #define A6XX_SP_FS_TEX_CONST__MASK				0xffffffff
6633cc4c26d4SRob Clark #define A6XX_SP_FS_TEX_CONST__SHIFT				0
A6XX_SP_FS_TEX_CONST(uint32_t val)6634cc4c26d4SRob Clark static inline uint32_t A6XX_SP_FS_TEX_CONST(uint32_t val)
6635cc4c26d4SRob Clark {
6636cc4c26d4SRob Clark 	return ((val) << A6XX_SP_FS_TEX_CONST__SHIFT) & A6XX_SP_FS_TEX_CONST__MASK;
6637cc4c26d4SRob Clark }
6638cc4c26d4SRob Clark 
6639cc4c26d4SRob Clark #define REG_A6XX_SP_CS_TEX_CONST				0x0000a9e6
6640cc4c26d4SRob Clark #define A6XX_SP_CS_TEX_CONST__MASK				0xffffffff
6641cc4c26d4SRob Clark #define A6XX_SP_CS_TEX_CONST__SHIFT				0
A6XX_SP_CS_TEX_CONST(uint32_t val)6642cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_TEX_CONST(uint32_t val)
6643cc4c26d4SRob Clark {
6644cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_TEX_CONST__SHIFT) & A6XX_SP_CS_TEX_CONST__MASK;
6645cc4c26d4SRob Clark }
6646cc4c26d4SRob Clark 
REG_A6XX_SP_CS_BINDLESS_BASE(uint32_t i0)6647cc4c26d4SRob Clark static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; }
6648cc4c26d4SRob Clark 
REG_A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR(uint32_t i0)6649f73343faSRob Clark static inline uint32_t REG_A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR(uint32_t i0) { return 0x0000a9e8 + 0x2*i0; }
6650f73343faSRob Clark #define A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK	0x00000003
6651f73343faSRob Clark #define A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT	0
A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)6652f73343faSRob Clark static inline uint32_t A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)
6653f73343faSRob Clark {
6654f73343faSRob Clark 	return ((val) << A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT) & A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK;
6655f73343faSRob Clark }
6656f73343faSRob Clark #define A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK		0xfffffffc
6657f73343faSRob Clark #define A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT		2
A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)6658f73343faSRob Clark static inline uint32_t A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)
6659f73343faSRob Clark {
6660f73343faSRob Clark 	return ((val >> 2) << A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT) & A6XX_SP_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK;
6661f73343faSRob Clark }
6662cc4c26d4SRob Clark 
6663cc4c26d4SRob Clark #define REG_A6XX_SP_CS_IBO					0x0000a9f2
6664cc4c26d4SRob Clark #define A6XX_SP_CS_IBO__MASK					0xffffffff
6665cc4c26d4SRob Clark #define A6XX_SP_CS_IBO__SHIFT					0
A6XX_SP_CS_IBO(uint32_t val)6666cc4c26d4SRob Clark static inline uint32_t A6XX_SP_CS_IBO(uint32_t val)
6667cc4c26d4SRob Clark {
6668cc4c26d4SRob Clark 	return ((val) << A6XX_SP_CS_IBO__SHIFT) & A6XX_SP_CS_IBO__MASK;
6669cc4c26d4SRob Clark }
6670c28c82e9SRob Clark 
6671c28c82e9SRob Clark #define REG_A6XX_SP_CS_IBO_COUNT				0x0000aa00
6672c28c82e9SRob Clark 
6673cc4c26d4SRob Clark #define REG_A6XX_SP_MODE_CONTROL				0x0000ab00
6674cc4c26d4SRob Clark #define A6XX_SP_MODE_CONTROL_CONSTANT_DEMOTION_ENABLE		0x00000001
667557cfe41cSRob Clark #define A6XX_SP_MODE_CONTROL_ISAMMODE__MASK			0x00000006
667657cfe41cSRob Clark #define A6XX_SP_MODE_CONTROL_ISAMMODE__SHIFT			1
A6XX_SP_MODE_CONTROL_ISAMMODE(enum a6xx_isam_mode val)667757cfe41cSRob Clark static inline uint32_t A6XX_SP_MODE_CONTROL_ISAMMODE(enum a6xx_isam_mode val)
667857cfe41cSRob Clark {
667957cfe41cSRob Clark 	return ((val) << A6XX_SP_MODE_CONTROL_ISAMMODE__SHIFT) & A6XX_SP_MODE_CONTROL_ISAMMODE__MASK;
668057cfe41cSRob Clark }
6681cc4c26d4SRob Clark #define A6XX_SP_MODE_CONTROL_SHARED_CONSTS_ENABLE		0x00000008
66822d756322SRob Clark 
66832d756322SRob Clark #define REG_A6XX_SP_FS_CONFIG					0x0000ab04
6684c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_BINDLESS_TEX				0x00000001
6685c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_BINDLESS_SAMP				0x00000002
6686c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_BINDLESS_IBO				0x00000004
6687c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_BINDLESS_UBO				0x00000008
66882d756322SRob Clark #define A6XX_SP_FS_CONFIG_ENABLED				0x00000100
66892d756322SRob Clark #define A6XX_SP_FS_CONFIG_NTEX__MASK				0x0001fe00
66902d756322SRob Clark #define A6XX_SP_FS_CONFIG_NTEX__SHIFT				9
A6XX_SP_FS_CONFIG_NTEX(uint32_t val)66912d756322SRob Clark static inline uint32_t A6XX_SP_FS_CONFIG_NTEX(uint32_t val)
66922d756322SRob Clark {
66932d756322SRob Clark 	return ((val) << A6XX_SP_FS_CONFIG_NTEX__SHIFT) & A6XX_SP_FS_CONFIG_NTEX__MASK;
66942d756322SRob Clark }
6695c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_NSAMP__MASK				0x003e0000
66962d756322SRob Clark #define A6XX_SP_FS_CONFIG_NSAMP__SHIFT				17
A6XX_SP_FS_CONFIG_NSAMP(uint32_t val)66972d756322SRob Clark static inline uint32_t A6XX_SP_FS_CONFIG_NSAMP(uint32_t val)
66982d756322SRob Clark {
66992d756322SRob Clark 	return ((val) << A6XX_SP_FS_CONFIG_NSAMP__SHIFT) & A6XX_SP_FS_CONFIG_NSAMP__MASK;
67002d756322SRob Clark }
6701cc4c26d4SRob Clark #define A6XX_SP_FS_CONFIG_NIBO__MASK				0x1fc00000
6702c28c82e9SRob Clark #define A6XX_SP_FS_CONFIG_NIBO__SHIFT				22
A6XX_SP_FS_CONFIG_NIBO(uint32_t val)6703c28c82e9SRob Clark static inline uint32_t A6XX_SP_FS_CONFIG_NIBO(uint32_t val)
6704c28c82e9SRob Clark {
6705c28c82e9SRob Clark 	return ((val) << A6XX_SP_FS_CONFIG_NIBO__SHIFT) & A6XX_SP_FS_CONFIG_NIBO__MASK;
6706c28c82e9SRob Clark }
67072d756322SRob Clark 
67082d756322SRob Clark #define REG_A6XX_SP_FS_INSTRLEN					0x0000ab05
67092d756322SRob Clark 
REG_A6XX_SP_BINDLESS_BASE(uint32_t i0)6710c28c82e9SRob Clark static inline uint32_t REG_A6XX_SP_BINDLESS_BASE(uint32_t i0) { return 0x0000ab10 + 0x2*i0; }
6711a69c5ed2SRob Clark 
REG_A6XX_SP_BINDLESS_BASE_DESCRIPTOR(uint32_t i0)6712f73343faSRob Clark static inline uint32_t REG_A6XX_SP_BINDLESS_BASE_DESCRIPTOR(uint32_t i0) { return 0x0000ab10 + 0x2*i0; }
6713f73343faSRob Clark #define A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK	0x00000003
6714f73343faSRob Clark #define A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT	0
A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)6715f73343faSRob Clark static inline uint32_t A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)
6716f73343faSRob Clark {
6717f73343faSRob Clark 	return ((val) << A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT) & A6XX_SP_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK;
6718f73343faSRob Clark }
6719f73343faSRob Clark #define A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK		0xfffffffc
6720f73343faSRob Clark #define A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT		2
A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)6721f73343faSRob Clark static inline uint32_t A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)
6722f73343faSRob Clark {
6723f73343faSRob Clark 	return ((val >> 2) << A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT) & A6XX_SP_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK;
6724f73343faSRob Clark }
6725c28c82e9SRob Clark 
6726cc4c26d4SRob Clark #define REG_A6XX_SP_IBO						0x0000ab1a
6727cc4c26d4SRob Clark #define A6XX_SP_IBO__MASK					0xffffffff
6728cc4c26d4SRob Clark #define A6XX_SP_IBO__SHIFT					0
A6XX_SP_IBO(uint32_t val)6729cc4c26d4SRob Clark static inline uint32_t A6XX_SP_IBO(uint32_t val)
6730cc4c26d4SRob Clark {
6731cc4c26d4SRob Clark 	return ((val) << A6XX_SP_IBO__SHIFT) & A6XX_SP_IBO__MASK;
6732cc4c26d4SRob Clark }
6733c28c82e9SRob Clark 
6734c28c82e9SRob Clark #define REG_A6XX_SP_IBO_COUNT					0x0000ab20
6735c28c82e9SRob Clark 
6736c28c82e9SRob Clark #define REG_A6XX_SP_2D_DST_FORMAT				0x0000acc0
6737c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_NORM				0x00000001
6738c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_SINT				0x00000002
6739c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_UINT				0x00000004
6740c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__MASK		0x000007f8
6741c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__SHIFT		3
A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT(enum a6xx_format val)6742c28c82e9SRob Clark static inline uint32_t A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT(enum a6xx_format val)
6743c28c82e9SRob Clark {
6744c28c82e9SRob Clark 	return ((val) << A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__SHIFT) & A6XX_SP_2D_DST_FORMAT_COLOR_FORMAT__MASK;
6745c28c82e9SRob Clark }
6746c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_SRGB				0x00000800
6747c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_MASK__MASK			0x0000f000
6748c28c82e9SRob Clark #define A6XX_SP_2D_DST_FORMAT_MASK__SHIFT			12
A6XX_SP_2D_DST_FORMAT_MASK(uint32_t val)6749c28c82e9SRob Clark static inline uint32_t A6XX_SP_2D_DST_FORMAT_MASK(uint32_t val)
6750c28c82e9SRob Clark {
6751c28c82e9SRob Clark 	return ((val) << A6XX_SP_2D_DST_FORMAT_MASK__SHIFT) & A6XX_SP_2D_DST_FORMAT_MASK__MASK;
6752c28c82e9SRob Clark }
6753ccdf7e28SRob Clark 
6754f73343faSRob Clark #define REG_A6XX_SP_DBG_ECO_CNTL				0x0000ae00
67552d756322SRob Clark 
6756cc4c26d4SRob Clark #define REG_A6XX_SP_ADDR_MODE_CNTL				0x0000ae01
6757cc4c26d4SRob Clark 
6758cc4c26d4SRob Clark #define REG_A6XX_SP_NC_MODE_CNTL				0x0000ae02
6759cc4c26d4SRob Clark 
676057cfe41cSRob Clark #define REG_A6XX_SP_CHICKEN_BITS				0x0000ae03
6761a69c5ed2SRob Clark 
6762cc4c26d4SRob Clark #define REG_A6XX_SP_FLOAT_CNTL					0x0000ae04
6763cc4c26d4SRob Clark #define A6XX_SP_FLOAT_CNTL_F16_NO_INF				0x00000008
67642d756322SRob Clark 
6765cc4c26d4SRob Clark #define REG_A6XX_SP_PERFCTR_ENABLE				0x0000ae0f
6766cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_VS				0x00000001
6767cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_HS				0x00000002
6768cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_DS				0x00000004
6769cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_GS				0x00000008
6770cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_FS				0x00000010
6771cc4c26d4SRob Clark #define A6XX_SP_PERFCTR_ENABLE_CS				0x00000020
6772cc4c26d4SRob Clark 
REG_A6XX_SP_PERFCTR_SP_SEL(uint32_t i0)6773cc4c26d4SRob Clark static inline uint32_t REG_A6XX_SP_PERFCTR_SP_SEL(uint32_t i0) { return 0x0000ae10 + 0x1*i0; }
67742d756322SRob Clark 
REG_A7XX_SP_PERFCTR_HLSQ_SEL(uint32_t i0)6775f73343faSRob Clark static inline uint32_t REG_A7XX_SP_PERFCTR_HLSQ_SEL(uint32_t i0) { return 0x0000ae60 + 0x1*i0; }
6776f73343faSRob Clark 
6777f73343faSRob Clark #define REG_A7XX_SP_READ_SEL					0x0000ae6d
6778f73343faSRob Clark 
REG_A7XX_SP_PERFCTR_SP_SEL(uint32_t i0)6779f73343faSRob Clark static inline uint32_t REG_A7XX_SP_PERFCTR_SP_SEL(uint32_t i0) { return 0x0000ae80 + 0x1*i0; }
6780f73343faSRob Clark 
678157cfe41cSRob Clark #define REG_A6XX_SP_CONTEXT_SWITCH_GFX_PREEMPTION_SAFE_MODE	0x0000be22
678257cfe41cSRob Clark 
6783c28c82e9SRob Clark #define REG_A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR		0x0000b180
6784cc4c26d4SRob Clark #define A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR__MASK		0xffffffff
6785cc4c26d4SRob Clark #define A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR__SHIFT		0
A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR(uint32_t val)6786cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR(uint32_t val)
6787cc4c26d4SRob Clark {
6788cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR__SHIFT) & A6XX_SP_PS_TP_BORDER_COLOR_BASE_ADDR__MASK;
6789cc4c26d4SRob Clark }
6790c28c82e9SRob Clark 
67912d756322SRob Clark #define REG_A6XX_SP_UNKNOWN_B182				0x0000b182
67922d756322SRob Clark 
6793a69c5ed2SRob Clark #define REG_A6XX_SP_UNKNOWN_B183				0x0000b183
6794a69c5ed2SRob Clark 
6795cc4c26d4SRob Clark #define REG_A6XX_SP_UNKNOWN_B190				0x0000b190
6796cc4c26d4SRob Clark 
6797cc4c26d4SRob Clark #define REG_A6XX_SP_UNKNOWN_B191				0x0000b191
6798cc4c26d4SRob Clark 
67992d756322SRob Clark #define REG_A6XX_SP_TP_RAS_MSAA_CNTL				0x0000b300
68002d756322SRob Clark #define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK			0x00000003
68012d756322SRob Clark #define A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT			0
A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)68022d756322SRob Clark static inline uint32_t A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
68032d756322SRob Clark {
68042d756322SRob Clark 	return ((val) << A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_RAS_MSAA_CNTL_SAMPLES__MASK;
68052d756322SRob Clark }
6806cc4c26d4SRob Clark #define A6XX_SP_TP_RAS_MSAA_CNTL_UNK2__MASK			0x0000000c
6807cc4c26d4SRob Clark #define A6XX_SP_TP_RAS_MSAA_CNTL_UNK2__SHIFT			2
A6XX_SP_TP_RAS_MSAA_CNTL_UNK2(uint32_t val)6808cc4c26d4SRob Clark static inline uint32_t A6XX_SP_TP_RAS_MSAA_CNTL_UNK2(uint32_t val)
6809cc4c26d4SRob Clark {
6810cc4c26d4SRob Clark 	return ((val) << A6XX_SP_TP_RAS_MSAA_CNTL_UNK2__SHIFT) & A6XX_SP_TP_RAS_MSAA_CNTL_UNK2__MASK;
6811cc4c26d4SRob Clark }
68122d756322SRob Clark 
68132d756322SRob Clark #define REG_A6XX_SP_TP_DEST_MSAA_CNTL				0x0000b301
68142d756322SRob Clark #define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK			0x00000003
68152d756322SRob Clark #define A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT		0
A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)68162d756322SRob Clark static inline uint32_t A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES(enum a3xx_msaa_samples val)
68172d756322SRob Clark {
68182d756322SRob Clark 	return ((val) << A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__SHIFT) & A6XX_SP_TP_DEST_MSAA_CNTL_SAMPLES__MASK;
68192d756322SRob Clark }
68202d756322SRob Clark #define A6XX_SP_TP_DEST_MSAA_CNTL_MSAA_DISABLE			0x00000004
68212d756322SRob Clark 
6822c28c82e9SRob Clark #define REG_A6XX_SP_TP_BORDER_COLOR_BASE_ADDR			0x0000b302
6823cc4c26d4SRob Clark #define A6XX_SP_TP_BORDER_COLOR_BASE_ADDR__MASK			0xffffffff
6824cc4c26d4SRob Clark #define A6XX_SP_TP_BORDER_COLOR_BASE_ADDR__SHIFT		0
A6XX_SP_TP_BORDER_COLOR_BASE_ADDR(uint32_t val)6825cc4c26d4SRob Clark static inline uint32_t A6XX_SP_TP_BORDER_COLOR_BASE_ADDR(uint32_t val)
6826cc4c26d4SRob Clark {
6827cc4c26d4SRob Clark 	return ((val) << A6XX_SP_TP_BORDER_COLOR_BASE_ADDR__SHIFT) & A6XX_SP_TP_BORDER_COLOR_BASE_ADDR__MASK;
6828cc4c26d4SRob Clark }
68292d756322SRob Clark 
6830c28c82e9SRob Clark #define REG_A6XX_SP_TP_SAMPLE_CONFIG				0x0000b304
6831c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_CONFIG_UNK0				0x00000001
6832c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_CONFIG_LOCATION_ENABLE		0x00000002
6833c28c82e9SRob Clark 
6834c28c82e9SRob Clark #define REG_A6XX_SP_TP_SAMPLE_LOCATION_0			0x0000b305
6835c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__MASK		0x0000000f
6836c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X__SHIFT		0
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)6837c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_X(float val)
6838c28c82e9SRob Clark {
6839c28c82e9SRob Clark 	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;
6840c28c82e9SRob Clark }
6841c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__MASK		0x000000f0
6842c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y__SHIFT		4
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)6843c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_0_Y(float val)
6844c28c82e9SRob Clark {
6845c28c82e9SRob Clark 	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;
6846c28c82e9SRob Clark }
6847c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__MASK		0x00000f00
6848c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X__SHIFT		8
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)6849c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_X(float val)
6850c28c82e9SRob Clark {
6851c28c82e9SRob Clark 	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;
6852c28c82e9SRob Clark }
6853c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__MASK		0x0000f000
6854c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y__SHIFT		12
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)6855c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_1_Y(float val)
6856c28c82e9SRob Clark {
6857c28c82e9SRob Clark 	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;
6858c28c82e9SRob Clark }
6859c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__MASK		0x000f0000
6860c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X__SHIFT		16
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)6861c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_X(float val)
6862c28c82e9SRob Clark {
6863c28c82e9SRob Clark 	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;
6864c28c82e9SRob Clark }
6865c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__MASK		0x00f00000
6866c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y__SHIFT		20
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)6867c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_2_Y(float val)
6868c28c82e9SRob Clark {
6869c28c82e9SRob Clark 	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;
6870c28c82e9SRob Clark }
6871c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__MASK		0x0f000000
6872c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X__SHIFT		24
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)6873c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_X(float val)
6874c28c82e9SRob Clark {
6875c28c82e9SRob Clark 	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;
6876c28c82e9SRob Clark }
6877c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__MASK		0xf0000000
6878c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y__SHIFT		28
A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)6879c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_0_SAMPLE_3_Y(float val)
6880c28c82e9SRob Clark {
6881c28c82e9SRob Clark 	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;
6882c28c82e9SRob Clark }
6883c28c82e9SRob Clark 
6884c28c82e9SRob Clark #define REG_A6XX_SP_TP_SAMPLE_LOCATION_1			0x0000b306
6885c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__MASK		0x0000000f
6886c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X__SHIFT		0
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)6887c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_X(float val)
6888c28c82e9SRob Clark {
6889c28c82e9SRob Clark 	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;
6890c28c82e9SRob Clark }
6891c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__MASK		0x000000f0
6892c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y__SHIFT		4
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)6893c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_0_Y(float val)
6894c28c82e9SRob Clark {
6895c28c82e9SRob Clark 	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;
6896c28c82e9SRob Clark }
6897c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__MASK		0x00000f00
6898c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X__SHIFT		8
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)6899c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_X(float val)
6900c28c82e9SRob Clark {
6901c28c82e9SRob Clark 	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;
6902c28c82e9SRob Clark }
6903c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__MASK		0x0000f000
6904c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y__SHIFT		12
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)6905c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_1_Y(float val)
6906c28c82e9SRob Clark {
6907c28c82e9SRob Clark 	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;
6908c28c82e9SRob Clark }
6909c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__MASK		0x000f0000
6910c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X__SHIFT		16
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)6911c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_X(float val)
6912c28c82e9SRob Clark {
6913c28c82e9SRob Clark 	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;
6914c28c82e9SRob Clark }
6915c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__MASK		0x00f00000
6916c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y__SHIFT		20
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)6917c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_2_Y(float val)
6918c28c82e9SRob Clark {
6919c28c82e9SRob Clark 	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;
6920c28c82e9SRob Clark }
6921c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__MASK		0x0f000000
6922c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X__SHIFT		24
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)6923c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_X(float val)
6924c28c82e9SRob Clark {
6925c28c82e9SRob Clark 	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;
6926c28c82e9SRob Clark }
6927c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__MASK		0xf0000000
6928c28c82e9SRob Clark #define A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y__SHIFT		28
A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)6929c28c82e9SRob Clark static inline uint32_t A6XX_SP_TP_SAMPLE_LOCATION_1_SAMPLE_3_Y(float val)
6930c28c82e9SRob Clark {
6931c28c82e9SRob Clark 	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;
6932c28c82e9SRob Clark }
69332d756322SRob Clark 
6934cc4c26d4SRob Clark #define REG_A6XX_SP_TP_WINDOW_OFFSET				0x0000b307
6935cc4c26d4SRob Clark #define A6XX_SP_TP_WINDOW_OFFSET_X__MASK			0x00003fff
6936cc4c26d4SRob Clark #define A6XX_SP_TP_WINDOW_OFFSET_X__SHIFT			0
A6XX_SP_TP_WINDOW_OFFSET_X(uint32_t val)6937cc4c26d4SRob Clark static inline uint32_t A6XX_SP_TP_WINDOW_OFFSET_X(uint32_t val)
6938cc4c26d4SRob Clark {
6939cc4c26d4SRob Clark 	return ((val) << A6XX_SP_TP_WINDOW_OFFSET_X__SHIFT) & A6XX_SP_TP_WINDOW_OFFSET_X__MASK;
6940cc4c26d4SRob Clark }
6941cc4c26d4SRob Clark #define A6XX_SP_TP_WINDOW_OFFSET_Y__MASK			0x3fff0000
6942cc4c26d4SRob Clark #define A6XX_SP_TP_WINDOW_OFFSET_Y__SHIFT			16
A6XX_SP_TP_WINDOW_OFFSET_Y(uint32_t val)6943cc4c26d4SRob Clark static inline uint32_t A6XX_SP_TP_WINDOW_OFFSET_Y(uint32_t val)
6944cc4c26d4SRob Clark {
6945cc4c26d4SRob Clark 	return ((val) << A6XX_SP_TP_WINDOW_OFFSET_Y__SHIFT) & A6XX_SP_TP_WINDOW_OFFSET_Y__MASK;
6946cc4c26d4SRob Clark }
6947cc4c26d4SRob Clark 
694857cfe41cSRob Clark #define REG_A6XX_SP_TP_MODE_CNTL				0x0000b309
694957cfe41cSRob Clark #define A6XX_SP_TP_MODE_CNTL_ISAMMODE__MASK			0x00000003
695057cfe41cSRob Clark #define A6XX_SP_TP_MODE_CNTL_ISAMMODE__SHIFT			0
A6XX_SP_TP_MODE_CNTL_ISAMMODE(enum a6xx_isam_mode val)695157cfe41cSRob Clark static inline uint32_t A6XX_SP_TP_MODE_CNTL_ISAMMODE(enum a6xx_isam_mode val)
695257cfe41cSRob Clark {
695357cfe41cSRob Clark 	return ((val) << A6XX_SP_TP_MODE_CNTL_ISAMMODE__SHIFT) & A6XX_SP_TP_MODE_CNTL_ISAMMODE__MASK;
695457cfe41cSRob Clark }
695557cfe41cSRob Clark #define A6XX_SP_TP_MODE_CNTL_UNK3__MASK				0x000000fc
695657cfe41cSRob Clark #define A6XX_SP_TP_MODE_CNTL_UNK3__SHIFT			2
A6XX_SP_TP_MODE_CNTL_UNK3(uint32_t val)695757cfe41cSRob Clark static inline uint32_t A6XX_SP_TP_MODE_CNTL_UNK3(uint32_t val)
695857cfe41cSRob Clark {
695957cfe41cSRob Clark 	return ((val) << A6XX_SP_TP_MODE_CNTL_UNK3__SHIFT) & A6XX_SP_TP_MODE_CNTL_UNK3__MASK;
696057cfe41cSRob Clark }
6961a69c5ed2SRob Clark 
69622d756322SRob Clark #define REG_A6XX_SP_PS_2D_SRC_INFO				0x0000b4c0
69632d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK		0x000000ff
69642d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT		0
A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_format val)6965c28c82e9SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT(enum a6xx_format val)
69662d756322SRob Clark {
69672d756322SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_FORMAT__MASK;
69682d756322SRob Clark }
69692d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK			0x00000300
69702d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT			8
A6XX_SP_PS_2D_SRC_INFO_TILE_MODE(enum a6xx_tile_mode val)69712d756322SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_TILE_MODE(enum a6xx_tile_mode val)
69722d756322SRob Clark {
69732d756322SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_TILE_MODE__MASK;
69742d756322SRob Clark }
69752d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK			0x00000c00
69762d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT		10
A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)69772d756322SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP(enum a3xx_color_swap val)
69782d756322SRob Clark {
69792d756322SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_COLOR_SWAP__MASK;
69802d756322SRob Clark }
69812d756322SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_FLAGS				0x00001000
6982c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_SRGB				0x00002000
6983c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK			0x0000c000
6984c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT			14
A6XX_SP_PS_2D_SRC_INFO_SAMPLES(enum a3xx_msaa_samples val)6985c28c82e9SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_SAMPLES(enum a3xx_msaa_samples val)
6986c28c82e9SRob Clark {
6987c28c82e9SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_SAMPLES__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_SAMPLES__MASK;
6988c28c82e9SRob Clark }
6989ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_FILTER				0x00010000
6990cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK17				0x00020000
6991c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_SAMPLES_AVERAGE			0x00040000
6992cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK19				0x00080000
6993c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK20				0x00100000
6994cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK21				0x00200000
6995c28c82e9SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK22				0x00400000
6996cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK23__MASK			0x07800000
6997cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK23__SHIFT			23
A6XX_SP_PS_2D_SRC_INFO_UNK23(uint32_t val)6998cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_INFO_UNK23(uint32_t val)
6999cc4c26d4SRob Clark {
7000cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_INFO_UNK23__SHIFT) & A6XX_SP_PS_2D_SRC_INFO_UNK23__MASK;
7001cc4c26d4SRob Clark }
7002cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_INFO_UNK28				0x10000000
7003ccdf7e28SRob Clark 
7004ccdf7e28SRob Clark #define REG_A6XX_SP_PS_2D_SRC_SIZE				0x0000b4c1
7005ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_SIZE_WIDTH__MASK			0x00007fff
7006ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_SIZE_WIDTH__SHIFT			0
A6XX_SP_PS_2D_SRC_SIZE_WIDTH(uint32_t val)7007ccdf7e28SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_SIZE_WIDTH(uint32_t val)
7008ccdf7e28SRob Clark {
7009ccdf7e28SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_SIZE_WIDTH__SHIFT) & A6XX_SP_PS_2D_SRC_SIZE_WIDTH__MASK;
7010ccdf7e28SRob Clark }
7011ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__MASK			0x3fff8000
7012ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__SHIFT			15
A6XX_SP_PS_2D_SRC_SIZE_HEIGHT(uint32_t val)7013ccdf7e28SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_SIZE_HEIGHT(uint32_t val)
7014ccdf7e28SRob Clark {
7015ccdf7e28SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__SHIFT) & A6XX_SP_PS_2D_SRC_SIZE_HEIGHT__MASK;
7016ccdf7e28SRob Clark }
70172d756322SRob Clark 
7018c28c82e9SRob Clark #define REG_A6XX_SP_PS_2D_SRC					0x0000b4c2
7019cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC__MASK					0xffffffff
7020cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC__SHIFT				0
A6XX_SP_PS_2D_SRC(uint32_t val)7021cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC(uint32_t val)
7022cc4c26d4SRob Clark {
7023cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC__SHIFT) & A6XX_SP_PS_2D_SRC__MASK;
7024cc4c26d4SRob Clark }
7025c28c82e9SRob Clark 
7026ccdf7e28SRob Clark #define REG_A6XX_SP_PS_2D_SRC_PITCH				0x0000b4c4
7027cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PITCH_UNK0__MASK			0x000001ff
7028cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PITCH_UNK0__SHIFT			0
A6XX_SP_PS_2D_SRC_PITCH_UNK0(uint32_t val)7029cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_PITCH_UNK0(uint32_t val)
7030cc4c26d4SRob Clark {
7031cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_PITCH_UNK0__SHIFT) & A6XX_SP_PS_2D_SRC_PITCH_UNK0__MASK;
7032cc4c26d4SRob Clark }
7033cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__MASK			0x00fffe00
7034ccdf7e28SRob Clark #define A6XX_SP_PS_2D_SRC_PITCH_PITCH__SHIFT			9
A6XX_SP_PS_2D_SRC_PITCH_PITCH(uint32_t val)7035ccdf7e28SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_PITCH_PITCH(uint32_t val)
7036ccdf7e28SRob Clark {
7037ccdf7e28SRob Clark 	return ((val >> 6) << A6XX_SP_PS_2D_SRC_PITCH_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_PITCH_PITCH__MASK;
7038ccdf7e28SRob Clark }
7039ccdf7e28SRob Clark 
7040cc4c26d4SRob Clark #define REG_A6XX_SP_PS_2D_SRC_PLANE1				0x0000b4c5
7041cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE1__MASK				0xffffffff
7042cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE1__SHIFT				0
A6XX_SP_PS_2D_SRC_PLANE1(uint32_t val)7043cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_PLANE1(uint32_t val)
7044cc4c26d4SRob Clark {
7045cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_PLANE1__SHIFT) & A6XX_SP_PS_2D_SRC_PLANE1__MASK;
7046cc4c26d4SRob Clark }
70472d756322SRob Clark 
7048cc4c26d4SRob Clark #define REG_A6XX_SP_PS_2D_SRC_PLANE_PITCH			0x0000b4c7
7049cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE_PITCH__MASK			0x00000fff
7050cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE_PITCH__SHIFT			0
A6XX_SP_PS_2D_SRC_PLANE_PITCH(uint32_t val)7051cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_PLANE_PITCH(uint32_t val)
7052cc4c26d4SRob Clark {
7053cc4c26d4SRob Clark 	return ((val >> 6) << A6XX_SP_PS_2D_SRC_PLANE_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_PLANE_PITCH__MASK;
7054cc4c26d4SRob Clark }
7055cc4c26d4SRob Clark 
7056cc4c26d4SRob Clark #define REG_A6XX_SP_PS_2D_SRC_PLANE2				0x0000b4c8
7057cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE2__MASK				0xffffffff
7058cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_PLANE2__SHIFT				0
A6XX_SP_PS_2D_SRC_PLANE2(uint32_t val)7059cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_PLANE2(uint32_t val)
7060cc4c26d4SRob Clark {
7061cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_PLANE2__SHIFT) & A6XX_SP_PS_2D_SRC_PLANE2__MASK;
7062cc4c26d4SRob Clark }
70632d756322SRob Clark 
7064c28c82e9SRob Clark #define REG_A6XX_SP_PS_2D_SRC_FLAGS				0x0000b4ca
7065cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_FLAGS__MASK				0xffffffff
7066cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_FLAGS__SHIFT				0
A6XX_SP_PS_2D_SRC_FLAGS(uint32_t val)7067cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS(uint32_t val)
7068cc4c26d4SRob Clark {
7069cc4c26d4SRob Clark 	return ((val) << A6XX_SP_PS_2D_SRC_FLAGS__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS__MASK;
7070cc4c26d4SRob Clark }
7071c28c82e9SRob Clark 
7072c28c82e9SRob Clark #define REG_A6XX_SP_PS_2D_SRC_FLAGS_PITCH			0x0000b4cc
7073cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH__MASK			0x000000ff
7074cc4c26d4SRob Clark #define A6XX_SP_PS_2D_SRC_FLAGS_PITCH__SHIFT			0
A6XX_SP_PS_2D_SRC_FLAGS_PITCH(uint32_t val)7075cc4c26d4SRob Clark static inline uint32_t A6XX_SP_PS_2D_SRC_FLAGS_PITCH(uint32_t val)
7076c28c82e9SRob Clark {
7077cc4c26d4SRob Clark 	return ((val >> 6) << A6XX_SP_PS_2D_SRC_FLAGS_PITCH__SHIFT) & A6XX_SP_PS_2D_SRC_FLAGS_PITCH__MASK;
7078c28c82e9SRob Clark }
7079c28c82e9SRob Clark 
7080cc4c26d4SRob Clark #define REG_A6XX_SP_PS_UNKNOWN_B4CD				0x0000b4cd
70812d756322SRob Clark 
7082cc4c26d4SRob Clark #define REG_A6XX_SP_PS_UNKNOWN_B4CE				0x0000b4ce
7083cc4c26d4SRob Clark 
7084cc4c26d4SRob Clark #define REG_A6XX_SP_PS_UNKNOWN_B4CF				0x0000b4cf
7085cc4c26d4SRob Clark 
7086cc4c26d4SRob Clark #define REG_A6XX_SP_PS_UNKNOWN_B4D0				0x0000b4d0
7087cc4c26d4SRob Clark 
7088cc4c26d4SRob Clark #define REG_A6XX_SP_WINDOW_OFFSET				0x0000b4d1
7089cc4c26d4SRob Clark #define A6XX_SP_WINDOW_OFFSET_X__MASK				0x00003fff
7090cc4c26d4SRob Clark #define A6XX_SP_WINDOW_OFFSET_X__SHIFT				0
A6XX_SP_WINDOW_OFFSET_X(uint32_t val)7091cc4c26d4SRob Clark static inline uint32_t A6XX_SP_WINDOW_OFFSET_X(uint32_t val)
7092cc4c26d4SRob Clark {
7093cc4c26d4SRob Clark 	return ((val) << A6XX_SP_WINDOW_OFFSET_X__SHIFT) & A6XX_SP_WINDOW_OFFSET_X__MASK;
7094cc4c26d4SRob Clark }
7095cc4c26d4SRob Clark #define A6XX_SP_WINDOW_OFFSET_Y__MASK				0x3fff0000
7096cc4c26d4SRob Clark #define A6XX_SP_WINDOW_OFFSET_Y__SHIFT				16
A6XX_SP_WINDOW_OFFSET_Y(uint32_t val)7097cc4c26d4SRob Clark static inline uint32_t A6XX_SP_WINDOW_OFFSET_Y(uint32_t val)
7098cc4c26d4SRob Clark {
7099cc4c26d4SRob Clark 	return ((val) << A6XX_SP_WINDOW_OFFSET_Y__SHIFT) & A6XX_SP_WINDOW_OFFSET_Y__MASK;
7100cc4c26d4SRob Clark }
7101cc4c26d4SRob Clark 
710257cfe41cSRob Clark #define REG_A6XX_TPL1_DBG_ECO_CNTL				0x0000b600
7103cc4c26d4SRob Clark 
7104cc4c26d4SRob Clark #define REG_A6XX_TPL1_ADDR_MODE_CNTL				0x0000b601
7105cc4c26d4SRob Clark 
7106cc4c26d4SRob Clark #define REG_A6XX_TPL1_UNKNOWN_B602				0x0000b602
7107cc4c26d4SRob Clark 
7108cc4c26d4SRob Clark #define REG_A6XX_TPL1_NC_MODE_CNTL				0x0000b604
7109cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_MODE				0x00000001
7110cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT__MASK			0x00000006
7111cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT__SHIFT			1
A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT(uint32_t val)7112cc4c26d4SRob Clark static inline uint32_t A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT(uint32_t val)
7113cc4c26d4SRob Clark {
7114cc4c26d4SRob Clark 	return ((val) << A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT__SHIFT) & A6XX_TPL1_NC_MODE_CNTL_LOWER_BIT__MASK;
7115cc4c26d4SRob Clark }
7116cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_MIN_ACCESS_LENGTH		0x00000008
7117cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT__MASK			0x00000010
7118cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT__SHIFT			4
A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT(uint32_t val)7119cc4c26d4SRob Clark static inline uint32_t A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT(uint32_t val)
7120cc4c26d4SRob Clark {
7121cc4c26d4SRob Clark 	return ((val) << A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT__SHIFT) & A6XX_TPL1_NC_MODE_CNTL_UPPER_BIT__MASK;
7122cc4c26d4SRob Clark }
7123cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_UNK6__MASK			0x000000c0
7124cc4c26d4SRob Clark #define A6XX_TPL1_NC_MODE_CNTL_UNK6__SHIFT			6
A6XX_TPL1_NC_MODE_CNTL_UNK6(uint32_t val)7125cc4c26d4SRob Clark static inline uint32_t A6XX_TPL1_NC_MODE_CNTL_UNK6(uint32_t val)
7126cc4c26d4SRob Clark {
7127cc4c26d4SRob Clark 	return ((val) << A6XX_TPL1_NC_MODE_CNTL_UNK6__SHIFT) & A6XX_TPL1_NC_MODE_CNTL_UNK6__MASK;
7128cc4c26d4SRob Clark }
7129cc4c26d4SRob Clark 
7130cc4c26d4SRob Clark #define REG_A6XX_TPL1_UNKNOWN_B605				0x0000b605
7131cc4c26d4SRob Clark 
7132cc4c26d4SRob Clark #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0			0x0000b608
7133cc4c26d4SRob Clark 
7134cc4c26d4SRob Clark #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1			0x0000b609
7135cc4c26d4SRob Clark 
7136cc4c26d4SRob Clark #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_2			0x0000b60a
7137cc4c26d4SRob Clark 
7138cc4c26d4SRob Clark #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_3			0x0000b60b
7139cc4c26d4SRob Clark 
7140cc4c26d4SRob Clark #define REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_4			0x0000b60c
7141cc4c26d4SRob Clark 
REG_A6XX_TPL1_PERFCTR_TP_SEL(uint32_t i0)7142cc4c26d4SRob Clark static inline uint32_t REG_A6XX_TPL1_PERFCTR_TP_SEL(uint32_t i0) { return 0x0000b610 + 0x1*i0; }
71432d756322SRob Clark 
71442d756322SRob Clark #define REG_A6XX_HLSQ_VS_CNTL					0x0000b800
71452d756322SRob Clark #define A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK			0x000000ff
71462d756322SRob Clark #define A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val)71472d756322SRob Clark static inline uint32_t A6XX_HLSQ_VS_CNTL_CONSTLEN(uint32_t val)
71482d756322SRob Clark {
71492d756322SRob Clark 	return ((val >> 2) << A6XX_HLSQ_VS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_VS_CNTL_CONSTLEN__MASK;
71502d756322SRob Clark }
7151c28c82e9SRob Clark #define A6XX_HLSQ_VS_CNTL_ENABLED				0x00000100
71522d756322SRob Clark 
71532d756322SRob Clark #define REG_A6XX_HLSQ_HS_CNTL					0x0000b801
71542d756322SRob Clark #define A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK			0x000000ff
71552d756322SRob Clark #define A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val)71562d756322SRob Clark static inline uint32_t A6XX_HLSQ_HS_CNTL_CONSTLEN(uint32_t val)
71572d756322SRob Clark {
71582d756322SRob Clark 	return ((val >> 2) << A6XX_HLSQ_HS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_HS_CNTL_CONSTLEN__MASK;
71592d756322SRob Clark }
7160c28c82e9SRob Clark #define A6XX_HLSQ_HS_CNTL_ENABLED				0x00000100
71612d756322SRob Clark 
71622d756322SRob Clark #define REG_A6XX_HLSQ_DS_CNTL					0x0000b802
71632d756322SRob Clark #define A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK			0x000000ff
71642d756322SRob Clark #define A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val)71652d756322SRob Clark static inline uint32_t A6XX_HLSQ_DS_CNTL_CONSTLEN(uint32_t val)
71662d756322SRob Clark {
71672d756322SRob Clark 	return ((val >> 2) << A6XX_HLSQ_DS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_DS_CNTL_CONSTLEN__MASK;
71682d756322SRob Clark }
7169c28c82e9SRob Clark #define A6XX_HLSQ_DS_CNTL_ENABLED				0x00000100
71702d756322SRob Clark 
71712d756322SRob Clark #define REG_A6XX_HLSQ_GS_CNTL					0x0000b803
71722d756322SRob Clark #define A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK			0x000000ff
71732d756322SRob Clark #define A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val)71742d756322SRob Clark static inline uint32_t A6XX_HLSQ_GS_CNTL_CONSTLEN(uint32_t val)
71752d756322SRob Clark {
71762d756322SRob Clark 	return ((val >> 2) << A6XX_HLSQ_GS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_GS_CNTL_CONSTLEN__MASK;
71772d756322SRob Clark }
7178c28c82e9SRob Clark #define A6XX_HLSQ_GS_CNTL_ENABLED				0x00000100
7179c28c82e9SRob Clark 
7180c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_CMD			0x0000b820
7181c28c82e9SRob Clark 
7182c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR		0x0000b821
7183cc4c26d4SRob Clark #define A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR__MASK		0xffffffff
7184cc4c26d4SRob Clark #define A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR__SHIFT		0
A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR(uint32_t val)7185cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR(uint32_t val)
7186cc4c26d4SRob Clark {
7187cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR__SHIFT) & A6XX_HLSQ_LOAD_STATE_GEOM_EXT_SRC_ADDR__MASK;
7188cc4c26d4SRob Clark }
7189c28c82e9SRob Clark 
7190c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_GEOM_DATA			0x0000b823
71912d756322SRob Clark 
7192cc4c26d4SRob Clark #define REG_A6XX_HLSQ_FS_CNTL_0					0x0000b980
7193cc4c26d4SRob Clark #define A6XX_HLSQ_FS_CNTL_0_THREADSIZE__MASK			0x00000001
7194cc4c26d4SRob Clark #define A6XX_HLSQ_FS_CNTL_0_THREADSIZE__SHIFT			0
A6XX_HLSQ_FS_CNTL_0_THREADSIZE(enum a6xx_threadsize val)7195cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_FS_CNTL_0_THREADSIZE(enum a6xx_threadsize val)
7196cc4c26d4SRob Clark {
7197cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_FS_CNTL_0_THREADSIZE__SHIFT) & A6XX_HLSQ_FS_CNTL_0_THREADSIZE__MASK;
7198cc4c26d4SRob Clark }
7199cc4c26d4SRob Clark #define A6XX_HLSQ_FS_CNTL_0_VARYINGS				0x00000002
7200cc4c26d4SRob Clark #define A6XX_HLSQ_FS_CNTL_0_UNK2__MASK				0x00000ffc
7201cc4c26d4SRob Clark #define A6XX_HLSQ_FS_CNTL_0_UNK2__SHIFT				2
A6XX_HLSQ_FS_CNTL_0_UNK2(uint32_t val)7202cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_FS_CNTL_0_UNK2(uint32_t val)
7203cc4c26d4SRob Clark {
7204cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_FS_CNTL_0_UNK2__SHIFT) & A6XX_HLSQ_FS_CNTL_0_UNK2__MASK;
7205cc4c26d4SRob Clark }
7206cc4c26d4SRob Clark 
7207cc4c26d4SRob Clark #define REG_A6XX_HLSQ_UNKNOWN_B981				0x0000b981
7208a69c5ed2SRob Clark 
72092d756322SRob Clark #define REG_A6XX_HLSQ_CONTROL_1_REG				0x0000b982
72102d756322SRob Clark 
7211f73343faSRob Clark #define REG_A7XX_HLSQ_CONTROL_1_REG				0x0000a9c7
7212f73343faSRob Clark 
72132d756322SRob Clark #define REG_A6XX_HLSQ_CONTROL_2_REG				0x0000b983
72142d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK			0x000000ff
72152d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT		0
A6XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)72162d756322SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
72172d756322SRob Clark {
72182d756322SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
72192d756322SRob Clark }
72202d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK			0x0000ff00
72212d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT			8
A6XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)72222d756322SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)
72232d756322SRob Clark {
72242d756322SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK;
72252d756322SRob Clark }
72262d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK		0x00ff0000
72272d756322SRob Clark #define A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT		16
A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)72282d756322SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)
72292d756322SRob Clark {
72302d756322SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK;
72312d756322SRob Clark }
7232f73343faSRob Clark #define A6XX_HLSQ_CONTROL_2_REG_CENTERRHW__MASK			0xff000000
7233f73343faSRob Clark #define A6XX_HLSQ_CONTROL_2_REG_CENTERRHW__SHIFT		24
A6XX_HLSQ_CONTROL_2_REG_CENTERRHW(uint32_t val)7234f73343faSRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_2_REG_CENTERRHW(uint32_t val)
7235c28c82e9SRob Clark {
7236f73343faSRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_2_REG_CENTERRHW__SHIFT) & A6XX_HLSQ_CONTROL_2_REG_CENTERRHW__MASK;
7237f73343faSRob Clark }
7238f73343faSRob Clark 
7239f73343faSRob Clark #define REG_A7XX_HLSQ_CONTROL_2_REG				0x0000a9c8
7240f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK			0x000000ff
7241f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT		0
A7XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)7242f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_2_REG_FACEREGID(uint32_t val)
7243f73343faSRob Clark {
7244f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_2_REG_FACEREGID__SHIFT) & A7XX_HLSQ_CONTROL_2_REG_FACEREGID__MASK;
7245f73343faSRob Clark }
7246f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK			0x0000ff00
7247f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT			8
A7XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)7248f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_2_REG_SAMPLEID(uint32_t val)
7249f73343faSRob Clark {
7250f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_2_REG_SAMPLEID__SHIFT) & A7XX_HLSQ_CONTROL_2_REG_SAMPLEID__MASK;
7251f73343faSRob Clark }
7252f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK		0x00ff0000
7253f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT		16
A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)7254f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK(uint32_t val)
7255f73343faSRob Clark {
7256f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__SHIFT) & A7XX_HLSQ_CONTROL_2_REG_SAMPLEMASK__MASK;
7257f73343faSRob Clark }
7258f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_CENTERRHW__MASK			0xff000000
7259f73343faSRob Clark #define A7XX_HLSQ_CONTROL_2_REG_CENTERRHW__SHIFT		24
A7XX_HLSQ_CONTROL_2_REG_CENTERRHW(uint32_t val)7260f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_2_REG_CENTERRHW(uint32_t val)
7261f73343faSRob Clark {
7262f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_2_REG_CENTERRHW__SHIFT) & A7XX_HLSQ_CONTROL_2_REG_CENTERRHW__MASK;
7263c28c82e9SRob Clark }
72642d756322SRob Clark 
72652d756322SRob Clark #define REG_A6XX_HLSQ_CONTROL_3_REG				0x0000b984
7266c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK		0x000000ff
7267c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT		0
A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)7268c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)
72692d756322SRob Clark {
7270c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK;
7271c28c82e9SRob Clark }
7272c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK		0x0000ff00
7273c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT		8
A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)7274c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)
7275c28c82e9SRob Clark {
7276c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK;
7277c28c82e9SRob Clark }
7278c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK		0x00ff0000
7279c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT	16
A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)7280c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)
7281c28c82e9SRob Clark {
7282c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK;
7283c28c82e9SRob Clark }
7284c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK	0xff000000
7285c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT	24
A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)7286c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)
7287c28c82e9SRob Clark {
7288c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A6XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK;
72892d756322SRob Clark }
72902d756322SRob Clark 
7291f73343faSRob Clark #define REG_A7XX_HLSQ_CONTROL_3_REG				0x0000a9c9
7292f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK		0x000000ff
7293f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT		0
A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)7294f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL(uint32_t val)
7295f73343faSRob Clark {
7296f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__SHIFT) & A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_PIXEL__MASK;
7297f73343faSRob Clark }
7298f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK		0x0000ff00
7299f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT		8
A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)7300f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL(uint32_t val)
7301f73343faSRob Clark {
7302f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__SHIFT) & A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_PIXEL__MASK;
7303f73343faSRob Clark }
7304f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK		0x00ff0000
7305f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT	16
A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)7306f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID(uint32_t val)
7307f73343faSRob Clark {
7308f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__SHIFT) & A7XX_HLSQ_CONTROL_3_REG_IJ_PERSP_CENTROID__MASK;
7309f73343faSRob Clark }
7310f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK	0xff000000
7311f73343faSRob Clark #define A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT	24
A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)7312f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID(uint32_t val)
7313f73343faSRob Clark {
7314f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__SHIFT) & A7XX_HLSQ_CONTROL_3_REG_IJ_LINEAR_CENTROID__MASK;
7315f73343faSRob Clark }
7316f73343faSRob Clark 
73172d756322SRob Clark #define REG_A6XX_HLSQ_CONTROL_4_REG				0x0000b985
7318c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK		0x000000ff
7319c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT		0
A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)7320c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)
7321c28c82e9SRob Clark {
7322c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK;
7323c28c82e9SRob Clark }
7324c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK		0x0000ff00
7325c28c82e9SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT		8
A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)7326c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)
7327c28c82e9SRob Clark {
7328c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK;
7329c28c82e9SRob Clark }
73302d756322SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK		0x00ff0000
73312d756322SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT		16
A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)73322d756322SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)
73332d756322SRob Clark {
73342d756322SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK;
73352d756322SRob Clark }
73362d756322SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK		0xff000000
73372d756322SRob Clark #define A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT		24
A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)73382d756322SRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)
73392d756322SRob Clark {
73402d756322SRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT) & A6XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK;
73412d756322SRob Clark }
73422d756322SRob Clark 
7343f73343faSRob Clark #define REG_A7XX_HLSQ_CONTROL_4_REG				0x0000a9ca
7344f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK		0x000000ff
7345f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT		0
A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)7346f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE(uint32_t val)
7347f73343faSRob Clark {
7348f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__SHIFT) & A7XX_HLSQ_CONTROL_4_REG_IJ_PERSP_SAMPLE__MASK;
7349f73343faSRob Clark }
7350f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK		0x0000ff00
7351f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT		8
A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)7352f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE(uint32_t val)
7353f73343faSRob Clark {
7354f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__SHIFT) & A7XX_HLSQ_CONTROL_4_REG_IJ_LINEAR_SAMPLE__MASK;
7355f73343faSRob Clark }
7356f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK		0x00ff0000
7357f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT		16
A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)7358f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID(uint32_t val)
7359f73343faSRob Clark {
7360f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__SHIFT) & A7XX_HLSQ_CONTROL_4_REG_XYCOORDREGID__MASK;
7361f73343faSRob Clark }
7362f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK		0xff000000
7363f73343faSRob Clark #define A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT		24
A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)7364f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID(uint32_t val)
7365f73343faSRob Clark {
7366f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__SHIFT) & A7XX_HLSQ_CONTROL_4_REG_ZWCOORDREGID__MASK;
7367f73343faSRob Clark }
7368f73343faSRob Clark 
73692d756322SRob Clark #define REG_A6XX_HLSQ_CONTROL_5_REG				0x0000b986
737057cfe41cSRob Clark #define A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__MASK		0x000000ff
737157cfe41cSRob Clark #define A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__SHIFT		0
A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID(uint32_t val)737257cfe41cSRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID(uint32_t val)
7373cc4c26d4SRob Clark {
737457cfe41cSRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__SHIFT) & A6XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__MASK;
7375cc4c26d4SRob Clark }
737657cfe41cSRob Clark #define A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__MASK	0x0000ff00
737757cfe41cSRob Clark #define A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__SHIFT	8
A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID(uint32_t val)737857cfe41cSRob Clark static inline uint32_t A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID(uint32_t val)
7379cc4c26d4SRob Clark {
738057cfe41cSRob Clark 	return ((val) << A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__SHIFT) & A6XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__MASK;
7381cc4c26d4SRob Clark }
73822d756322SRob Clark 
7383f73343faSRob Clark #define REG_A7XX_HLSQ_CONTROL_5_REG				0x0000a9cb
7384f73343faSRob Clark #define A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__MASK		0x000000ff
7385f73343faSRob Clark #define A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__SHIFT		0
A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID(uint32_t val)7386f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID(uint32_t val)
7387f73343faSRob Clark {
7388f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__SHIFT) & A7XX_HLSQ_CONTROL_5_REG_LINELENGTHREGID__MASK;
7389f73343faSRob Clark }
7390f73343faSRob Clark #define A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__MASK	0x0000ff00
7391f73343faSRob Clark #define A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__SHIFT	8
A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID(uint32_t val)7392f73343faSRob Clark static inline uint32_t A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID(uint32_t val)
7393f73343faSRob Clark {
7394f73343faSRob Clark 	return ((val) << A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__SHIFT) & A7XX_HLSQ_CONTROL_5_REG_FOVEATIONQUALITYREGID__MASK;
7395f73343faSRob Clark }
7396f73343faSRob Clark 
7397c28c82e9SRob Clark #define REG_A6XX_HLSQ_CS_CNTL					0x0000b987
7398c28c82e9SRob Clark #define A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK			0x000000ff
7399c28c82e9SRob Clark #define A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_CS_CNTL_CONSTLEN(uint32_t val)7400c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_CONSTLEN(uint32_t val)
7401c28c82e9SRob Clark {
7402c28c82e9SRob Clark 	return ((val >> 2) << A6XX_HLSQ_CS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_CS_CNTL_CONSTLEN__MASK;
7403c28c82e9SRob Clark }
7404c28c82e9SRob Clark #define A6XX_HLSQ_CS_CNTL_ENABLED				0x00000100
7405c28c82e9SRob Clark 
74062d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_0				0x0000b990
74072d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK			0x00000003
74082d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT			0
A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)74092d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM(uint32_t val)
74102d756322SRob Clark {
74112d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_KERNELDIM__MASK;
74122d756322SRob Clark }
74132d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK			0x00000ffc
74142d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT		2
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)74152d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX(uint32_t val)
74162d756322SRob Clark {
74172d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEX__MASK;
74182d756322SRob Clark }
74192d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK			0x003ff000
74202d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT		12
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)74212d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY(uint32_t val)
74222d756322SRob Clark {
74232d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEY__MASK;
74242d756322SRob Clark }
74252d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK			0xffc00000
74262d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT		22
A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)74272d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ(uint32_t val)
74282d756322SRob Clark {
74292d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__SHIFT) & A6XX_HLSQ_CS_NDRANGE_0_LOCALSIZEZ__MASK;
74302d756322SRob Clark }
74312d756322SRob Clark 
74322d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_1				0x0000b991
74332d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK		0xffffffff
74342d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X(uint32_t val)74352d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X(uint32_t val)
74362d756322SRob Clark {
74372d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_1_GLOBALSIZE_X__MASK;
74382d756322SRob Clark }
74392d756322SRob Clark 
74402d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_2				0x0000b992
74412d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK		0xffffffff
74422d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X(uint32_t val)74432d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X(uint32_t val)
74442d756322SRob Clark {
74452d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__SHIFT) & A6XX_HLSQ_CS_NDRANGE_2_GLOBALOFF_X__MASK;
74462d756322SRob Clark }
74472d756322SRob Clark 
74482d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_3				0x0000b993
74492d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK		0xffffffff
74502d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y(uint32_t val)74512d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y(uint32_t val)
74522d756322SRob Clark {
74532d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_3_GLOBALSIZE_Y__MASK;
74542d756322SRob Clark }
74552d756322SRob Clark 
74562d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_4				0x0000b994
74572d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK		0xffffffff
74582d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y(uint32_t val)74592d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y(uint32_t val)
74602d756322SRob Clark {
74612d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__SHIFT) & A6XX_HLSQ_CS_NDRANGE_4_GLOBALOFF_Y__MASK;
74622d756322SRob Clark }
74632d756322SRob Clark 
74642d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_5				0x0000b995
74652d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK		0xffffffff
74662d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z(uint32_t val)74672d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z(uint32_t val)
74682d756322SRob Clark {
74692d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_5_GLOBALSIZE_Z__MASK;
74702d756322SRob Clark }
74712d756322SRob Clark 
74722d756322SRob Clark #define REG_A6XX_HLSQ_CS_NDRANGE_6				0x0000b996
74732d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK		0xffffffff
74742d756322SRob Clark #define A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT		0
A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z(uint32_t val)74752d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z(uint32_t val)
74762d756322SRob Clark {
74772d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__SHIFT) & A6XX_HLSQ_CS_NDRANGE_6_GLOBALOFF_Z__MASK;
74782d756322SRob Clark }
74792d756322SRob Clark 
74802d756322SRob Clark #define REG_A6XX_HLSQ_CS_CNTL_0					0x0000b997
74812d756322SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK			0x000000ff
74822d756322SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT			0
A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)74832d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID(uint32_t val)
74842d756322SRob Clark {
74852d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_WGIDCONSTID__MASK;
74862d756322SRob Clark }
7487cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID__MASK			0x0000ff00
7488cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID__SHIFT		8
A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID(uint32_t val)7489cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID(uint32_t val)
74902d756322SRob Clark {
7491cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_WGSIZECONSTID__MASK;
74922d756322SRob Clark }
7493cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID__MASK		0x00ff0000
7494cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID__SHIFT		16
A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID(uint32_t val)7495cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID(uint32_t val)
74962d756322SRob Clark {
7497cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_WGOFFSETCONSTID__MASK;
74982d756322SRob Clark }
74992d756322SRob Clark #define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK			0xff000000
75002d756322SRob Clark #define A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT			24
A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)75012d756322SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID(uint32_t val)
75022d756322SRob Clark {
75032d756322SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__SHIFT) & A6XX_HLSQ_CS_CNTL_0_LOCALIDREGID__MASK;
75042d756322SRob Clark }
75052d756322SRob Clark 
7506cc4c26d4SRob Clark #define REG_A6XX_HLSQ_CS_CNTL_1					0x0000b998
7507cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID__MASK		0x000000ff
7508cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID__SHIFT		0
A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID(uint32_t val)7509cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID(uint32_t val)
7510cc4c26d4SRob Clark {
7511cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID__SHIFT) & A6XX_HLSQ_CS_CNTL_1_LINEARLOCALIDREGID__MASK;
7512cc4c26d4SRob Clark }
7513cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_SINGLE_SP_CORE			0x00000100
7514cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_THREADSIZE__MASK			0x00000200
7515cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_THREADSIZE__SHIFT			9
A6XX_HLSQ_CS_CNTL_1_THREADSIZE(enum a6xx_threadsize val)7516cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_CS_CNTL_1_THREADSIZE(enum a6xx_threadsize val)
7517cc4c26d4SRob Clark {
7518cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_CS_CNTL_1_THREADSIZE__SHIFT) & A6XX_HLSQ_CS_CNTL_1_THREADSIZE__MASK;
7519cc4c26d4SRob Clark }
7520cc4c26d4SRob Clark #define A6XX_HLSQ_CS_CNTL_1_THREADSIZE_SCALAR			0x00000400
7521c28c82e9SRob Clark 
75222d756322SRob Clark #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_X				0x0000b999
75232d756322SRob Clark 
75242d756322SRob Clark #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Y				0x0000b99a
75252d756322SRob Clark 
75262d756322SRob Clark #define REG_A6XX_HLSQ_CS_KERNEL_GROUP_Z				0x0000b99b
75272d756322SRob Clark 
7528c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_CMD			0x0000b9a0
7529c28c82e9SRob Clark 
7530c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR		0x0000b9a1
7531cc4c26d4SRob Clark #define A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR__MASK		0xffffffff
7532cc4c26d4SRob Clark #define A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR__SHIFT		0
A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR(uint32_t val)7533cc4c26d4SRob Clark static inline uint32_t A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR(uint32_t val)
7534cc4c26d4SRob Clark {
7535cc4c26d4SRob Clark 	return ((val) << A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR__SHIFT) & A6XX_HLSQ_LOAD_STATE_FRAG_EXT_SRC_ADDR__MASK;
7536cc4c26d4SRob Clark }
7537c28c82e9SRob Clark 
7538c28c82e9SRob Clark #define REG_A6XX_HLSQ_LOAD_STATE_FRAG_DATA			0x0000b9a3
7539c28c82e9SRob Clark 
REG_A6XX_HLSQ_CS_BINDLESS_BASE(uint32_t i0)7540c28c82e9SRob Clark static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; }
7541c28c82e9SRob Clark 
REG_A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR(uint32_t i0)7542f73343faSRob Clark static inline uint32_t REG_A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR(uint32_t i0) { return 0x0000b9c0 + 0x2*i0; }
7543f73343faSRob Clark #define A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK	0x00000003
7544f73343faSRob Clark #define A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT	0
A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)7545f73343faSRob Clark static inline uint32_t A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)
7546f73343faSRob Clark {
7547f73343faSRob Clark 	return ((val) << A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT) & A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK;
7548f73343faSRob Clark }
7549f73343faSRob Clark #define A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK	0xfffffffc
7550f73343faSRob Clark #define A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT	2
A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)7551f73343faSRob Clark static inline uint32_t A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)
7552f73343faSRob Clark {
7553f73343faSRob Clark 	return ((val >> 2) << A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT) & A6XX_HLSQ_CS_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK;
7554f73343faSRob Clark }
7555c28c82e9SRob Clark 
755657cfe41cSRob Clark #define REG_A6XX_HLSQ_CS_UNKNOWN_B9D0				0x0000b9d0
755757cfe41cSRob Clark #define A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE__MASK		0x0000001f
755857cfe41cSRob Clark #define A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE__SHIFT		0
A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE(uint32_t val)755957cfe41cSRob Clark static inline uint32_t A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE(uint32_t val)
756057cfe41cSRob Clark {
756157cfe41cSRob Clark 	return ((val) << A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE__SHIFT) & A6XX_HLSQ_CS_UNKNOWN_B9D0_SHARED_SIZE__MASK;
756257cfe41cSRob Clark }
756357cfe41cSRob Clark #define A6XX_HLSQ_CS_UNKNOWN_B9D0_UNK5				0x00000020
756457cfe41cSRob Clark #define A6XX_HLSQ_CS_UNKNOWN_B9D0_UNK6				0x00000040
756557cfe41cSRob Clark 
7566c28c82e9SRob Clark #define REG_A6XX_HLSQ_DRAW_CMD					0x0000bb00
7567c28c82e9SRob Clark #define A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK			0x000000ff
7568c28c82e9SRob Clark #define A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT			0
A6XX_HLSQ_DRAW_CMD_STATE_ID(uint32_t val)7569c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_DRAW_CMD_STATE_ID(uint32_t val)
7570c28c82e9SRob Clark {
7571c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_DRAW_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DRAW_CMD_STATE_ID__MASK;
7572c28c82e9SRob Clark }
7573c28c82e9SRob Clark 
7574c28c82e9SRob Clark #define REG_A6XX_HLSQ_DISPATCH_CMD				0x0000bb01
7575c28c82e9SRob Clark #define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK			0x000000ff
7576c28c82e9SRob Clark #define A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT			0
A6XX_HLSQ_DISPATCH_CMD_STATE_ID(uint32_t val)7577c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_DISPATCH_CMD_STATE_ID(uint32_t val)
7578c28c82e9SRob Clark {
7579c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_DISPATCH_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_DISPATCH_CMD_STATE_ID__MASK;
7580c28c82e9SRob Clark }
7581c28c82e9SRob Clark 
7582c28c82e9SRob Clark #define REG_A6XX_HLSQ_EVENT_CMD					0x0000bb02
7583c28c82e9SRob Clark #define A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK			0x00ff0000
7584c28c82e9SRob Clark #define A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT			16
A6XX_HLSQ_EVENT_CMD_STATE_ID(uint32_t val)7585c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_EVENT_CMD_STATE_ID(uint32_t val)
7586c28c82e9SRob Clark {
7587c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_EVENT_CMD_STATE_ID__MASK;
7588c28c82e9SRob Clark }
7589c28c82e9SRob Clark #define A6XX_HLSQ_EVENT_CMD_EVENT__MASK				0x0000007f
7590c28c82e9SRob Clark #define A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT			0
A6XX_HLSQ_EVENT_CMD_EVENT(enum vgt_event_type val)7591c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_EVENT_CMD_EVENT(enum vgt_event_type val)
7592c28c82e9SRob Clark {
7593c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_EVENT_CMD_EVENT__MASK;
7594c28c82e9SRob Clark }
7595c28c82e9SRob Clark 
7596c28c82e9SRob Clark #define REG_A6XX_HLSQ_INVALIDATE_CMD				0x0000bb08
7597c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_VS_STATE			0x00000001
7598c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_HS_STATE			0x00000002
7599c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_DS_STATE			0x00000004
7600c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_GS_STATE			0x00000008
7601c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_FS_STATE			0x00000010
7602c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_CS_STATE			0x00000020
7603c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_CS_IBO				0x00000040
7604c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_GFX_IBO			0x00000080
7605c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_CS_SHARED_CONST		0x00080000
7606c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_GFX_SHARED_CONST		0x00000100
7607c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__MASK		0x00003e00
7608c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__SHIFT		9
A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS(uint32_t val)7609c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS(uint32_t val)
7610c28c82e9SRob Clark {
7611c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__SHIFT) & A6XX_HLSQ_INVALIDATE_CMD_CS_BINDLESS__MASK;
7612c28c82e9SRob Clark }
7613c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__MASK		0x0007c000
7614c28c82e9SRob Clark #define A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__SHIFT		14
A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS(uint32_t val)7615c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS(uint32_t val)
7616c28c82e9SRob Clark {
7617c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__SHIFT) & A6XX_HLSQ_INVALIDATE_CMD_GFX_BINDLESS__MASK;
7618c28c82e9SRob Clark }
76192d756322SRob Clark 
76202d756322SRob Clark #define REG_A6XX_HLSQ_FS_CNTL					0x0000bb10
76212d756322SRob Clark #define A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK			0x000000ff
76222d756322SRob Clark #define A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT			0
A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val)76232d756322SRob Clark static inline uint32_t A6XX_HLSQ_FS_CNTL_CONSTLEN(uint32_t val)
76242d756322SRob Clark {
76252d756322SRob Clark 	return ((val >> 2) << A6XX_HLSQ_FS_CNTL_CONSTLEN__SHIFT) & A6XX_HLSQ_FS_CNTL_CONSTLEN__MASK;
76262d756322SRob Clark }
7627c28c82e9SRob Clark #define A6XX_HLSQ_FS_CNTL_ENABLED				0x00000100
76282d756322SRob Clark 
7629c28c82e9SRob Clark #define REG_A6XX_HLSQ_SHARED_CONSTS				0x0000bb11
7630c28c82e9SRob Clark #define A6XX_HLSQ_SHARED_CONSTS_ENABLE				0x00000001
7631c28c82e9SRob Clark 
REG_A6XX_HLSQ_BINDLESS_BASE(uint32_t i0)7632c28c82e9SRob Clark static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE(uint32_t i0) { return 0x0000bb20 + 0x2*i0; }
7633c28c82e9SRob Clark 
REG_A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR(uint32_t i0)7634f73343faSRob Clark static inline uint32_t REG_A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR(uint32_t i0) { return 0x0000bb20 + 0x2*i0; }
7635f73343faSRob Clark #define A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK	0x00000003
7636f73343faSRob Clark #define A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT	0
A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)7637f73343faSRob Clark static inline uint32_t A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE(enum a6xx_bindless_descriptor_size val)
7638f73343faSRob Clark {
7639f73343faSRob Clark 	return ((val) << A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__SHIFT) & A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_DESC_SIZE__MASK;
7640f73343faSRob Clark }
7641f73343faSRob Clark #define A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK		0xfffffffc
7642f73343faSRob Clark #define A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT		2
A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)7643f73343faSRob Clark static inline uint32_t A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR(uint32_t val)
7644f73343faSRob Clark {
7645f73343faSRob Clark 	return ((val >> 2) << A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR__SHIFT) & A6XX_HLSQ_BINDLESS_BASE_DESCRIPTOR_ADDR__MASK;
7646f73343faSRob Clark }
7647c28c82e9SRob Clark 
7648c28c82e9SRob Clark #define REG_A6XX_HLSQ_2D_EVENT_CMD				0x0000bd80
7649c28c82e9SRob Clark #define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK			0x0000ff00
7650c28c82e9SRob Clark #define A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT			8
A6XX_HLSQ_2D_EVENT_CMD_STATE_ID(uint32_t val)7651c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_STATE_ID(uint32_t val)
7652c28c82e9SRob Clark {
7653c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_STATE_ID__MASK;
7654c28c82e9SRob Clark }
7655c28c82e9SRob Clark #define A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK			0x0000007f
7656c28c82e9SRob Clark #define A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT			0
A6XX_HLSQ_2D_EVENT_CMD_EVENT(enum vgt_event_type val)7657c28c82e9SRob Clark static inline uint32_t A6XX_HLSQ_2D_EVENT_CMD_EVENT(enum vgt_event_type val)
7658c28c82e9SRob Clark {
7659c28c82e9SRob Clark 	return ((val) << A6XX_HLSQ_2D_EVENT_CMD_EVENT__SHIFT) & A6XX_HLSQ_2D_EVENT_CMD_EVENT__MASK;
7660c28c82e9SRob Clark }
76612d756322SRob Clark 
76622d756322SRob Clark #define REG_A6XX_HLSQ_UNKNOWN_BE00				0x0000be00
76632d756322SRob Clark 
76642d756322SRob Clark #define REG_A6XX_HLSQ_UNKNOWN_BE01				0x0000be01
76652d756322SRob Clark 
7666f73343faSRob Clark #define REG_A6XX_HLSQ_DBG_ECO_CNTL				0x0000be04
76672d756322SRob Clark 
7668cc4c26d4SRob Clark #define REG_A6XX_HLSQ_ADDR_MODE_CNTL				0x0000be05
7669cc4c26d4SRob Clark 
7670cc4c26d4SRob Clark #define REG_A6XX_HLSQ_UNKNOWN_BE08				0x0000be08
7671cc4c26d4SRob Clark 
REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL(uint32_t i0)7672cc4c26d4SRob Clark static inline uint32_t REG_A6XX_HLSQ_PERFCTR_HLSQ_SEL(uint32_t i0) { return 0x0000be10 + 0x1*i0; }
7673cc4c26d4SRob Clark 
767457cfe41cSRob Clark #define REG_A6XX_HLSQ_CONTEXT_SWITCH_GFX_PREEMPTION_SAFE_MODE	0x0000be22
767557cfe41cSRob Clark 
7676f73343faSRob Clark #define REG_A7XX_SP_AHB_READ_APERTURE				0x0000c000
7677f73343faSRob Clark 
7678c28c82e9SRob Clark #define REG_A6XX_CP_EVENT_START					0x0000d600
7679c28c82e9SRob Clark #define A6XX_CP_EVENT_START_STATE_ID__MASK			0x000000ff
7680c28c82e9SRob Clark #define A6XX_CP_EVENT_START_STATE_ID__SHIFT			0
A6XX_CP_EVENT_START_STATE_ID(uint32_t val)7681c28c82e9SRob Clark static inline uint32_t A6XX_CP_EVENT_START_STATE_ID(uint32_t val)
7682c28c82e9SRob Clark {
7683c28c82e9SRob Clark 	return ((val) << A6XX_CP_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_EVENT_START_STATE_ID__MASK;
7684c28c82e9SRob Clark }
7685c28c82e9SRob Clark 
7686c28c82e9SRob Clark #define REG_A6XX_CP_EVENT_END					0x0000d601
7687c28c82e9SRob Clark #define A6XX_CP_EVENT_END_STATE_ID__MASK			0x000000ff
7688c28c82e9SRob Clark #define A6XX_CP_EVENT_END_STATE_ID__SHIFT			0
A6XX_CP_EVENT_END_STATE_ID(uint32_t val)7689c28c82e9SRob Clark static inline uint32_t A6XX_CP_EVENT_END_STATE_ID(uint32_t val)
7690c28c82e9SRob Clark {
7691c28c82e9SRob Clark 	return ((val) << A6XX_CP_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_EVENT_END_STATE_ID__MASK;
7692c28c82e9SRob Clark }
7693c28c82e9SRob Clark 
7694c28c82e9SRob Clark #define REG_A6XX_CP_2D_EVENT_START				0x0000d700
7695c28c82e9SRob Clark #define A6XX_CP_2D_EVENT_START_STATE_ID__MASK			0x000000ff
7696c28c82e9SRob Clark #define A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT			0
A6XX_CP_2D_EVENT_START_STATE_ID(uint32_t val)7697c28c82e9SRob Clark static inline uint32_t A6XX_CP_2D_EVENT_START_STATE_ID(uint32_t val)
7698c28c82e9SRob Clark {
7699c28c82e9SRob Clark 	return ((val) << A6XX_CP_2D_EVENT_START_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_START_STATE_ID__MASK;
7700c28c82e9SRob Clark }
7701c28c82e9SRob Clark 
7702c28c82e9SRob Clark #define REG_A6XX_CP_2D_EVENT_END				0x0000d701
7703c28c82e9SRob Clark #define A6XX_CP_2D_EVENT_END_STATE_ID__MASK			0x000000ff
7704c28c82e9SRob Clark #define A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT			0
A6XX_CP_2D_EVENT_END_STATE_ID(uint32_t val)7705c28c82e9SRob Clark static inline uint32_t A6XX_CP_2D_EVENT_END_STATE_ID(uint32_t val)
7706c28c82e9SRob Clark {
7707c28c82e9SRob Clark 	return ((val) << A6XX_CP_2D_EVENT_END_STATE_ID__SHIFT) & A6XX_CP_2D_EVENT_END_STATE_ID__MASK;
7708c28c82e9SRob Clark }
7709c28c82e9SRob Clark 
77102d756322SRob Clark #define REG_A6XX_TEX_SAMP_0					0x00000000
77112d756322SRob Clark #define A6XX_TEX_SAMP_0_MIPFILTER_LINEAR_NEAR			0x00000001
77122d756322SRob Clark #define A6XX_TEX_SAMP_0_XY_MAG__MASK				0x00000006
77132d756322SRob Clark #define A6XX_TEX_SAMP_0_XY_MAG__SHIFT				1
A6XX_TEX_SAMP_0_XY_MAG(enum a6xx_tex_filter val)77142d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_XY_MAG(enum a6xx_tex_filter val)
77152d756322SRob Clark {
77162d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_XY_MAG__SHIFT) & A6XX_TEX_SAMP_0_XY_MAG__MASK;
77172d756322SRob Clark }
77182d756322SRob Clark #define A6XX_TEX_SAMP_0_XY_MIN__MASK				0x00000018
77192d756322SRob Clark #define A6XX_TEX_SAMP_0_XY_MIN__SHIFT				3
A6XX_TEX_SAMP_0_XY_MIN(enum a6xx_tex_filter val)77202d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_XY_MIN(enum a6xx_tex_filter val)
77212d756322SRob Clark {
77222d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_XY_MIN__SHIFT) & A6XX_TEX_SAMP_0_XY_MIN__MASK;
77232d756322SRob Clark }
77242d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_S__MASK				0x000000e0
77252d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_S__SHIFT				5
A6XX_TEX_SAMP_0_WRAP_S(enum a6xx_tex_clamp val)77262d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_WRAP_S(enum a6xx_tex_clamp val)
77272d756322SRob Clark {
77282d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_WRAP_S__SHIFT) & A6XX_TEX_SAMP_0_WRAP_S__MASK;
77292d756322SRob Clark }
77302d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_T__MASK				0x00000700
77312d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_T__SHIFT				8
A6XX_TEX_SAMP_0_WRAP_T(enum a6xx_tex_clamp val)77322d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_WRAP_T(enum a6xx_tex_clamp val)
77332d756322SRob Clark {
77342d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_WRAP_T__SHIFT) & A6XX_TEX_SAMP_0_WRAP_T__MASK;
77352d756322SRob Clark }
77362d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_R__MASK				0x00003800
77372d756322SRob Clark #define A6XX_TEX_SAMP_0_WRAP_R__SHIFT				11
A6XX_TEX_SAMP_0_WRAP_R(enum a6xx_tex_clamp val)77382d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_WRAP_R(enum a6xx_tex_clamp val)
77392d756322SRob Clark {
77402d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_WRAP_R__SHIFT) & A6XX_TEX_SAMP_0_WRAP_R__MASK;
77412d756322SRob Clark }
77422d756322SRob Clark #define A6XX_TEX_SAMP_0_ANISO__MASK				0x0001c000
77432d756322SRob Clark #define A6XX_TEX_SAMP_0_ANISO__SHIFT				14
A6XX_TEX_SAMP_0_ANISO(enum a6xx_tex_aniso val)77442d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_ANISO(enum a6xx_tex_aniso val)
77452d756322SRob Clark {
77462d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_0_ANISO__SHIFT) & A6XX_TEX_SAMP_0_ANISO__MASK;
77472d756322SRob Clark }
77482d756322SRob Clark #define A6XX_TEX_SAMP_0_LOD_BIAS__MASK				0xfff80000
77492d756322SRob Clark #define A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT				19
A6XX_TEX_SAMP_0_LOD_BIAS(float val)77502d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_0_LOD_BIAS(float val)
77512d756322SRob Clark {
77522d756322SRob Clark 	return ((((int32_t)(val * 256.0))) << A6XX_TEX_SAMP_0_LOD_BIAS__SHIFT) & A6XX_TEX_SAMP_0_LOD_BIAS__MASK;
77532d756322SRob Clark }
77542d756322SRob Clark 
77552d756322SRob Clark #define REG_A6XX_TEX_SAMP_1					0x00000001
775657cfe41cSRob Clark #define A6XX_TEX_SAMP_1_CLAMPENABLE				0x00000001
77572d756322SRob Clark #define A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK			0x0000000e
77582d756322SRob Clark #define A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT			1
A6XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)77592d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_1_COMPARE_FUNC(enum adreno_compare_func val)
77602d756322SRob Clark {
77612d756322SRob Clark 	return ((val) << A6XX_TEX_SAMP_1_COMPARE_FUNC__SHIFT) & A6XX_TEX_SAMP_1_COMPARE_FUNC__MASK;
77622d756322SRob Clark }
77632d756322SRob Clark #define A6XX_TEX_SAMP_1_CUBEMAPSEAMLESSFILTOFF			0x00000010
77642d756322SRob Clark #define A6XX_TEX_SAMP_1_UNNORM_COORDS				0x00000020
77652d756322SRob Clark #define A6XX_TEX_SAMP_1_MIPFILTER_LINEAR_FAR			0x00000040
77662d756322SRob Clark #define A6XX_TEX_SAMP_1_MAX_LOD__MASK				0x000fff00
77672d756322SRob Clark #define A6XX_TEX_SAMP_1_MAX_LOD__SHIFT				8
A6XX_TEX_SAMP_1_MAX_LOD(float val)77682d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_1_MAX_LOD(float val)
77692d756322SRob Clark {
77702d756322SRob Clark 	return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MAX_LOD__SHIFT) & A6XX_TEX_SAMP_1_MAX_LOD__MASK;
77712d756322SRob Clark }
77722d756322SRob Clark #define A6XX_TEX_SAMP_1_MIN_LOD__MASK				0xfff00000
77732d756322SRob Clark #define A6XX_TEX_SAMP_1_MIN_LOD__SHIFT				20
A6XX_TEX_SAMP_1_MIN_LOD(float val)77742d756322SRob Clark static inline uint32_t A6XX_TEX_SAMP_1_MIN_LOD(float val)
77752d756322SRob Clark {
77762d756322SRob Clark 	return ((((uint32_t)(val * 256.0))) << A6XX_TEX_SAMP_1_MIN_LOD__SHIFT) & A6XX_TEX_SAMP_1_MIN_LOD__MASK;
77772d756322SRob Clark }
77782d756322SRob Clark 
77792d756322SRob Clark #define REG_A6XX_TEX_SAMP_2					0x00000002
7780c28c82e9SRob Clark #define A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK			0x00000003
7781c28c82e9SRob Clark #define A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT			0
A6XX_TEX_SAMP_2_REDUCTION_MODE(enum a6xx_reduction_mode val)7782c28c82e9SRob Clark static inline uint32_t A6XX_TEX_SAMP_2_REDUCTION_MODE(enum a6xx_reduction_mode val)
7783c28c82e9SRob Clark {
7784c28c82e9SRob Clark 	return ((val) << A6XX_TEX_SAMP_2_REDUCTION_MODE__SHIFT) & A6XX_TEX_SAMP_2_REDUCTION_MODE__MASK;
7785c28c82e9SRob Clark }
7786c28c82e9SRob Clark #define A6XX_TEX_SAMP_2_CHROMA_LINEAR				0x00000020
7787cc4c26d4SRob Clark #define A6XX_TEX_SAMP_2_BCOLOR__MASK				0xffffff80
7788cc4c26d4SRob Clark #define A6XX_TEX_SAMP_2_BCOLOR__SHIFT				7
A6XX_TEX_SAMP_2_BCOLOR(uint32_t val)7789cc4c26d4SRob Clark static inline uint32_t A6XX_TEX_SAMP_2_BCOLOR(uint32_t val)
77902d756322SRob Clark {
7791cc4c26d4SRob Clark 	return ((val) << A6XX_TEX_SAMP_2_BCOLOR__SHIFT) & A6XX_TEX_SAMP_2_BCOLOR__MASK;
77922d756322SRob Clark }
77932d756322SRob Clark 
77942d756322SRob Clark #define REG_A6XX_TEX_SAMP_3					0x00000003
77952d756322SRob Clark 
77962d756322SRob Clark #define REG_A6XX_TEX_CONST_0					0x00000000
77972d756322SRob Clark #define A6XX_TEX_CONST_0_TILE_MODE__MASK			0x00000003
77982d756322SRob Clark #define A6XX_TEX_CONST_0_TILE_MODE__SHIFT			0
A6XX_TEX_CONST_0_TILE_MODE(enum a6xx_tile_mode val)77992d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_TILE_MODE(enum a6xx_tile_mode val)
78002d756322SRob Clark {
78012d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_TILE_MODE__SHIFT) & A6XX_TEX_CONST_0_TILE_MODE__MASK;
78022d756322SRob Clark }
78032d756322SRob Clark #define A6XX_TEX_CONST_0_SRGB					0x00000004
78042d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_X__MASK				0x00000070
78052d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_X__SHIFT				4
A6XX_TEX_CONST_0_SWIZ_X(enum a6xx_tex_swiz val)78062d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SWIZ_X(enum a6xx_tex_swiz val)
78072d756322SRob Clark {
78082d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SWIZ_X__SHIFT) & A6XX_TEX_CONST_0_SWIZ_X__MASK;
78092d756322SRob Clark }
78102d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_Y__MASK				0x00000380
78112d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_Y__SHIFT				7
A6XX_TEX_CONST_0_SWIZ_Y(enum a6xx_tex_swiz val)78122d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Y(enum a6xx_tex_swiz val)
78132d756322SRob Clark {
78142d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SWIZ_Y__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Y__MASK;
78152d756322SRob Clark }
78162d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_Z__MASK				0x00001c00
78172d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_Z__SHIFT				10
A6XX_TEX_CONST_0_SWIZ_Z(enum a6xx_tex_swiz val)78182d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SWIZ_Z(enum a6xx_tex_swiz val)
78192d756322SRob Clark {
78202d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SWIZ_Z__SHIFT) & A6XX_TEX_CONST_0_SWIZ_Z__MASK;
78212d756322SRob Clark }
78222d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_W__MASK				0x0000e000
78232d756322SRob Clark #define A6XX_TEX_CONST_0_SWIZ_W__SHIFT				13
A6XX_TEX_CONST_0_SWIZ_W(enum a6xx_tex_swiz val)78242d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SWIZ_W(enum a6xx_tex_swiz val)
78252d756322SRob Clark {
78262d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SWIZ_W__SHIFT) & A6XX_TEX_CONST_0_SWIZ_W__MASK;
78272d756322SRob Clark }
78282d756322SRob Clark #define A6XX_TEX_CONST_0_MIPLVLS__MASK				0x000f0000
78292d756322SRob Clark #define A6XX_TEX_CONST_0_MIPLVLS__SHIFT				16
A6XX_TEX_CONST_0_MIPLVLS(uint32_t val)78302d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_MIPLVLS(uint32_t val)
78312d756322SRob Clark {
78322d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_MIPLVLS__SHIFT) & A6XX_TEX_CONST_0_MIPLVLS__MASK;
78332d756322SRob Clark }
7834c28c82e9SRob Clark #define A6XX_TEX_CONST_0_CHROMA_MIDPOINT_X			0x00010000
7835c28c82e9SRob Clark #define A6XX_TEX_CONST_0_CHROMA_MIDPOINT_Y			0x00040000
7836ccdf7e28SRob Clark #define A6XX_TEX_CONST_0_SAMPLES__MASK				0x00300000
7837ccdf7e28SRob Clark #define A6XX_TEX_CONST_0_SAMPLES__SHIFT				20
A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val)7838ccdf7e28SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SAMPLES(enum a3xx_msaa_samples val)
7839ccdf7e28SRob Clark {
7840ccdf7e28SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SAMPLES__SHIFT) & A6XX_TEX_CONST_0_SAMPLES__MASK;
7841ccdf7e28SRob Clark }
78422d756322SRob Clark #define A6XX_TEX_CONST_0_FMT__MASK				0x3fc00000
78432d756322SRob Clark #define A6XX_TEX_CONST_0_FMT__SHIFT				22
A6XX_TEX_CONST_0_FMT(enum a6xx_format val)7844c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_0_FMT(enum a6xx_format val)
78452d756322SRob Clark {
78462d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_FMT__SHIFT) & A6XX_TEX_CONST_0_FMT__MASK;
78472d756322SRob Clark }
78482d756322SRob Clark #define A6XX_TEX_CONST_0_SWAP__MASK				0xc0000000
78492d756322SRob Clark #define A6XX_TEX_CONST_0_SWAP__SHIFT				30
A6XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)78502d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_0_SWAP(enum a3xx_color_swap val)
78512d756322SRob Clark {
78522d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_0_SWAP__SHIFT) & A6XX_TEX_CONST_0_SWAP__MASK;
78532d756322SRob Clark }
78542d756322SRob Clark 
78552d756322SRob Clark #define REG_A6XX_TEX_CONST_1					0x00000001
78562d756322SRob Clark #define A6XX_TEX_CONST_1_WIDTH__MASK				0x00007fff
78572d756322SRob Clark #define A6XX_TEX_CONST_1_WIDTH__SHIFT				0
A6XX_TEX_CONST_1_WIDTH(uint32_t val)78582d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_1_WIDTH(uint32_t val)
78592d756322SRob Clark {
78602d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_1_WIDTH__SHIFT) & A6XX_TEX_CONST_1_WIDTH__MASK;
78612d756322SRob Clark }
78622d756322SRob Clark #define A6XX_TEX_CONST_1_HEIGHT__MASK				0x3fff8000
78632d756322SRob Clark #define A6XX_TEX_CONST_1_HEIGHT__SHIFT				15
A6XX_TEX_CONST_1_HEIGHT(uint32_t val)78642d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_1_HEIGHT(uint32_t val)
78652d756322SRob Clark {
78662d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_1_HEIGHT__SHIFT) & A6XX_TEX_CONST_1_HEIGHT__MASK;
78672d756322SRob Clark }
78682d756322SRob Clark 
78692d756322SRob Clark #define REG_A6XX_TEX_CONST_2					0x00000002
7870f73343faSRob Clark #define A6XX_TEX_CONST_2_STRUCTSIZETEXELS__MASK			0x0000fff0
7871f73343faSRob Clark #define A6XX_TEX_CONST_2_STRUCTSIZETEXELS__SHIFT		4
A6XX_TEX_CONST_2_STRUCTSIZETEXELS(uint32_t val)7872f73343faSRob Clark static inline uint32_t A6XX_TEX_CONST_2_STRUCTSIZETEXELS(uint32_t val)
7873f73343faSRob Clark {
7874f73343faSRob Clark 	return ((val) << A6XX_TEX_CONST_2_STRUCTSIZETEXELS__SHIFT) & A6XX_TEX_CONST_2_STRUCTSIZETEXELS__MASK;
7875f73343faSRob Clark }
7876f73343faSRob Clark #define A6XX_TEX_CONST_2_STARTOFFSETTEXELS__MASK		0x003f0000
7877f73343faSRob Clark #define A6XX_TEX_CONST_2_STARTOFFSETTEXELS__SHIFT		16
A6XX_TEX_CONST_2_STARTOFFSETTEXELS(uint32_t val)7878f73343faSRob Clark static inline uint32_t A6XX_TEX_CONST_2_STARTOFFSETTEXELS(uint32_t val)
7879f73343faSRob Clark {
7880f73343faSRob Clark 	return ((val) << A6XX_TEX_CONST_2_STARTOFFSETTEXELS__SHIFT) & A6XX_TEX_CONST_2_STARTOFFSETTEXELS__MASK;
7881f73343faSRob Clark }
7882c28c82e9SRob Clark #define A6XX_TEX_CONST_2_PITCHALIGN__MASK			0x0000000f
7883c28c82e9SRob Clark #define A6XX_TEX_CONST_2_PITCHALIGN__SHIFT			0
A6XX_TEX_CONST_2_PITCHALIGN(uint32_t val)7884c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_2_PITCHALIGN(uint32_t val)
78852d756322SRob Clark {
7886c28c82e9SRob Clark 	return ((val) << A6XX_TEX_CONST_2_PITCHALIGN__SHIFT) & A6XX_TEX_CONST_2_PITCHALIGN__MASK;
78872d756322SRob Clark }
78882d756322SRob Clark #define A6XX_TEX_CONST_2_PITCH__MASK				0x1fffff80
78892d756322SRob Clark #define A6XX_TEX_CONST_2_PITCH__SHIFT				7
A6XX_TEX_CONST_2_PITCH(uint32_t val)78902d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_2_PITCH(uint32_t val)
78912d756322SRob Clark {
78922d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_2_PITCH__SHIFT) & A6XX_TEX_CONST_2_PITCH__MASK;
78932d756322SRob Clark }
789457cfe41cSRob Clark #define A6XX_TEX_CONST_2_TYPE__MASK				0xe0000000
78952d756322SRob Clark #define A6XX_TEX_CONST_2_TYPE__SHIFT				29
A6XX_TEX_CONST_2_TYPE(enum a6xx_tex_type val)78962d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_2_TYPE(enum a6xx_tex_type val)
78972d756322SRob Clark {
78982d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_2_TYPE__SHIFT) & A6XX_TEX_CONST_2_TYPE__MASK;
78992d756322SRob Clark }
79002d756322SRob Clark 
79012d756322SRob Clark #define REG_A6XX_TEX_CONST_3					0x00000003
79022d756322SRob Clark #define A6XX_TEX_CONST_3_ARRAY_PITCH__MASK			0x00003fff
79032d756322SRob Clark #define A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT			0
A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)79042d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_3_ARRAY_PITCH(uint32_t val)
79052d756322SRob Clark {
79062d756322SRob Clark 	return ((val >> 12) << A6XX_TEX_CONST_3_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_3_ARRAY_PITCH__MASK;
79072d756322SRob Clark }
7908c28c82e9SRob Clark #define A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK			0x07800000
7909c28c82e9SRob Clark #define A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT			23
A6XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val)7910c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_3_MIN_LAYERSZ(uint32_t val)
7911c28c82e9SRob Clark {
7912c28c82e9SRob Clark 	return ((val >> 12) << A6XX_TEX_CONST_3_MIN_LAYERSZ__SHIFT) & A6XX_TEX_CONST_3_MIN_LAYERSZ__MASK;
7913c28c82e9SRob Clark }
7914c28c82e9SRob Clark #define A6XX_TEX_CONST_3_TILE_ALL				0x08000000
79152d756322SRob Clark #define A6XX_TEX_CONST_3_FLAG					0x10000000
79162d756322SRob Clark 
79172d756322SRob Clark #define REG_A6XX_TEX_CONST_4					0x00000004
79182d756322SRob Clark #define A6XX_TEX_CONST_4_BASE_LO__MASK				0xffffffe0
79192d756322SRob Clark #define A6XX_TEX_CONST_4_BASE_LO__SHIFT				5
A6XX_TEX_CONST_4_BASE_LO(uint32_t val)79202d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_4_BASE_LO(uint32_t val)
79212d756322SRob Clark {
79222d756322SRob Clark 	return ((val >> 5) << A6XX_TEX_CONST_4_BASE_LO__SHIFT) & A6XX_TEX_CONST_4_BASE_LO__MASK;
79232d756322SRob Clark }
79242d756322SRob Clark 
79252d756322SRob Clark #define REG_A6XX_TEX_CONST_5					0x00000005
79262d756322SRob Clark #define A6XX_TEX_CONST_5_BASE_HI__MASK				0x0001ffff
79272d756322SRob Clark #define A6XX_TEX_CONST_5_BASE_HI__SHIFT				0
A6XX_TEX_CONST_5_BASE_HI(uint32_t val)79282d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_5_BASE_HI(uint32_t val)
79292d756322SRob Clark {
79302d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_5_BASE_HI__SHIFT) & A6XX_TEX_CONST_5_BASE_HI__MASK;
79312d756322SRob Clark }
79322d756322SRob Clark #define A6XX_TEX_CONST_5_DEPTH__MASK				0x3ffe0000
79332d756322SRob Clark #define A6XX_TEX_CONST_5_DEPTH__SHIFT				17
A6XX_TEX_CONST_5_DEPTH(uint32_t val)79342d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_5_DEPTH(uint32_t val)
79352d756322SRob Clark {
79362d756322SRob Clark 	return ((val) << A6XX_TEX_CONST_5_DEPTH__SHIFT) & A6XX_TEX_CONST_5_DEPTH__MASK;
79372d756322SRob Clark }
79382d756322SRob Clark 
79392d756322SRob Clark #define REG_A6XX_TEX_CONST_6					0x00000006
7940f73343faSRob Clark #define A6XX_TEX_CONST_6_MIN_LOD_CLAMP__MASK			0x00000fff
7941f73343faSRob Clark #define A6XX_TEX_CONST_6_MIN_LOD_CLAMP__SHIFT			0
A6XX_TEX_CONST_6_MIN_LOD_CLAMP(float val)7942f73343faSRob Clark static inline uint32_t A6XX_TEX_CONST_6_MIN_LOD_CLAMP(float val)
7943f73343faSRob Clark {
7944f73343faSRob Clark 	return ((((uint32_t)(val * 256.0))) << A6XX_TEX_CONST_6_MIN_LOD_CLAMP__SHIFT) & A6XX_TEX_CONST_6_MIN_LOD_CLAMP__MASK;
7945f73343faSRob Clark }
7946c28c82e9SRob Clark #define A6XX_TEX_CONST_6_PLANE_PITCH__MASK			0xffffff00
7947c28c82e9SRob Clark #define A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT			8
A6XX_TEX_CONST_6_PLANE_PITCH(uint32_t val)7948c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_6_PLANE_PITCH(uint32_t val)
7949c28c82e9SRob Clark {
7950c28c82e9SRob Clark 	return ((val) << A6XX_TEX_CONST_6_PLANE_PITCH__SHIFT) & A6XX_TEX_CONST_6_PLANE_PITCH__MASK;
7951c28c82e9SRob Clark }
79522d756322SRob Clark 
79532d756322SRob Clark #define REG_A6XX_TEX_CONST_7					0x00000007
79542d756322SRob Clark #define A6XX_TEX_CONST_7_FLAG_LO__MASK				0xffffffe0
79552d756322SRob Clark #define A6XX_TEX_CONST_7_FLAG_LO__SHIFT				5
A6XX_TEX_CONST_7_FLAG_LO(uint32_t val)79562d756322SRob Clark static inline uint32_t A6XX_TEX_CONST_7_FLAG_LO(uint32_t val)
79572d756322SRob Clark {
79582d756322SRob Clark 	return ((val >> 5) << A6XX_TEX_CONST_7_FLAG_LO__SHIFT) & A6XX_TEX_CONST_7_FLAG_LO__MASK;
79592d756322SRob Clark }
79602d756322SRob Clark 
79612d756322SRob Clark #define REG_A6XX_TEX_CONST_8					0x00000008
7962a69c5ed2SRob Clark #define A6XX_TEX_CONST_8_FLAG_HI__MASK				0x0001ffff
7963a69c5ed2SRob Clark #define A6XX_TEX_CONST_8_FLAG_HI__SHIFT				0
A6XX_TEX_CONST_8_FLAG_HI(uint32_t val)7964a69c5ed2SRob Clark static inline uint32_t A6XX_TEX_CONST_8_FLAG_HI(uint32_t val)
79652d756322SRob Clark {
7966a69c5ed2SRob Clark 	return ((val) << A6XX_TEX_CONST_8_FLAG_HI__SHIFT) & A6XX_TEX_CONST_8_FLAG_HI__MASK;
79672d756322SRob Clark }
79682d756322SRob Clark 
79692d756322SRob Clark #define REG_A6XX_TEX_CONST_9					0x00000009
7970c28c82e9SRob Clark #define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK		0x0001ffff
7971c28c82e9SRob Clark #define A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT		0
A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)7972c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH(uint32_t val)
7973c28c82e9SRob Clark {
7974c28c82e9SRob Clark 	return ((val >> 4) << A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__SHIFT) & A6XX_TEX_CONST_9_FLAG_BUFFER_ARRAY_PITCH__MASK;
7975c28c82e9SRob Clark }
79762d756322SRob Clark 
79772d756322SRob Clark #define REG_A6XX_TEX_CONST_10					0x0000000a
7978c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK		0x0000007f
7979c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT		0
A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(uint32_t val)7980c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH(uint32_t val)
7981c28c82e9SRob Clark {
7982c28c82e9SRob Clark 	return ((val >> 6) << A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_PITCH__MASK;
7983c28c82e9SRob Clark }
7984c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK		0x00000f00
7985c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT		8
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(uint32_t val)7986c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW(uint32_t val)
7987c28c82e9SRob Clark {
7988c28c82e9SRob Clark 	return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGW__MASK;
7989c28c82e9SRob Clark }
7990c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK		0x0000f000
7991c28c82e9SRob Clark #define A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT		12
A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(uint32_t val)7992c28c82e9SRob Clark static inline uint32_t A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH(uint32_t val)
7993c28c82e9SRob Clark {
7994c28c82e9SRob Clark 	return ((val) << A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__SHIFT) & A6XX_TEX_CONST_10_FLAG_BUFFER_LOGH__MASK;
7995c28c82e9SRob Clark }
79962d756322SRob Clark 
79972d756322SRob Clark #define REG_A6XX_TEX_CONST_11					0x0000000b
79982d756322SRob Clark 
79992d756322SRob Clark #define REG_A6XX_TEX_CONST_12					0x0000000c
80002d756322SRob Clark 
80012d756322SRob Clark #define REG_A6XX_TEX_CONST_13					0x0000000d
80022d756322SRob Clark 
80032d756322SRob Clark #define REG_A6XX_TEX_CONST_14					0x0000000e
80042d756322SRob Clark 
80052d756322SRob Clark #define REG_A6XX_TEX_CONST_15					0x0000000f
80062d756322SRob Clark 
8007c28c82e9SRob Clark #define REG_A6XX_UBO_0						0x00000000
8008c28c82e9SRob Clark #define A6XX_UBO_0_BASE_LO__MASK				0xffffffff
8009c28c82e9SRob Clark #define A6XX_UBO_0_BASE_LO__SHIFT				0
A6XX_UBO_0_BASE_LO(uint32_t val)8010c28c82e9SRob Clark static inline uint32_t A6XX_UBO_0_BASE_LO(uint32_t val)
8011c28c82e9SRob Clark {
8012c28c82e9SRob Clark 	return ((val) << A6XX_UBO_0_BASE_LO__SHIFT) & A6XX_UBO_0_BASE_LO__MASK;
8013c28c82e9SRob Clark }
8014c28c82e9SRob Clark 
8015c28c82e9SRob Clark #define REG_A6XX_UBO_1						0x00000001
8016c28c82e9SRob Clark #define A6XX_UBO_1_BASE_HI__MASK				0x0001ffff
8017c28c82e9SRob Clark #define A6XX_UBO_1_BASE_HI__SHIFT				0
A6XX_UBO_1_BASE_HI(uint32_t val)8018c28c82e9SRob Clark static inline uint32_t A6XX_UBO_1_BASE_HI(uint32_t val)
8019c28c82e9SRob Clark {
8020c28c82e9SRob Clark 	return ((val) << A6XX_UBO_1_BASE_HI__SHIFT) & A6XX_UBO_1_BASE_HI__MASK;
8021c28c82e9SRob Clark }
8022c28c82e9SRob Clark #define A6XX_UBO_1_SIZE__MASK					0xfffe0000
8023c28c82e9SRob Clark #define A6XX_UBO_1_SIZE__SHIFT					17
A6XX_UBO_1_SIZE(uint32_t val)8024c28c82e9SRob Clark static inline uint32_t A6XX_UBO_1_SIZE(uint32_t val)
8025c28c82e9SRob Clark {
8026c28c82e9SRob Clark 	return ((val) << A6XX_UBO_1_SIZE__SHIFT) & A6XX_UBO_1_SIZE__MASK;
8027c28c82e9SRob Clark }
8028c28c82e9SRob Clark 
8029a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_ENABLE_PDC				0x00001140
8030a69c5ed2SRob Clark 
8031a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_SEQ_START_ADDR				0x00001148
8032a69c5ed2SRob Clark 
8033a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CONTROL				0x00001540
8034a69c5ed2SRob Clark 
8035a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CMD_ENABLE_BANK			0x00001541
8036a69c5ed2SRob Clark 
8037a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CMD_WAIT_FOR_CMPL_BANK		0x00001542
8038a69c5ed2SRob Clark 
8039a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CMD0_MSGID			0x00001543
8040a69c5ed2SRob Clark 
8041a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CMD0_ADDR				0x00001544
8042a69c5ed2SRob Clark 
8043a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS0_CMD0_DATA				0x00001545
8044a69c5ed2SRob Clark 
8045a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CONTROL				0x00001572
8046a69c5ed2SRob Clark 
8047a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CMD_ENABLE_BANK			0x00001573
8048a69c5ed2SRob Clark 
8049a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CMD_WAIT_FOR_CMPL_BANK		0x00001574
8050a69c5ed2SRob Clark 
8051a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CMD0_MSGID			0x00001575
8052a69c5ed2SRob Clark 
8053a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CMD0_ADDR				0x00001576
8054a69c5ed2SRob Clark 
8055a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS1_CMD0_DATA				0x00001577
8056a69c5ed2SRob Clark 
8057a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CONTROL				0x000015a4
8058a69c5ed2SRob Clark 
8059a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CMD_ENABLE_BANK			0x000015a5
8060a69c5ed2SRob Clark 
8061a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CMD_WAIT_FOR_CMPL_BANK		0x000015a6
8062a69c5ed2SRob Clark 
8063a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CMD0_MSGID			0x000015a7
8064a69c5ed2SRob Clark 
8065a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CMD0_ADDR				0x000015a8
8066a69c5ed2SRob Clark 
8067a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS2_CMD0_DATA				0x000015a9
8068a69c5ed2SRob Clark 
8069a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CONTROL				0x000015d6
8070a69c5ed2SRob Clark 
8071a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CMD_ENABLE_BANK			0x000015d7
8072a69c5ed2SRob Clark 
8073a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CMD_WAIT_FOR_CMPL_BANK		0x000015d8
8074a69c5ed2SRob Clark 
8075a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CMD0_MSGID			0x000015d9
8076a69c5ed2SRob Clark 
8077a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CMD0_ADDR				0x000015da
8078a69c5ed2SRob Clark 
8079a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_TCS3_CMD0_DATA				0x000015db
8080a69c5ed2SRob Clark 
8081a69c5ed2SRob Clark #define REG_A6XX_PDC_GPU_SEQ_MEM_0				0x00000000
8082a69c5ed2SRob Clark 
8083a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_A			0x00000000
8084a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__MASK		0x000000ff
8085a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX(uint32_t val)8086a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX(uint32_t val)
8087a69c5ed2SRob Clark {
8088a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_INDEX__MASK;
8089a69c5ed2SRob Clark }
8090a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__MASK	0x0000ff00
8091a69c5ed2SRob Clark #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)8092a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL(uint32_t val)
8093a69c5ed2SRob Clark {
8094a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_SEL_A_PING_BLK_SEL__MASK;
8095a69c5ed2SRob Clark }
8096a69c5ed2SRob Clark 
8097a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_B			0x00000001
8098a69c5ed2SRob Clark 
8099a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_C			0x00000002
8100a69c5ed2SRob Clark 
8101a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_SEL_D			0x00000003
8102a69c5ed2SRob Clark 
8103a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLT			0x00000004
8104a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK		0x0000003f
8105a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)8106a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN(uint32_t val)
8107a69c5ed2SRob Clark {
8108a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_TRACEEN__MASK;
8109a69c5ed2SRob Clark }
8110a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK		0x00007000
8111a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)8112a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU(uint32_t val)
8113a69c5ed2SRob Clark {
8114a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_GRANU__MASK;
8115a69c5ed2SRob Clark }
8116a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK		0xf0000000
8117a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)8118a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT(uint32_t val)
8119a69c5ed2SRob Clark {
8120a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLT_SEGT__MASK;
8121a69c5ed2SRob Clark }
8122a69c5ed2SRob Clark 
8123a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_CNTLM			0x00000005
8124a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK		0x0f000000
8125a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)8126a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE(uint32_t val)
8127a69c5ed2SRob Clark {
8128a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_CNTLM_ENABLE__MASK;
8129a69c5ed2SRob Clark }
8130a69c5ed2SRob Clark 
8131a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_0			0x00000008
8132a69c5ed2SRob Clark 
8133a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_1			0x00000009
8134a69c5ed2SRob Clark 
8135a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_2			0x0000000a
8136a69c5ed2SRob Clark 
8137a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_IVTL_3			0x0000000b
8138a69c5ed2SRob Clark 
8139a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_0			0x0000000c
8140a69c5ed2SRob Clark 
8141a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_1			0x0000000d
8142a69c5ed2SRob Clark 
8143a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_2			0x0000000e
8144a69c5ed2SRob Clark 
8145a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_MASKL_3			0x0000000f
8146a69c5ed2SRob Clark 
8147a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0			0x00000010
8148a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK		0x0000000f
8149a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)8150a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0(uint32_t val)
8151a69c5ed2SRob Clark {
8152a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL0__MASK;
8153a69c5ed2SRob Clark }
8154a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK		0x000000f0
8155a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT		4
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)8156a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1(uint32_t val)
8157a69c5ed2SRob Clark {
8158a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL1__MASK;
8159a69c5ed2SRob Clark }
8160a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK		0x00000f00
8161a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT		8
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)8162a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2(uint32_t val)
8163a69c5ed2SRob Clark {
8164a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL2__MASK;
8165a69c5ed2SRob Clark }
8166a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK		0x0000f000
8167a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)8168a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3(uint32_t val)
8169a69c5ed2SRob Clark {
8170a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL3__MASK;
8171a69c5ed2SRob Clark }
8172a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK		0x000f0000
8173a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT		16
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)8174a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4(uint32_t val)
8175a69c5ed2SRob Clark {
8176a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL4__MASK;
8177a69c5ed2SRob Clark }
8178a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK		0x00f00000
8179a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT		20
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)8180a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5(uint32_t val)
8181a69c5ed2SRob Clark {
8182a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL5__MASK;
8183a69c5ed2SRob Clark }
8184a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK		0x0f000000
8185a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)8186a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6(uint32_t val)
8187a69c5ed2SRob Clark {
8188a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL6__MASK;
8189a69c5ed2SRob Clark }
8190a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK		0xf0000000
8191a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)8192a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7(uint32_t val)
8193a69c5ed2SRob Clark {
8194a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_0_BYTEL7__MASK;
8195a69c5ed2SRob Clark }
8196a69c5ed2SRob Clark 
8197a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1			0x00000011
8198a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK		0x0000000f
8199a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT		0
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)8200a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8(uint32_t val)
8201a69c5ed2SRob Clark {
8202a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL8__MASK;
8203a69c5ed2SRob Clark }
8204a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK		0x000000f0
8205a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT		4
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)8206a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9(uint32_t val)
8207a69c5ed2SRob Clark {
8208a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL9__MASK;
8209a69c5ed2SRob Clark }
8210a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK		0x00000f00
8211a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT		8
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)8212a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10(uint32_t val)
8213a69c5ed2SRob Clark {
8214a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL10__MASK;
8215a69c5ed2SRob Clark }
8216a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK		0x0000f000
8217a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT		12
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)8218a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11(uint32_t val)
8219a69c5ed2SRob Clark {
8220a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL11__MASK;
8221a69c5ed2SRob Clark }
8222a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK		0x000f0000
8223a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT		16
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)8224a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12(uint32_t val)
8225a69c5ed2SRob Clark {
8226a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL12__MASK;
8227a69c5ed2SRob Clark }
8228a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK		0x00f00000
8229a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT		20
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)8230a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13(uint32_t val)
8231a69c5ed2SRob Clark {
8232a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL13__MASK;
8233a69c5ed2SRob Clark }
8234a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK		0x0f000000
8235a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT		24
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)8236a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14(uint32_t val)
8237a69c5ed2SRob Clark {
8238a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL14__MASK;
8239a69c5ed2SRob Clark }
8240a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK		0xf0000000
8241a69c5ed2SRob Clark #define A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT		28
A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)8242a69c5ed2SRob Clark static inline uint32_t A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15(uint32_t val)
8243a69c5ed2SRob Clark {
8244a69c5ed2SRob Clark 	return ((val) << A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__SHIFT) & A6XX_CX_DBGC_CFG_DBGBUS_BYTEL_1_BYTEL15__MASK;
8245a69c5ed2SRob Clark }
8246a69c5ed2SRob Clark 
8247a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF1			0x0000002f
8248a69c5ed2SRob Clark 
8249a69c5ed2SRob Clark #define REG_A6XX_CX_DBGC_CFG_DBGBUS_TRACE_BUF2			0x00000030
8250a69c5ed2SRob Clark 
8251ccdf7e28SRob Clark #define REG_A6XX_CX_MISC_SYSTEM_CACHE_CNTL_0			0x00000001
8252ccdf7e28SRob Clark 
8253ccdf7e28SRob Clark #define REG_A6XX_CX_MISC_SYSTEM_CACHE_CNTL_1			0x00000002
8254ccdf7e28SRob Clark 
82552d756322SRob Clark 
82562d756322SRob Clark #endif /* A6XX_XML */
8257