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