Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
vb_table.h
Go to the documentation of this file.
1 #ifndef _VB_TABLE_
2 #define _VB_TABLE_
3 static struct SiS_MCLKData XGI340New_MCLKData[] = {
4  {0x16, 0x01, 0x01, 166},
5  {0x19, 0x02, 0x01, 124},
6  {0x7C, 0x08, 0x01, 200},
7  {0x79, 0x06, 0x01, 250},
8  {0x29, 0x01, 0x81, 301},
9  {0x5c, 0x23, 0x01, 166},
10  {0x5c, 0x23, 0x01, 166},
11  {0x5c, 0x23, 0x01, 166}
12 };
13 
14 static struct SiS_MCLKData XGI27New_MCLKData[] = {
15  {0x5c, 0x23, 0x01, 166},
16  {0x19, 0x02, 0x01, 124},
17  {0x7C, 0x08, 0x80, 200},
18  {0x79, 0x06, 0x80, 250},
19  {0x29, 0x01, 0x81, 300},
20  {0x5c, 0x23, 0x01, 166},
21  {0x5c, 0x23, 0x01, 166},
22  {0x5c, 0x23, 0x01, 166}
23 };
24 
25 static struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
26  {0x5c, 0x23, 0x01, 166},
27  {0x55, 0x84, 0x01, 123},
28  {0x7C, 0x08, 0x01, 200},
29  {0x79, 0x06, 0x01, 250},
30  {0x29, 0x01, 0x81, 301},
31  {0x5c, 0x23, 0x01, 166},
32  {0x5c, 0x23, 0x01, 166},
33  {0x5c, 0x23, 0x01, 166}
34 };
35 
36 static unsigned char XG27_SR13[4][8] = {
37  {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
38  {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
39  {0x32, 0x32, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
40  {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
41 };
42 
43 static unsigned char XGI340_SR13[4][8] = {
44  {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
45  {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
46  {0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
47  {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
48 };
49 
50 static unsigned char XGI340_cr41[24][8] = {
51  {0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
52  {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
53  {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
54  {0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
55  {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
56  {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
57  {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
58  {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
59  {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
60  {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
61  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
62  {0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
63  {0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
64  {0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
65  {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
66  {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
67  {0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
68  {0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
69  {0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
70  {0x11, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
71  {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
72  {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
73  {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
74  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
75 };
76 
77 static unsigned char XGI27_cr41[24][8] = {
78  {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
79  {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
80  {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
81  {0xB3, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
82  CR99[2:0],
83  CR45[3:0]*/
84  {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
85  {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
86  {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
87  {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
88  {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
89  {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
90  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
91  {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
92  {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
93  {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
94  {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
95  {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
96  {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
97  {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
98  {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
99  {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
100  {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
101  {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
102  {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
103  {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
104 };
105 
106 static unsigned char XGI340_CR6B[8][4] = {
107  {0xaa, 0xaa, 0xaa, 0xaa},
108  {0xaa, 0xaa, 0xaa, 0xaa},
109  {0xaa, 0xaa, 0xaa, 0xaa},
110  {0x00, 0x00, 0x00, 0x00},
111  {0x00, 0x00, 0x00, 0x00},
112  {0x00, 0x00, 0x00, 0x00},
113  {0x00, 0x00, 0x00, 0x00},
114  {0x00, 0x00, 0x00, 0x00}
115 };
116 
117 static unsigned char XGI340_CR6E[8][4];
118 
119 static unsigned char XGI340_CR6F[8][32];
120 
121 static unsigned char XGI340_CR89[8][2];
122 
123 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
124 static unsigned char XGI340_AGPReg[12] = {
125  0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
126  0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
127 };
128 
129 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
130 
131 static struct XGI_ExtStruct XGI330_EModeIDTable[] = {
132  {0x2e, 0x0a1b, 0x0306, 0x06, 0x05, 0x06},
133  {0x2f, 0x0a1b, 0x0305, 0x05, 0x05, 0x05},
134  {0x30, 0x2a1b, 0x0407, 0x07, 0x07, 0x0e},
135  {0x31, 0x0a1b, 0x030d, 0x0d, 0x06, 0x3d},
136  {0x32, 0x0a1b, 0x0a0e, 0x0e, 0x06, 0x3e},
137  {0x33, 0x0a1d, 0x0a0d, 0x0d, 0x06, 0x3d},
138  {0x34, 0x2a1d, 0x0a0e, 0x0e, 0x06, 0x3e},
139  {0x35, 0x0a1f, 0x0a0d, 0x0d, 0x06, 0x3d},
140  {0x36, 0x2a1f, 0x0a0e, 0x0e, 0x06, 0x3e},
141  {0x38, 0x0a1b, 0x0508, 0x08, 0x00, 0x16},
142  {0x3a, 0x0e3b, 0x0609, 0x09, 0x00, 0x1e},
143  {0x3c, 0x0e3b, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
144  add CRT2MODE [2003/10/07] */
145  {0x3d, 0x0e7d, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
146  add CRT2MODE */
147  {0x40, 0x9a1c, 0x0000, 0x00, 0x04, 0x00},
148  {0x41, 0x9a1d, 0x0000, 0x00, 0x04, 0x00},
149  {0x43, 0x0a1c, 0x0306, 0x06, 0x05, 0x06},
150  {0x44, 0x0a1d, 0x0306, 0x06, 0x05, 0x06},
151  {0x46, 0x2a1c, 0x0407, 0x07, 0x07, 0x0e},
152  {0x47, 0x2a1d, 0x0407, 0x07, 0x07, 0x0e},
153  {0x49, 0x0a3c, 0x0508, 0x08, 0x00, 0x16},
154  {0x4a, 0x0a3d, 0x0508, 0x08, 0x00, 0x16},
155  {0x4c, 0x0e7c, 0x0609, 0x09, 0x00, 0x1e},
156  {0x4d, 0x0e7d, 0x0609, 0x09, 0x00, 0x1e},
157  {0x50, 0x9a1b, 0x0001, 0x01, 0x04, 0x02},
158  {0x51, 0xba1b, 0x0103, 0x03, 0x07, 0x03},
159  {0x52, 0x9a1b, 0x0204, 0x04, 0x00, 0x04},
160  {0x56, 0x9a1d, 0x0001, 0x01, 0x04, 0x02},
161  {0x57, 0xba1d, 0x0103, 0x03, 0x07, 0x03},
162  {0x58, 0x9a1d, 0x0204, 0x04, 0x00, 0x04},
163  {0x59, 0x9a1b, 0x0000, 0x00, 0x04, 0x00},
164  {0x5A, 0x021b, 0x0014, 0x01, 0x04, 0x3f},
165  {0x5B, 0x0a1d, 0x0014, 0x01, 0x04, 0x3f},
166  {0x5d, 0x0a1d, 0x0305, 0x05, 0x07, 0x05},
167  {0x62, 0x0a3f, 0x0306, 0x06, 0x05, 0x06},
168  {0x63, 0x2a3f, 0x0407, 0x07, 0x07, 0x0e},
169  {0x64, 0x0a7f, 0x0508, 0x08, 0x00, 0x16},
170  {0x65, 0x0eff, 0x0609, 0x09, 0x00, 0x1e},
171  {0x66, 0x0eff, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
172  add CRT2MODE */
173  {0x68, 0x067b, 0x080b, 0x0b, 0x00, 0x29},
174  {0x69, 0x06fd, 0x080b, 0x0b, 0x00, 0x29},
175  {0x6b, 0x07ff, 0x080b, 0x0b, 0x00, 0x29},
176  {0x6c, 0x067b, 0x090c, 0x0c, 0x00, 0x2f},
177  {0x6d, 0x06fd, 0x090c, 0x0c, 0x00, 0x2f},
178  {0x6e, 0x07ff, 0x090c, 0x0c, 0x00, 0x2f},
179  {0x70, 0x2a1b, 0x0410, 0x10, 0x07, 0x34},
180  {0x71, 0x0a1b, 0x0511, 0x11, 0x00, 0x37},
181  {0x74, 0x0a1d, 0x0511, 0x11, 0x00, 0x37},
182  {0x75, 0x0a3d, 0x0612, 0x12, 0x00, 0x3a},
183  {0x76, 0x2a1f, 0x0410, 0x10, 0x07, 0x34},
184  {0x77, 0x0a1f, 0x0511, 0x11, 0x00, 0x37},
185  {0x78, 0x0a3f, 0x0612, 0x12, 0x00, 0x3a},
186  {0x79, 0x0a3b, 0x0612, 0x12, 0x00, 0x3a},
187  {0x7a, 0x2a1d, 0x0410, 0x10, 0x07, 0x34},
188  {0x7b, 0x0e3b, 0x060f, 0x0f, 0x00, 0x1d},
189  {0x7c, 0x0e7d, 0x060f, 0x0f, 0x00, 0x1d},
190  {0x7d, 0x0eff, 0x060f, 0x0f, 0x00, 0x1d},
191  {0x20, 0x0e3b, 0x0D16, 0x16, 0x00, 0x43},
192  {0x21, 0x0e7d, 0x0D16, 0x16, 0x00, 0x43},
193  {0x22, 0x0eff, 0x0D16, 0x16, 0x00, 0x43},
194  {0x23, 0x0e3b, 0x0614, 0x14, 0x00, 0x41},
195  {0x24, 0x0e7d, 0x0614, 0x14, 0x00, 0x41},
196  {0x25, 0x0eff, 0x0614, 0x14, 0x00, 0x41},
197  {0x26, 0x063b, 0x0c15, 0x15, 0x00, 0x42},
198  {0x27, 0x067d, 0x0c15, 0x15, 0x00, 0x42},
199  {0x28, 0x06ff, 0x0c15, 0x15, 0x00, 0x42},
200  {0xff, 0x0000, 0x0000, 0x00, 0x00, 0x00}
201 };
202 
203 static struct SiS_StandTable_S XGI330_StandTable = {
204 /* ExtVGATable */
205  0x00, 0x00, 0x00, 0x0000,
206  {0x01, 0x0f, 0x00, 0x0e},
207  0x23,
208  {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
209  0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
210  0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
211  0xff},
212  {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
213  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
214  0x01, 0x00, 0x00, 0x00},
215  {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
216  0xff}
217 };
218 
219 static struct XGI_TimingHStruct XGI_TimingH[1];
220 
221 static struct XGI_TimingVStruct XGI_TimingV[1];
222 
223 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
224  {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
225  {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
226  {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
227  {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
228  {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
229  {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
230  {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
231  {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
232  {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
233  {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
234  {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
235  {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
236  {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
237  {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
238  {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
239  {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
240  {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
241 };
242 
243 static struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
244  { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
245  0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
246  { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
247  0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
248  { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
249  0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
250  { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
251  0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
252  { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
253  0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
254  { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
255  0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
256  { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
257  0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
258  { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
259  0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
260  { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
261  0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
262  { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
263  0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
264  { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
265  0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
266  { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
267  0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
268  { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
269  0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
270  { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
271  0D (800x600,56Hz) */
272  0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
273  (VCLK 36.0MHz) */
274  { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
275  0E (800x600,60Hz) */
276  0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
277  (VCLK 40.0MHz) */
278  { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
279  0F (800x600,72Hz) */
280  0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
281  (VCLK 50.0MHz) */
282  { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
283  10 (800x600,75Hz) */
284  0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
285  (VCLK 49.5MHz) */
286  { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
287  11 (800x600,85Hz) */
288  0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
289  (VCLK 56.25MHz) */
290  { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
291  12 (800x600,100Hz) */
292  0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
293  (VCLK 75.8MHz) */
294  { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
295  13 (800x600,120Hz) */
296  0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
297  (VCLK 79.411MHz) */
298  { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
299  14 (800x600,160Hz) */
300  0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
301  (VCLK 105.822MHz) */
302  { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
303  0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
304  { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
305  0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
306  { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
307  0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
308  { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
309  0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
310  { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
311  0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
312  { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
313  0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
314  { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
315  0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
316  { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
317  0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
318  { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
319  0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
320  { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
321  0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
322  { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
323  0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
324  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
325  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
326  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
327  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
328  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
329  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
330  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
331  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
332  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
333  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
334  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
335  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
336  { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
337  0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
338  { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
339  0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
340  { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
341  0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
342  { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
343  0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
344  { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
345  0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
346  { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
347  0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
348  { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
349  0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
350  { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
351  0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
352  { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
353  0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
354  { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
355  0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
356  { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
357  0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
358  { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
359  0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
360  { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
361  0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
362  { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
363  0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
364  { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
365  0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
366  { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
367  0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
368  { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
369  0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
370  { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
371  0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
372  { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
373  0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
374  { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
375  0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
376  { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
377  0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
378  { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
379  0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
380  { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
381  0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
382  { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
383  0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
384  { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
385  0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
386  { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
387  0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
388  { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
389  0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
390  { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
391  0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
392  { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
393  0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
394  { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
395  0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
396  { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
397  0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
398  { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
399  0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
400  { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
401  0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
402  { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
403  0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
404 };
405 
406 /*add for new UNIVGABIOS*/
407 static struct SiS_LCDData XGI_StLCD1024x768Data[] = {
408  {62, 25, 800, 546, 1344, 806},
409  {32, 15, 930, 546, 1344, 806},
410  {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
411  {104, 45, 945, 496, 1344, 806},
412  {62, 25, 800, 546, 1344, 806},
413  {31, 18, 1008, 624, 1344, 806},
414  {1, 1, 1344, 806, 1344, 806}
415 };
416 
417 static struct SiS_LCDData XGI_ExtLCD1024x768Data[] = {
418  {42, 25, 1536, 419, 1344, 806},
419  {48, 25, 1536, 369, 1344, 806},
420  {42, 25, 1536, 419, 1344, 806},
421  {48, 25, 1536, 369, 1344, 806},
422  {12, 5, 896, 500, 1344, 806},
423  {42, 25, 1024, 625, 1344, 806},
424  {1, 1, 1344, 806, 1344, 806},
425  {12, 5, 896, 500, 1344, 806},
426  {42, 25, 1024, 625, 1344, 806},
427  {1, 1, 1344, 806, 1344, 806},
428  {12, 5, 896, 500, 1344, 806},
429  {42, 25, 1024, 625, 1344, 806},
430  {1, 1, 1344, 806, 1344, 806}
431 };
432 
433 static struct SiS_LCDData XGI_CetLCD1024x768Data[] = {
434  {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
435  640x200,640x400) */
436  {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
437  {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
438  {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
439  {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
440  {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
441  {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
442 };
443 
444 static struct SiS_LCDData XGI_StLCD1280x1024Data[] = {
445  {22, 5, 800, 510, 1650, 1088},
446  {22, 5, 800, 510, 1650, 1088},
447  {176, 45, 900, 510, 1650, 1088},
448  {176, 45, 900, 510, 1650, 1088},
449  {22, 5, 800, 510, 1650, 1088},
450  {13, 5, 1024, 675, 1560, 1152},
451  {16, 9, 1266, 804, 1688, 1072},
452  {1, 1, 1688, 1066, 1688, 1066}
453 };
454 
455 static struct SiS_LCDData XGI_ExtLCD1280x1024Data[] = {
456  {211, 60, 1024, 501, 1688, 1066},
457  {211, 60, 1024, 508, 1688, 1066},
458  {211, 60, 1024, 501, 1688, 1066},
459  {211, 60, 1024, 508, 1688, 1066},
460  {211, 60, 1024, 500, 1688, 1066},
461  {211, 75, 1024, 625, 1688, 1066},
462  {211, 120, 1280, 798, 1688, 1066},
463  {1, 1, 1688, 1066, 1688, 1066}
464 };
465 
466 static struct SiS_LCDData XGI_CetLCD1280x1024Data[] = {
467  {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
468  640x200,640x400) */
469  {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
470  {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
471  {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
472  {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
473  {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
474  {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
475  {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
476  {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
477 };
478 
479 static struct SiS_LCDData xgifb_lcd_1400x1050[] = {
480  {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
481  640x200,640x400) */
482  {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
483  {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
484  {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
485  {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
486  {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
487  {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
488  {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
489  w/o Scaling) */
490  {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
491 };
492 
493 static struct SiS_LCDData XGI_ExtLCD1600x1200Data[] = {
494  {4, 1, 1620, 420, 2160, 1250}, /* 00 (320x200,320x400,
495  640x200,640x400)*/
496  {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
497  {4, 1, 1620, 420, 2160, 1250}, /* 02 (360x400,720x400)*/
498  {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
499  {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
500  {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
501  {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
502  {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
503  {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
504  {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
505 };
506 
507 static struct SiS_LCDData XGI_StLCD1600x1200Data[] = {
508  {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
509  640x200,640x400) */
510  {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
511  {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
512  {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
513  {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
514  {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
515  {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
516  {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
517  {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
518  {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
519 };
520 
521 #define XGI_CetLCD1400x1050Data XGI_CetLCD1280x1024Data
522 
523 static struct SiS_LCDData XGI_NoScalingData[] = {
524  {1, 1, 800, 449, 800, 449},
525  {1, 1, 800, 449, 800, 449},
526  {1, 1, 900, 449, 900, 449},
527  {1, 1, 900, 449, 900, 449},
528  {1, 1, 800, 525, 800, 525},
529  {1, 1, 1056, 628, 1056, 628},
530  {1, 1, 1344, 806, 1344, 806},
531  {1, 1, 1688, 1066, 1688, 1066}
532 };
533 
534 static struct SiS_LCDData XGI_ExtLCD1024x768x75Data[] = {
535  {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
536  640x200,640x400) */
537  {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
538  {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
539  {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
540  {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
541  {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
542  {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
543 };
544 
545 static struct SiS_LCDData XGI_CetLCD1024x768x75Data[] = {
546  {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
547  640x200,640x400) */
548  {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
549  {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
550  {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
551  {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
552  {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
553  {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
554 };
555 
556 static struct SiS_LCDData xgifb_lcd_1280x1024x75[] = {
557  {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
558  640x200,640x400) */
559  {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
560  {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
561  {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
562  {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
563  {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
564  {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
565  {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
566 };
567 
568 #define XGI_CetLCD1280x1024x75Data XGI_CetLCD1280x1024Data
569 
570 static struct SiS_LCDData XGI_NoScalingDatax75[] = {
571  {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
572  640x200, 640x400) */
573  {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
574  {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
575  {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
576  {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
577  {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
578  {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
579  {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
580  {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)*/
581  {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
582  {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
583 };
584 
585 static struct XGI_LCDDesStruct XGI_ExtLCDDes1024x768Data[] = {
586  {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
587  {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
588  {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
589  {9, 1057, 0, 771}, /* ; 03 (720x350) */
590  {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
591  {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
592  {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
593 };
594 
595 static struct XGI_LCDDesStruct XGI_StLCDDes1024x768Data[] = {
596  {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
597  {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
598  {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
599  {9, 1057, 686, 651}, /* ; 03 (720x350) */
600  {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
601  {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
602  {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
603 };
604 
605 static struct XGI_LCDDesStruct XGI_CetLCDDes1024x768Data[] = {
606  {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
607  {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
608  {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
609  {1152, 856, 597, 562}, /* ; 03 (720x350) */
610  {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
611  {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
612  {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
613 };
614 
615 static struct XGI_LCDDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
616  {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
617  {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
618  {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
619  {18, 1346, 926, 865}, /* 03 (720x350) */
620  {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
621  {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
622  {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
623  {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
624 };
625 
626 static struct XGI_LCDDesStruct XGI_StLCDDLDes1280x1024Data[] = {
627  {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
628  {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
629  {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
630  {18, 1346, 917, 854}, /* 03 (720x350) */
631  {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
632  {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
633  {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
634  {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
635 };
636 
637 static struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
638  {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
639  {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
640  {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
641  {1368, 1008, 729, 688}, /* 03 (720x350) */
642  {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
643  {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
644  {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
645  {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
646 };
647 
648 static struct XGI_LCDDesStruct XGI_ExtLCDDes1280x1024Data[] = {
649  {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
650  {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
651  {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
652  {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
653  {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
654  {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
655  {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
656  {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
657 };
658 
659 static struct XGI_LCDDesStruct XGI_StLCDDes1280x1024Data[] = {
660  {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
661  {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
662  {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
663  {9, 1337, 917, 854}, /* ; 03 (720x350) */
664  {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
665  {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
666  {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
667  {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
668 };
669 
670 static struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024Data[] = {
671  {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
672  {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
673  {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
674  {1368, 1008, 729, 688}, /* 03 (720x350) */
675  {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
676  {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
677  {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
678  {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
679 };
680 
681 static struct XGI_LCDDesStruct xgifb_lcddldes_1400x1050[] = {
682  {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
683  {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
684  {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
685  {18, 1464, 0, 1051}, /* 03 (720x350) */
686  {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
687  {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
688  {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
689  {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
690  {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
691 };
692 
693 static struct XGI_LCDDesStruct xgifb_lcddes_1400x1050[] = {
694  {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
695  {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
696  {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
697  {9, 1455, 0, 1051}, /* 03 (720x350) */
698  {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
699  {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
700  {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
701  {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
702  {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
703 };
704 
705 static struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data[] = {
706  {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
707  {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
708  {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
709  {1308, 1068, 781, 766}, /* 03 (720x350) */
710  {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
711  {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
712  {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
713  {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
714  {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
715 };
716 
717 static struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data2[] = {
718  {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
719  {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
720  {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
721  {0, 1448, 0, 1051}, /* 03 (720x350) */
722  {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
723 };
724 
725 static struct XGI_LCDDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
726  {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
727  {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
728  {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
729  {18, 1682, 0, 1201}, /* 03 (720x350) */
730  {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
731  {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
732  {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
733  {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
734  {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
735  {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
736 };
737 
738 static struct XGI_LCDDesStruct XGI_StLCDDLDes1600x1200Data[] = {
739  {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
740  {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
741  {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
742  {18, 1682, 1083, 1034}, /* 03 (720x350) */
743  {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
744  {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
745  {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
746  {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
747  {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
748  {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
749 };
750 
751 static struct XGI_LCDDesStruct XGI_ExtLCDDes1600x1200Data[] = {
752  {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
753  {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
754  {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
755  {9, 1673, 0, 1201}, /* 03 (720x350) */
756  {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
757  {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
758  {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
759  {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
760  {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
761  {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
762 };
763 
764 static struct XGI_LCDDesStruct XGI_StLCDDes1600x1200Data[] = {
765  {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
766  {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
767  {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
768  {9, 1673, 1083, 1034}, /* 03 (720x350) */
769  {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
770  {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
771  {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
772  {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
773  {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
774  {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
775 };
776 
777 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
778  {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
779  640x200,640x400) */
780  {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
781  {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
782  {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
783  {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
784  {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
785  {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
786  {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
787  {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
788  {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
789  {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
790 };
791 
792 /* ;;1024x768x75Hz */
793 static struct XGI_LCDDesStruct xgifb_lcddes_1024x768x75[] = {
794  {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
795  {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
796  {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
797  {9, 1049, 0, 769}, /* ; 03 (720x350) */
798  {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
799  {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
800  {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
801 };
802 
803 /* ;;1024x768x75Hz */
804 static struct XGI_LCDDesStruct XGI_CetLCDDes1024x768x75Data[] = {
805  {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
806  {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
807  {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
808  {1192, 896, 597, 562}, /* ; 03 (720x350) */
809  {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
810  {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
811  {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
812 };
813 
814 /* ;;1280x1024x75Hz */
815 static struct XGI_LCDDesStruct xgifb_lcddldes_1280x1024x75[] = {
816  {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
817  {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
818  {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
819  {18, 1314, 0, 1025}, /* ; 03 (720x350) */
820  {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
821  {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
822  {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
823  {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
824 };
825 
826 /* 1280x1024x75Hz */
827 static struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
828  {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
829  {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
830  {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
831  {1408, 1048, 729, 688}, /* ; 03 (720x350) */
832  {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
833  {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
834  {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
835  {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
836 };
837 
838 /* ;;1280x1024x75Hz */
839 static struct XGI_LCDDesStruct xgifb_lcddes_1280x1024x75[] = {
840  {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
841  {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
842  {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
843  {9, 1305, 0, 1025}, /* ; 03 (720x350) */
844  {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
845  {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
846  {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
847  {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
848 };
849 
850 /* 1280x1024x75Hz */
851 static struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
852  {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
853  {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
854  {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
855  {1408, 1048, 729, 688}, /* ; 03 (720x350) */
856  {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
857  {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
858  {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
859  {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
860 };
861 
862 /* Scaling LCD 75Hz */
863 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
864  {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
865  640x200,640x400) */
866  {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
867  {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
868  {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
869  {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
870  {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
871  {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
872  {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
873  {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)*/
874  {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
875  {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
876 };
877 
878 static const struct SiS_TVData XGI_StPALData[] = {
879  {1, 1, 864, 525, 1270, 400, 100, 0, 760},
880  {1, 1, 864, 525, 1270, 350, 100, 0, 760},
881  {1, 1, 864, 525, 1270, 400, 0, 0, 720},
882  {1, 1, 864, 525, 1270, 350, 0, 0, 720},
883  {1, 1, 864, 525, 1270, 480, 50, 0, 760},
884  {1, 1, 864, 525, 1270, 600, 50, 0, 0}
885 };
886 
887 static const struct SiS_TVData XGI_ExtPALData[] = {
888  {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
889  {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
890  {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
891  {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
892  {2, 1, 900, 543, 1270, 500, 0, 0, 50},
893  {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
894  {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
895  {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
896 };
897 
898 static const struct SiS_TVData XGI_StNTSCData[] = {
899  {1, 1, 858, 525, 1270, 400, 50, 0, 760},
900  {1, 1, 858, 525, 1270, 350, 50, 0, 640},
901  {1, 1, 858, 525, 1270, 400, 0, 0, 720},
902  {1, 1, 858, 525, 1270, 350, 0, 0, 720},
903  {1, 1, 858, 525, 1270, 480, 0, 0, 760}
904 };
905 
906 static const struct SiS_TVData XGI_ExtNTSCData[] = {
907  {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
908  {12, 5, 858, 403, 1270, 420, 171, 0, 171},
909  {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
910  {12, 5, 858, 403, 1270, 420, 171, 0, 171},
911  {143, 80, 836, 523, 1270, 420, 224, 0, 0},
912  {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
913  {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
914  {2, 1, 858, 503, 1584, 480, 0, 1, 0},
915  {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
916 };
917 
918 static const struct SiS_TVData XGI_St1HiTVData[] = {
919  {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
920  640x200,640x400) */
921  {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
922  {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
923  {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
924  {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
925  {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
926 };
927 
928 static const struct SiS_TVData XGI_St2HiTVData[] = {
929  {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
930  640x200,640x400) */
931  {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
932  {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
933  {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
934  {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
935  {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
936 };
937 
938 static const struct SiS_TVData XGI_ExtHiTVData[] = {
939  {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
940  640x200,640x400) */
941  {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
942  {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
943  {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
944  {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
945  {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
946  {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
947  {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
948  {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
949  {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
950  {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
951 };
952 
953 static const struct SiS_TVData XGI_ExtYPbPr525iData[] = {
954  { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
955  { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
956  { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
957  { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
958  {143, 80, 836, 523, 1250, 420, 224, 0, 0},
959  {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
960  { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
961  { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
962  { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
963 };
964 
965 static const struct SiS_TVData XGI_StYPbPr525iData[] = {
966  {1, 1, 858, 525, 1270, 400, 50, 0, 760},
967  {1, 1, 858, 525, 1270, 350, 50, 0, 640},
968  {1, 1, 858, 525, 1270, 400, 0, 0, 720},
969  {1, 1, 858, 525, 1270, 350, 0, 0, 720},
970  {1, 1, 858, 525, 1270, 480, 0, 0, 760},
971 };
972 
973 static const struct SiS_TVData XGI_ExtYPbPr525pData[] = {
974  { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
975  { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
976  { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
977  { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
978  {143, 80, 836, 523, 1270, 420, 224, 0, 0},
979  {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
980  { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
981  { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
982  { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
983 };
984 
985 static const struct SiS_TVData XGI_StYPbPr525pData[] = {
986  {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
987  {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
988  {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
989  {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
990  {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
991 };
992 
993 static const struct SiS_TVData XGI_ExtYPbPr750pData[] = {
994  { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
995  640x200,640x400) */
996  {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
997  { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
998  {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
999  { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1000  { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1001  { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1002  { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1003  { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1004  { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1005  {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1006 };
1007 
1008 static const struct SiS_TVData XGI_StYPbPr750pData[] = {
1009  {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1010  {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1011  {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1012  {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1013  {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
1014 };
1015 
1016 static const unsigned char XGI330_NTSCTiming[] = {
1017  0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1018  0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1019  0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1020  0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1021  0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1022  0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1023  0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1024  0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1025 };
1026 
1027 static const unsigned char XGI330_PALTiming[] = {
1028  0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1029  0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1030  0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1031  0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1032  0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1033  0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1034  0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1035  0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
1036 };
1037 
1038 static const unsigned char XGI330_HiTVExtTiming[] = {
1039  0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1040  0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1041  0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1042  0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1043  0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1044  0x8E, 0x8E, 0x82, 0x07, 0x0B,
1045  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1046  0x60, 0x14, 0x3D, 0x63, 0x4F,
1047  0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
1048 };
1049 
1050 static const unsigned char XGI330_HiTVSt1Timing[] = {
1051  0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1052  0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1053  0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1054  0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1055  0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1056  0x35, 0x35, 0x3B, 0x69, 0x1D,
1057  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1058  0x60, 0x04, 0x86, 0xAF, 0x5D,
1059  0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
1060 };
1061 
1062 static const unsigned char XGI330_HiTVSt2Timing[] = {
1063  0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1064  0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1065  0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1066  0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1067  0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1068  0x8E, 0x8E, 0x82, 0x07, 0x0B,
1069  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1070  0x60, 0x14, 0x3D, 0x63, 0x4F,
1071  0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
1072 };
1073 
1074 static const unsigned char XGI330_HiTVTextTiming[] = {
1075  0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1076  0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1077  0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1078  0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1079  0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1080  0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1081  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1082  0x60, 0x04, 0x96, 0x72, 0x5C,
1083  0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1084 };
1085 
1086 static const unsigned char XGI330_YPbPr750pTiming[] = {
1087  0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1088  0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1089  0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1090  0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1091  0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1092  0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1093  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1094  0x60, 0x14, 0x73, 0x00, 0x40,
1095  0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
1096 };
1097 
1098 static const unsigned char XGI330_YPbPr525pTiming[] = {
1099  0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1100  0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1101  0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1102  0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1103  0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1104  0x51, 0x5e, 0x60, 0x49, 0x7d,
1105  0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1106  0x60, 0x14, 0x4B, 0x43, 0x41,
1107  0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1108 };
1109 
1110 static const unsigned char XGI330_YPbPr525iTiming[] = {
1111  0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1112  0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1113  0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1114  0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1115  0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1116  0x03, 0x0A, 0x65, 0x9D, 0x08,
1117  0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1118  0x60, 0x14, 0x4B, 0x00, 0x40,
1119  0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
1120 };
1121 
1122 static const unsigned char XGI330_HiTVGroup3Data[] = {
1123  0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1124  0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1125  0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1126  0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1127  0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1128  0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1129  0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1130  0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1131 };
1132 
1133 static const unsigned char XGI330_HiTVGroup3Simu[] = {
1134  0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1135  0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1136  0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1137  0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1138  0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1139  0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1140  0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1141  0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1142 };
1143 
1144 static const unsigned char XGI330_HiTVGroup3Text[] = {
1145  0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1146  0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1147  0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1148  0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1149  0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1150  0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1151  0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1152  0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1153 };
1154 
1155 static const unsigned char XGI330_Ren525pGroup3[] = {
1156  0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1157  0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1158  0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1159  0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1160  0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1161  0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1162  0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1163  0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1164 };
1165 
1166 static const unsigned char XGI330_Ren750pGroup3[] = {
1167  0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1168  0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1169  0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1170  0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1171  0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1172  0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1173  0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1174  0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
1175 };
1176 
1177 static struct SiS_LVDSData XGI_LVDS1024x768Data_1[] = {
1178  { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1179  { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1180  {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1181  {1040, 388, 1344, 806}, /* 03 (720x350) */
1182  { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1183  {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1184  {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
1185 };
1186 
1187 
1188 static struct SiS_LVDSData XGI_LVDS1024x768Data_2[] = {
1189  {1344, 806, 1344, 806},
1190  {1344, 806, 1344, 806},
1191  {1344, 806, 1344, 806},
1192  {1344, 806, 1344, 806},
1193  {1344, 806, 1344, 806},
1194  {1344, 806, 1344, 806},
1195  {1344, 806, 1344, 806},
1196  {800, 449, 1280, 801},
1197  {800, 525, 1280, 813}
1198 };
1199 
1200 static struct SiS_LVDSData XGI_LVDS1280x1024Data_1[] = {
1201  {1048, 442, 1688, 1066},
1202  {1048, 392, 1688, 1066},
1203  {1048, 442, 1688, 1066},
1204  {1048, 392, 1688, 1066},
1205  {1048, 522, 1688, 1066},
1206  {1208, 642, 1688, 1066},
1207  {1432, 810, 1688, 1066},
1208  {1688, 1066, 1688, 1066}
1209 };
1210 
1211 #define XGI_LVDS1280x1024Data_2 XGI_LVDS1024x768Data_2
1212 
1213 static struct SiS_LVDSData XGI_LVDS1400x1050Data_1[] = {
1214  {928, 416, 1688, 1066},
1215  {928, 366, 1688, 1066},
1216  {928, 416, 1688, 1066},
1217  {928, 366, 1688, 1066},
1218  {928, 496, 1688, 1066},
1219  {1088, 616, 1688, 1066},
1220  {1312, 784, 1688, 1066},
1221  {1568, 1040, 1688, 1066},
1222  {1688, 1066, 1688, 1066}
1223 };
1224 
1225 static struct SiS_LVDSData XGI_LVDS1400x1050Data_2[] = {
1226  {1688, 1066, 1688, 1066},
1227  {1688, 1066, 1688, 1066},
1228  {1688, 1066, 1688, 1066},
1229  {1688, 1066, 1688, 1066},
1230  {1688, 1066, 1688, 1066},
1231  {1688, 1066, 1688, 1066},
1232  {1688, 1066, 1688, 1066},
1233  {1688, 1066, 1688, 1066},
1234  {1688, 1066, 1688, 1066}
1235 };
1236 
1237 /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1238 static struct SiS_LVDSData XGI_LVDS1600x1200Data_1[] = {
1239  {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1240  {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1241  {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1242  {1088, 470, 2048, 1320}, /* 03 (720x350) */
1243  {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1244  {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1245  {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1246  {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1247  {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1248  {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
1249 };
1250 
1251 static struct SiS_LVDSData XGI_LVDSNoScalingData[] = {
1252  { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1253  { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1254  { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1255  { 800, 449, 800, 449}, /* 03 (720x350) */
1256  { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1257  {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1258  {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1259  {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1260  {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) */
1261  {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1262  {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
1263 };
1264 
1265 static struct SiS_LVDSData XGI_LVDS1024x768Data_1x75[] = {
1266  { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1267  { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1268  {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1269  {1040, 388, 1312, 800}, /* 03 (720x350) */
1270  { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1271  {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1272  {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
1273 };
1274 
1275 
1276 static struct SiS_LVDSData XGI_LVDS1024x768Data_2x75[] = {
1277  {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1278  {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1279  {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1280  {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1281  {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1282  {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1283  {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
1284 };
1285 
1286 static struct SiS_LVDSData XGI_LVDS1280x1024Data_1x75[] = {
1287  {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1288  {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1289  {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1290  {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1291  {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1292  {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1293  {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1294  {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1295 };
1296 
1297 static struct SiS_LVDSData XGI_LVDS1280x1024Data_2x75[] = {
1298  {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1299  {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1300  {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1301  {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1302  {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1303  {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1304  {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1305  {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1306 };
1307 
1308 static struct SiS_LVDSData XGI_LVDSNoScalingDatax75[] = {
1309  { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1310  { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1311  { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1312  { 900, 449, 900, 449}, /* ; 03 (720x350) */
1313  { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1314  {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1315  {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1316  {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1317  {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1318  ;;[ycchen] 12/19/02 */
1319  {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1320  {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
1321 };
1322 
1323 static struct SiS_LVDSData XGI_LVDS1024x768Des_1[] = {
1324  {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1325  {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1326  {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1327  {0, 1048, 0, 771}, /* 03 (720x350) */
1328  {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1329  {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1330  {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
1331 } ;
1332 
1333 static struct SiS_LVDSData XGI_LVDS1024x768Des_2[] = {
1334  {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1335  {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1336  {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1337  {1142, 856, 597, 562}, /* 03 (720x350) */
1338  {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1339  {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1340  { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1341 };
1342 
1343 static struct SiS_LVDSData XGI_LVDS1024x768Des_3[] = {
1344  {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1345  {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1346  {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1347  {320, 24, 597, 562}, /* 03 (720x350) */
1348  {320, 24, 722, 687} /* 04 (640x480x60Hz) */
1349 };
1350 
1351 static struct SiS_LVDSData XGI_LVDS1280x1024Des_1[] = {
1352  {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1353  {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1354  {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1355  {0, 1328, 0, 1025}, /* 03 (720x350) */
1356  {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1357  {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1358  {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1359  {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
1360 };
1361 
1362  /* The Display setting for DE Mode Panel */
1363 static struct SiS_LVDSData XGI_LVDS1280x1024Des_2[] = {
1364  {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1365  {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1366  {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1367  {1408, 1048, 729, 688}, /* 03 (720x350) */
1368  {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1369  {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1370  {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1371  {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
1372 };
1373 
1374 static struct SiS_LVDSData XGI_LVDS1400x1050Des_1[] = {
1375  {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1376  {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1377  {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1378  {0, 1448, 0, 1051}, /* 03 (720x350) */
1379  {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1380  {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1381  {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1382  {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1383  {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1384 };
1385 
1386 static struct SiS_LVDSData XGI_LVDS1400x1050Des_2[] = {
1387  {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1388  {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1389  {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1390  {1308, 1068, 781, 766}, /* 03 (720x350) */
1391  {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1392  {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1393  {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1394  {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1395  { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1396 };
1397 
1398 static struct SiS_LVDSData XGI_LVDS1600x1200Des_1[] = {
1399  {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1400  {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1401  {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1402  {0, 1664, 0, 1201}, /* 03 (720x350) */
1403  {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1404  {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1405  {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1406  {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1407  {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1408  {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
1409 };
1410 
1411 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1412  {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1413  640x200,640x400) */
1414  {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1415  {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1416  {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1417  {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1418  {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1419  {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1420  {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1421  {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
1422  {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1423  {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
1424 };
1425 
1426 /* ; 1024x768 Full-screen */
1427 static struct SiS_LVDSData XGI_LVDS1024x768Des_1x75[] = {
1428  {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1429  {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1430  {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1431  {0, 1040, 0, 769}, /* ; 03 (720x350) */
1432  {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
1433  {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
1434  {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
1435 };
1436 
1437 /* ; 1024x768 center-screen (Enh. Mode) */
1438 static struct SiS_LVDSData XGI_LVDS1024x768Des_2x75[] = {
1439  {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1440  {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1441  {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1442  {1142, 856, 597, 562}, /* 03 (720x350) */
1443  {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1444  {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1445  { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1446 };
1447 
1448 /* ; 1024x768 center-screen (St.Mode) */
1449 static struct SiS_LVDSData XGI_LVDS1024x768Des_3x75[] = {
1450  {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1451  {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
1452  {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
1453  {320, 24, 597, 562}, /* ; 03 (720x350) */
1454  {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
1455 };
1456 
1457 static struct SiS_LVDSData XGI_LVDS1280x1024Des_1x75[] = {
1458  {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1459  {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
1460  {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
1461  {0, 1296, 0, 1025}, /* ; 03 (720x350) */
1462  {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
1463  {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
1464  {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
1465  {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1466 };
1467 
1468 /* The Display setting for DE Mode Panel */
1469 /* Set DE as default */
1470 static struct SiS_LVDSData XGI_LVDS1280x1024Des_2x75[] = {
1471  {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1472  {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
1473  {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
1474  {1408, 976, 729, 688}, /* ; 03 (720x350) */
1475  {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
1476  {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
1477  {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
1478  { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1479 };
1480 
1481 /* Scaling LCD 75Hz */
1482 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
1483  {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1484  640x200,640x400) */
1485  {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1486  {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1487  {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
1488  {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1489  {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1490  {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1491  {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1492  {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz) */
1493  {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1494  {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
1495 };
1496 
1497 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1498 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
1499  { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
1500  { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
1501  { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
1502  { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1503  { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1504  { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1505  { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
1506  { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1507 };
1508 
1509 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1510 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
1511  { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
1512  { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
1513  { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
1514  { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
1515  { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
1516  { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
1517  { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
1518  { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
1519  { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
1520 };
1521 
1522 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1523 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
1524  { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1525  { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1526  { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1527  { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1528  { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1529  { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1530  { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1531  { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1532 };
1533 
1534 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1535 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
1536  { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1537  { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1538  { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1539  { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1540  { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1541  { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1542  { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1543  { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1544  { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
1545 };
1546 
1547 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1548 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
1549  { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
1550  { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
1551  { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1552  { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1553  { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1554  { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1555  { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
1556  { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1557  { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1558  { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1559 };
1560 
1561 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1562 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
1563  { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
1564  { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
1565  { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
1566  { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
1567  { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1568  { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1569  { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
1570  { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1571  { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
1572  { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1573 };
1574 
1575 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
1576 /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1577 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
1578  { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1579  { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1580  { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1581  { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
1582  { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1583  { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1584  { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
1585  { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1586  { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1587  { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
1588  { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
1589 };
1590 
1591 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1592 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
1593  { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
1594  { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
1595  { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
1596  { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
1597  { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1598 };
1599 
1600 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1601 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
1602  { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
1603  { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
1604  { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
1605  { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
1606  { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1607 };
1608 
1609 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1610 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
1611  { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
1612  { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
1613  { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
1614  { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
1615  { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
1616  { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1617 };
1618 
1619 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1620 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
1621  { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
1622  { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
1623  { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
1624  { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
1625  { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
1626  { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1627 };
1628 
1629 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1630 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
1631  { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
1632  { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
1633  { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
1634  { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
1635  { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
1636  { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
1637  { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
1638 };
1639 
1640 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1641 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
1642  { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
1643  { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
1644  { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
1645  { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
1646  { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
1647  { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
1648  { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
1649 };
1650 
1651 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1652 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
1653  { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
1654  { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
1655  { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
1656  { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
1657  { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
1658  { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
1659  { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
1660  { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
1661 };
1662 
1663 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1664 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
1665  { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
1666  { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
1667  { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
1668  { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1669  { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
1670  { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
1671  { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
1672  { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1673 };
1674 
1675 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1676 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
1677  { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
1678  { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
1679  { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
1680  { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
1681  { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
1682 };
1683 
1684 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1685 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
1686  { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1687  { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1688  { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1689  { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1690  { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1691  { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1692  { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1693  { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1694 };
1695 
1696 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1697 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
1698  { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
1699  { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
1700  { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
1701  { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
1702  { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
1703 };
1704 
1705 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1706 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
1707  { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
1708  { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
1709  { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1710  { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1711  { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1712  { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1713  { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
1714  { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
1715  { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1716 };
1717 
1718 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1719 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
1720  { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
1721  { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
1722  { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
1723  { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
1724  { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
1725  { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1726 };
1727 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1728 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
1729  { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1730  { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1731  { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1732  { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1733  { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
1734  { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
1735  { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1736  { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
1737  { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1738 };
1739 
1740 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1741 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
1742  { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
1743  { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
1744  { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
1745  { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
1746  { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
1747  { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1748 };
1749 
1750 /*add for new UNIVGABIOS*/
1751 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
1752  {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
1753  {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
1754  {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
1755  {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
1756  {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
1757  {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
1758  {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
1759  {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
1760  {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
1761  {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
1762  {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
1763  {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
1764  {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
1765  {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
1766  {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
1767  /* XGI_ExtLCD1280x1024x75Data */
1768  {Panel_1280x1024x75, 0x0019, 0x0001, 15},
1769  /* XGI_StLCD1280x1024x75Data */
1770  {Panel_1280x1024x75, 0x0019, 0x0000, 16},
1771  /* XGI_CetLCD1280x1024x75Data */
1772  {Panel_1280x1024x75, 0x0018, 0x0010, 17},
1773  {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
1774  {0xFF, 0x0000, 0x0000, 0} /* End of table */
1775 };
1776 
1777 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
1778  {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
1779  {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
1780  {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
1781  {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
1782  {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
1783  {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
1784  {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
1785  {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
1786  {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
1787  {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
1788  {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
1789  {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
1790  {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
1791  /* XGI_ExtLCDDes1024x768x75Data */
1792  {Panel_1024x768x75, 0x0019, 0x0001, 13},
1793  /* XGI_StLCDDes1024x768x75Data */
1794  {Panel_1024x768x75, 0x0019, 0x0000, 14},
1795  /* XGI_CetLCDDes1024x768x75Data */
1796  {Panel_1024x768x75, 0x0018, 0x0010, 15},
1797  /* XGI_ExtLCDDes1280x1024x75Data */
1798  {Panel_1280x1024x75, 0x0019, 0x0001, 16},
1799  /* XGI_StLCDDes1280x1024x75Data */
1800  {Panel_1280x1024x75, 0x0019, 0x0000, 17},
1801  /* XGI_CetLCDDes1280x1024x75Data */
1802  {Panel_1280x1024x75, 0x0018, 0x0010, 18},
1803  {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
1804  {0xFF, 0x0000, 0x0000, 0}
1805 };
1806 
1807 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1[] = {
1808  {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
1809  {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
1810  {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
1811  {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
1812  {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
1813  {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
1814  {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
1815  {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
1816  {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
1817  {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
1818  {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
1819  {0xFF, 0x0000, 0x0000, 0}
1820 };
1821 
1822 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
1823  {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
1824  {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
1825  {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
1826  {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
1827  {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
1828  {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
1829  {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
1830  {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
1831  {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
1832  {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
1833  /* XGI_LVDS1280x1024Data_1x75 */
1834  {Panel_1280x1024x75, 0x0018, 0x0000, 10},
1835  /* XGI_LVDS1280x1024Data_2x75 */
1836  {Panel_1280x1024x75, 0x0018, 0x0010, 11},
1837  {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
1838  {0xFF, 0x0000, 0x0000, 0}
1839 };
1840 
1841 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
1842  {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
1843  {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
1844  {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
1845  {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
1846  {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
1847  {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
1848  {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
1849  {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
1850  {PanelRef60Hz, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
1851  {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
1852  {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
1853  {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
1854  /* XGI_LVDS1280x1024Des_1x75 */
1855  {Panel_1280x1024x75, 0x0018, 0x0000, 12},
1856  /* XGI_LVDS1280x1024Des_2x75 */
1857  {Panel_1280x1024x75, 0x0018, 0x0010, 13},
1858  {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
1859  {0xFF, 0x0000, 0x0000, 0}
1860 };
1861 
1862 static const struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
1863  {0x09E1, 0x0001, XGI_ExtPALData},
1864  {0x09E1, 0x0000, XGI_ExtNTSCData},
1865  {0x09E1, 0x0801, XGI_StPALData},
1866  {0x09E1, 0x0800, XGI_StNTSCData},
1867  {0x49E0, 0x0100, XGI_ExtHiTVData},
1868  {0x49E0, 0x4100, XGI_St2HiTVData},
1869  {0x49E0, 0x4900, XGI_St1HiTVData},
1870  {0x09E0, 0x0020, XGI_ExtYPbPr525iData},
1871  {0x09E0, 0x0040, XGI_ExtYPbPr525pData},
1872  {0x09E0, 0x0080, XGI_ExtYPbPr750pData},
1873  {0x09E0, 0x0820, XGI_StYPbPr525iData},
1874  {0x09E0, 0x0840, XGI_StYPbPr525pData},
1875  {0x09E0, 0x0880, XGI_StYPbPr750pData},
1876  {0xffff, 0x0000, XGI_ExtNTSCData},
1877 };
1878 
1879 /* Dual link only */
1880 static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
1881 /* LCDCap1024x768 */
1882  {Panel_1024x768, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
1883  0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
1884  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
1885 /* LCDCap1280x1024 */
1887  0x70, 0x03, VCLK108_2_315,
1888  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
1889  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1890 /* LCDCap1400x1050 */
1892  0x70, 0x03, VCLK108_2_315,
1893  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
1894  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1895 /* LCDCap1600x1200 */
1897  0xC0, 0x03, VCLK162,
1898  0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
1899  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1900 /* LCDCap1024x768x75 */
1901  {Panel_1024x768x75, DefaultLCDCap, 0, 0x60, 0, VCLK78_75,
1902  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
1903  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
1904 /* LCDCap1280x1024x75 */
1906  0x90, 0x03, VCLK135_5,
1907  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
1908  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1909 /* LCDCapDefault */
1910  {0xFF, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
1911  0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
1912  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
1913 };
1914 
1915 static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
1916 /* LCDCap1024x768 */
1917  {Panel_1024x768, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
1918  0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
1919  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
1920 /* LCDCap1280x1024 */
1922  0x70, 0x03, VCLK108_2_315,
1923  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
1924  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1925 /* LCDCap1400x1050 */
1927  0x70, 0x03, VCLK108_2_315,
1928  0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
1929  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1930 /* LCDCap1600x1200 */
1932  0xC0, 0x03, VCLK162,
1933  0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
1934  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1935 /* LCDCap1024x768x75 */
1936  {Panel_1024x768x75, DefaultLCDCap, 0, 0x60, 0, VCLK78_75,
1937  0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
1938  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
1939 /* LCDCap1280x1024x75 */
1941  0x90, 0x03, VCLK135_5,
1942  0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
1943  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
1944 /* LCDCapDefault */
1945  {0xFF, DefaultLCDCap, 0, 0x88, 0x06, VCLK65_315,
1946  0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
1947  0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
1948 };
1949 
1950 static struct XGI_Ext2Struct XGI330_RefIndex[] = {
1952  0x00, 0x10, 0x59, 320, 200},/* 00 */
1954  0x00, 0x10, 0x00, 320, 400},/* 01 */
1956  0x04, 0x20, 0x50, 320, 240},/* 02 */
1958  0x05, 0x32, 0x51, 400, 300},/* 03 */
1960  VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
1962  0x00, 0x14, 0x2f, 640, 400},/* 05 */
1964  0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
1966  0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
1968  0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
1970  0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
1972  0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
1974  0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
1976  0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
1978  0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
1980  0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
1982  0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
1984  0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
1986  0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
1988  0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
1990  0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
1992  0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
1994  0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
1996  0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
1997  /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
1999  VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
2001  0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2003  0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2005  0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2007  0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2009  0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2011  0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2013  0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2015  0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2017  0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2019  0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2020  /* 22 1600x1200x60Hz */
2022  RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
2024  0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
2026  0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2028  0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2030  0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2032  0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2034  0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2036  0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2038  0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2040  0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2042  0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2044  0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2046  0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2048  0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2050  0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2052  0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2054  0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2056  0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2059  0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2061  0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2063  0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2066  0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2068  0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2070  0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2073  0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2075  0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2077  0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2079  0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2081  0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2083  VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2085  0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2087  VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2089  VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2091  0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2093  0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2095  VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2097  VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2099  VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2101  0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2102 };
2103 
2104 static unsigned char XGI330_ScreenOffset[] = {
2105  0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2106  0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2107  0x57, 0x48
2108 };
2109 
2110 static struct SiS_StResInfo_S XGI330_StResInfo[] = {
2111  {640, 400},
2112  {640, 350},
2113  {720, 400},
2114  {720, 350},
2115  {640, 480}
2116 };
2117 
2118 static struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
2119  { 320, 200, 8, 8},
2120  { 320, 240, 8, 8},
2121  { 320, 400, 8, 8},
2122  { 400, 300, 8, 8},
2123  { 512, 384, 8, 8},
2124  { 640, 400, 8, 16},
2125  { 640, 480, 8, 16},
2126  { 800, 600, 8, 16},
2127  {1024, 768, 8, 16},
2128  {1280, 1024, 8, 16},
2129  {1600, 1200, 8, 16},
2130  {1920, 1440, 8, 16},
2131  {2048, 1536, 8, 16},
2132  { 720, 480, 8, 16},
2133  { 720, 576, 8, 16},
2134  {1280, 960, 8, 16},
2135  { 800, 480, 8, 16},
2136  {1024, 576, 8, 16},
2137  {1280, 720, 8, 16},
2138  { 856, 480, 8, 16},
2139  {1280, 768, 8, 16},
2140  {1400, 1050, 8, 16},
2141  {1152, 864, 8, 16}
2142 };
2143 
2144 static struct SiS_VCLKData XGI_VCLKData[] = {
2145  /* SR2B,SR2C,SR2D */
2146  {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2147  {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2148  {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2149  {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2150  {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2151  {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2152  {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2153  {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2154  {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2155  {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2156  {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2157  {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2158  {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2159  {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2160  {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2161  {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2162  {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2163  {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2164  {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2165  {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2166  {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2167  {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2168  {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2169  {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2170  {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2171  {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2172  {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2173  {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2174  {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2175  {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2176  {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2177  {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2178  {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2179  {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2180  {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2181  {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2182  {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2183  {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2184  {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2185  {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2186  {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2187  {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2188  {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2189  {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2190  {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2191  {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2192  {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2193  {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2194  {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2195  {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2196  {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2197  {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2198  {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2199  {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2200  {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2201  {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2202  {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2203  {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2204  {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2205  {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2206  {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2207  {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2208  {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2209  {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2210  {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2211  {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2212  {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2213  {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2214  {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2215  {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2216  {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2217  {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2218  {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2219  {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2220  {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2221  {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2222  {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2223  {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2224  {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2225  {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2226  {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2227  {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2228  {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2229  {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2230  {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2231  {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2232  {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2233  {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2234  {0xFF, 0x00, 0} /* End mark */
2235 };
2236 
2237 static struct SiS_VBVCLKData XGI_VBVCLKData[] = {
2238  {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2239  {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2240  {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2241  {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2242  {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2243  {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2244  {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2245  {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2246  {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2247  {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2248  {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2249  {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2250  {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2251  {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2252  {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2253  {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2254  {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2255  {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2256  {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2257  {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2258  {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2259  {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2260  {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2261  {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2262  {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2263  {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2264  {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2265  {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2266  {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2267  {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2268  {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2269  {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2270  {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2271  {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2272  {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2273  {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2274  {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2275  {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2276  {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2277  {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2278  {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2279  {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2280  {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2281  {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2282  {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2283  {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2284  {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2285  {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2286  {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2287  {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2288  {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2289  {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2290  {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2291  {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2292  {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2293  {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2294  {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2295  {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2296  {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2297  {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2298  {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2299  {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2300  {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2301  {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2302  {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2303  {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2304  {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2305  {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2306  {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2307  {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2308  {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2309  {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2310  {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2311  {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2312  {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2313  {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2314  {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2315  {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2316  {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2317  {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2318  {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2319  {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2320  {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2321  {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2322  {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2323  {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2324  {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2325  {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2326  {0xFF, 0x00, 0} /* End mark */
2327 };
2328 
2329 #define XGI301TVDelay 0x22
2330 #define XGI301LCDDelay 0x12
2331 
2332 static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
2333  0x04, /* ; 0 Adaptive */
2334  0x00, /* ; 1 new anti-flicker ? */
2335 
2336  0x04, /* ; 0 Adaptive */
2337  0x08, /* ; 1 new anti-flicker ? */
2338 
2339  0x04, /* ; 0 ? */
2340  0x00 /* ; 1 new anti-flicker ? */
2341 };
2342 
2343 
2344 static unsigned char TVEdgeList[] = {
2345  0x00, /* ; 0 NTSC No Edge enhance */
2346  0x04, /* ; 1 NTSC Adaptive Edge enhance */
2347  0x00, /* ; 0 PAL No Edge enhance */
2348  0x04, /* ; 1 PAL Adaptive Edge enhance */
2349  0x00, /* ; 0 HiTV */
2350  0x00 /* ; 1 HiTV */
2351 };
2352 
2353 static unsigned long TVPhaseList[] = {
2354  0x08BAED21, /* ; 0 NTSC phase */
2355  0x00E3052A, /* ; 1 PAL phase */
2356  0x9B2EE421, /* ; 2 PAL-M phase */
2357  0xBA3EF421, /* ; 3 PAL-N phase */
2358  0xA7A28B1E, /* ; 4 NTSC 1024x768 */
2359  0xE00A831E, /* ; 5 PAL-M 1024x768 */
2360  0x00000000, /* ; 6 reserved */
2361  0x00000000, /* ; 7 reserved */
2362  0xD67BF021, /* ; 8 NTSC phase */
2363  0xE986092A, /* ; 9 PAL phase */
2364  0xA4EFE621, /* ; A PAL-M phase */
2365  0x4694F621, /* ; B PAL-N phase */
2366  0x8BDE711C, /* ; C NTSC 1024x768 */
2367  0xE00A831E /* ; D PAL-M 1024x768 */
2368 };
2369 
2370 static unsigned char NTSCYFilter1[] = {
2371  0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2372  0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2373  0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
2374  0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
2375  0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2376  0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2377  0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
2378 };
2379 
2380 static unsigned char PALYFilter1[] = {
2381  0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2382  0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2383  0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
2384  0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
2385  0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2386  0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
2387  0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
2388 };
2389 
2390 static unsigned char xgifb_palmn_yfilter1[] = {
2391  0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2392  0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2393  0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
2394  0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
2395  0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2396  0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2397  0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
2398  0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
2399 };
2400 
2401 static unsigned char xgifb_yfilter2[] = {
2402  0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
2403  0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
2404  0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
2405  0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
2406  0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
2407  0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
2408  0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
2409  0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
2410 };
2411 
2412 static unsigned char XGI_NTSC1024AdjTime[] = {
2413  0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
2414  0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
2415  0x58, 0xe4, 0x73, 0xd0, 0x13
2416 };
2417 
2418 static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
2419  {0, {
2420  0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
2421  0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
2422  0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
2423  0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
2424  0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
2425  0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
2426  0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
2427  0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
2428  }
2429  }
2430 };
2431 
2432 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
2433  {600, {
2434  0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2435  0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2436  0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2437  0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2438  0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2439  0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2440  0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2441  0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
2442  }
2443  },
2444  {768, {
2445  0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
2446  0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
2447  0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
2448  0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
2449  0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
2450  0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
2451  0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
2452  0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
2453  }
2454  },
2455  {0xFFFF, {
2456  0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
2457  0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
2458  0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
2459  0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2460  0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2461  0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
2462  0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
2463  0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
2464  }
2465  }
2466 };
2467 
2468 static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
2469  {480, {
2470  0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
2471  0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
2472  0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
2473  0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2474  0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2475  0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
2476  0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
2477  0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
2478  }
2479  },
2480  {600, {
2481  0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
2482  0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
2483  0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
2484  0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
2485  0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
2486  0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
2487  0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
2488  0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
2489  }
2490  },
2491  {0xFFFF, {
2492  0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
2493  0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
2494  0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
2495  0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
2496  0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
2497  0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
2498  0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
2499  0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
2500  }
2501  }
2502 };
2503 
2504 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
2505  {0xFFFF, {
2506  0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2507  0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2508  0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2509  0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2510  0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2511  0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2512  0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2513  0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */
2514  }
2515  }
2516 };
2517 #endif