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