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 */
53static unsigned RivaTablePMC[][2] =
54{
55    {0x00000050, 0x00000000},
56    {0x00000080, 0xFFFF00FF},
57    {0x00000080, 0xFFFFFFFF}
58};
59static unsigned RivaTablePTIMER[][2] =
60{
61    {0x00000080, 0x00000008},
62    {0x00000084, 0x00000003},
63    {0x00000050, 0x00000000},
64    {0x00000040, 0xFFFFFFFF}
65};
66static 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};
77static 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};
106static 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};
142static unsigned nv3TablePGRAPH_8BPP[][2] =
143{
144    {0x000001AA, 0x00001111}
145};
146static unsigned nv3TablePGRAPH_15BPP[][2] =
147{
148    {0x000001AA, 0x00002222}
149};
150static unsigned nv3TablePGRAPH_32BPP[][2] =
151{
152    {0x000001AA, 0x00003333}
153};
154static 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};
223static 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};
236static 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};
249static 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};
262static unsigned nv4TableFIFO[][2] =
263{
264    {0x00003800, 0x80000014}
265};
266static 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};
288static 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};
346static unsigned nv4TablePGRAPH_8BPP[][2] =
347{
348    {0x000001C9, 0x00111111},
349    {0x00000186, 0x00001010},
350    {0x0000020C, 0x03020202}
351};
352static unsigned nv4TablePGRAPH_15BPP[][2] =
353{
354    {0x000001C9, 0x00226222},
355    {0x00000186, 0x00002071},
356    {0x0000020C, 0x09080808}
357};
358static unsigned nv4TablePGRAPH_16BPP[][2] =
359{
360    {0x000001C9, 0x00556555},
361    {0x00000186, 0x000050C2},
362    {0x0000020C, 0x0C0B0B0B}
363};
364static unsigned nv4TablePGRAPH_32BPP[][2] =
365{
366    {0x000001C9, 0x0077D777},
367    {0x00000186, 0x000070E5},
368    {0x0000020C, 0x0E0D0D0D}
369};
370static 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};
458static 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};
474static 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};
490static 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};
506static 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};
522static unsigned nv10TableFIFO[][2] =
523{
524    {0x00003800, 0x80000014}
525};
526static 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};
548static 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};
621static unsigned nv10TablePGRAPH_8BPP[][2] =
622{
623    {0x000001C9, 0x00111111},
624    {0x00000186, 0x00001010},
625    {0x0000020C, 0x03020202}
626};
627static unsigned nv10TablePGRAPH_15BPP[][2] =
628{
629    {0x000001C9, 0x00226222},
630    {0x00000186, 0x00002071},
631    {0x0000020C, 0x09080808}
632};
633static unsigned nv10TablePGRAPH_16BPP[][2] =
634{
635    {0x000001C9, 0x00556555},
636    {0x00000186, 0x000050C2},
637    {0x0000020C, 0x000B0B0C}
638};
639static unsigned nv10TablePGRAPH_32BPP[][2] =
640{
641    {0x000001C9, 0x0077D777},
642    {0x00000186, 0x000070E5},
643    {0x0000020C, 0x0E0D0D0D}
644};
645static 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};
819static 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};
940static 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};
957static 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};
974static 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};
991static 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