1 /*
2  * Copyright 2009 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 (including the next
12  * paragraph) shall be included in all copies or substantial portions of the
13  * Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18  * THE COPYRIGHT HOLDER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  *
23  * Authors:
24  *     Alex Deucher <alexander.deucher@amd.com>
25  */
26 
27 #include <linux/types.h>
28 #include <linux/kernel.h>
29 
30 /*
31  * R6xx+ cards need to use the 3D engine to blit data which requires
32  * quite a bit of hw state setup.  Rather than pull the whole 3D driver
33  * (which normally generates the 3D state) into the DRM, we opt to use
34  * statically generated state tables.  The regsiter state and shaders
35  * were hand generated to support blitting functionality.  See the 3D
36  * driver or documentation for descriptions of the registers and
37  * shader instructions.
38  */
39 
40 const u32 r6xx_default_state[] =
41 {
42 	0xc0002400, /* START_3D_CMDBUF */
43 	0x00000000,
44 
45 	0xc0012800, /* CONTEXT_CONTROL */
46 	0x80000000,
47 	0x80000000,
48 
49 	0xc0016800,
50 	0x00000010,
51 	0x00008000, /* WAIT_UNTIL */
52 
53 	0xc0016800,
54 	0x00000542,
55 	0x07000003, /* TA_CNTL_AUX */
56 
57 	0xc0016800,
58 	0x000005c5,
59 	0x00000000, /* VC_ENHANCE */
60 
61 	0xc0016800,
62 	0x00000363,
63 	0x00000000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
64 
65 	0xc0016800,
66 	0x0000060c,
67 	0x82000000, /* DB_DEBUG */
68 
69 	0xc0016800,
70 	0x0000060e,
71 	0x01020204, /* DB_WATERMARKS */
72 
73 	0xc0026f00,
74 	0x00000000,
75 	0x00000000, /* SQ_VTX_BASE_VTX_LOC */
76 	0x00000000, /* SQ_VTX_START_INST_LOC */
77 
78 	0xc0096900,
79 	0x0000022a,
80 	0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
81 	0x00000000,
82 	0x00000000,
83 	0x00000000,
84 	0x00000000,
85 	0x00000000,
86 	0x00000000,
87 	0x00000000,
88 	0x00000000,
89 
90 	0xc0016900,
91 	0x00000004,
92 	0x00000000, /* DB_DEPTH_INFO */
93 
94 	0xc0026900,
95 	0x0000000a,
96 	0x00000000, /* DB_STENCIL_CLEAR */
97 	0x00000000, /* DB_DEPTH_CLEAR */
98 
99 	0xc0016900,
100 	0x00000200,
101 	0x00000000, /* DB_DEPTH_CONTROL */
102 
103 	0xc0026900,
104 	0x00000343,
105 	0x00000060, /* DB_RENDER_CONTROL */
106 	0x00000040, /* DB_RENDER_OVERRIDE */
107 
108 	0xc0016900,
109 	0x00000351,
110 	0x0000aa00, /* DB_ALPHA_TO_MASK */
111 
112 	0xc00f6900,
113 	0x00000100,
114 	0x00000800, /* VGT_MAX_VTX_INDX */
115 	0x00000000, /* VGT_MIN_VTX_INDX */
116 	0x00000000, /* VGT_INDX_OFFSET */
117 	0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
118 	0x00000000, /* SX_ALPHA_TEST_CONTROL */
119 	0x00000000, /* CB_BLEND_RED */
120 	0x00000000,
121 	0x00000000,
122 	0x00000000,
123 	0x00000000, /* CB_FOG_RED */
124 	0x00000000,
125 	0x00000000,
126 	0x00000000, /* DB_STENCILREFMASK */
127 	0x00000000, /* DB_STENCILREFMASK_BF */
128 	0x00000000, /* SX_ALPHA_REF */
129 
130 	0xc0046900,
131 	0x0000030c,
132 	0x01000000, /* CB_CLRCMP_CNTL */
133 	0x00000000,
134 	0x00000000,
135 	0x00000000,
136 
137 	0xc0046900,
138 	0x00000048,
139 	0x3f800000, /* CB_CLEAR_RED */
140 	0x00000000,
141 	0x3f800000,
142 	0x3f800000,
143 
144 	0xc0016900,
145 	0x00000080,
146 	0x00000000, /* PA_SC_WINDOW_OFFSET */
147 
148 	0xc00a6900,
149 	0x00000083,
150 	0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
151 	0x00000000, /* PA_SC_CLIPRECT_0_TL */
152 	0x20002000,
153 	0x00000000,
154 	0x20002000,
155 	0x00000000,
156 	0x20002000,
157 	0x00000000,
158 	0x20002000,
159 	0x00000000, /* PA_SC_EDGERULE */
160 
161 	0xc0406900,
162 	0x00000094,
163 	0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
164 	0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
165 	0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
166 	0x20002000,
167 	0x80000000,
168 	0x20002000,
169 	0x80000000,
170 	0x20002000,
171 	0x80000000,
172 	0x20002000,
173 	0x80000000,
174 	0x20002000,
175 	0x80000000,
176 	0x20002000,
177 	0x80000000,
178 	0x20002000,
179 	0x80000000,
180 	0x20002000,
181 	0x80000000,
182 	0x20002000,
183 	0x80000000,
184 	0x20002000,
185 	0x80000000,
186 	0x20002000,
187 	0x80000000,
188 	0x20002000,
189 	0x80000000,
190 	0x20002000,
191 	0x80000000,
192 	0x20002000,
193 	0x80000000,
194 	0x20002000,
195 	0x00000000, /* PA_SC_VPORT_ZMIN_0 */
196 	0x3f800000,
197 	0x00000000,
198 	0x3f800000,
199 	0x00000000,
200 	0x3f800000,
201 	0x00000000,
202 	0x3f800000,
203 	0x00000000,
204 	0x3f800000,
205 	0x00000000,
206 	0x3f800000,
207 	0x00000000,
208 	0x3f800000,
209 	0x00000000,
210 	0x3f800000,
211 	0x00000000,
212 	0x3f800000,
213 	0x00000000,
214 	0x3f800000,
215 	0x00000000,
216 	0x3f800000,
217 	0x00000000,
218 	0x3f800000,
219 	0x00000000,
220 	0x3f800000,
221 	0x00000000,
222 	0x3f800000,
223 	0x00000000,
224 	0x3f800000,
225 	0x00000000,
226 	0x3f800000,
227 
228 	0xc0026900,
229 	0x00000292,
230 	0x00000000, /* PA_SC_MPASS_PS_CNTL */
231 	0x00004010, /* PA_SC_MODE_CNTL */
232 
233 	0xc0096900,
234 	0x00000300,
235 	0x00000000, /* PA_SC_LINE_CNTL */
236 	0x00000000, /* PA_SC_AA_CONFIG */
237 	0x0000002d, /* PA_SU_VTX_CNTL */
238 	0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
239 	0x3f800000,
240 	0x3f800000,
241 	0x3f800000,
242 	0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
243 	0x00000000,
244 
245 	0xc0016900,
246 	0x00000312,
247 	0xffffffff, /* PA_SC_AA_MASK */
248 
249 	0xc0066900,
250 	0x0000037e,
251 	0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
252 	0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
253 	0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
254 	0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
255 	0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
256 	0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
257 
258 	0xc0046900,
259 	0x000001b6,
260 	0x00000000, /* SPI_INPUT_Z */
261 	0x00000000, /* SPI_FOG_CNTL */
262 	0x00000000, /* SPI_FOG_FUNC_SCALE */
263 	0x00000000, /* SPI_FOG_FUNC_BIAS */
264 
265 	0xc0016900,
266 	0x00000225,
267 	0x00000000, /* SQ_PGM_START_FS */
268 
269 	0xc0016900,
270 	0x00000229,
271 	0x00000000, /* SQ_PGM_RESOURCES_FS */
272 
273 	0xc0016900,
274 	0x00000237,
275 	0x00000000, /* SQ_PGM_CF_OFFSET_FS */
276 
277 	0xc0026900,
278 	0x000002a8,
279 	0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
280 	0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
281 
282 	0xc0116900,
283 	0x00000280,
284 	0x00000000, /* PA_SU_POINT_SIZE */
285 	0x00000000, /* PA_SU_POINT_MINMAX */
286 	0x00000008, /* PA_SU_LINE_CNTL */
287 	0x00000000, /* PA_SC_LINE_STIPPLE */
288 	0x00000000, /* VGT_OUTPUT_PATH_CNTL */
289 	0x00000000, /* VGT_HOS_CNTL */
290 	0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
291 	0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
292 	0x00000000, /* VGT_HOS_REUSE_DEPTH */
293 	0x00000000, /* VGT_GROUP_PRIM_TYPE */
294 	0x00000000, /* VGT_GROUP_FIRST_DECR */
295 	0x00000000, /* VGT_GROUP_DECR */
296 	0x00000000, /* VGT_GROUP_VECT_0_CNTL */
297 	0x00000000, /* VGT_GROUP_VECT_1_CNTL */
298 	0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
299 	0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
300 	0x00000000, /* VGT_GS_MODE */
301 
302 	0xc0016900,
303 	0x000002a1,
304 	0x00000000, /* VGT_PRIMITIVEID_EN */
305 
306 	0xc0016900,
307 	0x000002a5,
308 	0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
309 
310 	0xc0036900,
311 	0x000002ac,
312 	0x00000000, /* VGT_STRMOUT_EN */
313 	0x00000000, /* VGT_REUSE_OFF */
314 	0x00000000, /* VGT_VTX_CNT_EN */
315 
316 	0xc0016900,
317 	0x000000d4,
318 	0x00000000, /* SX_MISC */
319 
320 	0xc0016900,
321 	0x000002c8,
322 	0x00000000, /* VGT_STRMOUT_BUFFER_EN */
323 
324 	0xc0076900,
325 	0x00000202,
326 	0x00cc0000, /* CB_COLOR_CONTROL */
327 	0x00000210, /* DB_SHADER_CNTL */
328 	0x00010000, /* PA_CL_CLIP_CNTL */
329 	0x00000244, /* PA_SU_SC_MODE_CNTL */
330 	0x00000100, /* PA_CL_VTE_CNTL */
331 	0x00000000, /* PA_CL_VS_OUT_CNTL */
332 	0x00000000, /* PA_CL_NANINF_CNTL */
333 
334 	0xc0026900,
335 	0x0000008e,
336 	0x0000000f, /* CB_TARGET_MASK */
337 	0x0000000f, /* CB_SHADER_MASK */
338 
339 	0xc0016900,
340 	0x000001e8,
341 	0x00000001, /* CB_SHADER_CONTROL */
342 
343 	0xc0016900,
344 	0x00000185,
345 	0x00000000, /* SPI_VS_OUT_ID_0 */
346 
347 	0xc0016900,
348 	0x00000191,
349 	0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
350 
351 	0xc0056900,
352 	0x000001b1,
353 	0x00000000, /* SPI_VS_OUT_CONFIG */
354 	0x00000000, /* SPI_THREAD_GROUPING */
355 	0x00000001, /* SPI_PS_IN_CONTROL_0 */
356 	0x00000000, /* SPI_PS_IN_CONTROL_1 */
357 	0x00000000, /* SPI_INTERP_CONTROL_0 */
358 
359 	0xc0036e00, /* SET_SAMPLER */
360 	0x00000000,
361 	0x00000012,
362 	0x00000000,
363 	0x00000000,
364 };
365 
366 const u32 r7xx_default_state[] =
367 {
368 	0xc0012800, /* CONTEXT_CONTROL */
369 	0x80000000,
370 	0x80000000,
371 
372 	0xc0016800,
373 	0x00000010,
374 	0x00008000, /* WAIT_UNTIL */
375 
376 	0xc0016800,
377 	0x00000542,
378 	0x07000002, /* TA_CNTL_AUX */
379 
380 	0xc0016800,
381 	0x000005c5,
382 	0x00000000, /* VC_ENHANCE */
383 
384 	0xc0016800,
385 	0x00000363,
386 	0x00004000, /* SQ_DYN_GPR_CNTL_PS_FLUSH_REQ */
387 
388 	0xc0016800,
389 	0x0000060c,
390 	0x00000000, /* DB_DEBUG */
391 
392 	0xc0016800,
393 	0x0000060e,
394 	0x00420204, /* DB_WATERMARKS */
395 
396 	0xc0026f00,
397 	0x00000000,
398 	0x00000000, /* SQ_VTX_BASE_VTX_LOC */
399 	0x00000000, /* SQ_VTX_START_INST_LOC */
400 
401 	0xc0096900,
402 	0x0000022a,
403 	0x00000000, /* SQ_ESGS_RING_ITEMSIZE */
404 	0x00000000,
405 	0x00000000,
406 	0x00000000,
407 	0x00000000,
408 	0x00000000,
409 	0x00000000,
410 	0x00000000,
411 	0x00000000,
412 
413 	0xc0016900,
414 	0x00000004,
415 	0x00000000, /* DB_DEPTH_INFO */
416 
417 	0xc0026900,
418 	0x0000000a,
419 	0x00000000, /* DB_STENCIL_CLEAR */
420 	0x00000000, /* DB_DEPTH_CLEAR */
421 
422 	0xc0016900,
423 	0x00000200,
424 	0x00000000, /* DB_DEPTH_CONTROL */
425 
426 	0xc0026900,
427 	0x00000343,
428 	0x00000060, /* DB_RENDER_CONTROL */
429 	0x00000000, /* DB_RENDER_OVERRIDE */
430 
431 	0xc0016900,
432 	0x00000351,
433 	0x0000aa00, /* DB_ALPHA_TO_MASK */
434 
435 	0xc0096900,
436 	0x00000100,
437 	0x00000800, /* VGT_MAX_VTX_INDX */
438 	0x00000000, /* VGT_MIN_VTX_INDX */
439 	0x00000000, /* VGT_INDX_OFFSET */
440 	0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */
441 	0x00000000, /* SX_ALPHA_TEST_CONTROL */
442 	0x00000000, /* CB_BLEND_RED */
443 	0x00000000,
444 	0x00000000,
445 	0x00000000,
446 
447 	0xc0036900,
448 	0x0000010c,
449 	0x00000000, /* DB_STENCILREFMASK */
450 	0x00000000, /* DB_STENCILREFMASK_BF */
451 	0x00000000, /* SX_ALPHA_REF */
452 
453 	0xc0046900,
454 	0x0000030c, /* CB_CLRCMP_CNTL */
455 	0x01000000,
456 	0x00000000,
457 	0x00000000,
458 	0x00000000,
459 
460 	0xc0016900,
461 	0x00000080,
462 	0x00000000, /* PA_SC_WINDOW_OFFSET */
463 
464 	0xc00a6900,
465 	0x00000083,
466 	0x0000ffff, /* PA_SC_CLIP_RECT_RULE */
467 	0x00000000, /* PA_SC_CLIPRECT_0_TL */
468 	0x20002000,
469 	0x00000000,
470 	0x20002000,
471 	0x00000000,
472 	0x20002000,
473 	0x00000000,
474 	0x20002000,
475 	0xaaaaaaaa, /* PA_SC_EDGERULE */
476 
477 	0xc0406900,
478 	0x00000094,
479 	0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */
480 	0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */
481 	0x80000000, /* PA_SC_VPORT_SCISSOR_1_TL */
482 	0x20002000,
483 	0x80000000,
484 	0x20002000,
485 	0x80000000,
486 	0x20002000,
487 	0x80000000,
488 	0x20002000,
489 	0x80000000,
490 	0x20002000,
491 	0x80000000,
492 	0x20002000,
493 	0x80000000,
494 	0x20002000,
495 	0x80000000,
496 	0x20002000,
497 	0x80000000,
498 	0x20002000,
499 	0x80000000,
500 	0x20002000,
501 	0x80000000,
502 	0x20002000,
503 	0x80000000,
504 	0x20002000,
505 	0x80000000,
506 	0x20002000,
507 	0x80000000,
508 	0x20002000,
509 	0x80000000,
510 	0x20002000,
511 	0x00000000, /* PA_SC_VPORT_ZMIN_0 */
512 	0x3f800000,
513 	0x00000000,
514 	0x3f800000,
515 	0x00000000,
516 	0x3f800000,
517 	0x00000000,
518 	0x3f800000,
519 	0x00000000,
520 	0x3f800000,
521 	0x00000000,
522 	0x3f800000,
523 	0x00000000,
524 	0x3f800000,
525 	0x00000000,
526 	0x3f800000,
527 	0x00000000,
528 	0x3f800000,
529 	0x00000000,
530 	0x3f800000,
531 	0x00000000,
532 	0x3f800000,
533 	0x00000000,
534 	0x3f800000,
535 	0x00000000,
536 	0x3f800000,
537 	0x00000000,
538 	0x3f800000,
539 	0x00000000,
540 	0x3f800000,
541 	0x00000000,
542 	0x3f800000,
543 
544 	0xc0026900,
545 	0x00000292,
546 	0x00000000, /* PA_SC_MPASS_PS_CNTL */
547 	0x00514000, /* PA_SC_MODE_CNTL */
548 
549 	0xc0096900,
550 	0x00000300,
551 	0x00000000, /* PA_SC_LINE_CNTL */
552 	0x00000000, /* PA_SC_AA_CONFIG */
553 	0x0000002d, /* PA_SU_VTX_CNTL */
554 	0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */
555 	0x3f800000,
556 	0x3f800000,
557 	0x3f800000,
558 	0x00000000, /* PA_SC_SAMPLE_LOCS_MCTX */
559 	0x00000000,
560 
561 	0xc0016900,
562 	0x00000312,
563 	0xffffffff, /* PA_SC_AA_MASK */
564 
565 	0xc0066900,
566 	0x0000037e,
567 	0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */
568 	0x00000000, /* PA_SU_POLY_OFFSET_CLAMP */
569 	0x00000000, /* PA_SU_POLY_OFFSET_FRONT_SCALE */
570 	0x00000000, /* PA_SU_POLY_OFFSET_FRONT_OFFSET */
571 	0x00000000, /* PA_SU_POLY_OFFSET_BACK_SCALE */
572 	0x00000000, /* PA_SU_POLY_OFFSET_BACK_OFFSET */
573 
574 	0xc0046900,
575 	0x000001b6,
576 	0x00000000, /* SPI_INPUT_Z */
577 	0x00000000, /* SPI_FOG_CNTL */
578 	0x00000000, /* SPI_FOG_FUNC_SCALE */
579 	0x00000000, /* SPI_FOG_FUNC_BIAS */
580 
581 	0xc0016900,
582 	0x00000225,
583 	0x00000000, /* SQ_PGM_START_FS */
584 
585 	0xc0016900,
586 	0x00000229,
587 	0x00000000, /* SQ_PGM_RESOURCES_FS */
588 
589 	0xc0016900,
590 	0x00000237,
591 	0x00000000, /* SQ_PGM_CF_OFFSET_FS */
592 
593 	0xc0026900,
594 	0x000002a8,
595 	0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */
596 	0x00000000, /* VGT_INSTANCE_STEP_RATE_1 */
597 
598 	0xc0116900,
599 	0x00000280,
600 	0x00000000, /* PA_SU_POINT_SIZE */
601 	0x00000000, /* PA_SU_POINT_MINMAX */
602 	0x00000008, /* PA_SU_LINE_CNTL */
603 	0x00000000, /* PA_SC_LINE_STIPPLE */
604 	0x00000000, /* VGT_OUTPUT_PATH_CNTL */
605 	0x00000000, /* VGT_HOS_CNTL */
606 	0x00000000, /* VGT_HOS_MAX_TESS_LEVEL */
607 	0x00000000, /* VGT_HOS_MIN_TESS_LEVEL */
608 	0x00000000, /* VGT_HOS_REUSE_DEPTH */
609 	0x00000000, /* VGT_GROUP_PRIM_TYPE */
610 	0x00000000, /* VGT_GROUP_FIRST_DECR */
611 	0x00000000, /* VGT_GROUP_DECR */
612 	0x00000000, /* VGT_GROUP_VECT_0_CNTL */
613 	0x00000000, /* VGT_GROUP_VECT_1_CNTL */
614 	0x00000000, /* VGT_GROUP_VECT_0_FMT_CNTL */
615 	0x00000000, /* VGT_GROUP_VECT_1_FMT_CNTL */
616 	0x00000000, /* VGT_GS_MODE */
617 
618 	0xc0016900,
619 	0x000002a1,
620 	0x00000000, /* VGT_PRIMITIVEID_EN */
621 
622 	0xc0016900,
623 	0x000002a5,
624 	0x00000000, /* VGT_MULTI_PRIM_ID_RESET_EN */
625 
626 	0xc0036900,
627 	0x000002ac,
628 	0x00000000, /* VGT_STRMOUT_EN */
629 	0x00000000, /* VGT_REUSE_OFF */
630 	0x00000000, /* VGT_VTX_CNT_EN */
631 
632 	0xc0016900,
633 	0x000000d4,
634 	0x00000000, /* SX_MISC */
635 
636 	0xc0016900,
637 	0x000002c8,
638 	0x00000000, /* VGT_STRMOUT_BUFFER_EN */
639 
640 	0xc0076900,
641 	0x00000202,
642 	0x00cc0000, /* CB_COLOR_CONTROL */
643 	0x00000210, /* DB_SHADER_CNTL */
644 	0x00010000, /* PA_CL_CLIP_CNTL */
645 	0x00000244, /* PA_SU_SC_MODE_CNTL */
646 	0x00000100, /* PA_CL_VTE_CNTL */
647 	0x00000000, /* PA_CL_VS_OUT_CNTL */
648 	0x00000000, /* PA_CL_NANINF_CNTL */
649 
650 	0xc0026900,
651 	0x0000008e,
652 	0x0000000f, /* CB_TARGET_MASK */
653 	0x0000000f, /* CB_SHADER_MASK */
654 
655 	0xc0016900,
656 	0x000001e8,
657 	0x00000001, /* CB_SHADER_CONTROL */
658 
659 	0xc0016900,
660 	0x00000185,
661 	0x00000000, /* SPI_VS_OUT_ID_0 */
662 
663 	0xc0016900,
664 	0x00000191,
665 	0x00000b00, /* SPI_PS_INPUT_CNTL_0 */
666 
667 	0xc0056900,
668 	0x000001b1,
669 	0x00000000, /* SPI_VS_OUT_CONFIG */
670 	0x00000001, /* SPI_THREAD_GROUPING */
671 	0x00000001, /* SPI_PS_IN_CONTROL_0 */
672 	0x00000000, /* SPI_PS_IN_CONTROL_1 */
673 	0x00000000, /* SPI_INTERP_CONTROL_0 */
674 
675 	0xc0036e00, /* SET_SAMPLER */
676 	0x00000000,
677 	0x00000012,
678 	0x00000000,
679 	0x00000000,
680 };
681 
682 /* same for r6xx/r7xx */
683 const u32 r6xx_vs[] =
684 {
685 	0x00000004,
686 	0x81000000,
687 	0x0000203c,
688 	0x94000b08,
689 	0x00004000,
690 	0x14200b1a,
691 	0x00000000,
692 	0x00000000,
693 	0x3c000000,
694 	0x68cd1000,
695 #ifdef __BIG_ENDIAN
696 	0x000a0000,
697 #else
698 	0x00080000,
699 #endif
700 	0x00000000,
701 };
702 
703 const u32 r6xx_ps[] =
704 {
705 	0x00000002,
706 	0x80800000,
707 	0x00000000,
708 	0x94200688,
709 	0x00000010,
710 	0x000d1000,
711 	0xb0800000,
712 	0x00000000,
713 };
714 
715 const u32 r6xx_ps_size = ARRAY_SIZE(r6xx_ps);
716 const u32 r6xx_vs_size = ARRAY_SIZE(r6xx_vs);
717 const u32 r6xx_default_size = ARRAY_SIZE(r6xx_default_state);
718 const u32 r7xx_default_size = ARRAY_SIZE(r7xx_default_state);
719