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