1 /* SPDX-License-Identifier: GPL-2.0 */
4 static const struct SiS_MCLKData XGI340New_MCLKData[] = {
5 {0x16, 0x01, 0x01, 166},
6 {0x19, 0x02, 0x01, 124},
7 {0x7C, 0x08, 0x01, 200},
10 static const struct SiS_MCLKData XGI27New_MCLKData[] = {
11 {0x5c, 0x23, 0x01, 166},
12 {0x19, 0x02, 0x01, 124},
13 {0x7C, 0x08, 0x80, 200},
16 const struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
17 {0x5c, 0x23, 0x01, 166},
18 {0x55, 0x84, 0x01, 123},
19 {0x7C, 0x08, 0x01, 200},
22 static const unsigned char XG27_SR18[3] = {
23 0x32, 0x32, 0x42 /* SR18 */
26 static const unsigned char XGI340_SR18[3] = {
27 0x31, 0x42, 0x42 /* SR18 */
30 static const unsigned char XGI340_cr41[24][3] = {
31 {0x20, 0x50, 0x60}, /* 0 CR41 */
32 {0xc4, 0x40, 0x84}, /* 1 CR8A */
33 {0xc4, 0x40, 0x84}, /* 2 CR8B */
36 {0x90, 0x90, 0x24}, /* 5 CR68 */
37 {0x77, 0x77, 0x44}, /* 6 CR69 */
38 {0x77, 0x77, 0x44}, /* 7 CR6A */
39 {0xff, 0xff, 0xff}, /* 8 CR6D */
40 {0x55, 0x55, 0x55}, /* 9 CR80 */
41 {0x00, 0x00, 0x00}, /* 10 CR81 */
42 {0x88, 0xa8, 0x48}, /* 11 CR82 */
43 {0x44, 0x44, 0x77}, /* 12 CR85 */
44 {0x48, 0x48, 0x88}, /* 13 CR86 */
45 {0x54, 0x54, 0x44}, /* 14 CR90 */
46 {0x54, 0x54, 0x44}, /* 15 CR91 */
47 {0x0a, 0x0a, 0x07}, /* 16 CR92 */
48 {0x44, 0x44, 0x44}, /* 17 CR93 */
49 {0x10, 0x10, 0x0A}, /* 18 CR94 */
50 {0x11, 0x11, 0x0a}, /* 19 CR95 */
51 {0x05, 0x05, 0x05}, /* 20 CR96 */
52 {0xf0, 0xf0, 0xf0}, /* 21 CRC3 */
53 {0x05, 0x00, 0x02}, /* 22 CRC4 */
54 {0x00, 0x00, 0x00} /* 23 CRC5 */
57 static const unsigned char XGI27_cr41[24][3] = {
58 {0x20, 0x40, 0x60}, /* 0 CR41 */
59 {0xC4, 0x40, 0x84}, /* 1 CR8A */
60 {0xC4, 0x40, 0x84}, /* 2 CR8B */
61 {0xB3, 0x13, 0xa4}, /* 3 CR40[7],
65 {0xf0, 0xf5, 0xf0}, /* 4 CR59 */
66 {0x90, 0x90, 0x24}, /* 5 CR68 */
67 {0x77, 0x67, 0x44}, /* 6 CR69 */
68 {0x77, 0x77, 0x44}, /* 7 CR6A */
69 {0xff, 0xff, 0xff}, /* 8 CR6D */
70 {0x55, 0x55, 0x55}, /* 9 CR80 */
71 {0x00, 0x00, 0x00}, /* 10 CR81 */
72 {0x88, 0xcc, 0x48}, /* 11 CR82 */
73 {0x44, 0x88, 0x77}, /* 12 CR85 */
74 {0x48, 0x88, 0x88}, /* 13 CR86 */
75 {0x54, 0x32, 0x44}, /* 14 CR90 */
76 {0x54, 0x33, 0x44}, /* 15 CR91 */
77 {0x0a, 0x07, 0x07}, /* 16 CR92 */
78 {0x44, 0x63, 0x44}, /* 17 CR93 */
79 {0x10, 0x14, 0x0A}, /* 18 CR94 */
80 {0x11, 0x0B, 0x0C}, /* 19 CR95 */
81 {0x05, 0x22, 0x05}, /* 20 CR96 */
82 {0xf0, 0xf0, 0x00}, /* 21 CRC3 */
83 {0x05, 0x00, 0x02}, /* 22 CRC4 */
84 {0x00, 0x00, 0x00} /* 23 CRC5 */
87 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
88 const unsigned char XGI340_AGPReg[12] = {
89 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
90 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
93 const 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}, /* mode 1600x1200
106 * add CRT2MODE [2003/10/07]
108 {0x3d, 0x0e7d, 0x070a, 0x0a, 0x00, 0x22}, /* mode 1600x1200
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}, /* mode 1600x1200
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}
168 static const struct SiS_StandTable_S XGI330_StandTable = {
170 0x00, 0x00, 0x00, 0x0000,
171 {0x21, 0x0f, 0x00, 0x0e}, /* 0x21 = 0x01 | (0x20 = screen off) */
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,
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,
184 static const struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
185 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
186 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
187 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
188 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
189 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
190 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
191 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
192 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
193 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
194 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
195 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
196 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
197 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
198 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
199 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
200 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
201 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
204 const struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
205 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
206 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
207 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
208 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
209 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
210 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
211 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
212 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
213 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
214 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
215 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
216 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
217 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
218 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
219 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
220 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
221 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
222 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
223 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
224 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
225 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
226 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
227 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
228 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
229 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
230 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
231 /* 0D (800x600,56Hz) */
232 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
234 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} },
235 /* 0E (800x600,60Hz) */
236 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
238 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} },
239 /* 0F (800x600,72Hz) */
240 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00,
242 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} },
243 /* 10 (800x600,75Hz) */
244 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
246 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} },
247 /* 11 (800x600,85Hz) */
248 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
249 /* (VCLK 56.25MHz) */
250 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} },
251 /* 12 (800x600,100Hz) */
252 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60,
254 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} },
255 /* 13 (800x600,120Hz) */
256 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60,
257 /* (VCLK 79.411MHz) */
258 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} },
259 /* 14 (800x600,160Hz) */
260 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60,
261 /* (VCLK 105.822MHz) */
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} }, /* 0x15 */
265 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
266 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
267 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
268 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
269 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
270 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
271 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
272 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
273 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
274 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
275 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
276 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
277 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
278 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
279 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
280 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
281 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
282 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
283 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
284 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
285 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
286 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
287 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
288 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
289 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
290 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
291 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
292 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
293 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
294 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
295 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
296 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
297 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
298 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
299 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
300 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
301 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
302 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
303 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
304 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
305 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
306 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
307 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
308 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
309 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
310 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
311 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
312 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
313 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
314 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
315 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
316 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
317 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
318 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
319 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
320 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
321 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
322 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
323 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
324 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
325 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
326 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
327 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
328 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
329 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
330 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
331 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
332 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
333 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
334 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
335 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
336 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
337 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
338 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
339 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
340 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
341 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
342 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
343 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
344 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
345 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
346 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
347 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
348 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
349 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
350 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
351 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
352 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
353 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
354 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
355 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
356 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
357 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
358 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
359 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
360 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
361 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
362 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
363 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
364 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
367 /*add for new UNIVGABIOS*/
368 static 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}, /*chiawenfordot9->dot8*/
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}
378 static 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}
394 static const struct SiS_LCDData XGI_CetLCD1024x768Data[] = {
395 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
398 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
399 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
400 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
401 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
402 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
403 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
406 static 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}
417 static 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}
428 static const struct SiS_LCDData XGI_CetLCD1280x1024Data[] = {
429 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
432 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
433 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
434 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
435 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
436 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
437 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
438 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
439 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
442 static const struct SiS_LCDData xgifb_lcd_1400x1050[] = {
443 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
446 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
447 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
448 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
449 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
450 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
451 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
452 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
455 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
458 static const struct SiS_LCDData XGI_ExtLCD1600x1200Data[] = {
459 {4, 1, 1620, 420, 2160, 1250}, /* 00 (320x200,320x400,
462 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
463 {4, 1, 1620, 420, 2160, 1250}, /* 02 (360x400,720x400)*/
464 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
465 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
466 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
467 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
468 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
469 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
470 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
473 static const struct SiS_LCDData XGI_StLCD1600x1200Data[] = {
474 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
477 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
478 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
479 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
480 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
481 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
482 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
483 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
484 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
485 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
488 #define XGI_CetLCD1400x1050Data XGI_CetLCD1280x1024Data
490 static 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}
501 static const struct SiS_LCDData XGI_ExtLCD1024x768x75Data[] = {
502 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
505 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
506 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
507 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
508 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
509 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
510 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
513 static const struct SiS_LCDData XGI_CetLCD1024x768x75Data[] = {
514 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
517 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
518 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
519 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
520 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
521 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
522 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
525 static const struct SiS_LCDData xgifb_lcd_1280x1024x75[] = {
526 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
529 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
530 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
531 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
532 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
533 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
534 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
535 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
538 #define XGI_CetLCD1280x1024x75Data XGI_CetLCD1280x1024Data
540 static const struct SiS_LCDData XGI_NoScalingDatax75[] = {
541 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
544 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
545 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
546 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
547 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
548 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
549 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
550 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
551 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)*/
552 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
553 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
556 static const struct XGI_LCDDesStruct XGI_ExtLCDDes1024x768Data[] = {
557 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
558 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
559 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
560 {9, 1057, 0, 771}, /* ; 03 (720x350) */
561 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
562 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
563 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
566 static const struct XGI_LCDDesStruct XGI_StLCDDes1024x768Data[] = {
567 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
568 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
569 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
570 {9, 1057, 686, 651}, /* ; 03 (720x350) */
571 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
572 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
573 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
576 static const struct XGI_LCDDesStruct XGI_CetLCDDes1024x768Data[] = {
577 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
578 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
579 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
580 {1152, 856, 597, 562}, /* ; 03 (720x350) */
581 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
582 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
583 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
586 static const struct XGI_LCDDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
587 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
588 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
589 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
590 {18, 1346, 926, 865}, /* 03 (720x350) */
591 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
592 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
593 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
594 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
597 static const struct XGI_LCDDesStruct XGI_StLCDDLDes1280x1024Data[] = {
598 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
599 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
600 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
601 {18, 1346, 917, 854}, /* 03 (720x350) */
602 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
603 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
604 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
605 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
608 static const struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
609 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
610 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
611 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
612 {1368, 1008, 729, 688}, /* 03 (720x350) */
613 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
614 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
615 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
616 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
619 static const struct XGI_LCDDesStruct XGI_ExtLCDDes1280x1024Data[] = {
620 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
621 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
622 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
623 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
624 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
625 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
626 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
627 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
630 static const struct XGI_LCDDesStruct XGI_StLCDDes1280x1024Data[] = {
631 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
632 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
633 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
634 {9, 1337, 917, 854}, /* ; 03 (720x350) */
635 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
636 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
637 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
638 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
641 static const struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024Data[] = {
642 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
643 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
644 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
645 {1368, 1008, 729, 688}, /* 03 (720x350) */
646 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
647 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
648 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
649 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
652 static const struct XGI_LCDDesStruct xgifb_lcddldes_1400x1050[] = {
653 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
654 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
655 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
656 {18, 1464, 0, 1051}, /* 03 (720x350) */
657 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
658 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
659 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
660 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
661 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
664 static const struct XGI_LCDDesStruct xgifb_lcddes_1400x1050[] = {
665 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
666 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
667 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
668 {9, 1455, 0, 1051}, /* 03 (720x350) */
669 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
670 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
671 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
672 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
673 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
676 static const struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data[] = {
677 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
678 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
679 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
680 {1308, 1068, 781, 766}, /* 03 (720x350) */
681 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
682 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
683 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
684 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
685 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
688 static const struct XGI_LCDDesStruct XGI_CetLCDDes1400x1050Data2[] = {
689 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
690 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
691 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
692 {0, 1448, 0, 1051}, /* 03 (720x350) */
693 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
696 static const struct XGI_LCDDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
697 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
698 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
699 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
700 {18, 1682, 0, 1201}, /* 03 (720x350) */
701 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
702 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
703 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
704 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
705 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
706 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
709 static const struct XGI_LCDDesStruct XGI_StLCDDLDes1600x1200Data[] = {
710 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
711 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
712 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
713 {18, 1682, 1083, 1034}, /* 03 (720x350) */
714 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
715 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
716 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
717 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
718 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
719 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
722 static const struct XGI_LCDDesStruct XGI_ExtLCDDes1600x1200Data[] = {
723 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
724 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
725 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
726 {9, 1673, 0, 1201}, /* 03 (720x350) */
727 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
728 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
729 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
730 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
731 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
732 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
735 static const struct XGI_LCDDesStruct XGI_StLCDDes1600x1200Data[] = {
736 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
737 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
738 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
739 {9, 1673, 1083, 1034}, /* 03 (720x350) */
740 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
741 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
742 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
743 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
744 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
745 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
748 static const struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
749 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
752 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
753 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
754 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
755 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
756 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
757 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
758 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
759 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
760 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
761 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
764 /* ;;1024x768x75Hz */
765 static const struct XGI_LCDDesStruct xgifb_lcddes_1024x768x75[] = {
766 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
767 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
768 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
769 {9, 1049, 0, 769}, /* ; 03 (720x350) */
770 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
771 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
772 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
775 /* ;;1024x768x75Hz */
776 static const struct XGI_LCDDesStruct XGI_CetLCDDes1024x768x75Data[] = {
777 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
778 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
779 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
780 {1192, 896, 597, 562}, /* ; 03 (720x350) */
781 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
782 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
783 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
786 /* ;;1280x1024x75Hz */
787 static const struct XGI_LCDDesStruct xgifb_lcddldes_1280x1024x75[] = {
788 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
789 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
790 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
791 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
792 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
793 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
794 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
795 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
799 static const struct XGI_LCDDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
800 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
801 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
802 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
803 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
804 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
805 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
806 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
807 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
810 /* ;;1280x1024x75Hz */
811 static const struct XGI_LCDDesStruct xgifb_lcddes_1280x1024x75[] = {
812 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
813 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
814 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
815 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
816 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
817 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
818 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
819 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
823 static const struct XGI_LCDDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
824 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
825 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
826 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
827 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
828 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
829 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
830 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
831 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
834 /* Scaling LCD 75Hz */
835 static const struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
836 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
839 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
840 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
841 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
842 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
843 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
844 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
845 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
846 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)*/
847 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
848 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
851 static 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}
860 static 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}, /*301b*/
868 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
871 static 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}
879 static 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}, /*301b*/
887 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
888 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
891 static const struct SiS_TVData XGI_St1HiTVData[] = {
892 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
895 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
896 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
897 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
898 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
899 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
902 static const struct SiS_TVData XGI_St2HiTVData[] = {
903 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
906 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
907 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
908 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
909 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
910 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
913 static const struct SiS_TVData XGI_ExtHiTVData[] = {
914 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
917 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
918 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
919 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
920 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
921 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
922 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
923 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
924 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
925 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
926 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
929 static 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}, /*301b*/
937 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
938 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
941 static 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},
949 static 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}, /*301b*/
957 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
958 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
961 static 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},
969 static const struct SiS_TVData XGI_ExtYPbPr750pData[] = {
970 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
973 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
974 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
975 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
976 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
977 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
978 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
979 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
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}
985 static 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},
993 static 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
1004 static 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
1015 static 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
1027 static 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
1039 static 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
1051 static 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
1063 static 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
1075 static 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
1087 static 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
1099 static 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
1110 static 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
1121 static 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
1132 static 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
1143 static 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
1154 static const struct SiS_LVDSData XGI_LVDS1024x768Data_1[] = {
1155 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1156 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1157 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1158 {1040, 388, 1344, 806}, /* 03 (720x350) */
1159 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1160 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1161 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
1164 static 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}
1176 static 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}
1187 #define XGI_LVDS1280x1024Data_2 XGI_LVDS1024x768Data_2
1189 static 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}
1201 static 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}
1213 /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1214 static const struct SiS_LVDSData XGI_LVDS1600x1200Data_1[] = {
1215 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1216 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1217 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1218 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1219 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1220 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1221 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1222 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1223 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1224 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
1227 static const struct SiS_LVDSData XGI_LVDSNoScalingData[] = {
1228 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1229 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1230 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1231 { 800, 449, 800, 449}, /* 03 (720x350) */
1232 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1233 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1234 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1235 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1236 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) */
1237 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1238 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
1241 static const struct SiS_LVDSData XGI_LVDS1024x768Data_1x75[] = {
1242 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1243 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1244 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1245 {1040, 388, 1312, 800}, /* 03 (720x350) */
1246 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1247 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1248 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
1251 static const struct SiS_LVDSData XGI_LVDS1024x768Data_2x75[] = {
1252 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1253 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1254 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1255 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1256 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1257 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1258 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
1261 static const struct SiS_LVDSData XGI_LVDS1280x1024Data_1x75[] = {
1262 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1263 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1264 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1265 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1266 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1267 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1268 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1269 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1272 static const struct SiS_LVDSData XGI_LVDS1280x1024Data_2x75[] = {
1273 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1274 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1275 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1276 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1277 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1278 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1279 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1280 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1283 static const struct SiS_LVDSData XGI_LVDSNoScalingDatax75[] = {
1284 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1285 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1286 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1287 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1288 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1289 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1290 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1291 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1292 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1293 * ;;[ycchen] 12/19/02
1295 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1296 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
1299 static const struct SiS_LVDSData XGI_LVDS1024x768Des_1[] = {
1300 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1301 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1302 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1303 {0, 1048, 0, 771}, /* 03 (720x350) */
1304 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1305 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1306 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
1309 static const struct SiS_LVDSData XGI_LVDS1024x768Des_2[] = {
1310 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1311 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1312 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1313 {1142, 856, 597, 562}, /* 03 (720x350) */
1314 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1315 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1316 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1319 static const struct SiS_LVDSData XGI_LVDS1024x768Des_3[] = {
1320 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1321 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1322 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1323 {320, 24, 597, 562}, /* 03 (720x350) */
1324 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
1327 static const struct SiS_LVDSData XGI_LVDS1280x1024Des_1[] = {
1328 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1329 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1330 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1331 {0, 1328, 0, 1025}, /* 03 (720x350) */
1332 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1333 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1334 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1335 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
1338 /* The Display setting for DE Mode Panel */
1339 static const struct SiS_LVDSData XGI_LVDS1280x1024Des_2[] = {
1340 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1341 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1342 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1343 {1408, 1048, 729, 688}, /* 03 (720x350) */
1344 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1345 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1346 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1347 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
1350 static const struct SiS_LVDSData XGI_LVDS1400x1050Des_1[] = {
1351 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1352 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1353 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1354 {0, 1448, 0, 1051}, /* 03 (720x350) */
1355 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1356 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1357 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1358 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1359 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1362 static const struct SiS_LVDSData XGI_LVDS1400x1050Des_2[] = {
1363 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1364 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1365 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1366 {1308, 1068, 781, 766}, /* 03 (720x350) */
1367 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1368 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1369 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1370 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1371 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1374 static const struct SiS_LVDSData XGI_LVDS1600x1200Des_1[] = {
1375 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1376 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1377 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1378 {0, 1664, 0, 1201}, /* 03 (720x350) */
1379 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1380 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1381 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1382 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1383 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1384 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
1387 static const struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1388 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1391 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1392 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1393 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1394 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1395 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1396 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1397 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1398 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)*/
1399 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1400 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
1403 /* ; 1024x768 Full-screen */
1404 static const struct SiS_LVDSData XGI_LVDS1024x768Des_1x75[] = {
1405 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1406 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1407 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1408 {0, 1040, 0, 769}, /* ; 03 (720x350) */
1409 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
1410 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
1411 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
1414 /* ; 1024x768 center-screen (Enh. Mode) */
1415 static const struct SiS_LVDSData XGI_LVDS1024x768Des_2x75[] = {
1416 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1417 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1418 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1419 {1142, 856, 597, 562}, /* 03 (720x350) */
1420 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1421 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1422 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1425 /* ; 1024x768 center-screen (St.Mode) */
1426 static const struct SiS_LVDSData XGI_LVDS1024x768Des_3x75[] = {
1427 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1428 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
1429 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
1430 {320, 24, 597, 562}, /* ; 03 (720x350) */
1431 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
1434 static const struct SiS_LVDSData XGI_LVDS1280x1024Des_1x75[] = {
1435 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1436 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
1437 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
1438 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
1439 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
1440 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
1441 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
1442 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1445 /* The Display setting for DE Mode Panel */
1446 /* Set DE as default */
1447 static const struct SiS_LVDSData XGI_LVDS1280x1024Des_2x75[] = {
1448 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1449 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
1450 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
1451 {1408, 976, 729, 688}, /* ; 03 (720x350) */
1452 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
1453 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
1454 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
1455 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1458 /* Scaling LCD 75Hz */
1459 static const struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
1460 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1463 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1464 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1465 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
1466 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1467 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1468 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1469 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1470 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz) */
1471 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1472 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
1475 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1476 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
1477 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
1478 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
1479 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
1480 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1481 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1482 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1483 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
1484 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1487 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1488 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
1489 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
1490 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
1491 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
1492 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
1493 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
1494 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
1495 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
1496 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
1497 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
1500 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1501 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
1502 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1503 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1504 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1505 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1506 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1507 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1508 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1509 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1512 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1513 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
1514 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1515 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1516 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1517 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1518 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1519 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1520 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1521 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1522 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
1525 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1526 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
1527 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
1528 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
1529 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1530 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1531 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1532 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1533 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
1534 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1535 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1536 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1539 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1540 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
1541 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
1542 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
1543 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
1544 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
1545 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1546 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1547 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
1548 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1549 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
1550 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1553 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
1554 /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1555 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
1556 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1557 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1558 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1559 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
1560 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1561 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1562 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
1563 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1564 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1565 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
1566 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
1569 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1570 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
1571 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
1572 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
1573 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
1574 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
1575 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1578 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1579 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
1580 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
1581 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
1582 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
1583 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
1584 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1587 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1588 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
1589 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
1590 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
1591 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
1592 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
1593 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
1594 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1597 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1598 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
1599 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
1600 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
1601 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
1602 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
1603 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
1604 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1607 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1608 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
1609 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
1610 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
1611 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
1612 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
1613 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
1614 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
1615 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
1618 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1619 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
1620 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
1621 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
1622 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
1623 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
1624 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
1625 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
1626 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
1629 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1630 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
1631 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
1632 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
1633 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
1634 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
1635 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
1636 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
1637 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
1638 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
1641 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1642 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
1643 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
1644 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
1645 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
1646 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1647 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
1648 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
1649 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
1650 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1653 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1654 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
1655 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
1656 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
1657 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
1658 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
1659 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
1662 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1663 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
1664 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1665 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1666 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1667 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1668 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1669 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1670 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1671 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1674 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1675 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
1676 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
1677 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
1678 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
1679 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
1680 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
1683 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1684 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
1685 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
1686 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
1687 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1688 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1689 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1690 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1691 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
1692 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
1693 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1696 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1697 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
1698 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
1699 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
1700 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
1701 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
1702 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
1703 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1706 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1707 static const struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
1708 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1709 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1710 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1711 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1712 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
1713 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
1714 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1715 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
1716 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1719 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1720 static const struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
1721 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
1722 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
1723 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
1724 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
1725 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
1726 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1729 /*add for new UNIVGABIOS*/
1730 static 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 } /* End of table */
1753 static 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 }
1777 static 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 }
1801 static 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 }
1816 static 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 }
1831 static 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 }
1848 static 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 }
1867 static 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},
1884 /* Dual link only */
1885 static const struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
1886 /* LCDCap1024x768 */
1887 {Panel_1024x768, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
1888 0x6C, 0xC3, 0x35, 0x62,
1889 0x0A, 0xC0, 0x28, 0x10},
1890 /* LCDCap1280x1024 */
1891 {Panel_1280x1024, XGI_LCDDualLink + DefaultLCDCap,
1892 0x70, 0x03, VCLK108_2_315,
1893 0x70, 0x44, 0xF8, 0x2F,
1894 0x0A, 0xC0, 0x30, 0x10},
1895 /* LCDCap1400x1050 */
1896 {Panel_1400x1050, XGI_LCDDualLink + DefaultLCDCap,
1897 0x70, 0x03, VCLK108_2_315,
1898 0x70, 0x44, 0xF8, 0x2F,
1899 0x0A, 0xC0, 0x30, 0x10},
1900 /* LCDCap1600x1200 */
1901 {Panel_1600x1200, XGI_LCDDualLink + DefaultLCDCap,
1902 0xC0, 0x03, VCLK162,
1903 0x43, 0x22, 0x70, 0x24,
1904 0x0A, 0xC0, 0x30, 0x10},
1905 /* LCDCap1024x768x75 */
1906 {Panel_1024x768x75, DefaultLCDCap, 0x60, 0, VCLK78_75,
1907 0x2B, 0x61, 0x2B, 0x61,
1908 0x0A, 0xC0, 0x28, 0x10},
1909 /* LCDCap1280x1024x75 */
1910 {Panel_1280x1024x75, XGI_LCDDualLink + DefaultLCDCap,
1911 0x90, 0x03, VCLK135_5,
1912 0x54, 0x42, 0x4A, 0x61,
1913 0x0A, 0xC0, 0x30, 0x10},
1915 {0xFF, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
1916 0x6C, 0xC3, 0x35, 0x62,
1917 0x0A, 0xC0, 0x28, 0x10}
1920 static const struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
1921 /* LCDCap1024x768 */
1922 {Panel_1024x768, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
1923 0x6C, 0xC3, 0x35, 0x62,
1924 0x0A, 0xC0, 0x28, 0x10},
1925 /* LCDCap1280x1024 */
1926 {Panel_1280x1024, DefaultLCDCap,
1927 0x70, 0x03, VCLK108_2_315,
1928 0x70, 0x44, 0xF8, 0x2F,
1929 0x0A, 0xC0, 0x30, 0x10},
1930 /* LCDCap1400x1050 */
1931 {Panel_1400x1050, DefaultLCDCap,
1932 0x70, 0x03, VCLK108_2_315,
1933 0x70, 0x44, 0xF8, 0x2F,
1934 0x0A, 0xC0, 0x30, 0x10},
1935 /* LCDCap1600x1200 */
1936 {Panel_1600x1200, DefaultLCDCap,
1937 0xC0, 0x03, VCLK162,
1938 0x5A, 0x23, 0x5A, 0x23,
1939 0x0A, 0xC0, 0x30, 0x10},
1940 /* LCDCap1024x768x75 */
1941 {Panel_1024x768x75, DefaultLCDCap, 0x60, 0, VCLK78_75,
1942 0x2B, 0x61, 0x2B, 0x61,
1943 0x0A, 0xC0, 0x28, 0x10},
1944 /* LCDCap1280x1024x75 */
1945 {Panel_1280x1024x75, DefaultLCDCap,
1946 0x90, 0x03, VCLK135_5,
1947 0x54, 0x42, 0x4A, 0x61,
1948 0x0A, 0xC0, 0x30, 0x10},
1950 {0xFF, DefaultLCDCap, 0x88, 0x06, VCLK65_315,
1951 0x6C, 0xC3, 0x35, 0x62,
1952 0x0A, 0xC0, 0x28, 0x10}
1955 const struct XGI_Ext2Struct XGI330_RefIndex[] = {
1956 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
1957 0x00, 0x10, 0x59, 320, 200},/* 00 */
1958 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
1959 0x00, 0x10, 0x00, 320, 400},/* 01 */
1960 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
1961 0x04, 0x20, 0x50, 320, 240},/* 02 */
1962 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
1963 0x05, 0x32, 0x51, 400, 300},/* 03 */
1964 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
1965 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
1966 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
1967 0x00, 0x14, 0x2f, 640, 400},/* 05 */
1968 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
1969 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
1970 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
1971 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
1972 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
1973 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
1974 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
1975 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
1976 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
1977 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
1978 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
1979 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
1980 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
1981 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
1982 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
1983 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
1984 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
1985 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
1986 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
1987 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
1988 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
1989 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
1990 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
1991 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
1992 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
1993 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
1994 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
1995 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
1996 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
1997 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
1998 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
1999 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
2000 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
2001 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2002 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
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},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2007 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
2008 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2009 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
2010 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2011 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
2012 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2013 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
2014 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2015 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
2016 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2017 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
2018 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2019 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
2020 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2021 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
2022 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2023 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
2024 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2025 /* 22 1600x1200x60Hz */
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},/* 23 1600x1200x65Hz */
2030 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
2031 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2032 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
2033 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2034 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
2035 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2036 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
2037 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2038 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
2039 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2040 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
2041 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2042 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
2043 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2044 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
2045 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2046 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
2047 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2048 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
2049 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2050 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
2051 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2052 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
2053 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2054 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
2055 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2056 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
2057 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2058 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
2059 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2060 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
2061 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2062 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2063 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
2064 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2065 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
2066 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2067 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
2068 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2069 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2070 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
2071 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2072 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
2073 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2074 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
2075 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2076 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2077 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
2078 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2079 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
2080 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2081 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
2082 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2083 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
2084 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2085 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
2086 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2087 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
2088 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2089 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
2090 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2091 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
2092 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2093 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
2094 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2095 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
2096 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2097 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
2098 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2099 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
2100 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2101 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
2102 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2103 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
2104 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2105 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
2106 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2109 static const unsigned char XGI330_ScreenOffset[] = {
2110 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2111 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2115 static const struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
2125 {1280, 1024, 8, 16},
2126 {1600, 1200, 8, 16},
2127 {1920, 1440, 8, 16},
2128 {2048, 1536, 8, 16},
2137 {1400, 1050, 8, 16},
2141 const struct SiS_VCLKData XGI_VCLKData[] = {
2142 /* SR2B,SR2C,SR2D */
2143 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2144 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2145 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2146 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2147 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2148 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2149 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2150 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2151 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2152 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2153 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2154 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2155 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2156 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2157 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2158 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2159 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2160 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2161 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2162 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2163 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2164 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2165 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2166 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2167 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2168 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2169 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2170 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2171 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2172 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2173 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2174 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2175 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2176 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2177 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2178 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2179 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2180 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2181 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2182 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2183 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2184 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2185 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2186 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2187 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2188 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2189 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2190 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2191 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2192 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2193 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2194 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2195 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2196 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2197 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2198 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2199 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2200 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2201 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2202 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2203 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2204 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2205 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2206 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2207 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2208 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2209 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2210 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2211 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2212 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2213 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2214 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2215 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2216 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2217 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2218 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2219 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2220 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2221 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2222 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2223 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2224 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2225 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2226 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2227 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2228 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2229 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2230 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2231 {0xFF, 0x00, 0} /* End mark */
2234 static const struct SiS_VBVCLKData XGI_VBVCLKData[] = {
2235 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2236 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2237 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2238 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2239 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2240 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2241 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2242 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2243 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2244 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2245 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2246 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2247 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2248 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2249 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2250 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2251 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2252 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2253 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2254 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2255 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2256 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2257 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2258 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2259 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2260 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2261 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2262 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2263 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2264 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2265 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2266 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2267 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2268 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2269 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2270 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2271 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2272 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2273 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2274 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2275 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2276 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2277 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2278 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2279 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2280 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2281 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2282 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2283 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2284 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2285 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2286 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2287 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2288 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2289 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2290 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2291 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2292 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2293 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2294 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2295 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2296 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2297 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2298 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2299 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2300 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2301 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2302 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2303 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2304 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2305 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2306 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2307 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2308 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2309 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2310 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2311 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2312 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2313 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2314 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2315 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2316 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2317 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2318 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2319 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2320 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2321 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2322 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2323 {0xFF, 0x00, 0} /* End mark */
2326 #define XGI301TVDelay 0x22
2327 #define XGI301LCDDelay 0x12
2329 static const unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
2330 0x04, /* ; 0 Adaptive */
2331 0x00, /* ; 1 new anti-flicker ? */
2333 0x04, /* ; 0 Adaptive */
2334 0x08, /* ; 1 new anti-flicker ? */
2337 0x00 /* ; 1 new anti-flicker ? */
2340 static const unsigned char TVEdgeList[] = {
2341 0x00, /* ; 0 NTSC No Edge enhance */
2342 0x04, /* ; 1 NTSC Adaptive Edge enhance */
2343 0x00, /* ; 0 PAL No Edge enhance */
2344 0x04, /* ; 1 PAL Adaptive Edge enhance */
2345 0x00, /* ; 0 HiTV */
2349 static const unsigned long TVPhaseList[] = {
2350 0x08BAED21, /* ; 0 NTSC phase */
2351 0x00E3052A, /* ; 1 PAL phase */
2352 0x9B2EE421, /* ; 2 PAL-M phase */
2353 0xBA3EF421, /* ; 3 PAL-N phase */
2354 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
2355 0xE00A831E, /* ; 5 PAL-M 1024x768 */
2356 0x00000000, /* ; 6 reserved */
2357 0x00000000, /* ; 7 reserved */
2358 0xD67BF021, /* ; 8 NTSC phase */
2359 0xE986092A, /* ; 9 PAL phase */
2360 0xA4EFE621, /* ; A PAL-M phase */
2361 0x4694F621, /* ; B PAL-N phase */
2362 0x8BDE711C, /* ; C NTSC 1024x768 */
2363 0xE00A831E /* ; D PAL-M 1024x768 */
2366 static const unsigned char NTSCYFilter1[] = {
2367 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2368 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2369 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
2370 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
2371 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2372 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2373 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
2376 static const unsigned char PALYFilter1[] = {
2377 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2378 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2379 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
2380 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
2381 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2382 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
2383 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
2386 static const unsigned char xgifb_palmn_yfilter1[] = {
2387 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2388 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2389 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
2390 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
2391 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2392 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2393 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
2394 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
2397 static const unsigned char xgifb_yfilter2[] = {
2398 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
2399 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
2400 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
2401 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
2402 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
2403 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
2404 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
2405 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
2408 static 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
2414 static const struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
2416 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
2417 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
2418 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
2419 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
2420 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
2421 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
2422 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
2423 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
2428 static const struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
2430 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2431 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2432 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2433 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2434 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2435 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2436 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2437 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
2441 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
2442 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
2443 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
2444 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
2445 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
2446 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
2447 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
2448 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
2452 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
2453 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
2454 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
2455 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2456 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2457 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
2458 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
2459 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
2464 static const struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
2466 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
2467 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
2468 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
2469 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2470 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2471 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
2472 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
2473 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
2477 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
2478 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
2479 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
2480 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
2481 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
2482 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
2483 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
2484 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
2488 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
2489 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
2490 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
2491 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
2492 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
2493 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
2494 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
2495 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
2500 static const struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
2502 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2503 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2504 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2505 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2506 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2507 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2508 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2509 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */