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