diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-04-12 13:52:52 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-06-27 10:49:18 -0400 |
commit | 2948f5e6c211eccd58b81c15a410d9f3d9cda657 (patch) | |
tree | 86324d51dc6edbd9f279a4c955d6444aed23c1c1 | |
parent | 138e4e16f0e1d7dee8e6d0534147e15c0a3d94d5 (diff) |
drm/radeon: properly set up the RLC on ON/LN/TN (v3)
This is required for certain advanced functionality.
v2: save/restore list takes dword offsets
v3: rebase on gpu reset changes
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/clearstate_cayman.h | 1081 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/clearstate_defs.h | 44 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/clearstate_evergreen.h | 1080 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 339 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/evergreend.h | 19 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/ni.c | 141 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 43 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600d.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 13 |
9 files changed, 2721 insertions, 43 deletions
diff --git a/drivers/gpu/drm/radeon/clearstate_cayman.h b/drivers/gpu/drm/radeon/clearstate_cayman.h new file mode 100644 index 000000000000..c00339440c5e --- /dev/null +++ b/drivers/gpu/drm/radeon/clearstate_cayman.h | |||
@@ -0,0 +1,1081 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Advanced Micro Devices, Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | static const u32 SECT_CONTEXT_def_1[] = | ||
25 | { | ||
26 | 0x00000000, // DB_RENDER_CONTROL | ||
27 | 0x00000000, // DB_COUNT_CONTROL | ||
28 | 0x00000000, // DB_DEPTH_VIEW | ||
29 | 0x00000000, // DB_RENDER_OVERRIDE | ||
30 | 0x00000000, // DB_RENDER_OVERRIDE2 | ||
31 | 0x00000000, // DB_HTILE_DATA_BASE | ||
32 | 0, // HOLE | ||
33 | 0, // HOLE | ||
34 | 0, // HOLE | ||
35 | 0, // HOLE | ||
36 | 0x00000000, // DB_STENCIL_CLEAR | ||
37 | 0x00000000, // DB_DEPTH_CLEAR | ||
38 | 0x00000000, // PA_SC_SCREEN_SCISSOR_TL | ||
39 | 0x40004000, // PA_SC_SCREEN_SCISSOR_BR | ||
40 | 0, // HOLE | ||
41 | 0x00000000, // DB_DEPTH_INFO | ||
42 | 0x00000000, // DB_Z_INFO | ||
43 | 0x00000000, // DB_STENCIL_INFO | ||
44 | 0x00000000, // DB_Z_READ_BASE | ||
45 | 0x00000000, // DB_STENCIL_READ_BASE | ||
46 | 0x00000000, // DB_Z_WRITE_BASE | ||
47 | 0x00000000, // DB_STENCIL_WRITE_BASE | ||
48 | 0x00000000, // DB_DEPTH_SIZE | ||
49 | 0x00000000, // DB_DEPTH_SLICE | ||
50 | 0, // HOLE | ||
51 | 0, // HOLE | ||
52 | 0, // HOLE | ||
53 | 0, // HOLE | ||
54 | 0, // HOLE | ||
55 | 0, // HOLE | ||
56 | 0, // HOLE | ||
57 | 0, // HOLE | ||
58 | 0, // HOLE | ||
59 | 0, // HOLE | ||
60 | 0, // HOLE | ||
61 | 0, // HOLE | ||
62 | 0, // HOLE | ||
63 | 0, // HOLE | ||
64 | 0, // HOLE | ||
65 | 0, // HOLE | ||
66 | 0, // HOLE | ||
67 | 0, // HOLE | ||
68 | 0, // HOLE | ||
69 | 0, // HOLE | ||
70 | 0, // HOLE | ||
71 | 0, // HOLE | ||
72 | 0, // HOLE | ||
73 | 0, // HOLE | ||
74 | 0, // HOLE | ||
75 | 0, // HOLE | ||
76 | 0, // HOLE | ||
77 | 0, // HOLE | ||
78 | 0, // HOLE | ||
79 | 0, // HOLE | ||
80 | 0, // HOLE | ||
81 | 0, // HOLE | ||
82 | 0, // HOLE | ||
83 | 0, // HOLE | ||
84 | 0, // HOLE | ||
85 | 0, // HOLE | ||
86 | 0, // HOLE | ||
87 | 0, // HOLE | ||
88 | 0, // HOLE | ||
89 | 0, // HOLE | ||
90 | 0, // HOLE | ||
91 | 0, // HOLE | ||
92 | 0, // HOLE | ||
93 | 0, // HOLE | ||
94 | 0, // HOLE | ||
95 | 0, // HOLE | ||
96 | 0, // HOLE | ||
97 | 0, // HOLE | ||
98 | 0, // HOLE | ||
99 | 0, // HOLE | ||
100 | 0, // HOLE | ||
101 | 0, // HOLE | ||
102 | 0, // HOLE | ||
103 | 0, // HOLE | ||
104 | 0, // HOLE | ||
105 | 0, // HOLE | ||
106 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_0 | ||
107 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_1 | ||
108 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_2 | ||
109 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_3 | ||
110 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_4 | ||
111 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_5 | ||
112 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_6 | ||
113 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_7 | ||
114 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_8 | ||
115 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_9 | ||
116 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_10 | ||
117 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_11 | ||
118 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_12 | ||
119 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_13 | ||
120 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_14 | ||
121 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_15 | ||
122 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_0 | ||
123 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_1 | ||
124 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_2 | ||
125 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_3 | ||
126 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_4 | ||
127 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_5 | ||
128 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_6 | ||
129 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_7 | ||
130 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_8 | ||
131 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_9 | ||
132 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_10 | ||
133 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_11 | ||
134 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_12 | ||
135 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_13 | ||
136 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_14 | ||
137 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_15 | ||
138 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_0 | ||
139 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_1 | ||
140 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_2 | ||
141 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_3 | ||
142 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_4 | ||
143 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_5 | ||
144 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_6 | ||
145 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_7 | ||
146 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_8 | ||
147 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_9 | ||
148 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_10 | ||
149 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_11 | ||
150 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_12 | ||
151 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_13 | ||
152 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_14 | ||
153 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_15 | ||
154 | 0x00000000, // PA_SC_WINDOW_OFFSET | ||
155 | 0x80000000, // PA_SC_WINDOW_SCISSOR_TL | ||
156 | 0x40004000, // PA_SC_WINDOW_SCISSOR_BR | ||
157 | 0x0000ffff, // PA_SC_CLIPRECT_RULE | ||
158 | 0x00000000, // PA_SC_CLIPRECT_0_TL | ||
159 | 0x40004000, // PA_SC_CLIPRECT_0_BR | ||
160 | 0x00000000, // PA_SC_CLIPRECT_1_TL | ||
161 | 0x40004000, // PA_SC_CLIPRECT_1_BR | ||
162 | 0x00000000, // PA_SC_CLIPRECT_2_TL | ||
163 | 0x40004000, // PA_SC_CLIPRECT_2_BR | ||
164 | 0x00000000, // PA_SC_CLIPRECT_3_TL | ||
165 | 0x40004000, // PA_SC_CLIPRECT_3_BR | ||
166 | 0xaa99aaaa, // PA_SC_EDGERULE | ||
167 | 0x00000000, // PA_SU_HARDWARE_SCREEN_OFFSET | ||
168 | 0xffffffff, // CB_TARGET_MASK | ||
169 | 0xffffffff, // CB_SHADER_MASK | ||
170 | 0x80000000, // PA_SC_GENERIC_SCISSOR_TL | ||
171 | 0x40004000, // PA_SC_GENERIC_SCISSOR_BR | ||
172 | 0x00000000, // COHER_DEST_BASE_0 | ||
173 | 0x00000000, // COHER_DEST_BASE_1 | ||
174 | 0x80000000, // PA_SC_VPORT_SCISSOR_0_TL | ||
175 | 0x40004000, // PA_SC_VPORT_SCISSOR_0_BR | ||
176 | 0x80000000, // PA_SC_VPORT_SCISSOR_1_TL | ||
177 | 0x40004000, // PA_SC_VPORT_SCISSOR_1_BR | ||
178 | 0x80000000, // PA_SC_VPORT_SCISSOR_2_TL | ||
179 | 0x40004000, // PA_SC_VPORT_SCISSOR_2_BR | ||
180 | 0x80000000, // PA_SC_VPORT_SCISSOR_3_TL | ||
181 | 0x40004000, // PA_SC_VPORT_SCISSOR_3_BR | ||
182 | 0x80000000, // PA_SC_VPORT_SCISSOR_4_TL | ||
183 | 0x40004000, // PA_SC_VPORT_SCISSOR_4_BR | ||
184 | 0x80000000, // PA_SC_VPORT_SCISSOR_5_TL | ||
185 | 0x40004000, // PA_SC_VPORT_SCISSOR_5_BR | ||
186 | 0x80000000, // PA_SC_VPORT_SCISSOR_6_TL | ||
187 | 0x40004000, // PA_SC_VPORT_SCISSOR_6_BR | ||
188 | 0x80000000, // PA_SC_VPORT_SCISSOR_7_TL | ||
189 | 0x40004000, // PA_SC_VPORT_SCISSOR_7_BR | ||
190 | 0x80000000, // PA_SC_VPORT_SCISSOR_8_TL | ||
191 | 0x40004000, // PA_SC_VPORT_SCISSOR_8_BR | ||
192 | 0x80000000, // PA_SC_VPORT_SCISSOR_9_TL | ||
193 | 0x40004000, // PA_SC_VPORT_SCISSOR_9_BR | ||
194 | 0x80000000, // PA_SC_VPORT_SCISSOR_10_TL | ||
195 | 0x40004000, // PA_SC_VPORT_SCISSOR_10_BR | ||
196 | 0x80000000, // PA_SC_VPORT_SCISSOR_11_TL | ||
197 | 0x40004000, // PA_SC_VPORT_SCISSOR_11_BR | ||
198 | 0x80000000, // PA_SC_VPORT_SCISSOR_12_TL | ||
199 | 0x40004000, // PA_SC_VPORT_SCISSOR_12_BR | ||
200 | 0x80000000, // PA_SC_VPORT_SCISSOR_13_TL | ||
201 | 0x40004000, // PA_SC_VPORT_SCISSOR_13_BR | ||
202 | 0x80000000, // PA_SC_VPORT_SCISSOR_14_TL | ||
203 | 0x40004000, // PA_SC_VPORT_SCISSOR_14_BR | ||
204 | 0x80000000, // PA_SC_VPORT_SCISSOR_15_TL | ||
205 | 0x40004000, // PA_SC_VPORT_SCISSOR_15_BR | ||
206 | 0x00000000, // PA_SC_VPORT_ZMIN_0 | ||
207 | 0x3f800000, // PA_SC_VPORT_ZMAX_0 | ||
208 | 0x00000000, // PA_SC_VPORT_ZMIN_1 | ||
209 | 0x3f800000, // PA_SC_VPORT_ZMAX_1 | ||
210 | 0x00000000, // PA_SC_VPORT_ZMIN_2 | ||
211 | 0x3f800000, // PA_SC_VPORT_ZMAX_2 | ||
212 | 0x00000000, // PA_SC_VPORT_ZMIN_3 | ||
213 | 0x3f800000, // PA_SC_VPORT_ZMAX_3 | ||
214 | 0x00000000, // PA_SC_VPORT_ZMIN_4 | ||
215 | 0x3f800000, // PA_SC_VPORT_ZMAX_4 | ||
216 | 0x00000000, // PA_SC_VPORT_ZMIN_5 | ||
217 | 0x3f800000, // PA_SC_VPORT_ZMAX_5 | ||
218 | 0x00000000, // PA_SC_VPORT_ZMIN_6 | ||
219 | 0x3f800000, // PA_SC_VPORT_ZMAX_6 | ||
220 | 0x00000000, // PA_SC_VPORT_ZMIN_7 | ||
221 | 0x3f800000, // PA_SC_VPORT_ZMAX_7 | ||
222 | 0x00000000, // PA_SC_VPORT_ZMIN_8 | ||
223 | 0x3f800000, // PA_SC_VPORT_ZMAX_8 | ||
224 | 0x00000000, // PA_SC_VPORT_ZMIN_9 | ||
225 | 0x3f800000, // PA_SC_VPORT_ZMAX_9 | ||
226 | 0x00000000, // PA_SC_VPORT_ZMIN_10 | ||
227 | 0x3f800000, // PA_SC_VPORT_ZMAX_10 | ||
228 | 0x00000000, // PA_SC_VPORT_ZMIN_11 | ||
229 | 0x3f800000, // PA_SC_VPORT_ZMAX_11 | ||
230 | 0x00000000, // PA_SC_VPORT_ZMIN_12 | ||
231 | 0x3f800000, // PA_SC_VPORT_ZMAX_12 | ||
232 | 0x00000000, // PA_SC_VPORT_ZMIN_13 | ||
233 | 0x3f800000, // PA_SC_VPORT_ZMAX_13 | ||
234 | 0x00000000, // PA_SC_VPORT_ZMIN_14 | ||
235 | 0x3f800000, // PA_SC_VPORT_ZMAX_14 | ||
236 | 0x00000000, // PA_SC_VPORT_ZMIN_15 | ||
237 | 0x3f800000, // PA_SC_VPORT_ZMAX_15 | ||
238 | 0x00000000, // SX_MISC | ||
239 | 0x00000000, // SX_SURFACE_SYNC | ||
240 | 0x00000000, // SX_SCATTER_EXPORT_BASE | ||
241 | 0x00000000, // SX_SCATTER_EXPORT_SIZE | ||
242 | 0x00000000, // CP_PERFMON_CNTX_CNTL | ||
243 | 0x00000000, // CP_RINGID | ||
244 | 0x00000000, // CP_VMID | ||
245 | 0, // HOLE | ||
246 | 0, // HOLE | ||
247 | 0, // HOLE | ||
248 | 0, // HOLE | ||
249 | 0, // HOLE | ||
250 | 0x00000000, // SQ_VTX_SEMANTIC_0 | ||
251 | 0x00000000, // SQ_VTX_SEMANTIC_1 | ||
252 | 0x00000000, // SQ_VTX_SEMANTIC_2 | ||
253 | 0x00000000, // SQ_VTX_SEMANTIC_3 | ||
254 | 0x00000000, // SQ_VTX_SEMANTIC_4 | ||
255 | 0x00000000, // SQ_VTX_SEMANTIC_5 | ||
256 | 0x00000000, // SQ_VTX_SEMANTIC_6 | ||
257 | 0x00000000, // SQ_VTX_SEMANTIC_7 | ||
258 | 0x00000000, // SQ_VTX_SEMANTIC_8 | ||
259 | 0x00000000, // SQ_VTX_SEMANTIC_9 | ||
260 | 0x00000000, // SQ_VTX_SEMANTIC_10 | ||
261 | 0x00000000, // SQ_VTX_SEMANTIC_11 | ||
262 | 0x00000000, // SQ_VTX_SEMANTIC_12 | ||
263 | 0x00000000, // SQ_VTX_SEMANTIC_13 | ||
264 | 0x00000000, // SQ_VTX_SEMANTIC_14 | ||
265 | 0x00000000, // SQ_VTX_SEMANTIC_15 | ||
266 | 0x00000000, // SQ_VTX_SEMANTIC_16 | ||
267 | 0x00000000, // SQ_VTX_SEMANTIC_17 | ||
268 | 0x00000000, // SQ_VTX_SEMANTIC_18 | ||
269 | 0x00000000, // SQ_VTX_SEMANTIC_19 | ||
270 | 0x00000000, // SQ_VTX_SEMANTIC_20 | ||
271 | 0x00000000, // SQ_VTX_SEMANTIC_21 | ||
272 | 0x00000000, // SQ_VTX_SEMANTIC_22 | ||
273 | 0x00000000, // SQ_VTX_SEMANTIC_23 | ||
274 | 0x00000000, // SQ_VTX_SEMANTIC_24 | ||
275 | 0x00000000, // SQ_VTX_SEMANTIC_25 | ||
276 | 0x00000000, // SQ_VTX_SEMANTIC_26 | ||
277 | 0x00000000, // SQ_VTX_SEMANTIC_27 | ||
278 | 0x00000000, // SQ_VTX_SEMANTIC_28 | ||
279 | 0x00000000, // SQ_VTX_SEMANTIC_29 | ||
280 | 0x00000000, // SQ_VTX_SEMANTIC_30 | ||
281 | 0x00000000, // SQ_VTX_SEMANTIC_31 | ||
282 | 0xffffffff, // VGT_MAX_VTX_INDX | ||
283 | 0x00000000, // VGT_MIN_VTX_INDX | ||
284 | 0x00000000, // VGT_INDX_OFFSET | ||
285 | 0x00000000, // VGT_MULTI_PRIM_IB_RESET_INDX | ||
286 | 0x00000000, // SX_ALPHA_TEST_CONTROL | ||
287 | 0x00000000, // CB_BLEND_RED | ||
288 | 0x00000000, // CB_BLEND_GREEN | ||
289 | 0x00000000, // CB_BLEND_BLUE | ||
290 | 0x00000000, // CB_BLEND_ALPHA | ||
291 | 0, // HOLE | ||
292 | 0, // HOLE | ||
293 | 0, // HOLE | ||
294 | 0x00000000, // DB_STENCILREFMASK | ||
295 | 0x00000000, // DB_STENCILREFMASK_BF | ||
296 | 0x00000000, // SX_ALPHA_REF | ||
297 | 0x00000000, // PA_CL_VPORT_XSCALE | ||
298 | 0x00000000, // PA_CL_VPORT_XOFFSET | ||
299 | 0x00000000, // PA_CL_VPORT_YSCALE | ||
300 | 0x00000000, // PA_CL_VPORT_YOFFSET | ||
301 | 0x00000000, // PA_CL_VPORT_ZSCALE | ||
302 | 0x00000000, // PA_CL_VPORT_ZOFFSET | ||
303 | 0x00000000, // PA_CL_VPORT_XSCALE_1 | ||
304 | 0x00000000, // PA_CL_VPORT_XOFFSET_1 | ||
305 | 0x00000000, // PA_CL_VPORT_YSCALE_1 | ||
306 | 0x00000000, // PA_CL_VPORT_YOFFSET_1 | ||
307 | 0x00000000, // PA_CL_VPORT_ZSCALE_1 | ||
308 | 0x00000000, // PA_CL_VPORT_ZOFFSET_1 | ||
309 | 0x00000000, // PA_CL_VPORT_XSCALE_2 | ||
310 | 0x00000000, // PA_CL_VPORT_XOFFSET_2 | ||
311 | 0x00000000, // PA_CL_VPORT_YSCALE_2 | ||
312 | 0x00000000, // PA_CL_VPORT_YOFFSET_2 | ||
313 | 0x00000000, // PA_CL_VPORT_ZSCALE_2 | ||
314 | 0x00000000, // PA_CL_VPORT_ZOFFSET_2 | ||
315 | 0x00000000, // PA_CL_VPORT_XSCALE_3 | ||
316 | 0x00000000, // PA_CL_VPORT_XOFFSET_3 | ||
317 | 0x00000000, // PA_CL_VPORT_YSCALE_3 | ||
318 | 0x00000000, // PA_CL_VPORT_YOFFSET_3 | ||
319 | 0x00000000, // PA_CL_VPORT_ZSCALE_3 | ||
320 | 0x00000000, // PA_CL_VPORT_ZOFFSET_3 | ||
321 | 0x00000000, // PA_CL_VPORT_XSCALE_4 | ||
322 | 0x00000000, // PA_CL_VPORT_XOFFSET_4 | ||
323 | 0x00000000, // PA_CL_VPORT_YSCALE_4 | ||
324 | 0x00000000, // PA_CL_VPORT_YOFFSET_4 | ||
325 | 0x00000000, // PA_CL_VPORT_ZSCALE_4 | ||
326 | 0x00000000, // PA_CL_VPORT_ZOFFSET_4 | ||
327 | 0x00000000, // PA_CL_VPORT_XSCALE_5 | ||
328 | 0x00000000, // PA_CL_VPORT_XOFFSET_5 | ||
329 | 0x00000000, // PA_CL_VPORT_YSCALE_5 | ||
330 | 0x00000000, // PA_CL_VPORT_YOFFSET_5 | ||
331 | 0x00000000, // PA_CL_VPORT_ZSCALE_5 | ||
332 | 0x00000000, // PA_CL_VPORT_ZOFFSET_5 | ||
333 | 0x00000000, // PA_CL_VPORT_XSCALE_6 | ||
334 | 0x00000000, // PA_CL_VPORT_XOFFSET_6 | ||
335 | 0x00000000, // PA_CL_VPORT_YSCALE_6 | ||
336 | 0x00000000, // PA_CL_VPORT_YOFFSET_6 | ||
337 | 0x00000000, // PA_CL_VPORT_ZSCALE_6 | ||
338 | 0x00000000, // PA_CL_VPORT_ZOFFSET_6 | ||
339 | 0x00000000, // PA_CL_VPORT_XSCALE_7 | ||
340 | 0x00000000, // PA_CL_VPORT_XOFFSET_7 | ||
341 | 0x00000000, // PA_CL_VPORT_YSCALE_7 | ||
342 | 0x00000000, // PA_CL_VPORT_YOFFSET_7 | ||
343 | 0x00000000, // PA_CL_VPORT_ZSCALE_7 | ||
344 | 0x00000000, // PA_CL_VPORT_ZOFFSET_7 | ||
345 | 0x00000000, // PA_CL_VPORT_XSCALE_8 | ||
346 | 0x00000000, // PA_CL_VPORT_XOFFSET_8 | ||
347 | 0x00000000, // PA_CL_VPORT_YSCALE_8 | ||
348 | 0x00000000, // PA_CL_VPORT_YOFFSET_8 | ||
349 | 0x00000000, // PA_CL_VPORT_ZSCALE_8 | ||
350 | 0x00000000, // PA_CL_VPORT_ZOFFSET_8 | ||
351 | 0x00000000, // PA_CL_VPORT_XSCALE_9 | ||
352 | 0x00000000, // PA_CL_VPORT_XOFFSET_9 | ||
353 | 0x00000000, // PA_CL_VPORT_YSCALE_9 | ||
354 | 0x00000000, // PA_CL_VPORT_YOFFSET_9 | ||
355 | 0x00000000, // PA_CL_VPORT_ZSCALE_9 | ||
356 | 0x00000000, // PA_CL_VPORT_ZOFFSET_9 | ||
357 | 0x00000000, // PA_CL_VPORT_XSCALE_10 | ||
358 | 0x00000000, // PA_CL_VPORT_XOFFSET_10 | ||
359 | 0x00000000, // PA_CL_VPORT_YSCALE_10 | ||
360 | 0x00000000, // PA_CL_VPORT_YOFFSET_10 | ||
361 | 0x00000000, // PA_CL_VPORT_ZSCALE_10 | ||
362 | 0x00000000, // PA_CL_VPORT_ZOFFSET_10 | ||
363 | 0x00000000, // PA_CL_VPORT_XSCALE_11 | ||
364 | 0x00000000, // PA_CL_VPORT_XOFFSET_11 | ||
365 | 0x00000000, // PA_CL_VPORT_YSCALE_11 | ||
366 | 0x00000000, // PA_CL_VPORT_YOFFSET_11 | ||
367 | 0x00000000, // PA_CL_VPORT_ZSCALE_11 | ||
368 | 0x00000000, // PA_CL_VPORT_ZOFFSET_11 | ||
369 | 0x00000000, // PA_CL_VPORT_XSCALE_12 | ||
370 | 0x00000000, // PA_CL_VPORT_XOFFSET_12 | ||
371 | 0x00000000, // PA_CL_VPORT_YSCALE_12 | ||
372 | 0x00000000, // PA_CL_VPORT_YOFFSET_12 | ||
373 | 0x00000000, // PA_CL_VPORT_ZSCALE_12 | ||
374 | 0x00000000, // PA_CL_VPORT_ZOFFSET_12 | ||
375 | 0x00000000, // PA_CL_VPORT_XSCALE_13 | ||
376 | 0x00000000, // PA_CL_VPORT_XOFFSET_13 | ||
377 | 0x00000000, // PA_CL_VPORT_YSCALE_13 | ||
378 | 0x00000000, // PA_CL_VPORT_YOFFSET_13 | ||
379 | 0x00000000, // PA_CL_VPORT_ZSCALE_13 | ||
380 | 0x00000000, // PA_CL_VPORT_ZOFFSET_13 | ||
381 | 0x00000000, // PA_CL_VPORT_XSCALE_14 | ||
382 | 0x00000000, // PA_CL_VPORT_XOFFSET_14 | ||
383 | 0x00000000, // PA_CL_VPORT_YSCALE_14 | ||
384 | 0x00000000, // PA_CL_VPORT_YOFFSET_14 | ||
385 | 0x00000000, // PA_CL_VPORT_ZSCALE_14 | ||
386 | 0x00000000, // PA_CL_VPORT_ZOFFSET_14 | ||
387 | 0x00000000, // PA_CL_VPORT_XSCALE_15 | ||
388 | 0x00000000, // PA_CL_VPORT_XOFFSET_15 | ||
389 | 0x00000000, // PA_CL_VPORT_YSCALE_15 | ||
390 | 0x00000000, // PA_CL_VPORT_YOFFSET_15 | ||
391 | 0x00000000, // PA_CL_VPORT_ZSCALE_15 | ||
392 | 0x00000000, // PA_CL_VPORT_ZOFFSET_15 | ||
393 | 0x00000000, // PA_CL_UCP_0_X | ||
394 | 0x00000000, // PA_CL_UCP_0_Y | ||
395 | 0x00000000, // PA_CL_UCP_0_Z | ||
396 | 0x00000000, // PA_CL_UCP_0_W | ||
397 | 0x00000000, // PA_CL_UCP_1_X | ||
398 | 0x00000000, // PA_CL_UCP_1_Y | ||
399 | 0x00000000, // PA_CL_UCP_1_Z | ||
400 | 0x00000000, // PA_CL_UCP_1_W | ||
401 | 0x00000000, // PA_CL_UCP_2_X | ||
402 | 0x00000000, // PA_CL_UCP_2_Y | ||
403 | 0x00000000, // PA_CL_UCP_2_Z | ||
404 | 0x00000000, // PA_CL_UCP_2_W | ||
405 | 0x00000000, // PA_CL_UCP_3_X | ||
406 | 0x00000000, // PA_CL_UCP_3_Y | ||
407 | 0x00000000, // PA_CL_UCP_3_Z | ||
408 | 0x00000000, // PA_CL_UCP_3_W | ||
409 | 0x00000000, // PA_CL_UCP_4_X | ||
410 | 0x00000000, // PA_CL_UCP_4_Y | ||
411 | 0x00000000, // PA_CL_UCP_4_Z | ||
412 | 0x00000000, // PA_CL_UCP_4_W | ||
413 | 0x00000000, // PA_CL_UCP_5_X | ||
414 | 0x00000000, // PA_CL_UCP_5_Y | ||
415 | 0x00000000, // PA_CL_UCP_5_Z | ||
416 | 0x00000000, // PA_CL_UCP_5_W | ||
417 | 0x00000000, // SPI_VS_OUT_ID_0 | ||
418 | 0x00000000, // SPI_VS_OUT_ID_1 | ||
419 | 0x00000000, // SPI_VS_OUT_ID_2 | ||
420 | 0x00000000, // SPI_VS_OUT_ID_3 | ||
421 | 0x00000000, // SPI_VS_OUT_ID_4 | ||
422 | 0x00000000, // SPI_VS_OUT_ID_5 | ||
423 | 0x00000000, // SPI_VS_OUT_ID_6 | ||
424 | 0x00000000, // SPI_VS_OUT_ID_7 | ||
425 | 0x00000000, // SPI_VS_OUT_ID_8 | ||
426 | 0x00000000, // SPI_VS_OUT_ID_9 | ||
427 | 0x00000000, // SPI_PS_INPUT_CNTL_0 | ||
428 | 0x00000000, // SPI_PS_INPUT_CNTL_1 | ||
429 | 0x00000000, // SPI_PS_INPUT_CNTL_2 | ||
430 | 0x00000000, // SPI_PS_INPUT_CNTL_3 | ||
431 | 0x00000000, // SPI_PS_INPUT_CNTL_4 | ||
432 | 0x00000000, // SPI_PS_INPUT_CNTL_5 | ||
433 | 0x00000000, // SPI_PS_INPUT_CNTL_6 | ||
434 | 0x00000000, // SPI_PS_INPUT_CNTL_7 | ||
435 | 0x00000000, // SPI_PS_INPUT_CNTL_8 | ||
436 | 0x00000000, // SPI_PS_INPUT_CNTL_9 | ||
437 | 0x00000000, // SPI_PS_INPUT_CNTL_10 | ||
438 | 0x00000000, // SPI_PS_INPUT_CNTL_11 | ||
439 | 0x00000000, // SPI_PS_INPUT_CNTL_12 | ||
440 | 0x00000000, // SPI_PS_INPUT_CNTL_13 | ||
441 | 0x00000000, // SPI_PS_INPUT_CNTL_14 | ||
442 | 0x00000000, // SPI_PS_INPUT_CNTL_15 | ||
443 | 0x00000000, // SPI_PS_INPUT_CNTL_16 | ||
444 | 0x00000000, // SPI_PS_INPUT_CNTL_17 | ||
445 | 0x00000000, // SPI_PS_INPUT_CNTL_18 | ||
446 | 0x00000000, // SPI_PS_INPUT_CNTL_19 | ||
447 | 0x00000000, // SPI_PS_INPUT_CNTL_20 | ||
448 | 0x00000000, // SPI_PS_INPUT_CNTL_21 | ||
449 | 0x00000000, // SPI_PS_INPUT_CNTL_22 | ||
450 | 0x00000000, // SPI_PS_INPUT_CNTL_23 | ||
451 | 0x00000000, // SPI_PS_INPUT_CNTL_24 | ||
452 | 0x00000000, // SPI_PS_INPUT_CNTL_25 | ||
453 | 0x00000000, // SPI_PS_INPUT_CNTL_26 | ||
454 | 0x00000000, // SPI_PS_INPUT_CNTL_27 | ||
455 | 0x00000000, // SPI_PS_INPUT_CNTL_28 | ||
456 | 0x00000000, // SPI_PS_INPUT_CNTL_29 | ||
457 | 0x00000000, // SPI_PS_INPUT_CNTL_30 | ||
458 | 0x00000000, // SPI_PS_INPUT_CNTL_31 | ||
459 | 0x00000000, // SPI_VS_OUT_CONFIG | ||
460 | 0x00000001, // SPI_THREAD_GROUPING | ||
461 | 0x00000002, // SPI_PS_IN_CONTROL_0 | ||
462 | 0x00000000, // SPI_PS_IN_CONTROL_1 | ||
463 | 0x00000000, // SPI_INTERP_CONTROL_0 | ||
464 | 0x00000000, // SPI_INPUT_Z | ||
465 | 0x00000000, // SPI_FOG_CNTL | ||
466 | 0x00000000, // SPI_BARYC_CNTL | ||
467 | 0x00000000, // SPI_PS_IN_CONTROL_2 | ||
468 | 0x00000000, // SPI_COMPUTE_INPUT_CNTL | ||
469 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_X | ||
470 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_Y | ||
471 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_Z | ||
472 | 0x00000000, // SPI_GPR_MGMT | ||
473 | 0x00000000, // SPI_LDS_MGMT | ||
474 | 0x00000000, // SPI_STACK_MGMT | ||
475 | 0x00000000, // SPI_WAVE_MGMT_1 | ||
476 | 0x00000000, // SPI_WAVE_MGMT_2 | ||
477 | 0, // HOLE | ||
478 | 0, // HOLE | ||
479 | 0, // HOLE | ||
480 | 0, // HOLE | ||
481 | 0, // HOLE | ||
482 | 0x00000000, // GDS_ADDR_BASE | ||
483 | 0x00003fff, // GDS_ADDR_SIZE | ||
484 | 0, // HOLE | ||
485 | 0, // HOLE | ||
486 | 0x00000000, // GDS_ORDERED_COUNT | ||
487 | 0, // HOLE | ||
488 | 0, // HOLE | ||
489 | 0, // HOLE | ||
490 | 0x00000000, // GDS_APPEND_CONSUME_UAV0 | ||
491 | 0x00000000, // GDS_APPEND_CONSUME_UAV1 | ||
492 | 0x00000000, // GDS_APPEND_CONSUME_UAV2 | ||
493 | 0x00000000, // GDS_APPEND_CONSUME_UAV3 | ||
494 | 0x00000000, // GDS_APPEND_CONSUME_UAV4 | ||
495 | 0x00000000, // GDS_APPEND_CONSUME_UAV5 | ||
496 | 0x00000000, // GDS_APPEND_CONSUME_UAV6 | ||
497 | 0x00000000, // GDS_APPEND_CONSUME_UAV7 | ||
498 | 0x00000000, // GDS_APPEND_CONSUME_UAV8 | ||
499 | 0x00000000, // GDS_APPEND_CONSUME_UAV9 | ||
500 | 0x00000000, // GDS_APPEND_CONSUME_UAV10 | ||
501 | 0x00000000, // GDS_APPEND_CONSUME_UAV11 | ||
502 | 0, // HOLE | ||
503 | 0, // HOLE | ||
504 | 0, // HOLE | ||
505 | 0, // HOLE | ||
506 | 0x00000000, // CB_BLEND0_CONTROL | ||
507 | 0x00000000, // CB_BLEND1_CONTROL | ||
508 | 0x00000000, // CB_BLEND2_CONTROL | ||
509 | 0x00000000, // CB_BLEND3_CONTROL | ||
510 | 0x00000000, // CB_BLEND4_CONTROL | ||
511 | 0x00000000, // CB_BLEND5_CONTROL | ||
512 | 0x00000000, // CB_BLEND6_CONTROL | ||
513 | 0x00000000, // CB_BLEND7_CONTROL | ||
514 | }; | ||
515 | static const u32 SECT_CONTEXT_def_2[] = | ||
516 | { | ||
517 | 0x00000000, // PA_CL_POINT_X_RAD | ||
518 | 0x00000000, // PA_CL_POINT_Y_RAD | ||
519 | 0x00000000, // PA_CL_POINT_SIZE | ||
520 | 0x00000000, // PA_CL_POINT_CULL_RAD | ||
521 | 0x00000000, // VGT_DMA_BASE_HI | ||
522 | 0x00000000, // VGT_DMA_BASE | ||
523 | }; | ||
524 | static const u32 SECT_CONTEXT_def_3[] = | ||
525 | { | ||
526 | 0x00000000, // DB_DEPTH_CONTROL | ||
527 | 0x00000000, // DB_EQAA | ||
528 | 0x00000000, // CB_COLOR_CONTROL | ||
529 | 0x00000200, // DB_SHADER_CONTROL | ||
530 | 0x00000000, // PA_CL_CLIP_CNTL | ||
531 | 0x00000000, // PA_SU_SC_MODE_CNTL | ||
532 | 0x00000000, // PA_CL_VTE_CNTL | ||
533 | 0x00000000, // PA_CL_VS_OUT_CNTL | ||
534 | 0x00000000, // PA_CL_NANINF_CNTL | ||
535 | 0x00000000, // PA_SU_LINE_STIPPLE_CNTL | ||
536 | 0x00000000, // PA_SU_LINE_STIPPLE_SCALE | ||
537 | 0x00000000, // PA_SU_PRIM_FILTER_CNTL | ||
538 | 0x00000000, // SQ_LSTMP_RING_ITEMSIZE | ||
539 | 0x00000000, // SQ_HSTMP_RING_ITEMSIZE | ||
540 | 0, // HOLE | ||
541 | 0, // HOLE | ||
542 | 0x00000000, // SQ_PGM_START_PS | ||
543 | 0x00000000, // SQ_PGM_RESOURCES_PS | ||
544 | 0x00000000, // SQ_PGM_RESOURCES_2_PS | ||
545 | 0x00000000, // SQ_PGM_EXPORTS_PS | ||
546 | 0, // HOLE | ||
547 | 0, // HOLE | ||
548 | 0, // HOLE | ||
549 | 0x00000000, // SQ_PGM_START_VS | ||
550 | 0x00000000, // SQ_PGM_RESOURCES_VS | ||
551 | 0x00000000, // SQ_PGM_RESOURCES_2_VS | ||
552 | 0, // HOLE | ||
553 | 0, // HOLE | ||
554 | 0, // HOLE | ||
555 | 0x00000000, // SQ_PGM_START_GS | ||
556 | 0x00000000, // SQ_PGM_RESOURCES_GS | ||
557 | 0x00000000, // SQ_PGM_RESOURCES_2_GS | ||
558 | 0, // HOLE | ||
559 | 0, // HOLE | ||
560 | 0, // HOLE | ||
561 | 0x00000000, // SQ_PGM_START_ES | ||
562 | 0x00000000, // SQ_PGM_RESOURCES_ES | ||
563 | 0x00000000, // SQ_PGM_RESOURCES_2_ES | ||
564 | 0, // HOLE | ||
565 | 0, // HOLE | ||
566 | 0, // HOLE | ||
567 | 0x00000000, // SQ_PGM_START_FS | ||
568 | 0x00000000, // SQ_PGM_RESOURCES_FS | ||
569 | 0, // HOLE | ||
570 | 0, // HOLE | ||
571 | 0, // HOLE | ||
572 | 0x00000000, // SQ_PGM_START_HS | ||
573 | 0x00000000, // SQ_PGM_RESOURCES_HS | ||
574 | 0x00000000, // SQ_PGM_RESOURCES_2_HS | ||
575 | 0, // HOLE | ||
576 | 0, // HOLE | ||
577 | 0, // HOLE | ||
578 | 0x00000000, // SQ_PGM_START_LS | ||
579 | 0x00000000, // SQ_PGM_RESOURCES_LS | ||
580 | 0x00000000, // SQ_PGM_RESOURCES_2_LS | ||
581 | }; | ||
582 | static const u32 SECT_CONTEXT_def_4[] = | ||
583 | { | ||
584 | 0x00000000, // SQ_LDS_ALLOC | ||
585 | 0x00000000, // SQ_LDS_ALLOC_PS | ||
586 | 0x00000000, // SQ_VTX_SEMANTIC_CLEAR | ||
587 | 0, // HOLE | ||
588 | 0x00000000, // SQ_THREAD_TRACE_CTRL | ||
589 | 0, // HOLE | ||
590 | 0x00000000, // SQ_ESGS_RING_ITEMSIZE | ||
591 | 0x00000000, // SQ_GSVS_RING_ITEMSIZE | ||
592 | 0x00000000, // SQ_ESTMP_RING_ITEMSIZE | ||
593 | 0x00000000, // SQ_GSTMP_RING_ITEMSIZE | ||
594 | 0x00000000, // SQ_VSTMP_RING_ITEMSIZE | ||
595 | 0x00000000, // SQ_PSTMP_RING_ITEMSIZE | ||
596 | 0, // HOLE | ||
597 | 0x00000000, // SQ_GS_VERT_ITEMSIZE | ||
598 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_1 | ||
599 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_2 | ||
600 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_3 | ||
601 | 0x00000000, // SQ_GSVS_RING_OFFSET_1 | ||
602 | 0x00000000, // SQ_GSVS_RING_OFFSET_2 | ||
603 | 0x00000000, // SQ_GSVS_RING_OFFSET_3 | ||
604 | 0x00000000, // SQ_GWS_RING_OFFSET | ||
605 | 0, // HOLE | ||
606 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_0 | ||
607 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_1 | ||
608 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_2 | ||
609 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_3 | ||
610 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_4 | ||
611 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_5 | ||
612 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_6 | ||
613 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_7 | ||
614 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_8 | ||
615 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_9 | ||
616 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_10 | ||
617 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_11 | ||
618 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_12 | ||
619 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_13 | ||
620 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_14 | ||
621 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_15 | ||
622 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_0 | ||
623 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_1 | ||
624 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_2 | ||
625 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_3 | ||
626 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_4 | ||
627 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_5 | ||
628 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_6 | ||
629 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_7 | ||
630 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_8 | ||
631 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_9 | ||
632 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_10 | ||
633 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_11 | ||
634 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_12 | ||
635 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_13 | ||
636 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_14 | ||
637 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_15 | ||
638 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_0 | ||
639 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_1 | ||
640 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_2 | ||
641 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_3 | ||
642 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_4 | ||
643 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_5 | ||
644 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_6 | ||
645 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_7 | ||
646 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_8 | ||
647 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_9 | ||
648 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_10 | ||
649 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_11 | ||
650 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_12 | ||
651 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_13 | ||
652 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_14 | ||
653 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_15 | ||
654 | 0x00000000, // PA_SU_POINT_SIZE | ||
655 | 0x00000000, // PA_SU_POINT_MINMAX | ||
656 | 0x00000000, // PA_SU_LINE_CNTL | ||
657 | 0x00000000, // PA_SC_LINE_STIPPLE | ||
658 | 0x00000000, // VGT_OUTPUT_PATH_CNTL | ||
659 | 0x00000000, // VGT_HOS_CNTL | ||
660 | 0x00000000, // VGT_HOS_MAX_TESS_LEVEL | ||
661 | 0x00000000, // VGT_HOS_MIN_TESS_LEVEL | ||
662 | 0x00000000, // VGT_HOS_REUSE_DEPTH | ||
663 | 0x00000000, // VGT_GROUP_PRIM_TYPE | ||
664 | 0x00000000, // VGT_GROUP_FIRST_DECR | ||
665 | 0x00000000, // VGT_GROUP_DECR | ||
666 | 0x00000000, // VGT_GROUP_VECT_0_CNTL | ||
667 | 0x00000000, // VGT_GROUP_VECT_1_CNTL | ||
668 | 0x00000000, // VGT_GROUP_VECT_0_FMT_CNTL | ||
669 | 0x00000000, // VGT_GROUP_VECT_1_FMT_CNTL | ||
670 | 0x00000000, // VGT_GS_MODE | ||
671 | 0, // HOLE | ||
672 | 0x00000000, // PA_SC_MODE_CNTL_0 | ||
673 | 0x00000000, // PA_SC_MODE_CNTL_1 | ||
674 | 0x00000000, // VGT_ENHANCE | ||
675 | 0x00000100, // VGT_GS_PER_ES | ||
676 | 0x00000080, // VGT_ES_PER_GS | ||
677 | 0x00000002, // VGT_GS_PER_VS | ||
678 | 0, // HOLE | ||
679 | 0, // HOLE | ||
680 | 0, // HOLE | ||
681 | 0x00000000, // VGT_GS_OUT_PRIM_TYPE | ||
682 | 0x00000000, // IA_ENHANCE | ||
683 | }; | ||
684 | static const u32 SECT_CONTEXT_def_5[] = | ||
685 | { | ||
686 | 0x00000000, // VGT_DMA_MAX_SIZE | ||
687 | 0x00000000, // VGT_DMA_INDEX_TYPE | ||
688 | 0, // HOLE | ||
689 | 0x00000000, // VGT_PRIMITIVEID_EN | ||
690 | 0x00000000, // VGT_DMA_NUM_INSTANCES | ||
691 | }; | ||
692 | static const u32 SECT_CONTEXT_def_6[] = | ||
693 | { | ||
694 | 0x00000000, // VGT_MULTI_PRIM_IB_RESET_EN | ||
695 | 0, // HOLE | ||
696 | 0, // HOLE | ||
697 | 0x00000000, // VGT_INSTANCE_STEP_RATE_0 | ||
698 | 0x00000000, // VGT_INSTANCE_STEP_RATE_1 | ||
699 | 0x000000ff, // IA_MULTI_VGT_PARAM | ||
700 | 0, // HOLE | ||
701 | 0, // HOLE | ||
702 | 0x00000000, // VGT_REUSE_OFF | ||
703 | 0x00000000, // VGT_VTX_CNT_EN | ||
704 | 0x00000000, // DB_HTILE_SURFACE | ||
705 | 0x00000000, // DB_SRESULTS_COMPARE_STATE0 | ||
706 | 0x00000000, // DB_SRESULTS_COMPARE_STATE1 | ||
707 | 0x00000000, // DB_PRELOAD_CONTROL | ||
708 | 0, // HOLE | ||
709 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_0 | ||
710 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_0 | ||
711 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_0 | ||
712 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_0 | ||
713 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_1 | ||
714 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_1 | ||
715 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_1 | ||
716 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_1 | ||
717 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_2 | ||
718 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_2 | ||
719 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_2 | ||
720 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_2 | ||
721 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_3 | ||
722 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_3 | ||
723 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_3 | ||
724 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_3 | ||
725 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_0 | ||
726 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_1 | ||
727 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_2 | ||
728 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_3 | ||
729 | 0, // HOLE | ||
730 | 0, // HOLE | ||
731 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_OFFSET | ||
732 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE | ||
733 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE | ||
734 | 0, // HOLE | ||
735 | 0x00000000, // VGT_GS_MAX_VERT_OUT | ||
736 | 0, // HOLE | ||
737 | 0, // HOLE | ||
738 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_0 | ||
739 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_1 | ||
740 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_2 | ||
741 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_3 | ||
742 | 0x00000000, // VGT_SHADER_STAGES_EN | ||
743 | 0x00000000, // VGT_LS_HS_CONFIG | ||
744 | 0, // HOLE | ||
745 | 0, // HOLE | ||
746 | 0, // HOLE | ||
747 | 0, // HOLE | ||
748 | 0x00000000, // VGT_TF_PARAM | ||
749 | 0x00000000, // DB_ALPHA_TO_MASK | ||
750 | }; | ||
751 | static const u32 SECT_CONTEXT_def_7[] = | ||
752 | { | ||
753 | 0x00000000, // PA_SU_POLY_OFFSET_DB_FMT_CNTL | ||
754 | 0x00000000, // PA_SU_POLY_OFFSET_CLAMP | ||
755 | 0x00000000, // PA_SU_POLY_OFFSET_FRONT_SCALE | ||
756 | 0x00000000, // PA_SU_POLY_OFFSET_FRONT_OFFSET | ||
757 | 0x00000000, // PA_SU_POLY_OFFSET_BACK_SCALE | ||
758 | 0x00000000, // PA_SU_POLY_OFFSET_BACK_OFFSET | ||
759 | 0x00000000, // VGT_GS_INSTANCE_CNT | ||
760 | 0x00000000, // VGT_STRMOUT_CONFIG | ||
761 | 0x00000000, // VGT_STRMOUT_BUFFER_CONFIG | ||
762 | 0x00000000, // CB_IMMED0_BASE | ||
763 | 0x00000000, // CB_IMMED1_BASE | ||
764 | 0x00000000, // CB_IMMED2_BASE | ||
765 | 0x00000000, // CB_IMMED3_BASE | ||
766 | 0x00000000, // CB_IMMED4_BASE | ||
767 | 0x00000000, // CB_IMMED5_BASE | ||
768 | 0x00000000, // CB_IMMED6_BASE | ||
769 | 0x00000000, // CB_IMMED7_BASE | ||
770 | 0x00000000, // CB_IMMED8_BASE | ||
771 | 0x00000000, // CB_IMMED9_BASE | ||
772 | 0x00000000, // CB_IMMED10_BASE | ||
773 | 0x00000000, // CB_IMMED11_BASE | ||
774 | 0, // HOLE | ||
775 | 0, // HOLE | ||
776 | 0x00000000, // PA_SC_CENTROID_PRIORITY_0 | ||
777 | 0x00000000, // PA_SC_CENTROID_PRIORITY_1 | ||
778 | 0x00001000, // PA_SC_LINE_CNTL | ||
779 | 0x00000000, // PA_SC_AA_CONFIG | ||
780 | 0x00000005, // PA_SU_VTX_CNTL | ||
781 | 0x3f800000, // PA_CL_GB_VERT_CLIP_ADJ | ||
782 | 0x3f800000, // PA_CL_GB_VERT_DISC_ADJ | ||
783 | 0x3f800000, // PA_CL_GB_HORZ_CLIP_ADJ | ||
784 | 0x3f800000, // PA_CL_GB_HORZ_DISC_ADJ | ||
785 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0 | ||
786 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_1 | ||
787 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_2 | ||
788 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_3 | ||
789 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_0 | ||
790 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_1 | ||
791 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_2 | ||
792 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y0_3 | ||
793 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_0 | ||
794 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_1 | ||
795 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_2 | ||
796 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y1_3 | ||
797 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_0 | ||
798 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_1 | ||
799 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_2 | ||
800 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_PIXEL_X1Y1_3 | ||
801 | 0xffffffff, // PA_SC_AA_MASK_X0Y0_X1Y0 | ||
802 | 0xffffffff, // PA_SC_AA_MASK_X0Y1_X1Y1 | ||
803 | 0x00000000, // CB_CLRCMP_CONTROL | ||
804 | 0x00000000, // CB_CLRCMP_SRC | ||
805 | 0x00000000, // CB_CLRCMP_DST | ||
806 | 0x00000000, // CB_CLRCMP_MSK | ||
807 | 0, // HOLE | ||
808 | 0, // HOLE | ||
809 | 0x0000000e, // VGT_VERTEX_REUSE_BLOCK_CNTL | ||
810 | 0x00000010, // VGT_OUT_DEALLOC_CNTL | ||
811 | 0x00000000, // CB_COLOR0_BASE | ||
812 | 0x00000000, // CB_COLOR0_PITCH | ||
813 | 0x00000000, // CB_COLOR0_SLICE | ||
814 | 0x00000000, // CB_COLOR0_VIEW | ||
815 | 0x00000000, // CB_COLOR0_INFO | ||
816 | 0x00000000, // CB_COLOR0_ATTRIB | ||
817 | 0x00000000, // CB_COLOR0_DIM | ||
818 | 0x00000000, // CB_COLOR0_CMASK | ||
819 | 0x00000000, // CB_COLOR0_CMASK_SLICE | ||
820 | 0x00000000, // CB_COLOR0_FMASK | ||
821 | 0x00000000, // CB_COLOR0_FMASK_SLICE | ||
822 | 0x00000000, // CB_COLOR0_CLEAR_WORD0 | ||
823 | 0x00000000, // CB_COLOR0_CLEAR_WORD1 | ||
824 | 0x00000000, // CB_COLOR0_CLEAR_WORD2 | ||
825 | 0x00000000, // CB_COLOR0_CLEAR_WORD3 | ||
826 | 0x00000000, // CB_COLOR1_BASE | ||
827 | 0x00000000, // CB_COLOR1_PITCH | ||
828 | 0x00000000, // CB_COLOR1_SLICE | ||
829 | 0x00000000, // CB_COLOR1_VIEW | ||
830 | 0x00000000, // CB_COLOR1_INFO | ||
831 | 0x00000000, // CB_COLOR1_ATTRIB | ||
832 | 0x00000000, // CB_COLOR1_DIM | ||
833 | 0x00000000, // CB_COLOR1_CMASK | ||
834 | 0x00000000, // CB_COLOR1_CMASK_SLICE | ||
835 | 0x00000000, // CB_COLOR1_FMASK | ||
836 | 0x00000000, // CB_COLOR1_FMASK_SLICE | ||
837 | 0x00000000, // CB_COLOR1_CLEAR_WORD0 | ||
838 | 0x00000000, // CB_COLOR1_CLEAR_WORD1 | ||
839 | 0x00000000, // CB_COLOR1_CLEAR_WORD2 | ||
840 | 0x00000000, // CB_COLOR1_CLEAR_WORD3 | ||
841 | 0x00000000, // CB_COLOR2_BASE | ||
842 | 0x00000000, // CB_COLOR2_PITCH | ||
843 | 0x00000000, // CB_COLOR2_SLICE | ||
844 | 0x00000000, // CB_COLOR2_VIEW | ||
845 | 0x00000000, // CB_COLOR2_INFO | ||
846 | 0x00000000, // CB_COLOR2_ATTRIB | ||
847 | 0x00000000, // CB_COLOR2_DIM | ||
848 | 0x00000000, // CB_COLOR2_CMASK | ||
849 | 0x00000000, // CB_COLOR2_CMASK_SLICE | ||
850 | 0x00000000, // CB_COLOR2_FMASK | ||
851 | 0x00000000, // CB_COLOR2_FMASK_SLICE | ||
852 | 0x00000000, // CB_COLOR2_CLEAR_WORD0 | ||
853 | 0x00000000, // CB_COLOR2_CLEAR_WORD1 | ||
854 | 0x00000000, // CB_COLOR2_CLEAR_WORD2 | ||
855 | 0x00000000, // CB_COLOR2_CLEAR_WORD3 | ||
856 | 0x00000000, // CB_COLOR3_BASE | ||
857 | 0x00000000, // CB_COLOR3_PITCH | ||
858 | 0x00000000, // CB_COLOR3_SLICE | ||
859 | 0x00000000, // CB_COLOR3_VIEW | ||
860 | 0x00000000, // CB_COLOR3_INFO | ||
861 | 0x00000000, // CB_COLOR3_ATTRIB | ||
862 | 0x00000000, // CB_COLOR3_DIM | ||
863 | 0x00000000, // CB_COLOR3_CMASK | ||
864 | 0x00000000, // CB_COLOR3_CMASK_SLICE | ||
865 | 0x00000000, // CB_COLOR3_FMASK | ||
866 | 0x00000000, // CB_COLOR3_FMASK_SLICE | ||
867 | 0x00000000, // CB_COLOR3_CLEAR_WORD0 | ||
868 | 0x00000000, // CB_COLOR3_CLEAR_WORD1 | ||
869 | 0x00000000, // CB_COLOR3_CLEAR_WORD2 | ||
870 | 0x00000000, // CB_COLOR3_CLEAR_WORD3 | ||
871 | 0x00000000, // CB_COLOR4_BASE | ||
872 | 0x00000000, // CB_COLOR4_PITCH | ||
873 | 0x00000000, // CB_COLOR4_SLICE | ||
874 | 0x00000000, // CB_COLOR4_VIEW | ||
875 | 0x00000000, // CB_COLOR4_INFO | ||
876 | 0x00000000, // CB_COLOR4_ATTRIB | ||
877 | 0x00000000, // CB_COLOR4_DIM | ||
878 | 0x00000000, // CB_COLOR4_CMASK | ||
879 | 0x00000000, // CB_COLOR4_CMASK_SLICE | ||
880 | 0x00000000, // CB_COLOR4_FMASK | ||
881 | 0x00000000, // CB_COLOR4_FMASK_SLICE | ||
882 | 0x00000000, // CB_COLOR4_CLEAR_WORD0 | ||
883 | 0x00000000, // CB_COLOR4_CLEAR_WORD1 | ||
884 | 0x00000000, // CB_COLOR4_CLEAR_WORD2 | ||
885 | 0x00000000, // CB_COLOR4_CLEAR_WORD3 | ||
886 | 0x00000000, // CB_COLOR5_BASE | ||
887 | 0x00000000, // CB_COLOR5_PITCH | ||
888 | 0x00000000, // CB_COLOR5_SLICE | ||
889 | 0x00000000, // CB_COLOR5_VIEW | ||
890 | 0x00000000, // CB_COLOR5_INFO | ||
891 | 0x00000000, // CB_COLOR5_ATTRIB | ||
892 | 0x00000000, // CB_COLOR5_DIM | ||
893 | 0x00000000, // CB_COLOR5_CMASK | ||
894 | 0x00000000, // CB_COLOR5_CMASK_SLICE | ||
895 | 0x00000000, // CB_COLOR5_FMASK | ||
896 | 0x00000000, // CB_COLOR5_FMASK_SLICE | ||
897 | 0x00000000, // CB_COLOR5_CLEAR_WORD0 | ||
898 | 0x00000000, // CB_COLOR5_CLEAR_WORD1 | ||
899 | 0x00000000, // CB_COLOR5_CLEAR_WORD2 | ||
900 | 0x00000000, // CB_COLOR5_CLEAR_WORD3 | ||
901 | 0x00000000, // CB_COLOR6_BASE | ||
902 | 0x00000000, // CB_COLOR6_PITCH | ||
903 | 0x00000000, // CB_COLOR6_SLICE | ||
904 | 0x00000000, // CB_COLOR6_VIEW | ||
905 | 0x00000000, // CB_COLOR6_INFO | ||
906 | 0x00000000, // CB_COLOR6_ATTRIB | ||
907 | 0x00000000, // CB_COLOR6_DIM | ||
908 | 0x00000000, // CB_COLOR6_CMASK | ||
909 | 0x00000000, // CB_COLOR6_CMASK_SLICE | ||
910 | 0x00000000, // CB_COLOR6_FMASK | ||
911 | 0x00000000, // CB_COLOR6_FMASK_SLICE | ||
912 | 0x00000000, // CB_COLOR6_CLEAR_WORD0 | ||
913 | 0x00000000, // CB_COLOR6_CLEAR_WORD1 | ||
914 | 0x00000000, // CB_COLOR6_CLEAR_WORD2 | ||
915 | 0x00000000, // CB_COLOR6_CLEAR_WORD3 | ||
916 | 0x00000000, // CB_COLOR7_BASE | ||
917 | 0x00000000, // CB_COLOR7_PITCH | ||
918 | 0x00000000, // CB_COLOR7_SLICE | ||
919 | 0x00000000, // CB_COLOR7_VIEW | ||
920 | 0x00000000, // CB_COLOR7_INFO | ||
921 | 0x00000000, // CB_COLOR7_ATTRIB | ||
922 | 0x00000000, // CB_COLOR7_DIM | ||
923 | 0x00000000, // CB_COLOR7_CMASK | ||
924 | 0x00000000, // CB_COLOR7_CMASK_SLICE | ||
925 | 0x00000000, // CB_COLOR7_FMASK | ||
926 | 0x00000000, // CB_COLOR7_FMASK_SLICE | ||
927 | 0x00000000, // CB_COLOR7_CLEAR_WORD0 | ||
928 | 0x00000000, // CB_COLOR7_CLEAR_WORD1 | ||
929 | 0x00000000, // CB_COLOR7_CLEAR_WORD2 | ||
930 | 0x00000000, // CB_COLOR7_CLEAR_WORD3 | ||
931 | 0x00000000, // CB_COLOR8_BASE | ||
932 | 0x00000000, // CB_COLOR8_PITCH | ||
933 | 0x00000000, // CB_COLOR8_SLICE | ||
934 | 0x00000000, // CB_COLOR8_VIEW | ||
935 | 0x00000000, // CB_COLOR8_INFO | ||
936 | 0x00000000, // CB_COLOR8_ATTRIB | ||
937 | 0x00000000, // CB_COLOR8_DIM | ||
938 | 0x00000000, // CB_COLOR9_BASE | ||
939 | 0x00000000, // CB_COLOR9_PITCH | ||
940 | 0x00000000, // CB_COLOR9_SLICE | ||
941 | 0x00000000, // CB_COLOR9_VIEW | ||
942 | 0x00000000, // CB_COLOR9_INFO | ||
943 | 0x00000000, // CB_COLOR9_ATTRIB | ||
944 | 0x00000000, // CB_COLOR9_DIM | ||
945 | 0x00000000, // CB_COLOR10_BASE | ||
946 | 0x00000000, // CB_COLOR10_PITCH | ||
947 | 0x00000000, // CB_COLOR10_SLICE | ||
948 | 0x00000000, // CB_COLOR10_VIEW | ||
949 | 0x00000000, // CB_COLOR10_INFO | ||
950 | 0x00000000, // CB_COLOR10_ATTRIB | ||
951 | 0x00000000, // CB_COLOR10_DIM | ||
952 | 0x00000000, // CB_COLOR11_BASE | ||
953 | 0x00000000, // CB_COLOR11_PITCH | ||
954 | 0x00000000, // CB_COLOR11_SLICE | ||
955 | 0x00000000, // CB_COLOR11_VIEW | ||
956 | 0x00000000, // CB_COLOR11_INFO | ||
957 | 0x00000000, // CB_COLOR11_ATTRIB | ||
958 | 0x00000000, // CB_COLOR11_DIM | ||
959 | 0, // HOLE | ||
960 | 0, // HOLE | ||
961 | 0, // HOLE | ||
962 | 0, // HOLE | ||
963 | 0, // HOLE | ||
964 | 0, // HOLE | ||
965 | 0, // HOLE | ||
966 | 0, // HOLE | ||
967 | 0, // HOLE | ||
968 | 0, // HOLE | ||
969 | 0, // HOLE | ||
970 | 0, // HOLE | ||
971 | 0, // HOLE | ||
972 | 0, // HOLE | ||
973 | 0, // HOLE | ||
974 | 0, // HOLE | ||
975 | 0, // HOLE | ||
976 | 0, // HOLE | ||
977 | 0, // HOLE | ||
978 | 0, // HOLE | ||
979 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_0 | ||
980 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_1 | ||
981 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_2 | ||
982 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_3 | ||
983 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_4 | ||
984 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_5 | ||
985 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_6 | ||
986 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_7 | ||
987 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_8 | ||
988 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_9 | ||
989 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_10 | ||
990 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_11 | ||
991 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_12 | ||
992 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_13 | ||
993 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_14 | ||
994 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_15 | ||
995 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_0 | ||
996 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_1 | ||
997 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_2 | ||
998 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_3 | ||
999 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_4 | ||
1000 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_5 | ||
1001 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_6 | ||
1002 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_7 | ||
1003 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_8 | ||
1004 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_9 | ||
1005 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_10 | ||
1006 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_11 | ||
1007 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_12 | ||
1008 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_13 | ||
1009 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_14 | ||
1010 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_15 | ||
1011 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_0 | ||
1012 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_1 | ||
1013 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_2 | ||
1014 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_3 | ||
1015 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_4 | ||
1016 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_5 | ||
1017 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_6 | ||
1018 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_7 | ||
1019 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_8 | ||
1020 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_9 | ||
1021 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_10 | ||
1022 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_11 | ||
1023 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_12 | ||
1024 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_13 | ||
1025 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_14 | ||
1026 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_15 | ||
1027 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_0 | ||
1028 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_1 | ||
1029 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_2 | ||
1030 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_3 | ||
1031 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_4 | ||
1032 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_5 | ||
1033 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_6 | ||
1034 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_7 | ||
1035 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_8 | ||
1036 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_9 | ||
1037 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_10 | ||
1038 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_11 | ||
1039 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_12 | ||
1040 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_13 | ||
1041 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_14 | ||
1042 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_15 | ||
1043 | }; | ||
1044 | static const struct cs_extent_def SECT_CONTEXT_defs[] = | ||
1045 | { | ||
1046 | {SECT_CONTEXT_def_1, 0x0000a000, 488 }, | ||
1047 | {SECT_CONTEXT_def_2, 0x0000a1f5, 6 }, | ||
1048 | {SECT_CONTEXT_def_3, 0x0000a200, 55 }, | ||
1049 | {SECT_CONTEXT_def_4, 0x0000a23a, 99 }, | ||
1050 | {SECT_CONTEXT_def_5, 0x0000a29e, 5 }, | ||
1051 | {SECT_CONTEXT_def_6, 0x0000a2a5, 56 }, | ||
1052 | {SECT_CONTEXT_def_7, 0x0000a2de, 290 }, | ||
1053 | { 0, 0, 0 } | ||
1054 | }; | ||
1055 | static const u32 SECT_CLEAR_def_1[] = | ||
1056 | { | ||
1057 | 0xffffffff, // SQ_TEX_SAMPLER_CLEAR | ||
1058 | 0xffffffff, // SQ_TEX_RESOURCE_CLEAR | ||
1059 | 0xffffffff, // SQ_LOOP_BOOL_CLEAR | ||
1060 | }; | ||
1061 | static const struct cs_extent_def SECT_CLEAR_defs[] = | ||
1062 | { | ||
1063 | {SECT_CLEAR_def_1, 0x0000ffc0, 3 }, | ||
1064 | { 0, 0, 0 } | ||
1065 | }; | ||
1066 | static const u32 SECT_CTRLCONST_def_1[] = | ||
1067 | { | ||
1068 | 0x00000000, // SQ_VTX_BASE_VTX_LOC | ||
1069 | 0x00000000, // SQ_VTX_START_INST_LOC | ||
1070 | }; | ||
1071 | static const struct cs_extent_def SECT_CTRLCONST_defs[] = | ||
1072 | { | ||
1073 | {SECT_CTRLCONST_def_1, 0x0000f3fc, 2 }, | ||
1074 | { 0, 0, 0 } | ||
1075 | }; | ||
1076 | struct cs_section_def cayman_cs_data[] = { | ||
1077 | { SECT_CONTEXT_defs, SECT_CONTEXT }, | ||
1078 | { SECT_CLEAR_defs, SECT_CLEAR }, | ||
1079 | { SECT_CTRLCONST_defs, SECT_CTRLCONST }, | ||
1080 | { 0, SECT_NONE } | ||
1081 | }; | ||
diff --git a/drivers/gpu/drm/radeon/clearstate_defs.h b/drivers/gpu/drm/radeon/clearstate_defs.h new file mode 100644 index 000000000000..3eda707d7388 --- /dev/null +++ b/drivers/gpu/drm/radeon/clearstate_defs.h | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Advanced Micro Devices, Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | * | ||
22 | */ | ||
23 | #ifndef CLEARSTATE_DEFS_H | ||
24 | #define CLEARSTATE_DEFS_H | ||
25 | |||
26 | enum section_id { | ||
27 | SECT_NONE, | ||
28 | SECT_CONTEXT, | ||
29 | SECT_CLEAR, | ||
30 | SECT_CTRLCONST | ||
31 | }; | ||
32 | |||
33 | struct cs_extent_def { | ||
34 | const unsigned int *extent; | ||
35 | const unsigned int reg_index; | ||
36 | const unsigned int reg_count; | ||
37 | }; | ||
38 | |||
39 | struct cs_section_def { | ||
40 | const struct cs_extent_def *section; | ||
41 | const enum section_id id; | ||
42 | }; | ||
43 | |||
44 | #endif | ||
diff --git a/drivers/gpu/drm/radeon/clearstate_evergreen.h b/drivers/gpu/drm/radeon/clearstate_evergreen.h new file mode 100644 index 000000000000..4791d856b7fd --- /dev/null +++ b/drivers/gpu/drm/radeon/clearstate_evergreen.h | |||
@@ -0,0 +1,1080 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Advanced Micro Devices, Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | * | ||
22 | */ | ||
23 | |||
24 | static const u32 SECT_CONTEXT_def_1[] = | ||
25 | { | ||
26 | 0x00000000, // DB_RENDER_CONTROL | ||
27 | 0x00000000, // DB_COUNT_CONTROL | ||
28 | 0x00000000, // DB_DEPTH_VIEW | ||
29 | 0x00000000, // DB_RENDER_OVERRIDE | ||
30 | 0x00000000, // DB_RENDER_OVERRIDE2 | ||
31 | 0x00000000, // DB_HTILE_DATA_BASE | ||
32 | 0, // HOLE | ||
33 | 0, // HOLE | ||
34 | 0, // HOLE | ||
35 | 0, // HOLE | ||
36 | 0x00000000, // DB_STENCIL_CLEAR | ||
37 | 0x00000000, // DB_DEPTH_CLEAR | ||
38 | 0x00000000, // PA_SC_SCREEN_SCISSOR_TL | ||
39 | 0x40004000, // PA_SC_SCREEN_SCISSOR_BR | ||
40 | 0, // HOLE | ||
41 | 0, // HOLE | ||
42 | 0x00000000, // DB_Z_INFO | ||
43 | 0x00000000, // DB_STENCIL_INFO | ||
44 | 0x00000000, // DB_Z_READ_BASE | ||
45 | 0x00000000, // DB_STENCIL_READ_BASE | ||
46 | 0x00000000, // DB_Z_WRITE_BASE | ||
47 | 0x00000000, // DB_STENCIL_WRITE_BASE | ||
48 | 0x00000000, // DB_DEPTH_SIZE | ||
49 | 0x00000000, // DB_DEPTH_SLICE | ||
50 | 0, // HOLE | ||
51 | 0, // HOLE | ||
52 | 0, // HOLE | ||
53 | 0, // HOLE | ||
54 | 0, // HOLE | ||
55 | 0, // HOLE | ||
56 | 0, // HOLE | ||
57 | 0, // HOLE | ||
58 | 0, // HOLE | ||
59 | 0, // HOLE | ||
60 | 0, // HOLE | ||
61 | 0, // HOLE | ||
62 | 0, // HOLE | ||
63 | 0, // HOLE | ||
64 | 0, // HOLE | ||
65 | 0, // HOLE | ||
66 | 0, // HOLE | ||
67 | 0, // HOLE | ||
68 | 0, // HOLE | ||
69 | 0, // HOLE | ||
70 | 0, // HOLE | ||
71 | 0, // HOLE | ||
72 | 0, // HOLE | ||
73 | 0, // HOLE | ||
74 | 0, // HOLE | ||
75 | 0, // HOLE | ||
76 | 0, // HOLE | ||
77 | 0, // HOLE | ||
78 | 0, // HOLE | ||
79 | 0, // HOLE | ||
80 | 0, // HOLE | ||
81 | 0, // HOLE | ||
82 | 0, // HOLE | ||
83 | 0, // HOLE | ||
84 | 0, // HOLE | ||
85 | 0, // HOLE | ||
86 | 0, // HOLE | ||
87 | 0, // HOLE | ||
88 | 0, // HOLE | ||
89 | 0, // HOLE | ||
90 | 0, // HOLE | ||
91 | 0, // HOLE | ||
92 | 0, // HOLE | ||
93 | 0, // HOLE | ||
94 | 0, // HOLE | ||
95 | 0, // HOLE | ||
96 | 0, // HOLE | ||
97 | 0, // HOLE | ||
98 | 0, // HOLE | ||
99 | 0, // HOLE | ||
100 | 0, // HOLE | ||
101 | 0, // HOLE | ||
102 | 0, // HOLE | ||
103 | 0, // HOLE | ||
104 | 0, // HOLE | ||
105 | 0, // HOLE | ||
106 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_0 | ||
107 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_1 | ||
108 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_2 | ||
109 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_3 | ||
110 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_4 | ||
111 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_5 | ||
112 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_6 | ||
113 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_7 | ||
114 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_8 | ||
115 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_9 | ||
116 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_10 | ||
117 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_11 | ||
118 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_12 | ||
119 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_13 | ||
120 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_14 | ||
121 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_PS_15 | ||
122 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_0 | ||
123 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_1 | ||
124 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_2 | ||
125 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_3 | ||
126 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_4 | ||
127 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_5 | ||
128 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_6 | ||
129 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_7 | ||
130 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_8 | ||
131 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_9 | ||
132 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_10 | ||
133 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_11 | ||
134 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_12 | ||
135 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_13 | ||
136 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_14 | ||
137 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_VS_15 | ||
138 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_0 | ||
139 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_1 | ||
140 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_2 | ||
141 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_3 | ||
142 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_4 | ||
143 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_5 | ||
144 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_6 | ||
145 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_7 | ||
146 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_8 | ||
147 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_9 | ||
148 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_10 | ||
149 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_11 | ||
150 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_12 | ||
151 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_13 | ||
152 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_14 | ||
153 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_GS_15 | ||
154 | 0x00000000, // PA_SC_WINDOW_OFFSET | ||
155 | 0x80000000, // PA_SC_WINDOW_SCISSOR_TL | ||
156 | 0x40004000, // PA_SC_WINDOW_SCISSOR_BR | ||
157 | 0x0000ffff, // PA_SC_CLIPRECT_RULE | ||
158 | 0x00000000, // PA_SC_CLIPRECT_0_TL | ||
159 | 0x40004000, // PA_SC_CLIPRECT_0_BR | ||
160 | 0x00000000, // PA_SC_CLIPRECT_1_TL | ||
161 | 0x40004000, // PA_SC_CLIPRECT_1_BR | ||
162 | 0x00000000, // PA_SC_CLIPRECT_2_TL | ||
163 | 0x40004000, // PA_SC_CLIPRECT_2_BR | ||
164 | 0x00000000, // PA_SC_CLIPRECT_3_TL | ||
165 | 0x40004000, // PA_SC_CLIPRECT_3_BR | ||
166 | 0xaa99aaaa, // PA_SC_EDGERULE | ||
167 | 0x00000000, // PA_SU_HARDWARE_SCREEN_OFFSET | ||
168 | 0xffffffff, // CB_TARGET_MASK | ||
169 | 0xffffffff, // CB_SHADER_MASK | ||
170 | 0x80000000, // PA_SC_GENERIC_SCISSOR_TL | ||
171 | 0x40004000, // PA_SC_GENERIC_SCISSOR_BR | ||
172 | 0x00000000, // COHER_DEST_BASE_0 | ||
173 | 0x00000000, // COHER_DEST_BASE_1 | ||
174 | 0x80000000, // PA_SC_VPORT_SCISSOR_0_TL | ||
175 | 0x40004000, // PA_SC_VPORT_SCISSOR_0_BR | ||
176 | 0x80000000, // PA_SC_VPORT_SCISSOR_1_TL | ||
177 | 0x40004000, // PA_SC_VPORT_SCISSOR_1_BR | ||
178 | 0x80000000, // PA_SC_VPORT_SCISSOR_2_TL | ||
179 | 0x40004000, // PA_SC_VPORT_SCISSOR_2_BR | ||
180 | 0x80000000, // PA_SC_VPORT_SCISSOR_3_TL | ||
181 | 0x40004000, // PA_SC_VPORT_SCISSOR_3_BR | ||
182 | 0x80000000, // PA_SC_VPORT_SCISSOR_4_TL | ||
183 | 0x40004000, // PA_SC_VPORT_SCISSOR_4_BR | ||
184 | 0x80000000, // PA_SC_VPORT_SCISSOR_5_TL | ||
185 | 0x40004000, // PA_SC_VPORT_SCISSOR_5_BR | ||
186 | 0x80000000, // PA_SC_VPORT_SCISSOR_6_TL | ||
187 | 0x40004000, // PA_SC_VPORT_SCISSOR_6_BR | ||
188 | 0x80000000, // PA_SC_VPORT_SCISSOR_7_TL | ||
189 | 0x40004000, // PA_SC_VPORT_SCISSOR_7_BR | ||
190 | 0x80000000, // PA_SC_VPORT_SCISSOR_8_TL | ||
191 | 0x40004000, // PA_SC_VPORT_SCISSOR_8_BR | ||
192 | 0x80000000, // PA_SC_VPORT_SCISSOR_9_TL | ||
193 | 0x40004000, // PA_SC_VPORT_SCISSOR_9_BR | ||
194 | 0x80000000, // PA_SC_VPORT_SCISSOR_10_TL | ||
195 | 0x40004000, // PA_SC_VPORT_SCISSOR_10_BR | ||
196 | 0x80000000, // PA_SC_VPORT_SCISSOR_11_TL | ||
197 | 0x40004000, // PA_SC_VPORT_SCISSOR_11_BR | ||
198 | 0x80000000, // PA_SC_VPORT_SCISSOR_12_TL | ||
199 | 0x40004000, // PA_SC_VPORT_SCISSOR_12_BR | ||
200 | 0x80000000, // PA_SC_VPORT_SCISSOR_13_TL | ||
201 | 0x40004000, // PA_SC_VPORT_SCISSOR_13_BR | ||
202 | 0x80000000, // PA_SC_VPORT_SCISSOR_14_TL | ||
203 | 0x40004000, // PA_SC_VPORT_SCISSOR_14_BR | ||
204 | 0x80000000, // PA_SC_VPORT_SCISSOR_15_TL | ||
205 | 0x40004000, // PA_SC_VPORT_SCISSOR_15_BR | ||
206 | 0x00000000, // PA_SC_VPORT_ZMIN_0 | ||
207 | 0x3f800000, // PA_SC_VPORT_ZMAX_0 | ||
208 | 0x00000000, // PA_SC_VPORT_ZMIN_1 | ||
209 | 0x3f800000, // PA_SC_VPORT_ZMAX_1 | ||
210 | 0x00000000, // PA_SC_VPORT_ZMIN_2 | ||
211 | 0x3f800000, // PA_SC_VPORT_ZMAX_2 | ||
212 | 0x00000000, // PA_SC_VPORT_ZMIN_3 | ||
213 | 0x3f800000, // PA_SC_VPORT_ZMAX_3 | ||
214 | 0x00000000, // PA_SC_VPORT_ZMIN_4 | ||
215 | 0x3f800000, // PA_SC_VPORT_ZMAX_4 | ||
216 | 0x00000000, // PA_SC_VPORT_ZMIN_5 | ||
217 | 0x3f800000, // PA_SC_VPORT_ZMAX_5 | ||
218 | 0x00000000, // PA_SC_VPORT_ZMIN_6 | ||
219 | 0x3f800000, // PA_SC_VPORT_ZMAX_6 | ||
220 | 0x00000000, // PA_SC_VPORT_ZMIN_7 | ||
221 | 0x3f800000, // PA_SC_VPORT_ZMAX_7 | ||
222 | 0x00000000, // PA_SC_VPORT_ZMIN_8 | ||
223 | 0x3f800000, // PA_SC_VPORT_ZMAX_8 | ||
224 | 0x00000000, // PA_SC_VPORT_ZMIN_9 | ||
225 | 0x3f800000, // PA_SC_VPORT_ZMAX_9 | ||
226 | 0x00000000, // PA_SC_VPORT_ZMIN_10 | ||
227 | 0x3f800000, // PA_SC_VPORT_ZMAX_10 | ||
228 | 0x00000000, // PA_SC_VPORT_ZMIN_11 | ||
229 | 0x3f800000, // PA_SC_VPORT_ZMAX_11 | ||
230 | 0x00000000, // PA_SC_VPORT_ZMIN_12 | ||
231 | 0x3f800000, // PA_SC_VPORT_ZMAX_12 | ||
232 | 0x00000000, // PA_SC_VPORT_ZMIN_13 | ||
233 | 0x3f800000, // PA_SC_VPORT_ZMAX_13 | ||
234 | 0x00000000, // PA_SC_VPORT_ZMIN_14 | ||
235 | 0x3f800000, // PA_SC_VPORT_ZMAX_14 | ||
236 | 0x00000000, // PA_SC_VPORT_ZMIN_15 | ||
237 | 0x3f800000, // PA_SC_VPORT_ZMAX_15 | ||
238 | 0x00000000, // SX_MISC | ||
239 | 0x00000000, // SX_SURFACE_SYNC | ||
240 | 0x00000000, // CP_PERFMON_CNTX_CNTL | ||
241 | 0, // HOLE | ||
242 | 0, // HOLE | ||
243 | 0, // HOLE | ||
244 | 0, // HOLE | ||
245 | 0, // HOLE | ||
246 | 0, // HOLE | ||
247 | 0, // HOLE | ||
248 | 0, // HOLE | ||
249 | 0, // HOLE | ||
250 | 0x00000000, // SQ_VTX_SEMANTIC_0 | ||
251 | 0x00000000, // SQ_VTX_SEMANTIC_1 | ||
252 | 0x00000000, // SQ_VTX_SEMANTIC_2 | ||
253 | 0x00000000, // SQ_VTX_SEMANTIC_3 | ||
254 | 0x00000000, // SQ_VTX_SEMANTIC_4 | ||
255 | 0x00000000, // SQ_VTX_SEMANTIC_5 | ||
256 | 0x00000000, // SQ_VTX_SEMANTIC_6 | ||
257 | 0x00000000, // SQ_VTX_SEMANTIC_7 | ||
258 | 0x00000000, // SQ_VTX_SEMANTIC_8 | ||
259 | 0x00000000, // SQ_VTX_SEMANTIC_9 | ||
260 | 0x00000000, // SQ_VTX_SEMANTIC_10 | ||
261 | 0x00000000, // SQ_VTX_SEMANTIC_11 | ||
262 | 0x00000000, // SQ_VTX_SEMANTIC_12 | ||
263 | 0x00000000, // SQ_VTX_SEMANTIC_13 | ||
264 | 0x00000000, // SQ_VTX_SEMANTIC_14 | ||
265 | 0x00000000, // SQ_VTX_SEMANTIC_15 | ||
266 | 0x00000000, // SQ_VTX_SEMANTIC_16 | ||
267 | 0x00000000, // SQ_VTX_SEMANTIC_17 | ||
268 | 0x00000000, // SQ_VTX_SEMANTIC_18 | ||
269 | 0x00000000, // SQ_VTX_SEMANTIC_19 | ||
270 | 0x00000000, // SQ_VTX_SEMANTIC_20 | ||
271 | 0x00000000, // SQ_VTX_SEMANTIC_21 | ||
272 | 0x00000000, // SQ_VTX_SEMANTIC_22 | ||
273 | 0x00000000, // SQ_VTX_SEMANTIC_23 | ||
274 | 0x00000000, // SQ_VTX_SEMANTIC_24 | ||
275 | 0x00000000, // SQ_VTX_SEMANTIC_25 | ||
276 | 0x00000000, // SQ_VTX_SEMANTIC_26 | ||
277 | 0x00000000, // SQ_VTX_SEMANTIC_27 | ||
278 | 0x00000000, // SQ_VTX_SEMANTIC_28 | ||
279 | 0x00000000, // SQ_VTX_SEMANTIC_29 | ||
280 | 0x00000000, // SQ_VTX_SEMANTIC_30 | ||
281 | 0x00000000, // SQ_VTX_SEMANTIC_31 | ||
282 | 0xffffffff, // VGT_MAX_VTX_INDX | ||
283 | 0x00000000, // VGT_MIN_VTX_INDX | ||
284 | 0x00000000, // VGT_INDX_OFFSET | ||
285 | 0x00000000, // VGT_MULTI_PRIM_IB_RESET_INDX | ||
286 | 0x00000000, // SX_ALPHA_TEST_CONTROL | ||
287 | 0x00000000, // CB_BLEND_RED | ||
288 | 0x00000000, // CB_BLEND_GREEN | ||
289 | 0x00000000, // CB_BLEND_BLUE | ||
290 | 0x00000000, // CB_BLEND_ALPHA | ||
291 | 0, // HOLE | ||
292 | 0, // HOLE | ||
293 | 0, // HOLE | ||
294 | 0x00000000, // DB_STENCILREFMASK | ||
295 | 0x00000000, // DB_STENCILREFMASK_BF | ||
296 | 0x00000000, // SX_ALPHA_REF | ||
297 | 0x00000000, // PA_CL_VPORT_XSCALE | ||
298 | 0x00000000, // PA_CL_VPORT_XOFFSET | ||
299 | 0x00000000, // PA_CL_VPORT_YSCALE | ||
300 | 0x00000000, // PA_CL_VPORT_YOFFSET | ||
301 | 0x00000000, // PA_CL_VPORT_ZSCALE | ||
302 | 0x00000000, // PA_CL_VPORT_ZOFFSET | ||
303 | 0x00000000, // PA_CL_VPORT_XSCALE_1 | ||
304 | 0x00000000, // PA_CL_VPORT_XOFFSET_1 | ||
305 | 0x00000000, // PA_CL_VPORT_YSCALE_1 | ||
306 | 0x00000000, // PA_CL_VPORT_YOFFSET_1 | ||
307 | 0x00000000, // PA_CL_VPORT_ZSCALE_1 | ||
308 | 0x00000000, // PA_CL_VPORT_ZOFFSET_1 | ||
309 | 0x00000000, // PA_CL_VPORT_XSCALE_2 | ||
310 | 0x00000000, // PA_CL_VPORT_XOFFSET_2 | ||
311 | 0x00000000, // PA_CL_VPORT_YSCALE_2 | ||
312 | 0x00000000, // PA_CL_VPORT_YOFFSET_2 | ||
313 | 0x00000000, // PA_CL_VPORT_ZSCALE_2 | ||
314 | 0x00000000, // PA_CL_VPORT_ZOFFSET_2 | ||
315 | 0x00000000, // PA_CL_VPORT_XSCALE_3 | ||
316 | 0x00000000, // PA_CL_VPORT_XOFFSET_3 | ||
317 | 0x00000000, // PA_CL_VPORT_YSCALE_3 | ||
318 | 0x00000000, // PA_CL_VPORT_YOFFSET_3 | ||
319 | 0x00000000, // PA_CL_VPORT_ZSCALE_3 | ||
320 | 0x00000000, // PA_CL_VPORT_ZOFFSET_3 | ||
321 | 0x00000000, // PA_CL_VPORT_XSCALE_4 | ||
322 | 0x00000000, // PA_CL_VPORT_XOFFSET_4 | ||
323 | 0x00000000, // PA_CL_VPORT_YSCALE_4 | ||
324 | 0x00000000, // PA_CL_VPORT_YOFFSET_4 | ||
325 | 0x00000000, // PA_CL_VPORT_ZSCALE_4 | ||
326 | 0x00000000, // PA_CL_VPORT_ZOFFSET_4 | ||
327 | 0x00000000, // PA_CL_VPORT_XSCALE_5 | ||
328 | 0x00000000, // PA_CL_VPORT_XOFFSET_5 | ||
329 | 0x00000000, // PA_CL_VPORT_YSCALE_5 | ||
330 | 0x00000000, // PA_CL_VPORT_YOFFSET_5 | ||
331 | 0x00000000, // PA_CL_VPORT_ZSCALE_5 | ||
332 | 0x00000000, // PA_CL_VPORT_ZOFFSET_5 | ||
333 | 0x00000000, // PA_CL_VPORT_XSCALE_6 | ||
334 | 0x00000000, // PA_CL_VPORT_XOFFSET_6 | ||
335 | 0x00000000, // PA_CL_VPORT_YSCALE_6 | ||
336 | 0x00000000, // PA_CL_VPORT_YOFFSET_6 | ||
337 | 0x00000000, // PA_CL_VPORT_ZSCALE_6 | ||
338 | 0x00000000, // PA_CL_VPORT_ZOFFSET_6 | ||
339 | 0x00000000, // PA_CL_VPORT_XSCALE_7 | ||
340 | 0x00000000, // PA_CL_VPORT_XOFFSET_7 | ||
341 | 0x00000000, // PA_CL_VPORT_YSCALE_7 | ||
342 | 0x00000000, // PA_CL_VPORT_YOFFSET_7 | ||
343 | 0x00000000, // PA_CL_VPORT_ZSCALE_7 | ||
344 | 0x00000000, // PA_CL_VPORT_ZOFFSET_7 | ||
345 | 0x00000000, // PA_CL_VPORT_XSCALE_8 | ||
346 | 0x00000000, // PA_CL_VPORT_XOFFSET_8 | ||
347 | 0x00000000, // PA_CL_VPORT_YSCALE_8 | ||
348 | 0x00000000, // PA_CL_VPORT_YOFFSET_8 | ||
349 | 0x00000000, // PA_CL_VPORT_ZSCALE_8 | ||
350 | 0x00000000, // PA_CL_VPORT_ZOFFSET_8 | ||
351 | 0x00000000, // PA_CL_VPORT_XSCALE_9 | ||
352 | 0x00000000, // PA_CL_VPORT_XOFFSET_9 | ||
353 | 0x00000000, // PA_CL_VPORT_YSCALE_9 | ||
354 | 0x00000000, // PA_CL_VPORT_YOFFSET_9 | ||
355 | 0x00000000, // PA_CL_VPORT_ZSCALE_9 | ||
356 | 0x00000000, // PA_CL_VPORT_ZOFFSET_9 | ||
357 | 0x00000000, // PA_CL_VPORT_XSCALE_10 | ||
358 | 0x00000000, // PA_CL_VPORT_XOFFSET_10 | ||
359 | 0x00000000, // PA_CL_VPORT_YSCALE_10 | ||
360 | 0x00000000, // PA_CL_VPORT_YOFFSET_10 | ||
361 | 0x00000000, // PA_CL_VPORT_ZSCALE_10 | ||
362 | 0x00000000, // PA_CL_VPORT_ZOFFSET_10 | ||
363 | 0x00000000, // PA_CL_VPORT_XSCALE_11 | ||
364 | 0x00000000, // PA_CL_VPORT_XOFFSET_11 | ||
365 | 0x00000000, // PA_CL_VPORT_YSCALE_11 | ||
366 | 0x00000000, // PA_CL_VPORT_YOFFSET_11 | ||
367 | 0x00000000, // PA_CL_VPORT_ZSCALE_11 | ||
368 | 0x00000000, // PA_CL_VPORT_ZOFFSET_11 | ||
369 | 0x00000000, // PA_CL_VPORT_XSCALE_12 | ||
370 | 0x00000000, // PA_CL_VPORT_XOFFSET_12 | ||
371 | 0x00000000, // PA_CL_VPORT_YSCALE_12 | ||
372 | 0x00000000, // PA_CL_VPORT_YOFFSET_12 | ||
373 | 0x00000000, // PA_CL_VPORT_ZSCALE_12 | ||
374 | 0x00000000, // PA_CL_VPORT_ZOFFSET_12 | ||
375 | 0x00000000, // PA_CL_VPORT_XSCALE_13 | ||
376 | 0x00000000, // PA_CL_VPORT_XOFFSET_13 | ||
377 | 0x00000000, // PA_CL_VPORT_YSCALE_13 | ||
378 | 0x00000000, // PA_CL_VPORT_YOFFSET_13 | ||
379 | 0x00000000, // PA_CL_VPORT_ZSCALE_13 | ||
380 | 0x00000000, // PA_CL_VPORT_ZOFFSET_13 | ||
381 | 0x00000000, // PA_CL_VPORT_XSCALE_14 | ||
382 | 0x00000000, // PA_CL_VPORT_XOFFSET_14 | ||
383 | 0x00000000, // PA_CL_VPORT_YSCALE_14 | ||
384 | 0x00000000, // PA_CL_VPORT_YOFFSET_14 | ||
385 | 0x00000000, // PA_CL_VPORT_ZSCALE_14 | ||
386 | 0x00000000, // PA_CL_VPORT_ZOFFSET_14 | ||
387 | 0x00000000, // PA_CL_VPORT_XSCALE_15 | ||
388 | 0x00000000, // PA_CL_VPORT_XOFFSET_15 | ||
389 | 0x00000000, // PA_CL_VPORT_YSCALE_15 | ||
390 | 0x00000000, // PA_CL_VPORT_YOFFSET_15 | ||
391 | 0x00000000, // PA_CL_VPORT_ZSCALE_15 | ||
392 | 0x00000000, // PA_CL_VPORT_ZOFFSET_15 | ||
393 | 0x00000000, // PA_CL_UCP_0_X | ||
394 | 0x00000000, // PA_CL_UCP_0_Y | ||
395 | 0x00000000, // PA_CL_UCP_0_Z | ||
396 | 0x00000000, // PA_CL_UCP_0_W | ||
397 | 0x00000000, // PA_CL_UCP_1_X | ||
398 | 0x00000000, // PA_CL_UCP_1_Y | ||
399 | 0x00000000, // PA_CL_UCP_1_Z | ||
400 | 0x00000000, // PA_CL_UCP_1_W | ||
401 | 0x00000000, // PA_CL_UCP_2_X | ||
402 | 0x00000000, // PA_CL_UCP_2_Y | ||
403 | 0x00000000, // PA_CL_UCP_2_Z | ||
404 | 0x00000000, // PA_CL_UCP_2_W | ||
405 | 0x00000000, // PA_CL_UCP_3_X | ||
406 | 0x00000000, // PA_CL_UCP_3_Y | ||
407 | 0x00000000, // PA_CL_UCP_3_Z | ||
408 | 0x00000000, // PA_CL_UCP_3_W | ||
409 | 0x00000000, // PA_CL_UCP_4_X | ||
410 | 0x00000000, // PA_CL_UCP_4_Y | ||
411 | 0x00000000, // PA_CL_UCP_4_Z | ||
412 | 0x00000000, // PA_CL_UCP_4_W | ||
413 | 0x00000000, // PA_CL_UCP_5_X | ||
414 | 0x00000000, // PA_CL_UCP_5_Y | ||
415 | 0x00000000, // PA_CL_UCP_5_Z | ||
416 | 0x00000000, // PA_CL_UCP_5_W | ||
417 | 0x00000000, // SPI_VS_OUT_ID_0 | ||
418 | 0x00000000, // SPI_VS_OUT_ID_1 | ||
419 | 0x00000000, // SPI_VS_OUT_ID_2 | ||
420 | 0x00000000, // SPI_VS_OUT_ID_3 | ||
421 | 0x00000000, // SPI_VS_OUT_ID_4 | ||
422 | 0x00000000, // SPI_VS_OUT_ID_5 | ||
423 | 0x00000000, // SPI_VS_OUT_ID_6 | ||
424 | 0x00000000, // SPI_VS_OUT_ID_7 | ||
425 | 0x00000000, // SPI_VS_OUT_ID_8 | ||
426 | 0x00000000, // SPI_VS_OUT_ID_9 | ||
427 | 0x00000000, // SPI_PS_INPUT_CNTL_0 | ||
428 | 0x00000000, // SPI_PS_INPUT_CNTL_1 | ||
429 | 0x00000000, // SPI_PS_INPUT_CNTL_2 | ||
430 | 0x00000000, // SPI_PS_INPUT_CNTL_3 | ||
431 | 0x00000000, // SPI_PS_INPUT_CNTL_4 | ||
432 | 0x00000000, // SPI_PS_INPUT_CNTL_5 | ||
433 | 0x00000000, // SPI_PS_INPUT_CNTL_6 | ||
434 | 0x00000000, // SPI_PS_INPUT_CNTL_7 | ||
435 | 0x00000000, // SPI_PS_INPUT_CNTL_8 | ||
436 | 0x00000000, // SPI_PS_INPUT_CNTL_9 | ||
437 | 0x00000000, // SPI_PS_INPUT_CNTL_10 | ||
438 | 0x00000000, // SPI_PS_INPUT_CNTL_11 | ||
439 | 0x00000000, // SPI_PS_INPUT_CNTL_12 | ||
440 | 0x00000000, // SPI_PS_INPUT_CNTL_13 | ||
441 | 0x00000000, // SPI_PS_INPUT_CNTL_14 | ||
442 | 0x00000000, // SPI_PS_INPUT_CNTL_15 | ||
443 | 0x00000000, // SPI_PS_INPUT_CNTL_16 | ||
444 | 0x00000000, // SPI_PS_INPUT_CNTL_17 | ||
445 | 0x00000000, // SPI_PS_INPUT_CNTL_18 | ||
446 | 0x00000000, // SPI_PS_INPUT_CNTL_19 | ||
447 | 0x00000000, // SPI_PS_INPUT_CNTL_20 | ||
448 | 0x00000000, // SPI_PS_INPUT_CNTL_21 | ||
449 | 0x00000000, // SPI_PS_INPUT_CNTL_22 | ||
450 | 0x00000000, // SPI_PS_INPUT_CNTL_23 | ||
451 | 0x00000000, // SPI_PS_INPUT_CNTL_24 | ||
452 | 0x00000000, // SPI_PS_INPUT_CNTL_25 | ||
453 | 0x00000000, // SPI_PS_INPUT_CNTL_26 | ||
454 | 0x00000000, // SPI_PS_INPUT_CNTL_27 | ||
455 | 0x00000000, // SPI_PS_INPUT_CNTL_28 | ||
456 | 0x00000000, // SPI_PS_INPUT_CNTL_29 | ||
457 | 0x00000000, // SPI_PS_INPUT_CNTL_30 | ||
458 | 0x00000000, // SPI_PS_INPUT_CNTL_31 | ||
459 | 0x00000000, // SPI_VS_OUT_CONFIG | ||
460 | 0x00000001, // SPI_THREAD_GROUPING | ||
461 | 0x00000000, // SPI_PS_IN_CONTROL_0 | ||
462 | 0x00000000, // SPI_PS_IN_CONTROL_1 | ||
463 | 0x00000000, // SPI_INTERP_CONTROL_0 | ||
464 | 0x00000000, // SPI_INPUT_Z | ||
465 | 0x00000000, // SPI_FOG_CNTL | ||
466 | 0x00000000, // SPI_BARYC_CNTL | ||
467 | 0x00000000, // SPI_PS_IN_CONTROL_2 | ||
468 | 0x00000000, // SPI_COMPUTE_INPUT_CNTL | ||
469 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_X | ||
470 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_Y | ||
471 | 0x00000000, // SPI_COMPUTE_NUM_THREAD_Z | ||
472 | 0, // HOLE | ||
473 | 0, // HOLE | ||
474 | 0, // HOLE | ||
475 | 0, // HOLE | ||
476 | 0, // HOLE | ||
477 | 0, // HOLE | ||
478 | 0, // HOLE | ||
479 | 0, // HOLE | ||
480 | 0, // HOLE | ||
481 | 0, // HOLE | ||
482 | 0x00000000, // GDS_ADDR_BASE | ||
483 | 0x00003fff, // GDS_ADDR_SIZE | ||
484 | 0x00000001, // GDS_ORDERED_WAVE_PER_SE | ||
485 | 0x00000000, // GDS_APPEND_CONSUME_UAV0 | ||
486 | 0x00000000, // GDS_APPEND_CONSUME_UAV1 | ||
487 | 0x00000000, // GDS_APPEND_CONSUME_UAV2 | ||
488 | 0x00000000, // GDS_APPEND_CONSUME_UAV3 | ||
489 | 0x00000000, // GDS_APPEND_CONSUME_UAV4 | ||
490 | 0x00000000, // GDS_APPEND_CONSUME_UAV5 | ||
491 | 0x00000000, // GDS_APPEND_CONSUME_UAV6 | ||
492 | 0x00000000, // GDS_APPEND_CONSUME_UAV7 | ||
493 | 0x00000000, // GDS_APPEND_CONSUME_UAV8 | ||
494 | 0x00000000, // GDS_APPEND_CONSUME_UAV9 | ||
495 | 0x00000000, // GDS_APPEND_CONSUME_UAV10 | ||
496 | 0x00000000, // GDS_APPEND_CONSUME_UAV11 | ||
497 | 0, // HOLE | ||
498 | 0, // HOLE | ||
499 | 0, // HOLE | ||
500 | 0, // HOLE | ||
501 | 0, // HOLE | ||
502 | 0, // HOLE | ||
503 | 0, // HOLE | ||
504 | 0, // HOLE | ||
505 | 0, // HOLE | ||
506 | 0x00000000, // CB_BLEND0_CONTROL | ||
507 | 0x00000000, // CB_BLEND1_CONTROL | ||
508 | 0x00000000, // CB_BLEND2_CONTROL | ||
509 | 0x00000000, // CB_BLEND3_CONTROL | ||
510 | 0x00000000, // CB_BLEND4_CONTROL | ||
511 | 0x00000000, // CB_BLEND5_CONTROL | ||
512 | 0x00000000, // CB_BLEND6_CONTROL | ||
513 | 0x00000000, // CB_BLEND7_CONTROL | ||
514 | }; | ||
515 | static const u32 SECT_CONTEXT_def_2[] = | ||
516 | { | ||
517 | 0x00000000, // PA_CL_POINT_X_RAD | ||
518 | 0x00000000, // PA_CL_POINT_Y_RAD | ||
519 | 0x00000000, // PA_CL_POINT_SIZE | ||
520 | 0x00000000, // PA_CL_POINT_CULL_RAD | ||
521 | 0x00000000, // VGT_DMA_BASE_HI | ||
522 | 0x00000000, // VGT_DMA_BASE | ||
523 | }; | ||
524 | static const u32 SECT_CONTEXT_def_3[] = | ||
525 | { | ||
526 | 0x00000000, // DB_DEPTH_CONTROL | ||
527 | 0, // HOLE | ||
528 | 0x00000000, // CB_COLOR_CONTROL | ||
529 | 0x00000200, // DB_SHADER_CONTROL | ||
530 | 0x00000000, // PA_CL_CLIP_CNTL | ||
531 | 0x00000000, // PA_SU_SC_MODE_CNTL | ||
532 | 0x00000000, // PA_CL_VTE_CNTL | ||
533 | 0x00000000, // PA_CL_VS_OUT_CNTL | ||
534 | 0x00000000, // PA_CL_NANINF_CNTL | ||
535 | 0x00000000, // PA_SU_LINE_STIPPLE_CNTL | ||
536 | 0x00000000, // PA_SU_LINE_STIPPLE_SCALE | ||
537 | 0x00000000, // PA_SU_PRIM_FILTER_CNTL | ||
538 | 0x00000000, // SQ_LSTMP_RING_ITEMSIZE | ||
539 | 0x00000000, // SQ_HSTMP_RING_ITEMSIZE | ||
540 | 0x00000000, // SQ_DYN_GPR_RESOURCE_LIMIT_1 | ||
541 | 0, // HOLE | ||
542 | 0x00000000, // SQ_PGM_START_PS | ||
543 | 0x00000000, // SQ_PGM_RESOURCES_PS | ||
544 | 0x00000000, // SQ_PGM_RESOURCES_2_PS | ||
545 | 0x00000000, // SQ_PGM_EXPORTS_PS | ||
546 | 0, // HOLE | ||
547 | 0, // HOLE | ||
548 | 0, // HOLE | ||
549 | 0x00000000, // SQ_PGM_START_VS | ||
550 | 0x00000000, // SQ_PGM_RESOURCES_VS | ||
551 | 0x00000000, // SQ_PGM_RESOURCES_2_VS | ||
552 | 0, // HOLE | ||
553 | 0, // HOLE | ||
554 | 0, // HOLE | ||
555 | 0x00000000, // SQ_PGM_START_GS | ||
556 | 0x00000000, // SQ_PGM_RESOURCES_GS | ||
557 | 0x00000000, // SQ_PGM_RESOURCES_2_GS | ||
558 | 0, // HOLE | ||
559 | 0, // HOLE | ||
560 | 0, // HOLE | ||
561 | 0x00000000, // SQ_PGM_START_ES | ||
562 | 0x00000000, // SQ_PGM_RESOURCES_ES | ||
563 | 0x00000000, // SQ_PGM_RESOURCES_2_ES | ||
564 | 0, // HOLE | ||
565 | 0, // HOLE | ||
566 | 0, // HOLE | ||
567 | 0x00000000, // SQ_PGM_START_FS | ||
568 | 0x00000000, // SQ_PGM_RESOURCES_FS | ||
569 | 0, // HOLE | ||
570 | 0, // HOLE | ||
571 | 0, // HOLE | ||
572 | 0x00000000, // SQ_PGM_START_HS | ||
573 | 0x00000000, // SQ_PGM_RESOURCES_HS | ||
574 | 0x00000000, // SQ_PGM_RESOURCES_2_HS | ||
575 | 0, // HOLE | ||
576 | 0, // HOLE | ||
577 | 0, // HOLE | ||
578 | 0x00000000, // SQ_PGM_START_LS | ||
579 | 0x00000000, // SQ_PGM_RESOURCES_LS | ||
580 | 0x00000000, // SQ_PGM_RESOURCES_2_LS | ||
581 | }; | ||
582 | static const u32 SECT_CONTEXT_def_4[] = | ||
583 | { | ||
584 | 0x00000000, // SQ_LDS_ALLOC | ||
585 | 0x00000000, // SQ_LDS_ALLOC_PS | ||
586 | 0x00000000, // SQ_VTX_SEMANTIC_CLEAR | ||
587 | 0, // HOLE | ||
588 | 0x00000000, // SQ_THREAD_TRACE_CTRL | ||
589 | 0, // HOLE | ||
590 | 0x00000000, // SQ_ESGS_RING_ITEMSIZE | ||
591 | 0x00000000, // SQ_GSVS_RING_ITEMSIZE | ||
592 | 0x00000000, // SQ_ESTMP_RING_ITEMSIZE | ||
593 | 0x00000000, // SQ_GSTMP_RING_ITEMSIZE | ||
594 | 0x00000000, // SQ_VSTMP_RING_ITEMSIZE | ||
595 | 0x00000000, // SQ_PSTMP_RING_ITEMSIZE | ||
596 | 0, // HOLE | ||
597 | 0x00000000, // SQ_GS_VERT_ITEMSIZE | ||
598 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_1 | ||
599 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_2 | ||
600 | 0x00000000, // SQ_GS_VERT_ITEMSIZE_3 | ||
601 | 0x00000000, // SQ_GSVS_RING_OFFSET_1 | ||
602 | 0x00000000, // SQ_GSVS_RING_OFFSET_2 | ||
603 | 0x00000000, // SQ_GSVS_RING_OFFSET_3 | ||
604 | 0, // HOLE | ||
605 | 0, // HOLE | ||
606 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_0 | ||
607 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_1 | ||
608 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_2 | ||
609 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_3 | ||
610 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_4 | ||
611 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_5 | ||
612 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_6 | ||
613 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_7 | ||
614 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_8 | ||
615 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_9 | ||
616 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_10 | ||
617 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_11 | ||
618 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_12 | ||
619 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_13 | ||
620 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_14 | ||
621 | 0x00000000, // SQ_ALU_CONST_CACHE_PS_15 | ||
622 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_0 | ||
623 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_1 | ||
624 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_2 | ||
625 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_3 | ||
626 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_4 | ||
627 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_5 | ||
628 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_6 | ||
629 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_7 | ||
630 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_8 | ||
631 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_9 | ||
632 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_10 | ||
633 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_11 | ||
634 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_12 | ||
635 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_13 | ||
636 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_14 | ||
637 | 0x00000000, // SQ_ALU_CONST_CACHE_VS_15 | ||
638 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_0 | ||
639 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_1 | ||
640 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_2 | ||
641 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_3 | ||
642 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_4 | ||
643 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_5 | ||
644 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_6 | ||
645 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_7 | ||
646 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_8 | ||
647 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_9 | ||
648 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_10 | ||
649 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_11 | ||
650 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_12 | ||
651 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_13 | ||
652 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_14 | ||
653 | 0x00000000, // SQ_ALU_CONST_CACHE_GS_15 | ||
654 | 0x00000000, // PA_SU_POINT_SIZE | ||
655 | 0x00000000, // PA_SU_POINT_MINMAX | ||
656 | 0x00000000, // PA_SU_LINE_CNTL | ||
657 | 0x00000000, // PA_SC_LINE_STIPPLE | ||
658 | 0x00000000, // VGT_OUTPUT_PATH_CNTL | ||
659 | 0x00000000, // VGT_HOS_CNTL | ||
660 | 0x00000000, // VGT_HOS_MAX_TESS_LEVEL | ||
661 | 0x00000000, // VGT_HOS_MIN_TESS_LEVEL | ||
662 | 0x00000000, // VGT_HOS_REUSE_DEPTH | ||
663 | 0x00000000, // VGT_GROUP_PRIM_TYPE | ||
664 | 0x00000000, // VGT_GROUP_FIRST_DECR | ||
665 | 0x00000000, // VGT_GROUP_DECR | ||
666 | 0x00000000, // VGT_GROUP_VECT_0_CNTL | ||
667 | 0x00000000, // VGT_GROUP_VECT_1_CNTL | ||
668 | 0x00000000, // VGT_GROUP_VECT_0_FMT_CNTL | ||
669 | 0x00000000, // VGT_GROUP_VECT_1_FMT_CNTL | ||
670 | 0x00000000, // VGT_GS_MODE | ||
671 | 0, // HOLE | ||
672 | 0x00000000, // PA_SC_MODE_CNTL_0 | ||
673 | 0x00000000, // PA_SC_MODE_CNTL_1 | ||
674 | 0x00000000, // VGT_ENHANCE | ||
675 | 0x00000000, // VGT_GS_PER_ES | ||
676 | 0x00000000, // VGT_ES_PER_GS | ||
677 | 0x00000000, // VGT_GS_PER_VS | ||
678 | 0, // HOLE | ||
679 | 0, // HOLE | ||
680 | 0, // HOLE | ||
681 | 0x00000000, // VGT_GS_OUT_PRIM_TYPE | ||
682 | }; | ||
683 | static const u32 SECT_CONTEXT_def_5[] = | ||
684 | { | ||
685 | 0x00000000, // VGT_DMA_MAX_SIZE | ||
686 | 0x00000000, // VGT_DMA_INDEX_TYPE | ||
687 | 0, // HOLE | ||
688 | 0x00000000, // VGT_PRIMITIVEID_EN | ||
689 | 0x00000000, // VGT_DMA_NUM_INSTANCES | ||
690 | }; | ||
691 | static const u32 SECT_CONTEXT_def_6[] = | ||
692 | { | ||
693 | 0x00000000, // VGT_MULTI_PRIM_IB_RESET_EN | ||
694 | 0, // HOLE | ||
695 | 0, // HOLE | ||
696 | 0x00000000, // VGT_INSTANCE_STEP_RATE_0 | ||
697 | 0x00000000, // VGT_INSTANCE_STEP_RATE_1 | ||
698 | 0, // HOLE | ||
699 | 0, // HOLE | ||
700 | 0, // HOLE | ||
701 | 0x00000000, // VGT_REUSE_OFF | ||
702 | 0x00000000, // VGT_VTX_CNT_EN | ||
703 | 0x00000000, // DB_HTILE_SURFACE | ||
704 | 0x00000000, // DB_SRESULTS_COMPARE_STATE0 | ||
705 | 0x00000000, // DB_SRESULTS_COMPARE_STATE1 | ||
706 | 0x00000000, // DB_PRELOAD_CONTROL | ||
707 | 0, // HOLE | ||
708 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_0 | ||
709 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_0 | ||
710 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_0 | ||
711 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_0 | ||
712 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_1 | ||
713 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_1 | ||
714 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_1 | ||
715 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_1 | ||
716 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_2 | ||
717 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_2 | ||
718 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_2 | ||
719 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_2 | ||
720 | 0x00000000, // VGT_STRMOUT_BUFFER_SIZE_3 | ||
721 | 0x00000000, // VGT_STRMOUT_VTX_STRIDE_3 | ||
722 | 0x00000000, // VGT_STRMOUT_BUFFER_BASE_3 | ||
723 | 0x00000000, // VGT_STRMOUT_BUFFER_OFFSET_3 | ||
724 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_0 | ||
725 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_1 | ||
726 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_2 | ||
727 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_3 | ||
728 | 0, // HOLE | ||
729 | 0, // HOLE | ||
730 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_OFFSET | ||
731 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_BUFFER_FILLED_SIZE | ||
732 | 0x00000000, // VGT_STRMOUT_DRAW_OPAQUE_VERTEX_STRIDE | ||
733 | 0, // HOLE | ||
734 | 0x00000000, // VGT_GS_MAX_VERT_OUT | ||
735 | 0, // HOLE | ||
736 | 0, // HOLE | ||
737 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_0 | ||
738 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_1 | ||
739 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_2 | ||
740 | 0x00000000, // VGT_STRMOUT_BASE_OFFSET_HI_3 | ||
741 | 0x00000000, // VGT_SHADER_STAGES_EN | ||
742 | 0x00000000, // VGT_LS_HS_CONFIG | ||
743 | 0x00000000, // VGT_LS_SIZE | ||
744 | 0x00000000, // VGT_HS_SIZE | ||
745 | 0x00000000, // VGT_LS_HS_ALLOC | ||
746 | 0x00000000, // VGT_HS_PATCH_CONST | ||
747 | 0x00000000, // VGT_TF_PARAM | ||
748 | 0x00000000, // DB_ALPHA_TO_MASK | ||
749 | }; | ||
750 | static const u32 SECT_CONTEXT_def_7[] = | ||
751 | { | ||
752 | 0x00000000, // PA_SU_POLY_OFFSET_DB_FMT_CNTL | ||
753 | 0x00000000, // PA_SU_POLY_OFFSET_CLAMP | ||
754 | 0x00000000, // PA_SU_POLY_OFFSET_FRONT_SCALE | ||
755 | 0x00000000, // PA_SU_POLY_OFFSET_FRONT_OFFSET | ||
756 | 0x00000000, // PA_SU_POLY_OFFSET_BACK_SCALE | ||
757 | 0x00000000, // PA_SU_POLY_OFFSET_BACK_OFFSET | ||
758 | 0x00000000, // VGT_GS_INSTANCE_CNT | ||
759 | 0x00000000, // VGT_STRMOUT_CONFIG | ||
760 | 0x00000000, // VGT_STRMOUT_BUFFER_CONFIG | ||
761 | 0x00000000, // CB_IMMED0_BASE | ||
762 | 0x00000000, // CB_IMMED1_BASE | ||
763 | 0x00000000, // CB_IMMED2_BASE | ||
764 | 0x00000000, // CB_IMMED3_BASE | ||
765 | 0x00000000, // CB_IMMED4_BASE | ||
766 | 0x00000000, // CB_IMMED5_BASE | ||
767 | 0x00000000, // CB_IMMED6_BASE | ||
768 | 0x00000000, // CB_IMMED7_BASE | ||
769 | 0x00000000, // CB_IMMED8_BASE | ||
770 | 0x00000000, // CB_IMMED9_BASE | ||
771 | 0x00000000, // CB_IMMED10_BASE | ||
772 | 0x00000000, // CB_IMMED11_BASE | ||
773 | 0, // HOLE | ||
774 | 0, // HOLE | ||
775 | 0, // HOLE | ||
776 | 0, // HOLE | ||
777 | 0, // HOLE | ||
778 | 0, // HOLE | ||
779 | 0, // HOLE | ||
780 | 0, // HOLE | ||
781 | 0, // HOLE | ||
782 | 0, // HOLE | ||
783 | 0, // HOLE | ||
784 | 0, // HOLE | ||
785 | 0, // HOLE | ||
786 | 0x00001000, // PA_SC_LINE_CNTL | ||
787 | 0x00000000, // PA_SC_AA_CONFIG | ||
788 | 0x00000005, // PA_SU_VTX_CNTL | ||
789 | 0x3f800000, // PA_CL_GB_VERT_CLIP_ADJ | ||
790 | 0x3f800000, // PA_CL_GB_VERT_DISC_ADJ | ||
791 | 0x3f800000, // PA_CL_GB_HORZ_CLIP_ADJ | ||
792 | 0x3f800000, // PA_CL_GB_HORZ_DISC_ADJ | ||
793 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_0 | ||
794 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_1 | ||
795 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_2 | ||
796 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_3 | ||
797 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_4 | ||
798 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_5 | ||
799 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_6 | ||
800 | 0x00000000, // PA_SC_AA_SAMPLE_LOCS_7 | ||
801 | 0xffffffff, // PA_SC_AA_MASK | ||
802 | 0x00000000, // CB_CLRCMP_CONTROL | ||
803 | 0x00000000, // CB_CLRCMP_SRC | ||
804 | 0x00000000, // CB_CLRCMP_DST | ||
805 | 0x00000000, // CB_CLRCMP_MSK | ||
806 | 0, // HOLE | ||
807 | 0, // HOLE | ||
808 | 0x0000000e, // VGT_VERTEX_REUSE_BLOCK_CNTL | ||
809 | 0x00000010, // VGT_OUT_DEALLOC_CNTL | ||
810 | 0x00000000, // CB_COLOR0_BASE | ||
811 | 0x00000000, // CB_COLOR0_PITCH | ||
812 | 0x00000000, // CB_COLOR0_SLICE | ||
813 | 0x00000000, // CB_COLOR0_VIEW | ||
814 | 0x00000000, // CB_COLOR0_INFO | ||
815 | 0x00000000, // CB_COLOR0_ATTRIB | ||
816 | 0x00000000, // CB_COLOR0_DIM | ||
817 | 0x00000000, // CB_COLOR0_CMASK | ||
818 | 0x00000000, // CB_COLOR0_CMASK_SLICE | ||
819 | 0x00000000, // CB_COLOR0_FMASK | ||
820 | 0x00000000, // CB_COLOR0_FMASK_SLICE | ||
821 | 0x00000000, // CB_COLOR0_CLEAR_WORD0 | ||
822 | 0x00000000, // CB_COLOR0_CLEAR_WORD1 | ||
823 | 0x00000000, // CB_COLOR0_CLEAR_WORD2 | ||
824 | 0x00000000, // CB_COLOR0_CLEAR_WORD3 | ||
825 | 0x00000000, // CB_COLOR1_BASE | ||
826 | 0x00000000, // CB_COLOR1_PITCH | ||
827 | 0x00000000, // CB_COLOR1_SLICE | ||
828 | 0x00000000, // CB_COLOR1_VIEW | ||
829 | 0x00000000, // CB_COLOR1_INFO | ||
830 | 0x00000000, // CB_COLOR1_ATTRIB | ||
831 | 0x00000000, // CB_COLOR1_DIM | ||
832 | 0x00000000, // CB_COLOR1_CMASK | ||
833 | 0x00000000, // CB_COLOR1_CMASK_SLICE | ||
834 | 0x00000000, // CB_COLOR1_FMASK | ||
835 | 0x00000000, // CB_COLOR1_FMASK_SLICE | ||
836 | 0x00000000, // CB_COLOR1_CLEAR_WORD0 | ||
837 | 0x00000000, // CB_COLOR1_CLEAR_WORD1 | ||
838 | 0x00000000, // CB_COLOR1_CLEAR_WORD2 | ||
839 | 0x00000000, // CB_COLOR1_CLEAR_WORD3 | ||
840 | 0x00000000, // CB_COLOR2_BASE | ||
841 | 0x00000000, // CB_COLOR2_PITCH | ||
842 | 0x00000000, // CB_COLOR2_SLICE | ||
843 | 0x00000000, // CB_COLOR2_VIEW | ||
844 | 0x00000000, // CB_COLOR2_INFO | ||
845 | 0x00000000, // CB_COLOR2_ATTRIB | ||
846 | 0x00000000, // CB_COLOR2_DIM | ||
847 | 0x00000000, // CB_COLOR2_CMASK | ||
848 | 0x00000000, // CB_COLOR2_CMASK_SLICE | ||
849 | 0x00000000, // CB_COLOR2_FMASK | ||
850 | 0x00000000, // CB_COLOR2_FMASK_SLICE | ||
851 | 0x00000000, // CB_COLOR2_CLEAR_WORD0 | ||
852 | 0x00000000, // CB_COLOR2_CLEAR_WORD1 | ||
853 | 0x00000000, // CB_COLOR2_CLEAR_WORD2 | ||
854 | 0x00000000, // CB_COLOR2_CLEAR_WORD3 | ||
855 | 0x00000000, // CB_COLOR3_BASE | ||
856 | 0x00000000, // CB_COLOR3_PITCH | ||
857 | 0x00000000, // CB_COLOR3_SLICE | ||
858 | 0x00000000, // CB_COLOR3_VIEW | ||
859 | 0x00000000, // CB_COLOR3_INFO | ||
860 | 0x00000000, // CB_COLOR3_ATTRIB | ||
861 | 0x00000000, // CB_COLOR3_DIM | ||
862 | 0x00000000, // CB_COLOR3_CMASK | ||
863 | 0x00000000, // CB_COLOR3_CMASK_SLICE | ||
864 | 0x00000000, // CB_COLOR3_FMASK | ||
865 | 0x00000000, // CB_COLOR3_FMASK_SLICE | ||
866 | 0x00000000, // CB_COLOR3_CLEAR_WORD0 | ||
867 | 0x00000000, // CB_COLOR3_CLEAR_WORD1 | ||
868 | 0x00000000, // CB_COLOR3_CLEAR_WORD2 | ||
869 | 0x00000000, // CB_COLOR3_CLEAR_WORD3 | ||
870 | 0x00000000, // CB_COLOR4_BASE | ||
871 | 0x00000000, // CB_COLOR4_PITCH | ||
872 | 0x00000000, // CB_COLOR4_SLICE | ||
873 | 0x00000000, // CB_COLOR4_VIEW | ||
874 | 0x00000000, // CB_COLOR4_INFO | ||
875 | 0x00000000, // CB_COLOR4_ATTRIB | ||
876 | 0x00000000, // CB_COLOR4_DIM | ||
877 | 0x00000000, // CB_COLOR4_CMASK | ||
878 | 0x00000000, // CB_COLOR4_CMASK_SLICE | ||
879 | 0x00000000, // CB_COLOR4_FMASK | ||
880 | 0x00000000, // CB_COLOR4_FMASK_SLICE | ||
881 | 0x00000000, // CB_COLOR4_CLEAR_WORD0 | ||
882 | 0x00000000, // CB_COLOR4_CLEAR_WORD1 | ||
883 | 0x00000000, // CB_COLOR4_CLEAR_WORD2 | ||
884 | 0x00000000, // CB_COLOR4_CLEAR_WORD3 | ||
885 | 0x00000000, // CB_COLOR5_BASE | ||
886 | 0x00000000, // CB_COLOR5_PITCH | ||
887 | 0x00000000, // CB_COLOR5_SLICE | ||
888 | 0x00000000, // CB_COLOR5_VIEW | ||
889 | 0x00000000, // CB_COLOR5_INFO | ||
890 | 0x00000000, // CB_COLOR5_ATTRIB | ||
891 | 0x00000000, // CB_COLOR5_DIM | ||
892 | 0x00000000, // CB_COLOR5_CMASK | ||
893 | 0x00000000, // CB_COLOR5_CMASK_SLICE | ||
894 | 0x00000000, // CB_COLOR5_FMASK | ||
895 | 0x00000000, // CB_COLOR5_FMASK_SLICE | ||
896 | 0x00000000, // CB_COLOR5_CLEAR_WORD0 | ||
897 | 0x00000000, // CB_COLOR5_CLEAR_WORD1 | ||
898 | 0x00000000, // CB_COLOR5_CLEAR_WORD2 | ||
899 | 0x00000000, // CB_COLOR5_CLEAR_WORD3 | ||
900 | 0x00000000, // CB_COLOR6_BASE | ||
901 | 0x00000000, // CB_COLOR6_PITCH | ||
902 | 0x00000000, // CB_COLOR6_SLICE | ||
903 | 0x00000000, // CB_COLOR6_VIEW | ||
904 | 0x00000000, // CB_COLOR6_INFO | ||
905 | 0x00000000, // CB_COLOR6_ATTRIB | ||
906 | 0x00000000, // CB_COLOR6_DIM | ||
907 | 0x00000000, // CB_COLOR6_CMASK | ||
908 | 0x00000000, // CB_COLOR6_CMASK_SLICE | ||
909 | 0x00000000, // CB_COLOR6_FMASK | ||
910 | 0x00000000, // CB_COLOR6_FMASK_SLICE | ||
911 | 0x00000000, // CB_COLOR6_CLEAR_WORD0 | ||
912 | 0x00000000, // CB_COLOR6_CLEAR_WORD1 | ||
913 | 0x00000000, // CB_COLOR6_CLEAR_WORD2 | ||
914 | 0x00000000, // CB_COLOR6_CLEAR_WORD3 | ||
915 | 0x00000000, // CB_COLOR7_BASE | ||
916 | 0x00000000, // CB_COLOR7_PITCH | ||
917 | 0x00000000, // CB_COLOR7_SLICE | ||
918 | 0x00000000, // CB_COLOR7_VIEW | ||
919 | 0x00000000, // CB_COLOR7_INFO | ||
920 | 0x00000000, // CB_COLOR7_ATTRIB | ||
921 | 0x00000000, // CB_COLOR7_DIM | ||
922 | 0x00000000, // CB_COLOR7_CMASK | ||
923 | 0x00000000, // CB_COLOR7_CMASK_SLICE | ||
924 | 0x00000000, // CB_COLOR7_FMASK | ||
925 | 0x00000000, // CB_COLOR7_FMASK_SLICE | ||
926 | 0x00000000, // CB_COLOR7_CLEAR_WORD0 | ||
927 | 0x00000000, // CB_COLOR7_CLEAR_WORD1 | ||
928 | 0x00000000, // CB_COLOR7_CLEAR_WORD2 | ||
929 | 0x00000000, // CB_COLOR7_CLEAR_WORD3 | ||
930 | 0x00000000, // CB_COLOR8_BASE | ||
931 | 0x00000000, // CB_COLOR8_PITCH | ||
932 | 0x00000000, // CB_COLOR8_SLICE | ||
933 | 0x00000000, // CB_COLOR8_VIEW | ||
934 | 0x00000000, // CB_COLOR8_INFO | ||
935 | 0x00000000, // CB_COLOR8_ATTRIB | ||
936 | 0x00000000, // CB_COLOR8_DIM | ||
937 | 0x00000000, // CB_COLOR9_BASE | ||
938 | 0x00000000, // CB_COLOR9_PITCH | ||
939 | 0x00000000, // CB_COLOR9_SLICE | ||
940 | 0x00000000, // CB_COLOR9_VIEW | ||
941 | 0x00000000, // CB_COLOR9_INFO | ||
942 | 0x00000000, // CB_COLOR9_ATTRIB | ||
943 | 0x00000000, // CB_COLOR9_DIM | ||
944 | 0x00000000, // CB_COLOR10_BASE | ||
945 | 0x00000000, // CB_COLOR10_PITCH | ||
946 | 0x00000000, // CB_COLOR10_SLICE | ||
947 | 0x00000000, // CB_COLOR10_VIEW | ||
948 | 0x00000000, // CB_COLOR10_INFO | ||
949 | 0x00000000, // CB_COLOR10_ATTRIB | ||
950 | 0x00000000, // CB_COLOR10_DIM | ||
951 | 0x00000000, // CB_COLOR11_BASE | ||
952 | 0x00000000, // CB_COLOR11_PITCH | ||
953 | 0x00000000, // CB_COLOR11_SLICE | ||
954 | 0x00000000, // CB_COLOR11_VIEW | ||
955 | 0x00000000, // CB_COLOR11_INFO | ||
956 | 0x00000000, // CB_COLOR11_ATTRIB | ||
957 | 0x00000000, // CB_COLOR11_DIM | ||
958 | 0, // HOLE | ||
959 | 0, // HOLE | ||
960 | 0, // HOLE | ||
961 | 0, // HOLE | ||
962 | 0, // HOLE | ||
963 | 0, // HOLE | ||
964 | 0, // HOLE | ||
965 | 0, // HOLE | ||
966 | 0, // HOLE | ||
967 | 0, // HOLE | ||
968 | 0, // HOLE | ||
969 | 0, // HOLE | ||
970 | 0, // HOLE | ||
971 | 0, // HOLE | ||
972 | 0, // HOLE | ||
973 | 0, // HOLE | ||
974 | 0, // HOLE | ||
975 | 0, // HOLE | ||
976 | 0, // HOLE | ||
977 | 0, // HOLE | ||
978 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_0 | ||
979 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_1 | ||
980 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_2 | ||
981 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_3 | ||
982 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_4 | ||
983 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_5 | ||
984 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_6 | ||
985 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_7 | ||
986 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_8 | ||
987 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_9 | ||
988 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_10 | ||
989 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_11 | ||
990 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_12 | ||
991 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_13 | ||
992 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_14 | ||
993 | 0x00000000, // SQ_ALU_CONST_CACHE_HS_15 | ||
994 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_0 | ||
995 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_1 | ||
996 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_2 | ||
997 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_3 | ||
998 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_4 | ||
999 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_5 | ||
1000 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_6 | ||
1001 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_7 | ||
1002 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_8 | ||
1003 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_9 | ||
1004 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_10 | ||
1005 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_11 | ||
1006 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_12 | ||
1007 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_13 | ||
1008 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_14 | ||
1009 | 0x00000000, // SQ_ALU_CONST_CACHE_LS_15 | ||
1010 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_0 | ||
1011 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_1 | ||
1012 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_2 | ||
1013 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_3 | ||
1014 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_4 | ||
1015 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_5 | ||
1016 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_6 | ||
1017 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_7 | ||
1018 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_8 | ||
1019 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_9 | ||
1020 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_10 | ||
1021 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_11 | ||
1022 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_12 | ||
1023 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_13 | ||
1024 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_14 | ||
1025 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_HS_15 | ||
1026 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_0 | ||
1027 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_1 | ||
1028 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_2 | ||
1029 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_3 | ||
1030 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_4 | ||
1031 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_5 | ||
1032 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_6 | ||
1033 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_7 | ||
1034 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_8 | ||
1035 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_9 | ||
1036 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_10 | ||
1037 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_11 | ||
1038 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_12 | ||
1039 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_13 | ||
1040 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_14 | ||
1041 | 0x00000000, // SQ_ALU_CONST_BUFFER_SIZE_LS_15 | ||
1042 | }; | ||
1043 | static const struct cs_extent_def SECT_CONTEXT_defs[] = | ||
1044 | { | ||
1045 | {SECT_CONTEXT_def_1, 0x0000a000, 488 }, | ||
1046 | {SECT_CONTEXT_def_2, 0x0000a1f5, 6 }, | ||
1047 | {SECT_CONTEXT_def_3, 0x0000a200, 55 }, | ||
1048 | {SECT_CONTEXT_def_4, 0x0000a23a, 98 }, | ||
1049 | {SECT_CONTEXT_def_5, 0x0000a29e, 5 }, | ||
1050 | {SECT_CONTEXT_def_6, 0x0000a2a5, 56 }, | ||
1051 | {SECT_CONTEXT_def_7, 0x0000a2de, 290 }, | ||
1052 | { 0, 0, 0 } | ||
1053 | }; | ||
1054 | static const u32 SECT_CLEAR_def_1[] = | ||
1055 | { | ||
1056 | 0xffffffff, // SQ_TEX_SAMPLER_CLEAR | ||
1057 | 0xffffffff, // SQ_TEX_RESOURCE_CLEAR | ||
1058 | 0xffffffff, // SQ_LOOP_BOOL_CLEAR | ||
1059 | }; | ||
1060 | static const struct cs_extent_def SECT_CLEAR_defs[] = | ||
1061 | { | ||
1062 | {SECT_CLEAR_def_1, 0x0000ffc0, 3 }, | ||
1063 | { 0, 0, 0 } | ||
1064 | }; | ||
1065 | static const u32 SECT_CTRLCONST_def_1[] = | ||
1066 | { | ||
1067 | 0x00000000, // SQ_VTX_BASE_VTX_LOC | ||
1068 | 0x00000000, // SQ_VTX_START_INST_LOC | ||
1069 | }; | ||
1070 | static const struct cs_extent_def SECT_CTRLCONST_defs[] = | ||
1071 | { | ||
1072 | {SECT_CTRLCONST_def_1, 0x0000f3fc, 2 }, | ||
1073 | { 0, 0, 0 } | ||
1074 | }; | ||
1075 | struct cs_section_def evergreen_cs_data[] = { | ||
1076 | { SECT_CONTEXT_defs, SECT_CONTEXT }, | ||
1077 | { SECT_CLEAR_defs, SECT_CLEAR }, | ||
1078 | { SECT_CTRLCONST_defs, SECT_CTRLCONST }, | ||
1079 | { 0, SECT_NONE } | ||
1080 | }; | ||
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 6b559cb53837..b9f64f0e003d 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -45,6 +45,94 @@ static const u32 crtc_offsets[6] = | |||
45 | EVERGREEN_CRTC5_REGISTER_OFFSET | 45 | EVERGREEN_CRTC5_REGISTER_OFFSET |
46 | }; | 46 | }; |
47 | 47 | ||
48 | #include "clearstate_evergreen.h" | ||
49 | |||
50 | static u32 sumo_rlc_save_restore_register_list[] = | ||
51 | { | ||
52 | 0x98fc, | ||
53 | 0x9830, | ||
54 | 0x9834, | ||
55 | 0x9838, | ||
56 | 0x9870, | ||
57 | 0x9874, | ||
58 | 0x8a14, | ||
59 | 0x8b24, | ||
60 | 0x8bcc, | ||
61 | 0x8b10, | ||
62 | 0x8d00, | ||
63 | 0x8d04, | ||
64 | 0x8c00, | ||
65 | 0x8c04, | ||
66 | 0x8c08, | ||
67 | 0x8c0c, | ||
68 | 0x8d8c, | ||
69 | 0x8c20, | ||
70 | 0x8c24, | ||
71 | 0x8c28, | ||
72 | 0x8c18, | ||
73 | 0x8c1c, | ||
74 | 0x8cf0, | ||
75 | 0x8e2c, | ||
76 | 0x8e38, | ||
77 | 0x8c30, | ||
78 | 0x9508, | ||
79 | 0x9688, | ||
80 | 0x9608, | ||
81 | 0x960c, | ||
82 | 0x9610, | ||
83 | 0x9614, | ||
84 | 0x88c4, | ||
85 | 0x88d4, | ||
86 | 0xa008, | ||
87 | 0x900c, | ||
88 | 0x9100, | ||
89 | 0x913c, | ||
90 | 0x98f8, | ||
91 | 0x98f4, | ||
92 | 0x9b7c, | ||
93 | 0x3f8c, | ||
94 | 0x8950, | ||
95 | 0x8954, | ||
96 | 0x8a18, | ||
97 | 0x8b28, | ||
98 | 0x9144, | ||
99 | 0x9148, | ||
100 | 0x914c, | ||
101 | 0x3f90, | ||
102 | 0x3f94, | ||
103 | 0x915c, | ||
104 | 0x9160, | ||
105 | 0x9178, | ||
106 | 0x917c, | ||
107 | 0x9180, | ||
108 | 0x918c, | ||
109 | 0x9190, | ||
110 | 0x9194, | ||
111 | 0x9198, | ||
112 | 0x919c, | ||
113 | 0x91a8, | ||
114 | 0x91ac, | ||
115 | 0x91b0, | ||
116 | 0x91b4, | ||
117 | 0x91b8, | ||
118 | 0x91c4, | ||
119 | 0x91c8, | ||
120 | 0x91cc, | ||
121 | 0x91d0, | ||
122 | 0x91d4, | ||
123 | 0x91e0, | ||
124 | 0x91e4, | ||
125 | 0x91ec, | ||
126 | 0x91f0, | ||
127 | 0x91f4, | ||
128 | 0x9200, | ||
129 | 0x9204, | ||
130 | 0x929c, | ||
131 | 0x9150, | ||
132 | 0x802c, | ||
133 | }; | ||
134 | static u32 sumo_rlc_save_restore_register_list_size = ARRAY_SIZE(sumo_rlc_save_restore_register_list); | ||
135 | |||
48 | static void evergreen_gpu_init(struct radeon_device *rdev); | 136 | static void evergreen_gpu_init(struct radeon_device *rdev); |
49 | void evergreen_fini(struct radeon_device *rdev); | 137 | void evergreen_fini(struct radeon_device *rdev); |
50 | void evergreen_pcie_gen2_enable(struct radeon_device *rdev); | 138 | void evergreen_pcie_gen2_enable(struct radeon_device *rdev); |
@@ -3723,6 +3811,241 @@ bool evergreen_dma_is_lockup(struct radeon_device *rdev, struct radeon_ring *rin | |||
3723 | return radeon_ring_test_lockup(rdev, ring); | 3811 | return radeon_ring_test_lockup(rdev, ring); |
3724 | } | 3812 | } |
3725 | 3813 | ||
3814 | /* | ||
3815 | * RLC | ||
3816 | */ | ||
3817 | #define RLC_SAVE_RESTORE_LIST_END_MARKER 0x00000000 | ||
3818 | #define RLC_CLEAR_STATE_END_MARKER 0x00000001 | ||
3819 | |||
3820 | void sumo_rlc_fini(struct radeon_device *rdev) | ||
3821 | { | ||
3822 | int r; | ||
3823 | |||
3824 | /* save restore block */ | ||
3825 | if (rdev->rlc.save_restore_obj) { | ||
3826 | r = radeon_bo_reserve(rdev->rlc.save_restore_obj, false); | ||
3827 | if (unlikely(r != 0)) | ||
3828 | dev_warn(rdev->dev, "(%d) reserve RLC sr bo failed\n", r); | ||
3829 | radeon_bo_unpin(rdev->rlc.save_restore_obj); | ||
3830 | radeon_bo_unreserve(rdev->rlc.save_restore_obj); | ||
3831 | |||
3832 | radeon_bo_unref(&rdev->rlc.save_restore_obj); | ||
3833 | rdev->rlc.save_restore_obj = NULL; | ||
3834 | } | ||
3835 | |||
3836 | /* clear state block */ | ||
3837 | if (rdev->rlc.clear_state_obj) { | ||
3838 | r = radeon_bo_reserve(rdev->rlc.clear_state_obj, false); | ||
3839 | if (unlikely(r != 0)) | ||
3840 | dev_warn(rdev->dev, "(%d) reserve RLC c bo failed\n", r); | ||
3841 | radeon_bo_unpin(rdev->rlc.clear_state_obj); | ||
3842 | radeon_bo_unreserve(rdev->rlc.clear_state_obj); | ||
3843 | |||
3844 | radeon_bo_unref(&rdev->rlc.clear_state_obj); | ||
3845 | rdev->rlc.clear_state_obj = NULL; | ||
3846 | } | ||
3847 | } | ||
3848 | |||
3849 | int sumo_rlc_init(struct radeon_device *rdev) | ||
3850 | { | ||
3851 | u32 *src_ptr; | ||
3852 | volatile u32 *dst_ptr; | ||
3853 | u32 dws, data, i, j, k, reg_num; | ||
3854 | u32 reg_list_num, reg_list_hdr_blk_index, reg_list_blk_index; | ||
3855 | u64 reg_list_mc_addr; | ||
3856 | struct cs_section_def *cs_data; | ||
3857 | int r; | ||
3858 | |||
3859 | src_ptr = rdev->rlc.reg_list; | ||
3860 | dws = rdev->rlc.reg_list_size; | ||
3861 | cs_data = rdev->rlc.cs_data; | ||
3862 | |||
3863 | /* save restore block */ | ||
3864 | if (rdev->rlc.save_restore_obj == NULL) { | ||
3865 | r = radeon_bo_create(rdev, dws * 4, PAGE_SIZE, true, | ||
3866 | RADEON_GEM_DOMAIN_VRAM, NULL, &rdev->rlc.save_restore_obj); | ||
3867 | if (r) { | ||
3868 | dev_warn(rdev->dev, "(%d) create RLC sr bo failed\n", r); | ||
3869 | return r; | ||
3870 | } | ||
3871 | } | ||
3872 | |||
3873 | r = radeon_bo_reserve(rdev->rlc.save_restore_obj, false); | ||
3874 | if (unlikely(r != 0)) { | ||
3875 | sumo_rlc_fini(rdev); | ||
3876 | return r; | ||
3877 | } | ||
3878 | r = radeon_bo_pin(rdev->rlc.save_restore_obj, RADEON_GEM_DOMAIN_VRAM, | ||
3879 | &rdev->rlc.save_restore_gpu_addr); | ||
3880 | if (r) { | ||
3881 | radeon_bo_unreserve(rdev->rlc.save_restore_obj); | ||
3882 | dev_warn(rdev->dev, "(%d) pin RLC sr bo failed\n", r); | ||
3883 | sumo_rlc_fini(rdev); | ||
3884 | return r; | ||
3885 | } | ||
3886 | r = radeon_bo_kmap(rdev->rlc.save_restore_obj, (void **)&rdev->rlc.sr_ptr); | ||
3887 | if (r) { | ||
3888 | dev_warn(rdev->dev, "(%d) map RLC sr bo failed\n", r); | ||
3889 | sumo_rlc_fini(rdev); | ||
3890 | return r; | ||
3891 | } | ||
3892 | /* write the sr buffer */ | ||
3893 | dst_ptr = rdev->rlc.sr_ptr; | ||
3894 | /* format: | ||
3895 | * dw0: (reg2 << 16) | reg1 | ||
3896 | * dw1: reg1 save space | ||
3897 | * dw2: reg2 save space | ||
3898 | */ | ||
3899 | for (i = 0; i < dws; i++) { | ||
3900 | data = src_ptr[i] >> 2; | ||
3901 | i++; | ||
3902 | if (i < dws) | ||
3903 | data |= (src_ptr[i] >> 2) << 16; | ||
3904 | j = (((i - 1) * 3) / 2); | ||
3905 | dst_ptr[j] = data; | ||
3906 | } | ||
3907 | j = ((i * 3) / 2); | ||
3908 | dst_ptr[j] = RLC_SAVE_RESTORE_LIST_END_MARKER; | ||
3909 | |||
3910 | radeon_bo_kunmap(rdev->rlc.save_restore_obj); | ||
3911 | radeon_bo_unreserve(rdev->rlc.save_restore_obj); | ||
3912 | |||
3913 | /* clear state block */ | ||
3914 | reg_list_num = 0; | ||
3915 | dws = 0; | ||
3916 | for (i = 0; cs_data[i].section != NULL; i++) { | ||
3917 | for (j = 0; cs_data[i].section[j].extent != NULL; j++) { | ||
3918 | reg_list_num++; | ||
3919 | dws += cs_data[i].section[j].reg_count; | ||
3920 | } | ||
3921 | } | ||
3922 | reg_list_blk_index = (3 * reg_list_num + 2); | ||
3923 | dws += reg_list_blk_index; | ||
3924 | |||
3925 | if (rdev->rlc.clear_state_obj == NULL) { | ||
3926 | r = radeon_bo_create(rdev, dws * 4, PAGE_SIZE, true, | ||
3927 | RADEON_GEM_DOMAIN_VRAM, NULL, &rdev->rlc.clear_state_obj); | ||
3928 | if (r) { | ||
3929 | dev_warn(rdev->dev, "(%d) create RLC c bo failed\n", r); | ||
3930 | sumo_rlc_fini(rdev); | ||
3931 | return r; | ||
3932 | } | ||
3933 | } | ||
3934 | r = radeon_bo_reserve(rdev->rlc.clear_state_obj, false); | ||
3935 | if (unlikely(r != 0)) { | ||
3936 | sumo_rlc_fini(rdev); | ||
3937 | return r; | ||
3938 | } | ||
3939 | r = radeon_bo_pin(rdev->rlc.clear_state_obj, RADEON_GEM_DOMAIN_VRAM, | ||
3940 | &rdev->rlc.clear_state_gpu_addr); | ||
3941 | if (r) { | ||
3942 | |||
3943 | radeon_bo_unreserve(rdev->rlc.clear_state_obj); | ||
3944 | dev_warn(rdev->dev, "(%d) pin RLC c bo failed\n", r); | ||
3945 | sumo_rlc_fini(rdev); | ||
3946 | return r; | ||
3947 | } | ||
3948 | r = radeon_bo_kmap(rdev->rlc.clear_state_obj, (void **)&rdev->rlc.cs_ptr); | ||
3949 | if (r) { | ||
3950 | dev_warn(rdev->dev, "(%d) map RLC c bo failed\n", r); | ||
3951 | sumo_rlc_fini(rdev); | ||
3952 | return r; | ||
3953 | } | ||
3954 | /* set up the cs buffer */ | ||
3955 | dst_ptr = rdev->rlc.cs_ptr; | ||
3956 | reg_list_hdr_blk_index = 0; | ||
3957 | reg_list_mc_addr = rdev->rlc.clear_state_gpu_addr + (reg_list_blk_index * 4); | ||
3958 | data = upper_32_bits(reg_list_mc_addr); | ||
3959 | dst_ptr[reg_list_hdr_blk_index] = data; | ||
3960 | reg_list_hdr_blk_index++; | ||
3961 | for (i = 0; cs_data[i].section != NULL; i++) { | ||
3962 | for (j = 0; cs_data[i].section[j].extent != NULL; j++) { | ||
3963 | reg_num = cs_data[i].section[j].reg_count; | ||
3964 | data = reg_list_mc_addr & 0xffffffff; | ||
3965 | dst_ptr[reg_list_hdr_blk_index] = data; | ||
3966 | reg_list_hdr_blk_index++; | ||
3967 | |||
3968 | data = (cs_data[i].section[j].reg_index * 4) & 0xffffffff; | ||
3969 | dst_ptr[reg_list_hdr_blk_index] = data; | ||
3970 | reg_list_hdr_blk_index++; | ||
3971 | |||
3972 | data = 0x08000000 | (reg_num * 4); | ||
3973 | dst_ptr[reg_list_hdr_blk_index] = data; | ||
3974 | reg_list_hdr_blk_index++; | ||
3975 | |||
3976 | for (k = 0; k < reg_num; k++) { | ||
3977 | data = cs_data[i].section[j].extent[k]; | ||
3978 | dst_ptr[reg_list_blk_index + k] = data; | ||
3979 | } | ||
3980 | reg_list_mc_addr += reg_num * 4; | ||
3981 | reg_list_blk_index += reg_num; | ||
3982 | } | ||
3983 | } | ||
3984 | dst_ptr[reg_list_hdr_blk_index] = RLC_CLEAR_STATE_END_MARKER; | ||
3985 | |||
3986 | radeon_bo_kunmap(rdev->rlc.clear_state_obj); | ||
3987 | radeon_bo_unreserve(rdev->rlc.clear_state_obj); | ||
3988 | |||
3989 | return 0; | ||
3990 | } | ||
3991 | |||
3992 | static void evergreen_rlc_start(struct radeon_device *rdev) | ||
3993 | { | ||
3994 | if (rdev->flags & RADEON_IS_IGP) | ||
3995 | WREG32(RLC_CNTL, RLC_ENABLE | GFX_POWER_GATING_ENABLE | GFX_POWER_GATING_SRC); | ||
3996 | else | ||
3997 | WREG32(RLC_CNTL, RLC_ENABLE); | ||
3998 | } | ||
3999 | |||
4000 | int evergreen_rlc_resume(struct radeon_device *rdev) | ||
4001 | { | ||
4002 | u32 i; | ||
4003 | const __be32 *fw_data; | ||
4004 | |||
4005 | if (!rdev->rlc_fw) | ||
4006 | return -EINVAL; | ||
4007 | |||
4008 | r600_rlc_stop(rdev); | ||
4009 | |||
4010 | WREG32(RLC_HB_CNTL, 0); | ||
4011 | |||
4012 | if (rdev->flags & RADEON_IS_IGP) { | ||
4013 | WREG32(TN_RLC_SAVE_AND_RESTORE_BASE, rdev->rlc.save_restore_gpu_addr >> 8); | ||
4014 | WREG32(TN_RLC_CLEAR_STATE_RESTORE_BASE, rdev->rlc.clear_state_gpu_addr >> 8); | ||
4015 | } else { | ||
4016 | WREG32(RLC_HB_BASE, 0); | ||
4017 | WREG32(RLC_HB_RPTR, 0); | ||
4018 | WREG32(RLC_HB_WPTR, 0); | ||
4019 | } | ||
4020 | WREG32(RLC_HB_WPTR_LSB_ADDR, 0); | ||
4021 | WREG32(RLC_HB_WPTR_MSB_ADDR, 0); | ||
4022 | WREG32(RLC_MC_CNTL, 0); | ||
4023 | WREG32(RLC_UCODE_CNTL, 0); | ||
4024 | |||
4025 | fw_data = (const __be32 *)rdev->rlc_fw->data; | ||
4026 | if (rdev->family >= CHIP_ARUBA) { | ||
4027 | for (i = 0; i < ARUBA_RLC_UCODE_SIZE; i++) { | ||
4028 | WREG32(RLC_UCODE_ADDR, i); | ||
4029 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
4030 | } | ||
4031 | } else if (rdev->family >= CHIP_CAYMAN) { | ||
4032 | for (i = 0; i < CAYMAN_RLC_UCODE_SIZE; i++) { | ||
4033 | WREG32(RLC_UCODE_ADDR, i); | ||
4034 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
4035 | } | ||
4036 | } else { | ||
4037 | for (i = 0; i < EVERGREEN_RLC_UCODE_SIZE; i++) { | ||
4038 | WREG32(RLC_UCODE_ADDR, i); | ||
4039 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
4040 | } | ||
4041 | } | ||
4042 | WREG32(RLC_UCODE_ADDR, 0); | ||
4043 | |||
4044 | evergreen_rlc_start(rdev); | ||
4045 | |||
4046 | return 0; | ||
4047 | } | ||
4048 | |||
3726 | /* Interrupts */ | 4049 | /* Interrupts */ |
3727 | 4050 | ||
3728 | u32 evergreen_get_vblank_counter(struct radeon_device *rdev, int crtc) | 4051 | u32 evergreen_get_vblank_counter(struct radeon_device *rdev, int crtc) |
@@ -4721,6 +5044,18 @@ static int evergreen_startup(struct radeon_device *rdev) | |||
4721 | dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); | 5044 | dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); |
4722 | } | 5045 | } |
4723 | 5046 | ||
5047 | /* allocate rlc buffers */ | ||
5048 | if (rdev->flags & RADEON_IS_IGP) { | ||
5049 | rdev->rlc.reg_list = sumo_rlc_save_restore_register_list; | ||
5050 | rdev->rlc.reg_list_size = sumo_rlc_save_restore_register_list_size; | ||
5051 | rdev->rlc.cs_data = evergreen_cs_data; | ||
5052 | r = sumo_rlc_init(rdev); | ||
5053 | if (r) { | ||
5054 | DRM_ERROR("Failed to init rlc BOs!\n"); | ||
5055 | return r; | ||
5056 | } | ||
5057 | } | ||
5058 | |||
4724 | /* allocate wb buffer */ | 5059 | /* allocate wb buffer */ |
4725 | r = radeon_wb_init(rdev); | 5060 | r = radeon_wb_init(rdev); |
4726 | if (r) | 5061 | if (r) |
@@ -4952,6 +5287,8 @@ int evergreen_init(struct radeon_device *rdev) | |||
4952 | r700_cp_fini(rdev); | 5287 | r700_cp_fini(rdev); |
4953 | r600_dma_fini(rdev); | 5288 | r600_dma_fini(rdev); |
4954 | r600_irq_fini(rdev); | 5289 | r600_irq_fini(rdev); |
5290 | if (rdev->flags & RADEON_IS_IGP) | ||
5291 | sumo_rlc_fini(rdev); | ||
4955 | radeon_wb_fini(rdev); | 5292 | radeon_wb_fini(rdev); |
4956 | radeon_ib_pool_fini(rdev); | 5293 | radeon_ib_pool_fini(rdev); |
4957 | radeon_irq_kms_fini(rdev); | 5294 | radeon_irq_kms_fini(rdev); |
@@ -4980,6 +5317,8 @@ void evergreen_fini(struct radeon_device *rdev) | |||
4980 | r700_cp_fini(rdev); | 5317 | r700_cp_fini(rdev); |
4981 | r600_dma_fini(rdev); | 5318 | r600_dma_fini(rdev); |
4982 | r600_irq_fini(rdev); | 5319 | r600_irq_fini(rdev); |
5320 | if (rdev->flags & RADEON_IS_IGP) | ||
5321 | sumo_rlc_fini(rdev); | ||
4983 | radeon_wb_fini(rdev); | 5322 | radeon_wb_fini(rdev); |
4984 | radeon_ib_pool_fini(rdev); | 5323 | radeon_ib_pool_fini(rdev); |
4985 | radeon_irq_kms_fini(rdev); | 5324 | radeon_irq_kms_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/evergreend.h b/drivers/gpu/drm/radeon/evergreend.h index 75c05631146d..8603b7cf31a7 100644 --- a/drivers/gpu/drm/radeon/evergreend.h +++ b/drivers/gpu/drm/radeon/evergreend.h | |||
@@ -90,6 +90,25 @@ | |||
90 | #define CG_VCLK_STATUS 0x61c | 90 | #define CG_VCLK_STATUS 0x61c |
91 | #define CG_SCRATCH1 0x820 | 91 | #define CG_SCRATCH1 0x820 |
92 | 92 | ||
93 | #define RLC_CNTL 0x3f00 | ||
94 | # define RLC_ENABLE (1 << 0) | ||
95 | # define GFX_POWER_GATING_ENABLE (1 << 7) | ||
96 | # define GFX_POWER_GATING_SRC (1 << 8) | ||
97 | #define RLC_HB_BASE 0x3f10 | ||
98 | #define RLC_HB_CNTL 0x3f0c | ||
99 | #define RLC_HB_RPTR 0x3f20 | ||
100 | #define RLC_HB_WPTR 0x3f1c | ||
101 | #define RLC_HB_WPTR_LSB_ADDR 0x3f14 | ||
102 | #define RLC_HB_WPTR_MSB_ADDR 0x3f18 | ||
103 | #define RLC_MC_CNTL 0x3f44 | ||
104 | #define RLC_UCODE_CNTL 0x3f48 | ||
105 | #define RLC_UCODE_ADDR 0x3f2c | ||
106 | #define RLC_UCODE_DATA 0x3f30 | ||
107 | |||
108 | /* new for TN */ | ||
109 | #define TN_RLC_SAVE_AND_RESTORE_BASE 0x3f10 | ||
110 | #define TN_RLC_CLEAR_STATE_RESTORE_BASE 0x3f20 | ||
111 | |||
93 | #define GRBM_GFX_INDEX 0x802C | 112 | #define GRBM_GFX_INDEX 0x802C |
94 | #define INSTANCE_INDEX(x) ((x) << 0) | 113 | #define INSTANCE_INDEX(x) ((x) << 0) |
95 | #define SE_INDEX(x) ((x) << 16) | 114 | #define SE_INDEX(x) ((x) << 16) |
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c index 92843461320d..c73d71340d27 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c | |||
@@ -34,6 +34,134 @@ | |||
34 | #include "ni_reg.h" | 34 | #include "ni_reg.h" |
35 | #include "cayman_blit_shaders.h" | 35 | #include "cayman_blit_shaders.h" |
36 | #include "radeon_ucode.h" | 36 | #include "radeon_ucode.h" |
37 | #include "clearstate_cayman.h" | ||
38 | |||
39 | static u32 tn_rlc_save_restore_register_list[] = | ||
40 | { | ||
41 | 0x98fc, | ||
42 | 0x98f0, | ||
43 | 0x9834, | ||
44 | 0x9838, | ||
45 | 0x9870, | ||
46 | 0x9874, | ||
47 | 0x8a14, | ||
48 | 0x8b24, | ||
49 | 0x8bcc, | ||
50 | 0x8b10, | ||
51 | 0x8c30, | ||
52 | 0x8d00, | ||
53 | 0x8d04, | ||
54 | 0x8c00, | ||
55 | 0x8c04, | ||
56 | 0x8c10, | ||
57 | 0x8c14, | ||
58 | 0x8d8c, | ||
59 | 0x8cf0, | ||
60 | 0x8e38, | ||
61 | 0x9508, | ||
62 | 0x9688, | ||
63 | 0x9608, | ||
64 | 0x960c, | ||
65 | 0x9610, | ||
66 | 0x9614, | ||
67 | 0x88c4, | ||
68 | 0x8978, | ||
69 | 0x88d4, | ||
70 | 0x900c, | ||
71 | 0x9100, | ||
72 | 0x913c, | ||
73 | 0x90e8, | ||
74 | 0x9354, | ||
75 | 0xa008, | ||
76 | 0x98f8, | ||
77 | 0x9148, | ||
78 | 0x914c, | ||
79 | 0x3f94, | ||
80 | 0x98f4, | ||
81 | 0x9b7c, | ||
82 | 0x3f8c, | ||
83 | 0x8950, | ||
84 | 0x8954, | ||
85 | 0x8a18, | ||
86 | 0x8b28, | ||
87 | 0x9144, | ||
88 | 0x3f90, | ||
89 | 0x915c, | ||
90 | 0x9160, | ||
91 | 0x9178, | ||
92 | 0x917c, | ||
93 | 0x9180, | ||
94 | 0x918c, | ||
95 | 0x9190, | ||
96 | 0x9194, | ||
97 | 0x9198, | ||
98 | 0x919c, | ||
99 | 0x91a8, | ||
100 | 0x91ac, | ||
101 | 0x91b0, | ||
102 | 0x91b4, | ||
103 | 0x91b8, | ||
104 | 0x91c4, | ||
105 | 0x91c8, | ||
106 | 0x91cc, | ||
107 | 0x91d0, | ||
108 | 0x91d4, | ||
109 | 0x91e0, | ||
110 | 0x91e4, | ||
111 | 0x91ec, | ||
112 | 0x91f0, | ||
113 | 0x91f4, | ||
114 | 0x9200, | ||
115 | 0x9204, | ||
116 | 0x929c, | ||
117 | 0x8030, | ||
118 | 0x9150, | ||
119 | 0x9a60, | ||
120 | 0x920c, | ||
121 | 0x9210, | ||
122 | 0x9228, | ||
123 | 0x922c, | ||
124 | 0x9244, | ||
125 | 0x9248, | ||
126 | 0x91e8, | ||
127 | 0x9294, | ||
128 | 0x9208, | ||
129 | 0x9224, | ||
130 | 0x9240, | ||
131 | 0x9220, | ||
132 | 0x923c, | ||
133 | 0x9258, | ||
134 | 0x9744, | ||
135 | 0xa200, | ||
136 | 0xa204, | ||
137 | 0xa208, | ||
138 | 0xa20c, | ||
139 | 0x8d58, | ||
140 | 0x9030, | ||
141 | 0x9034, | ||
142 | 0x9038, | ||
143 | 0x903c, | ||
144 | 0x9040, | ||
145 | 0x9654, | ||
146 | 0x897c, | ||
147 | 0xa210, | ||
148 | 0xa214, | ||
149 | 0x9868, | ||
150 | 0xa02c, | ||
151 | 0x9664, | ||
152 | 0x9698, | ||
153 | 0x949c, | ||
154 | 0x8e10, | ||
155 | 0x8e18, | ||
156 | 0x8c50, | ||
157 | 0x8c58, | ||
158 | 0x8c60, | ||
159 | 0x8c68, | ||
160 | 0x89b4, | ||
161 | 0x9830, | ||
162 | 0x802c, | ||
163 | }; | ||
164 | static u32 tn_rlc_save_restore_register_list_size = ARRAY_SIZE(tn_rlc_save_restore_register_list); | ||
37 | 165 | ||
38 | extern bool evergreen_is_display_hung(struct radeon_device *rdev); | 166 | extern bool evergreen_is_display_hung(struct radeon_device *rdev); |
39 | extern void evergreen_print_gpu_status_regs(struct radeon_device *rdev); | 167 | extern void evergreen_print_gpu_status_regs(struct radeon_device *rdev); |
@@ -45,8 +173,8 @@ extern void evergreen_irq_suspend(struct radeon_device *rdev); | |||
45 | extern int evergreen_mc_init(struct radeon_device *rdev); | 173 | extern int evergreen_mc_init(struct radeon_device *rdev); |
46 | extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev); | 174 | extern void evergreen_fix_pci_max_read_req_size(struct radeon_device *rdev); |
47 | extern void evergreen_pcie_gen2_enable(struct radeon_device *rdev); | 175 | extern void evergreen_pcie_gen2_enable(struct radeon_device *rdev); |
48 | extern void si_rlc_fini(struct radeon_device *rdev); | 176 | extern void sumo_rlc_fini(struct radeon_device *rdev); |
49 | extern int si_rlc_init(struct radeon_device *rdev); | 177 | extern int sumo_rlc_init(struct radeon_device *rdev); |
50 | 178 | ||
51 | /* Firmware Names */ | 179 | /* Firmware Names */ |
52 | MODULE_FIRMWARE("radeon/BARTS_pfp.bin"); | 180 | MODULE_FIRMWARE("radeon/BARTS_pfp.bin"); |
@@ -1969,7 +2097,10 @@ static int cayman_startup(struct radeon_device *rdev) | |||
1969 | 2097 | ||
1970 | /* allocate rlc buffers */ | 2098 | /* allocate rlc buffers */ |
1971 | if (rdev->flags & RADEON_IS_IGP) { | 2099 | if (rdev->flags & RADEON_IS_IGP) { |
1972 | r = si_rlc_init(rdev); | 2100 | rdev->rlc.reg_list = tn_rlc_save_restore_register_list; |
2101 | rdev->rlc.reg_list_size = tn_rlc_save_restore_register_list_size; | ||
2102 | rdev->rlc.cs_data = cayman_cs_data; | ||
2103 | r = sumo_rlc_init(rdev); | ||
1973 | if (r) { | 2104 | if (r) { |
1974 | DRM_ERROR("Failed to init rlc BOs!\n"); | 2105 | DRM_ERROR("Failed to init rlc BOs!\n"); |
1975 | return r; | 2106 | return r; |
@@ -2226,7 +2357,7 @@ int cayman_init(struct radeon_device *rdev) | |||
2226 | cayman_dma_fini(rdev); | 2357 | cayman_dma_fini(rdev); |
2227 | r600_irq_fini(rdev); | 2358 | r600_irq_fini(rdev); |
2228 | if (rdev->flags & RADEON_IS_IGP) | 2359 | if (rdev->flags & RADEON_IS_IGP) |
2229 | si_rlc_fini(rdev); | 2360 | sumo_rlc_fini(rdev); |
2230 | radeon_wb_fini(rdev); | 2361 | radeon_wb_fini(rdev); |
2231 | radeon_ib_pool_fini(rdev); | 2362 | radeon_ib_pool_fini(rdev); |
2232 | radeon_vm_manager_fini(rdev); | 2363 | radeon_vm_manager_fini(rdev); |
@@ -2257,7 +2388,7 @@ void cayman_fini(struct radeon_device *rdev) | |||
2257 | cayman_dma_fini(rdev); | 2388 | cayman_dma_fini(rdev); |
2258 | r600_irq_fini(rdev); | 2389 | r600_irq_fini(rdev); |
2259 | if (rdev->flags & RADEON_IS_IGP) | 2390 | if (rdev->flags & RADEON_IS_IGP) |
2260 | si_rlc_fini(rdev); | 2391 | sumo_rlc_fini(rdev); |
2261 | radeon_wb_fini(rdev); | 2392 | radeon_wb_fini(rdev); |
2262 | radeon_vm_manager_fini(rdev); | 2393 | radeon_vm_manager_fini(rdev); |
2263 | radeon_ib_pool_fini(rdev); | 2394 | radeon_ib_pool_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 608926180e0c..4678ed102af6 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -97,6 +97,7 @@ static void r600_gpu_init(struct radeon_device *rdev); | |||
97 | void r600_fini(struct radeon_device *rdev); | 97 | void r600_fini(struct radeon_device *rdev); |
98 | void r600_irq_disable(struct radeon_device *rdev); | 98 | void r600_irq_disable(struct radeon_device *rdev); |
99 | static void r600_pcie_gen2_enable(struct radeon_device *rdev); | 99 | static void r600_pcie_gen2_enable(struct radeon_device *rdev); |
100 | extern int evergreen_rlc_resume(struct radeon_device *rdev); | ||
100 | 101 | ||
101 | /** | 102 | /** |
102 | * r600_get_xclk - get the xclk | 103 | * r600_get_xclk - get the xclk |
@@ -3778,7 +3779,7 @@ static void r600_rlc_start(struct radeon_device *rdev) | |||
3778 | WREG32(RLC_CNTL, RLC_ENABLE); | 3779 | WREG32(RLC_CNTL, RLC_ENABLE); |
3779 | } | 3780 | } |
3780 | 3781 | ||
3781 | static int r600_rlc_init(struct radeon_device *rdev) | 3782 | static int r600_rlc_resume(struct radeon_device *rdev) |
3782 | { | 3783 | { |
3783 | u32 i; | 3784 | u32 i; |
3784 | const __be32 *fw_data; | 3785 | const __be32 *fw_data; |
@@ -3790,39 +3791,16 @@ static int r600_rlc_init(struct radeon_device *rdev) | |||
3790 | 3791 | ||
3791 | WREG32(RLC_HB_CNTL, 0); | 3792 | WREG32(RLC_HB_CNTL, 0); |
3792 | 3793 | ||
3793 | if (rdev->family == CHIP_ARUBA) { | 3794 | WREG32(RLC_HB_BASE, 0); |
3794 | WREG32(TN_RLC_SAVE_AND_RESTORE_BASE, rdev->rlc.save_restore_gpu_addr >> 8); | 3795 | WREG32(RLC_HB_RPTR, 0); |
3795 | WREG32(TN_RLC_CLEAR_STATE_RESTORE_BASE, rdev->rlc.clear_state_gpu_addr >> 8); | 3796 | WREG32(RLC_HB_WPTR, 0); |
3796 | } | 3797 | WREG32(RLC_HB_WPTR_LSB_ADDR, 0); |
3797 | if (rdev->family <= CHIP_CAYMAN) { | 3798 | WREG32(RLC_HB_WPTR_MSB_ADDR, 0); |
3798 | WREG32(RLC_HB_BASE, 0); | ||
3799 | WREG32(RLC_HB_RPTR, 0); | ||
3800 | WREG32(RLC_HB_WPTR, 0); | ||
3801 | } | ||
3802 | if (rdev->family <= CHIP_CAICOS) { | ||
3803 | WREG32(RLC_HB_WPTR_LSB_ADDR, 0); | ||
3804 | WREG32(RLC_HB_WPTR_MSB_ADDR, 0); | ||
3805 | } | ||
3806 | WREG32(RLC_MC_CNTL, 0); | 3799 | WREG32(RLC_MC_CNTL, 0); |
3807 | WREG32(RLC_UCODE_CNTL, 0); | 3800 | WREG32(RLC_UCODE_CNTL, 0); |
3808 | 3801 | ||
3809 | fw_data = (const __be32 *)rdev->rlc_fw->data; | 3802 | fw_data = (const __be32 *)rdev->rlc_fw->data; |
3810 | if (rdev->family >= CHIP_ARUBA) { | 3803 | if (rdev->family >= CHIP_RV770) { |
3811 | for (i = 0; i < ARUBA_RLC_UCODE_SIZE; i++) { | ||
3812 | WREG32(RLC_UCODE_ADDR, i); | ||
3813 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
3814 | } | ||
3815 | } else if (rdev->family >= CHIP_CAYMAN) { | ||
3816 | for (i = 0; i < CAYMAN_RLC_UCODE_SIZE; i++) { | ||
3817 | WREG32(RLC_UCODE_ADDR, i); | ||
3818 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
3819 | } | ||
3820 | } else if (rdev->family >= CHIP_CEDAR) { | ||
3821 | for (i = 0; i < EVERGREEN_RLC_UCODE_SIZE; i++) { | ||
3822 | WREG32(RLC_UCODE_ADDR, i); | ||
3823 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | ||
3824 | } | ||
3825 | } else if (rdev->family >= CHIP_RV770) { | ||
3826 | for (i = 0; i < R700_RLC_UCODE_SIZE; i++) { | 3804 | for (i = 0; i < R700_RLC_UCODE_SIZE; i++) { |
3827 | WREG32(RLC_UCODE_ADDR, i); | 3805 | WREG32(RLC_UCODE_ADDR, i); |
3828 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); | 3806 | WREG32(RLC_UCODE_DATA, be32_to_cpup(fw_data++)); |
@@ -3936,7 +3914,10 @@ int r600_irq_init(struct radeon_device *rdev) | |||
3936 | r600_disable_interrupts(rdev); | 3914 | r600_disable_interrupts(rdev); |
3937 | 3915 | ||
3938 | /* init rlc */ | 3916 | /* init rlc */ |
3939 | ret = r600_rlc_init(rdev); | 3917 | if (rdev->family >= CHIP_CEDAR) |
3918 | ret = evergreen_rlc_resume(rdev); | ||
3919 | else | ||
3920 | ret = r600_rlc_resume(rdev); | ||
3940 | if (ret) { | 3921 | if (ret) { |
3941 | r600_ih_ring_fini(rdev); | 3922 | r600_ih_ring_fini(rdev); |
3942 | return ret; | 3923 | return ret; |
diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h index 79df558f8c40..a3f926c8f5e9 100644 --- a/drivers/gpu/drm/radeon/r600d.h +++ b/drivers/gpu/drm/radeon/r600d.h | |||
@@ -684,10 +684,6 @@ | |||
684 | #define RLC_UCODE_ADDR 0x3f2c | 684 | #define RLC_UCODE_ADDR 0x3f2c |
685 | #define RLC_UCODE_DATA 0x3f30 | 685 | #define RLC_UCODE_DATA 0x3f30 |
686 | 686 | ||
687 | /* new for TN */ | ||
688 | #define TN_RLC_SAVE_AND_RESTORE_BASE 0x3f10 | ||
689 | #define TN_RLC_CLEAR_STATE_RESTORE_BASE 0x3f20 | ||
690 | |||
691 | #define SRBM_SOFT_RESET 0xe60 | 687 | #define SRBM_SOFT_RESET 0xe60 |
692 | # define SOFT_RESET_DMA (1 << 12) | 688 | # define SOFT_RESET_DMA (1 << 12) |
693 | # define SOFT_RESET_RLC (1 << 13) | 689 | # define SOFT_RESET_RLC (1 << 13) |
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 91e615ff4288..f904ded90e0c 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -821,15 +821,22 @@ struct r600_blit { | |||
821 | }; | 821 | }; |
822 | 822 | ||
823 | /* | 823 | /* |
824 | * SI RLC stuff | 824 | * RLC stuff |
825 | */ | 825 | */ |
826 | struct si_rlc { | 826 | #include "clearstate_defs.h" |
827 | |||
828 | struct radeon_rlc { | ||
827 | /* for power gating */ | 829 | /* for power gating */ |
828 | struct radeon_bo *save_restore_obj; | 830 | struct radeon_bo *save_restore_obj; |
829 | uint64_t save_restore_gpu_addr; | 831 | uint64_t save_restore_gpu_addr; |
832 | volatile uint32_t *sr_ptr; | ||
833 | u32 *reg_list; | ||
834 | u32 reg_list_size; | ||
830 | /* for clear state */ | 835 | /* for clear state */ |
831 | struct radeon_bo *clear_state_obj; | 836 | struct radeon_bo *clear_state_obj; |
832 | uint64_t clear_state_gpu_addr; | 837 | uint64_t clear_state_gpu_addr; |
838 | volatile uint32_t *cs_ptr; | ||
839 | struct cs_section_def *cs_data; | ||
833 | }; | 840 | }; |
834 | 841 | ||
835 | int radeon_ib_get(struct radeon_device *rdev, int ring, | 842 | int radeon_ib_get(struct radeon_device *rdev, int ring, |
@@ -1773,7 +1780,7 @@ struct radeon_device { | |||
1773 | struct r600_vram_scratch vram_scratch; | 1780 | struct r600_vram_scratch vram_scratch; |
1774 | int msi_enabled; /* msi enabled */ | 1781 | int msi_enabled; /* msi enabled */ |
1775 | struct r600_ih ih; /* r6/700 interrupt ring */ | 1782 | struct r600_ih ih; /* r6/700 interrupt ring */ |
1776 | struct si_rlc rlc; | 1783 | struct radeon_rlc rlc; |
1777 | struct radeon_mec mec; | 1784 | struct radeon_mec mec; |
1778 | struct work_struct hotplug_work; | 1785 | struct work_struct hotplug_work; |
1779 | struct work_struct audio_work; | 1786 | struct work_struct audio_work; |