xref: /linux/drivers/video/fbdev/riva/riva_tbl.h (revision e5451c8f8330e03ad3cfa16048b4daf961af434f)
1  /***************************************************************************\
2 |*                                                                           *|
3 |*       Copyright 1993-1999 NVIDIA, Corporation.  All rights reserved.      *|
4 |*                                                                           *|
5 |*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
6 |*     international laws.  Users and possessors of this source code are     *|
7 |*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
8 |*     use this code in individual and commercial software.                  *|
9 |*                                                                           *|
10 |*     Any use of this source code must include,  in the user documenta-     *|
11 |*     tion and  internal comments to the code,  notices to the end user     *|
12 |*     as follows:                                                           *|
13 |*                                                                           *|
14 |*       Copyright 1993-1999 NVIDIA, Corporation.  All rights reserved.      *|
15 |*                                                                           *|
16 |*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
17 |*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
18 |*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
19 |*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
20 |*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
21 |*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
22 |*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
23 |*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
24 |*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
25 |*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
26 |*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
27 |*                                                                           *|
28 |*     U.S. Government  End  Users.   This source code  is a "commercial     *|
29 |*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
30 |*     consisting  of "commercial  computer  software"  and  "commercial     *|
31 |*     computer  software  documentation,"  as such  terms  are  used in     *|
32 |*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
33 |*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
34 |*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
35 |*     all U.S. Government End Users  acquire the source code  with only     *|
36 |*     those rights set forth herein.                                        *|
37 |*                                                                           *|
38  \***************************************************************************/
39 
40 /*
41  * GPL licensing note -- nVidia is allowing a liberal interpretation of
42  * the documentation restriction above, to merely say that this nVidia's
43  * copyright and disclaimer should be included with all code derived
44  * from this source.  -- Jeff Garzik <jgarzik@pobox.com>, 01/Nov/99
45  */
46 
47 /* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/riva_tbl.h,v 1.9 2002/01/30 01:35:03 mvojkovi Exp $ */
48 
49 
50 /*
51  * RIVA Fixed Functionality Init Tables.
52  */
53 static unsigned RivaTablePMC[][2] =
54 {
55     {0x00000050, 0x00000000},
56     {0x00000080, 0xFFFF00FF},
57     {0x00000080, 0xFFFFFFFF}
58 };
59 static unsigned RivaTablePTIMER[][2] =
60 {
61     {0x00000080, 0x00000008},
62     {0x00000084, 0x00000003},
63     {0x00000050, 0x00000000},
64     {0x00000040, 0xFFFFFFFF}
65 };
66 static unsigned RivaTableFIFO[][2] =
67 {
68     {0x00000000, 0x80000000},
69     {0x00000800, 0x80000001},
70     {0x00001000, 0x80000002},
71     {0x00001800, 0x80000010},
72     {0x00002000, 0x80000011},
73     {0x00002800, 0x80000012},
74     {0x00003000, 0x80000016},
75     {0x00003800, 0x80000013}
76 };
77 static unsigned nv3TablePFIFO[][2] =
78 {
79     {0x00000140, 0x00000000},
80     {0x00000480, 0x00000000},
81     {0x00000490, 0x00000000},
82     {0x00000494, 0x00000000},
83     {0x00000481, 0x00000000},
84     {0x00000084, 0x00000000},
85     {0x00000086, 0x00002000},
86     {0x00000085, 0x00002200},
87     {0x00000484, 0x00000000},
88     {0x0000049C, 0x00000000},
89     {0x00000104, 0x00000000},
90     {0x00000108, 0x00000000},
91     {0x00000100, 0x00000000},
92     {0x000004A0, 0x00000000},
93     {0x000004A4, 0x00000000},
94     {0x000004A8, 0x00000000},
95     {0x000004AC, 0x00000000},
96     {0x000004B0, 0x00000000},
97     {0x000004B4, 0x00000000},
98     {0x000004B8, 0x00000000},
99     {0x000004BC, 0x00000000},
100     {0x00000050, 0x00000000},
101     {0x00000040, 0xFFFFFFFF},
102     {0x00000480, 0x00000001},
103     {0x00000490, 0x00000001},
104     {0x00000140, 0x00000001}
105 };
106 static unsigned nv3TablePGRAPH[][2] =
107 {
108     {0x00000020, 0x1230001F},
109     {0x00000021, 0x10113000},
110     {0x00000022, 0x1131F101},
111     {0x00000023, 0x0100F531},
112     {0x00000060, 0x00000000},
113     {0x00000065, 0x00000000},
114     {0x00000068, 0x00000000},
115     {0x00000069, 0x00000000},
116     {0x0000006A, 0x00000000},
117     {0x0000006B, 0x00000000},
118     {0x0000006C, 0x00000000},
119     {0x0000006D, 0x00000000},
120     {0x0000006E, 0x00000000},
121     {0x0000006F, 0x00000000},
122     {0x000001A8, 0x00000000},
123     {0x00000440, 0xFFFFFFFF},
124     {0x00000480, 0x00000001},
125     {0x000001A0, 0x00000000},
126     {0x000001A2, 0x00000000},
127     {0x0000018A, 0xFFFFFFFF},
128     {0x00000190, 0x00000000},
129     {0x00000142, 0x00000000},
130     {0x00000154, 0x00000000},
131     {0x00000155, 0xFFFFFFFF},
132     {0x00000156, 0x00000000},
133     {0x00000157, 0xFFFFFFFF},
134     {0x00000064, 0x10010002},
135     {0x00000050, 0x00000000},
136     {0x00000051, 0x00000000},
137     {0x00000040, 0xFFFFFFFF},
138     {0x00000041, 0xFFFFFFFF},
139     {0x00000440, 0xFFFFFFFF},
140     {0x000001A9, 0x00000001}
141 };
142 static unsigned nv3TablePGRAPH_8BPP[][2] =
143 {
144     {0x000001AA, 0x00001111}
145 };
146 static unsigned nv3TablePGRAPH_15BPP[][2] =
147 {
148     {0x000001AA, 0x00002222}
149 };
150 static unsigned nv3TablePGRAPH_32BPP[][2] =
151 {
152     {0x000001AA, 0x00003333}
153 };
154 static unsigned nv3TablePRAMIN[][2] =
155 {
156     {0x00000500, 0x00010000},
157     {0x00000501, 0x007FFFFF},
158     {0x00000200, 0x80000000},
159     {0x00000201, 0x00C20341},
160     {0x00000204, 0x80000001},
161     {0x00000205, 0x00C50342},
162     {0x00000208, 0x80000002},
163     {0x00000209, 0x00C60343},
164     {0x0000020C, 0x80000003},
165     {0x0000020D, 0x00DC0348},
166     {0x00000210, 0x80000004},
167     {0x00000211, 0x00DC0349},
168     {0x00000214, 0x80000005},
169     {0x00000215, 0x00DC034A},
170     {0x00000218, 0x80000006},
171     {0x00000219, 0x00DC034B},
172     {0x00000240, 0x80000010},
173     {0x00000241, 0x00D10344},
174     {0x00000244, 0x80000011},
175     {0x00000245, 0x00D00345},
176     {0x00000248, 0x80000012},
177     {0x00000249, 0x00CC0346},
178     {0x0000024C, 0x80000013},
179     {0x0000024D, 0x00D70347},
180     {0x00000258, 0x80000016},
181     {0x00000259, 0x00CA034C},
182     {0x00000D05, 0x00000000},
183     {0x00000D06, 0x00000000},
184     {0x00000D07, 0x00000000},
185     {0x00000D09, 0x00000000},
186     {0x00000D0A, 0x00000000},
187     {0x00000D0B, 0x00000000},
188     {0x00000D0D, 0x00000000},
189     {0x00000D0E, 0x00000000},
190     {0x00000D0F, 0x00000000},
191     {0x00000D11, 0x00000000},
192     {0x00000D12, 0x00000000},
193     {0x00000D13, 0x00000000},
194     {0x00000D15, 0x00000000},
195     {0x00000D16, 0x00000000},
196     {0x00000D17, 0x00000000},
197     {0x00000D19, 0x00000000},
198     {0x00000D1A, 0x00000000},
199     {0x00000D1B, 0x00000000},
200     {0x00000D1D, 0x00000140},
201     {0x00000D1E, 0x00000000},
202     {0x00000D1F, 0x00000000},
203     {0x00000D20, 0x10100200},
204     {0x00000D21, 0x00000000},
205     {0x00000D22, 0x00000000},
206     {0x00000D23, 0x00000000},
207     {0x00000D24, 0x10210200},
208     {0x00000D25, 0x00000000},
209     {0x00000D26, 0x00000000},
210     {0x00000D27, 0x00000000},
211     {0x00000D28, 0x10420200},
212     {0x00000D29, 0x00000000},
213     {0x00000D2A, 0x00000000},
214     {0x00000D2B, 0x00000000},
215     {0x00000D2C, 0x10830200},
216     {0x00000D2D, 0x00000000},
217     {0x00000D2E, 0x00000000},
218     {0x00000D2F, 0x00000000},
219     {0x00000D31, 0x00000000},
220     {0x00000D32, 0x00000000},
221     {0x00000D33, 0x00000000}
222 };
223 static unsigned nv3TablePRAMIN_8BPP[][2] =
224 {
225     /*           0xXXXXX3XX For  MSB mono format */
226     /*           0xXXXXX2XX For  LSB mono format */
227     {0x00000D04, 0x10110203},
228     {0x00000D08, 0x10110203},
229     {0x00000D0C, 0x1011020B},
230     {0x00000D10, 0x10118203},
231     {0x00000D14, 0x10110203},
232     {0x00000D18, 0x10110203},
233     {0x00000D1C, 0x10419208},
234     {0x00000D30, 0x10118203}
235 };
236 static unsigned nv3TablePRAMIN_15BPP[][2] =
237 {
238     /*           0xXXXXX2XX For  MSB mono format */
239     /*           0xXXXXX3XX For  LSB mono format */
240     {0x00000D04, 0x10110200},
241     {0x00000D08, 0x10110200},
242     {0x00000D0C, 0x10110208},
243     {0x00000D10, 0x10118200},
244     {0x00000D14, 0x10110200},
245     {0x00000D18, 0x10110200},
246     {0x00000D1C, 0x10419208},
247     {0x00000D30, 0x10118200}
248 };
249 static unsigned nv3TablePRAMIN_32BPP[][2] =
250 {
251     /*           0xXXXXX3XX For  MSB mono format */
252     /*           0xXXXXX2XX For  LSB mono format */
253     {0x00000D04, 0x10110201},
254     {0x00000D08, 0x10110201},
255     {0x00000D0C, 0x10110209},
256     {0x00000D10, 0x10118201},
257     {0x00000D14, 0x10110201},
258     {0x00000D18, 0x10110201},
259     {0x00000D1C, 0x10419208},
260     {0x00000D30, 0x10118201}
261 };
262 static unsigned nv4TableFIFO[][2] =
263 {
264     {0x00003800, 0x80000014}
265 };
266 static unsigned nv4TablePFIFO[][2] =
267 {
268     {0x00000140, 0x00000000},
269     {0x00000480, 0x00000000},
270     {0x00000494, 0x00000000},
271     {0x00000481, 0x00000000},
272     {0x0000048B, 0x00000000},
273     {0x00000400, 0x00000000},
274     {0x00000414, 0x00000000},
275     {0x00000084, 0x03000100},
276     {0x00000085, 0x00000110},
277     {0x00000086, 0x00000112},
278     {0x00000143, 0x0000FFFF},
279     {0x00000496, 0x0000FFFF},
280     {0x00000050, 0x00000000},
281     {0x00000040, 0xFFFFFFFF},
282     {0x00000415, 0x00000001},
283     {0x00000480, 0x00000001},
284     {0x00000494, 0x00000001},
285     {0x00000495, 0x00000001},
286     {0x00000140, 0x00000001}
287 };
288 static unsigned nv4TablePGRAPH[][2] =
289 {
290     {0x00000020, 0x1231C001},
291     {0x00000021, 0x72111101},
292     {0x00000022, 0x11D5F071},
293     {0x00000023, 0x10D4FF31},
294     {0x00000060, 0x00000000},
295     {0x00000068, 0x00000000},
296     {0x00000070, 0x00000000},
297     {0x00000078, 0x00000000},
298     {0x00000061, 0x00000000},
299     {0x00000069, 0x00000000},
300     {0x00000071, 0x00000000},
301     {0x00000079, 0x00000000},
302     {0x00000062, 0x00000000},
303     {0x0000006A, 0x00000000},
304     {0x00000072, 0x00000000},
305     {0x0000007A, 0x00000000},
306     {0x00000063, 0x00000000},
307     {0x0000006B, 0x00000000},
308     {0x00000073, 0x00000000},
309     {0x0000007B, 0x00000000},
310     {0x00000064, 0x00000000},
311     {0x0000006C, 0x00000000},
312     {0x00000074, 0x00000000},
313     {0x0000007C, 0x00000000},
314     {0x00000065, 0x00000000},
315     {0x0000006D, 0x00000000},
316     {0x00000075, 0x00000000},
317     {0x0000007D, 0x00000000},
318     {0x00000066, 0x00000000},
319     {0x0000006E, 0x00000000},
320     {0x00000076, 0x00000000},
321     {0x0000007E, 0x00000000},
322     {0x00000067, 0x00000000},
323     {0x0000006F, 0x00000000},
324     {0x00000077, 0x00000000},
325     {0x0000007F, 0x00000000},
326     {0x00000058, 0x00000000},
327     {0x00000059, 0x00000000},
328     {0x0000005A, 0x00000000},
329     {0x0000005B, 0x00000000},
330     {0x00000196, 0x00000000},
331     {0x000001A1, 0x01FFFFFF},
332     {0x00000197, 0x00000000},
333     {0x000001A2, 0x01FFFFFF},
334     {0x00000198, 0x00000000},
335     {0x000001A3, 0x01FFFFFF},
336     {0x00000199, 0x00000000},
337     {0x000001A4, 0x01FFFFFF},
338     {0x00000050, 0x00000000},
339     {0x00000040, 0xFFFFFFFF},
340     {0x0000005C, 0x10010100},
341     {0x000001C4, 0xFFFFFFFF},
342     {0x000001C8, 0x00000001},
343     {0x00000204, 0x00000000},
344     {0x000001C3, 0x00000001}
345 };
346 static unsigned nv4TablePGRAPH_8BPP[][2] =
347 {
348     {0x000001C9, 0x00111111},
349     {0x00000186, 0x00001010},
350     {0x0000020C, 0x03020202}
351 };
352 static unsigned nv4TablePGRAPH_15BPP[][2] =
353 {
354     {0x000001C9, 0x00226222},
355     {0x00000186, 0x00002071},
356     {0x0000020C, 0x09080808}
357 };
358 static unsigned nv4TablePGRAPH_16BPP[][2] =
359 {
360     {0x000001C9, 0x00556555},
361     {0x00000186, 0x000050C2},
362     {0x0000020C, 0x0C0B0B0B}
363 };
364 static unsigned nv4TablePGRAPH_32BPP[][2] =
365 {
366     {0x000001C9, 0x0077D777},
367     {0x00000186, 0x000070E5},
368     {0x0000020C, 0x0E0D0D0D}
369 };
370 static unsigned nv4TablePRAMIN[][2] =
371 {
372     {0x00000000, 0x80000010},
373     {0x00000001, 0x80011145},
374     {0x00000002, 0x80000011},
375     {0x00000003, 0x80011146},
376     {0x00000004, 0x80000012},
377     {0x00000005, 0x80011147},
378     {0x00000006, 0x80000013},
379     {0x00000007, 0x80011148},
380     {0x00000008, 0x80000014},
381     {0x00000009, 0x80011149},
382     {0x0000000A, 0x80000015},
383     {0x0000000B, 0x8001114A},
384     {0x0000000C, 0x80000016},
385     {0x0000000D, 0x8001114F},
386     {0x00000020, 0x80000000},
387     {0x00000021, 0x80011142},
388     {0x00000022, 0x80000001},
389     {0x00000023, 0x80011143},
390     {0x00000024, 0x80000002},
391     {0x00000025, 0x80011144},
392     {0x00000026, 0x80000003},
393     {0x00000027, 0x8001114B},
394     {0x00000028, 0x80000004},
395     {0x00000029, 0x8001114C},
396     {0x0000002A, 0x80000005},
397     {0x0000002B, 0x8001114D},
398     {0x0000002C, 0x80000006},
399     {0x0000002D, 0x8001114E},
400     {0x00000500, 0x00003000},
401     {0x00000501, 0x01FFFFFF},
402     {0x00000502, 0x00000002},
403     {0x00000503, 0x00000002},
404     {0x00000508, 0x01008043},
405     {0x0000050A, 0x00000000},
406     {0x0000050B, 0x00000000},
407     {0x0000050C, 0x01008019},
408     {0x0000050E, 0x00000000},
409     {0x0000050F, 0x00000000},
410 #if 1
411     {0x00000510, 0x01008018},
412 #else
413     {0x00000510, 0x01008044},
414 #endif
415     {0x00000512, 0x00000000},
416     {0x00000513, 0x00000000},
417     {0x00000514, 0x01008021},
418     {0x00000516, 0x00000000},
419     {0x00000517, 0x00000000},
420     {0x00000518, 0x0100805F},
421     {0x0000051A, 0x00000000},
422     {0x0000051B, 0x00000000},
423 #if 1
424     {0x0000051C, 0x0100804B},
425 #else
426     {0x0000051C, 0x0100804A},
427 #endif
428     {0x0000051E, 0x00000000},
429     {0x0000051F, 0x00000000},
430     {0x00000520, 0x0100A048},
431     {0x00000521, 0x00000D01},
432     {0x00000522, 0x11401140},
433     {0x00000523, 0x00000000},
434     {0x00000524, 0x0300A054},
435     {0x00000525, 0x00000D01},
436     {0x00000526, 0x11401140},
437     {0x00000527, 0x00000000},
438     {0x00000528, 0x0300A055},
439     {0x00000529, 0x00000D01},
440     {0x0000052A, 0x11401140},
441     {0x0000052B, 0x00000000},
442     {0x0000052C, 0x00000058},
443     {0x0000052E, 0x11401140},
444     {0x0000052F, 0x00000000},
445     {0x00000530, 0x00000059},
446     {0x00000532, 0x11401140},
447     {0x00000533, 0x00000000},
448     {0x00000534, 0x0000005A},
449     {0x00000536, 0x11401140},
450     {0x00000537, 0x00000000},
451     {0x00000538, 0x0000005B},
452     {0x0000053A, 0x11401140},
453     {0x0000053B, 0x00000000},
454     {0x0000053C, 0x0300A01C},
455     {0x0000053E, 0x11401140},
456     {0x0000053F, 0x00000000}
457 };
458 static unsigned nv4TablePRAMIN_8BPP[][2] =
459 {
460     /*           0xXXXXXX01 For  MSB mono format */
461     /*           0xXXXXXX02 For  LSB mono format */
462     {0x00000509, 0x00000302},
463     {0x0000050D, 0x00000302},
464     {0x00000511, 0x00000202},
465     {0x00000515, 0x00000302},
466     {0x00000519, 0x00000302},
467     {0x0000051D, 0x00000302},
468     {0x0000052D, 0x00000302},
469     {0x0000052E, 0x00000302},
470     {0x00000535, 0x00000000},
471     {0x00000539, 0x00000000},
472     {0x0000053D, 0x00000302}
473 };
474 static unsigned nv4TablePRAMIN_15BPP[][2] =
475 {
476     /*           0xXXXXXX01 For  MSB mono format */
477     /*           0xXXXXXX02 For  LSB mono format */
478     {0x00000509, 0x00000902},
479     {0x0000050D, 0x00000902},
480     {0x00000511, 0x00000802},
481     {0x00000515, 0x00000902},
482     {0x00000519, 0x00000902},
483     {0x0000051D, 0x00000902},
484     {0x0000052D, 0x00000902},
485     {0x0000052E, 0x00000902},
486     {0x00000535, 0x00000702},
487     {0x00000539, 0x00000702},
488     {0x0000053D, 0x00000902}
489 };
490 static unsigned nv4TablePRAMIN_16BPP[][2] =
491 {
492     /*           0xXXXXXX01 For  MSB mono format */
493     /*           0xXXXXXX02 For  LSB mono format */
494     {0x00000509, 0x00000C02},
495     {0x0000050D, 0x00000C02},
496     {0x00000511, 0x00000B02},
497     {0x00000515, 0x00000C02},
498     {0x00000519, 0x00000C02},
499     {0x0000051D, 0x00000C02},
500     {0x0000052D, 0x00000C02},
501     {0x0000052E, 0x00000C02},
502     {0x00000535, 0x00000702},
503     {0x00000539, 0x00000702},
504     {0x0000053D, 0x00000C02}
505 };
506 static unsigned nv4TablePRAMIN_32BPP[][2] =
507 {
508     /*           0xXXXXXX01 For  MSB mono format */
509     /*           0xXXXXXX02 For  LSB mono format */
510     {0x00000509, 0x00000E02},
511     {0x0000050D, 0x00000E02},
512     {0x00000511, 0x00000D02},
513     {0x00000515, 0x00000E02},
514     {0x00000519, 0x00000E02},
515     {0x0000051D, 0x00000E02},
516     {0x0000052D, 0x00000E02},
517     {0x0000052E, 0x00000E02},
518     {0x00000535, 0x00000E02},
519     {0x00000539, 0x00000E02},
520     {0x0000053D, 0x00000E02}
521 };
522 static unsigned nv10TableFIFO[][2] =
523 {
524     {0x00003800, 0x80000014}
525 };
526 static unsigned nv10TablePFIFO[][2] =
527 {
528     {0x00000140, 0x00000000},
529     {0x00000480, 0x00000000},
530     {0x00000494, 0x00000000},
531     {0x00000481, 0x00000000},
532     {0x0000048B, 0x00000000},
533     {0x00000400, 0x00000000},
534     {0x00000414, 0x00000000},
535     {0x00000084, 0x03000100},
536     {0x00000085, 0x00000110},
537     {0x00000086, 0x00000112},
538     {0x00000143, 0x0000FFFF},
539     {0x00000496, 0x0000FFFF},
540     {0x00000050, 0x00000000},
541     {0x00000040, 0xFFFFFFFF},
542     {0x00000415, 0x00000001},
543     {0x00000480, 0x00000001},
544     {0x00000494, 0x00000001},
545     {0x00000495, 0x00000001},
546     {0x00000140, 0x00000001}
547 };
548 static unsigned nv10TablePGRAPH[][2] =
549 {
550     {0x00000020, 0x0003FFFF},
551     {0x00000021, 0x00118701},
552     {0x00000022, 0x24F82AD9},
553     {0x00000023, 0x55DE0030},
554     {0x00000020, 0x00000000},
555     {0x00000024, 0x00000000},
556     {0x00000058, 0x00000000},
557     {0x00000060, 0x00000000},
558     {0x00000068, 0x00000000},
559     {0x00000070, 0x00000000},
560     {0x00000078, 0x00000000},
561     {0x00000059, 0x00000000},
562     {0x00000061, 0x00000000},
563     {0x00000069, 0x00000000},
564     {0x00000071, 0x00000000},
565     {0x00000079, 0x00000000},
566     {0x0000005A, 0x00000000},
567     {0x00000062, 0x00000000},
568     {0x0000006A, 0x00000000},
569     {0x00000072, 0x00000000},
570     {0x0000007A, 0x00000000},
571     {0x0000005B, 0x00000000},
572     {0x00000063, 0x00000000},
573     {0x0000006B, 0x00000000},
574     {0x00000073, 0x00000000},
575     {0x0000007B, 0x00000000},
576     {0x0000005C, 0x00000000},
577     {0x00000064, 0x00000000},
578     {0x0000006C, 0x00000000},
579     {0x00000074, 0x00000000},
580     {0x0000007C, 0x00000000},
581     {0x0000005D, 0x00000000},
582     {0x00000065, 0x00000000},
583     {0x0000006D, 0x00000000},
584     {0x00000075, 0x00000000},
585     {0x0000007D, 0x00000000},
586     {0x0000005E, 0x00000000},
587     {0x00000066, 0x00000000},
588     {0x0000006E, 0x00000000},
589     {0x00000076, 0x00000000},
590     {0x0000007E, 0x00000000},
591     {0x0000005F, 0x00000000},
592     {0x00000067, 0x00000000},
593     {0x0000006F, 0x00000000},
594     {0x00000077, 0x00000000},
595     {0x0000007F, 0x00000000},
596     {0x00000053, 0x00000000},
597     {0x00000054, 0x00000000},
598     {0x00000055, 0x00000000},
599     {0x00000056, 0x00000000},
600     {0x00000057, 0x00000000},
601     {0x00000196, 0x00000000},
602     {0x000001A1, 0x01FFFFFF},
603     {0x00000197, 0x00000000},
604     {0x000001A2, 0x01FFFFFF},
605     {0x00000198, 0x00000000},
606     {0x000001A3, 0x01FFFFFF},
607     {0x00000199, 0x00000000},
608     {0x000001A4, 0x01FFFFFF},
609     {0x0000019A, 0x00000000},
610     {0x000001A5, 0x01FFFFFF},
611     {0x0000019B, 0x00000000},
612     {0x000001A6, 0x01FFFFFF},
613     {0x00000050, 0x01111111},
614     {0x00000040, 0xFFFFFFFF},
615     {0x00000051, 0x10010100},
616     {0x000001C5, 0xFFFFFFFF},
617     {0x000001C8, 0x00000001},
618     {0x00000204, 0x00000000},
619     {0x000001C4, 0x00000001}
620 };
621 static unsigned nv10TablePGRAPH_8BPP[][2] =
622 {
623     {0x000001C9, 0x00111111},
624     {0x00000186, 0x00001010},
625     {0x0000020C, 0x03020202}
626 };
627 static unsigned nv10TablePGRAPH_15BPP[][2] =
628 {
629     {0x000001C9, 0x00226222},
630     {0x00000186, 0x00002071},
631     {0x0000020C, 0x09080808}
632 };
633 static unsigned nv10TablePGRAPH_16BPP[][2] =
634 {
635     {0x000001C9, 0x00556555},
636     {0x00000186, 0x000050C2},
637     {0x0000020C, 0x000B0B0C}
638 };
639 static unsigned nv10TablePGRAPH_32BPP[][2] =
640 {
641     {0x000001C9, 0x0077D777},
642     {0x00000186, 0x000070E5},
643     {0x0000020C, 0x0E0D0D0D}
644 };
645 static unsigned nv10tri05TablePGRAPH[][2] =
646 {
647     {(0x00000E00/4), 0x00000000},
648     {(0x00000E04/4), 0x00000000},
649     {(0x00000E08/4), 0x00000000},
650     {(0x00000E0C/4), 0x00000000},
651     {(0x00000E10/4), 0x00001000},
652     {(0x00000E14/4), 0x00001000},
653     {(0x00000E18/4), 0x4003ff80},
654     {(0x00000E1C/4), 0x00000000},
655     {(0x00000E20/4), 0x00000000},
656     {(0x00000E24/4), 0x00000000},
657     {(0x00000E28/4), 0x00000000},
658     {(0x00000E2C/4), 0x00000000},
659     {(0x00000E30/4), 0x00080008},
660     {(0x00000E34/4), 0x00080008},
661     {(0x00000E38/4), 0x00000000},
662     {(0x00000E3C/4), 0x00000000},
663     {(0x00000E40/4), 0x00000000},
664     {(0x00000E44/4), 0x00000000},
665     {(0x00000E48/4), 0x00000000},
666     {(0x00000E4C/4), 0x00000000},
667     {(0x00000E50/4), 0x00000000},
668     {(0x00000E54/4), 0x00000000},
669     {(0x00000E58/4), 0x00000000},
670     {(0x00000E5C/4), 0x00000000},
671     {(0x00000E60/4), 0x00000000},
672     {(0x00000E64/4), 0x10000000},
673     {(0x00000E68/4), 0x00000000},
674     {(0x00000E6C/4), 0x00000000},
675     {(0x00000E70/4), 0x00000000},
676     {(0x00000E74/4), 0x00000000},
677     {(0x00000E78/4), 0x00000000},
678     {(0x00000E7C/4), 0x00000000},
679     {(0x00000E80/4), 0x00000000},
680     {(0x00000E84/4), 0x00000000},
681     {(0x00000E88/4), 0x08000000},
682     {(0x00000E8C/4), 0x00000000},
683     {(0x00000E90/4), 0x00000000},
684     {(0x00000E94/4), 0x00000000},
685     {(0x00000E98/4), 0x00000000},
686     {(0x00000E9C/4), 0x4B7FFFFF},
687     {(0x00000EA0/4), 0x00000000},
688     {(0x00000EA4/4), 0x00000000},
689     {(0x00000EA8/4), 0x00000000},
690     {(0x00000F00/4), 0x07FF0800},
691     {(0x00000F04/4), 0x07FF0800},
692     {(0x00000F08/4), 0x07FF0800},
693     {(0x00000F0C/4), 0x07FF0800},
694     {(0x00000F10/4), 0x07FF0800},
695     {(0x00000F14/4), 0x07FF0800},
696     {(0x00000F18/4), 0x07FF0800},
697     {(0x00000F1C/4), 0x07FF0800},
698     {(0x00000F20/4), 0x07FF0800},
699     {(0x00000F24/4), 0x07FF0800},
700     {(0x00000F28/4), 0x07FF0800},
701     {(0x00000F2C/4), 0x07FF0800},
702     {(0x00000F30/4), 0x07FF0800},
703     {(0x00000F34/4), 0x07FF0800},
704     {(0x00000F38/4), 0x07FF0800},
705     {(0x00000F3C/4), 0x07FF0800},
706     {(0x00000F40/4), 0x10000000},
707     {(0x00000F44/4), 0x00000000},
708     {(0x00000F50/4), 0x00006740},
709     {(0x00000F54/4), 0x00000000},
710     {(0x00000F54/4), 0x00000000},
711     {(0x00000F54/4), 0x00000000},
712     {(0x00000F54/4), 0x3F800000},
713     {(0x00000F50/4), 0x00006750},
714     {(0x00000F54/4), 0x40000000},
715     {(0x00000F54/4), 0x40000000},
716     {(0x00000F54/4), 0x40000000},
717     {(0x00000F54/4), 0x40000000},
718     {(0x00000F50/4), 0x00006760},
719     {(0x00000F54/4), 0x00000000},
720     {(0x00000F54/4), 0x00000000},
721     {(0x00000F54/4), 0x3F800000},
722     {(0x00000F54/4), 0x00000000},
723     {(0x00000F50/4), 0x00006770},
724     {(0x00000F54/4), 0xC5000000},
725     {(0x00000F54/4), 0xC5000000},
726     {(0x00000F54/4), 0x00000000},
727     {(0x00000F54/4), 0x00000000},
728     {(0x00000F50/4), 0x00006780},
729     {(0x00000F54/4), 0x00000000},
730     {(0x00000F54/4), 0x00000000},
731     {(0x00000F54/4), 0x3F800000},
732     {(0x00000F54/4), 0x00000000},
733     {(0x00000F50/4), 0x000067A0},
734     {(0x00000F54/4), 0x3F800000},
735     {(0x00000F54/4), 0x3F800000},
736     {(0x00000F54/4), 0x3F800000},
737     {(0x00000F54/4), 0x3F800000},
738     {(0x00000F50/4), 0x00006AB0},
739     {(0x00000F54/4), 0x3F800000},
740     {(0x00000F54/4), 0x3F800000},
741     {(0x00000F54/4), 0x3F800000},
742     {(0x00000F50/4), 0x00006AC0},
743     {(0x00000F54/4), 0x00000000},
744     {(0x00000F54/4), 0x00000000},
745     {(0x00000F54/4), 0x00000000},
746     {(0x00000F50/4), 0x00006C10},
747     {(0x00000F54/4), 0xBF800000},
748     {(0x00000F50/4), 0x00007030},
749     {(0x00000F54/4), 0x7149F2CA},
750     {(0x00000F50/4), 0x00007040},
751     {(0x00000F54/4), 0x7149F2CA},
752     {(0x00000F50/4), 0x00007050},
753     {(0x00000F54/4), 0x7149F2CA},
754     {(0x00000F50/4), 0x00007060},
755     {(0x00000F54/4), 0x7149F2CA},
756     {(0x00000F50/4), 0x00007070},
757     {(0x00000F54/4), 0x7149F2CA},
758     {(0x00000F50/4), 0x00007080},
759     {(0x00000F54/4), 0x7149F2CA},
760     {(0x00000F50/4), 0x00007090},
761     {(0x00000F54/4), 0x7149F2CA},
762     {(0x00000F50/4), 0x000070A0},
763     {(0x00000F54/4), 0x7149F2CA},
764     {(0x00000F50/4), 0x00006A80},
765     {(0x00000F54/4), 0x00000000},
766     {(0x00000F54/4), 0x00000000},
767     {(0x00000F54/4), 0x3F800000},
768     {(0x00000F50/4), 0x00006AA0},
769     {(0x00000F54/4), 0x00000000},
770     {(0x00000F54/4), 0x00000000},
771     {(0x00000F54/4), 0x00000000},
772     {(0x00000F50/4), 0x00000040},
773     {(0x00000F54/4), 0x00000005},
774     {(0x00000F50/4), 0x00006400},
775     {(0x00000F54/4), 0x3F800000},
776     {(0x00000F54/4), 0x3F800000},
777     {(0x00000F54/4), 0x4B7FFFFF},
778     {(0x00000F54/4), 0x00000000},
779     {(0x00000F50/4), 0x00006410},
780     {(0x00000F54/4), 0xC5000000},
781     {(0x00000F54/4), 0xC5000000},
782     {(0x00000F54/4), 0x00000000},
783     {(0x00000F54/4), 0x00000000},
784     {(0x00000F50/4), 0x00006420},
785     {(0x00000F54/4), 0x00000000},
786     {(0x00000F54/4), 0x00000000},
787     {(0x00000F54/4), 0x00000000},
788     {(0x00000F54/4), 0x00000000},
789     {(0x00000F50/4), 0x00006430},
790     {(0x00000F54/4), 0x00000000},
791     {(0x00000F54/4), 0x00000000},
792     {(0x00000F54/4), 0x00000000},
793     {(0x00000F54/4), 0x00000000},
794     {(0x00000F50/4), 0x000064C0},
795     {(0x00000F54/4), 0x3F800000},
796     {(0x00000F54/4), 0x3F800000},
797     {(0x00000F54/4), 0x477FFFFF},
798     {(0x00000F54/4), 0x3F800000},
799     {(0x00000F50/4), 0x000064D0},
800     {(0x00000F54/4), 0xC5000000},
801     {(0x00000F54/4), 0xC5000000},
802     {(0x00000F54/4), 0x00000000},
803     {(0x00000F54/4), 0x00000000},
804     {(0x00000F50/4), 0x000064E0},
805     {(0x00000F54/4), 0xC4FFF000},
806     {(0x00000F54/4), 0xC4FFF000},
807     {(0x00000F54/4), 0x00000000},
808     {(0x00000F54/4), 0x00000000},
809     {(0x00000F50/4), 0x000064F0},
810     {(0x00000F54/4), 0x00000000},
811     {(0x00000F54/4), 0x00000000},
812     {(0x00000F54/4), 0x00000000},
813     {(0x00000F54/4), 0x00000000},
814     {(0x00000F40/4), 0x30000000},
815     {(0x00000F44/4), 0x00000004},
816     {(0x00000F48/4), 0x10000000},
817     {(0x00000F4C/4), 0x00000000}
818 };
819 static unsigned nv10TablePRAMIN[][2] =
820 {
821     {0x00000000, 0x80000010},
822     {0x00000001, 0x80011145},
823     {0x00000002, 0x80000011},
824     {0x00000003, 0x80011146},
825     {0x00000004, 0x80000012},
826     {0x00000005, 0x80011147},
827     {0x00000006, 0x80000013},
828     {0x00000007, 0x80011148},
829     {0x00000008, 0x80000014},
830     {0x00000009, 0x80011149},
831     {0x0000000A, 0x80000015},
832     {0x0000000B, 0x8001114A},
833     {0x0000000C, 0x80000016},
834     {0x0000000D, 0x80011150},
835     {0x00000020, 0x80000000},
836     {0x00000021, 0x80011142},
837     {0x00000022, 0x80000001},
838     {0x00000023, 0x80011143},
839     {0x00000024, 0x80000002},
840     {0x00000025, 0x80011144},
841     {0x00000026, 0x80000003},
842     {0x00000027, 0x8001114B},
843     {0x00000028, 0x80000004},
844     {0x00000029, 0x8001114C},
845     {0x0000002A, 0x80000005},
846     {0x0000002B, 0x8001114D},
847     {0x0000002C, 0x80000006},
848     {0x0000002D, 0x8001114E},
849     {0x0000002E, 0x80000007},
850     {0x0000002F, 0x8001114F},
851     {0x00000500, 0x00003000},
852     {0x00000501, 0x01FFFFFF},
853     {0x00000502, 0x00000002},
854     {0x00000503, 0x00000002},
855 #ifdef __BIG_ENDIAN
856     {0x00000508, 0x01088043},
857 #else
858     {0x00000508, 0x01008043},
859 #endif
860     {0x0000050A, 0x00000000},
861     {0x0000050B, 0x00000000},
862 #ifdef __BIG_ENDIAN
863     {0x0000050C, 0x01088019},
864 #else
865     {0x0000050C, 0x01008019},
866 #endif
867     {0x0000050E, 0x00000000},
868     {0x0000050F, 0x00000000},
869 #ifdef __BIG_ENDIAN
870     {0x00000510, 0x01088018},
871 #else
872     {0x00000510, 0x01008018},
873 #endif
874     {0x00000512, 0x00000000},
875     {0x00000513, 0x00000000},
876 #ifdef __BIG_ENDIAN
877     {0x00000514, 0x01088021},
878 #else
879     {0x00000514, 0x01008021},
880 #endif
881     {0x00000516, 0x00000000},
882     {0x00000517, 0x00000000},
883 #ifdef __BIG_ENDIAN
884     {0x00000518, 0x0108805F},
885 #else
886     {0x00000518, 0x0100805F},
887 #endif
888     {0x0000051A, 0x00000000},
889     {0x0000051B, 0x00000000},
890 #ifdef __BIG_ENDIAN
891     {0x0000051C, 0x0108804B},
892 #else
893     {0x0000051C, 0x0100804B},
894 #endif
895     {0x0000051E, 0x00000000},
896     {0x0000051F, 0x00000000},
897     {0x00000520, 0x0100A048},
898     {0x00000521, 0x00000D01},
899     {0x00000522, 0x11401140},
900     {0x00000523, 0x00000000},
901     {0x00000524, 0x0300A094},
902     {0x00000525, 0x00000D01},
903     {0x00000526, 0x11401140},
904     {0x00000527, 0x00000000},
905     {0x00000528, 0x0300A095},
906     {0x00000529, 0x00000D01},
907     {0x0000052A, 0x11401140},
908     {0x0000052B, 0x00000000},
909 #ifdef __BIG_ENDIAN
910     {0x0000052C, 0x00080058},
911 #else
912     {0x0000052C, 0x00000058},
913 #endif
914     {0x0000052E, 0x11401140},
915     {0x0000052F, 0x00000000},
916 #ifdef __BIG_ENDIAN
917     {0x00000530, 0x00080059},
918 #else
919     {0x00000530, 0x00000059},
920 #endif
921     {0x00000532, 0x11401140},
922     {0x00000533, 0x00000000},
923     {0x00000534, 0x0000005A},
924     {0x00000536, 0x11401140},
925     {0x00000537, 0x00000000},
926     {0x00000538, 0x0000005B},
927     {0x0000053A, 0x11401140},
928     {0x0000053B, 0x00000000},
929     {0x0000053C, 0x00000093},
930     {0x0000053E, 0x11401140},
931     {0x0000053F, 0x00000000},
932 #ifdef __BIG_ENDIAN
933     {0x00000540, 0x0308A01C},
934 #else
935     {0x00000540, 0x0300A01C},
936 #endif
937     {0x00000542, 0x11401140},
938     {0x00000543, 0x00000000}
939 };
940 static unsigned nv10TablePRAMIN_8BPP[][2] =
941 {
942     /*           0xXXXXXX01 For  MSB mono format */
943     /*           0xXXXXXX02 For  LSB mono format */
944     {0x00000509, 0x00000302},
945     {0x0000050D, 0x00000302},
946     {0x00000511, 0x00000202},
947     {0x00000515, 0x00000302},
948     {0x00000519, 0x00000302},
949     {0x0000051D, 0x00000302},
950     {0x0000052D, 0x00000302},
951     {0x0000052E, 0x00000302},
952     {0x00000535, 0x00000000},
953     {0x00000539, 0x00000000},
954     {0x0000053D, 0x00000000},
955     {0x00000541, 0x00000302}
956 };
957 static unsigned nv10TablePRAMIN_15BPP[][2] =
958 {
959     /*           0xXXXXXX01 For  MSB mono format */
960     /*           0xXXXXXX02 For  LSB mono format */
961     {0x00000509, 0x00000902},
962     {0x0000050D, 0x00000902},
963     {0x00000511, 0x00000802},
964     {0x00000515, 0x00000902},
965     {0x00000519, 0x00000902},
966     {0x0000051D, 0x00000902},
967     {0x0000052D, 0x00000902},
968     {0x0000052E, 0x00000902},
969     {0x00000535, 0x00000902},
970     {0x00000539, 0x00000902},
971     {0x0000053D, 0x00000902},
972     {0x00000541, 0x00000902}
973 };
974 static unsigned nv10TablePRAMIN_16BPP[][2] =
975 {
976     /*           0xXXXXXX01 For  MSB mono format */
977     /*           0xXXXXXX02 For  LSB mono format */
978     {0x00000509, 0x00000C02},
979     {0x0000050D, 0x00000C02},
980     {0x00000511, 0x00000B02},
981     {0x00000515, 0x00000C02},
982     {0x00000519, 0x00000C02},
983     {0x0000051D, 0x00000C02},
984     {0x0000052D, 0x00000C02},
985     {0x0000052E, 0x00000C02},
986     {0x00000535, 0x00000C02},
987     {0x00000539, 0x00000C02},
988     {0x0000053D, 0x00000C02},
989     {0x00000541, 0x00000C02}
990 };
991 static unsigned nv10TablePRAMIN_32BPP[][2] =
992 {
993     /*           0xXXXXXX01 For  MSB mono format */
994     /*           0xXXXXXX02 For  LSB mono format */
995     {0x00000509, 0x00000E02},
996     {0x0000050D, 0x00000E02},
997     {0x00000511, 0x00000D02},
998     {0x00000515, 0x00000E02},
999     {0x00000519, 0x00000E02},
1000     {0x0000051D, 0x00000E02},
1001     {0x0000052D, 0x00000E02},
1002     {0x0000052E, 0x00000E02},
1003     {0x00000535, 0x00000E02},
1004     {0x00000539, 0x00000E02},
1005     {0x0000053D, 0x00000E02},
1006     {0x00000541, 0x00000E02}
1007 };
1008 
1009