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