1 /* yilin modify for xgi20 */
2 static struct SiS_MCLKData XGI340New_MCLKData[] = {
3 {0x16, 0x01, 0x01, 166},
4 {0x19, 0x02, 0x01, 124},
5 {0x7C, 0x08, 0x01, 200},
6 {0x79, 0x06, 0x01, 250},
7 {0x29, 0x01, 0x81, 301},
8 {0x5c, 0x23, 0x01, 166},
9 {0x5c, 0x23, 0x01, 166},
10 {0x5c, 0x23, 0x01, 166}
13 static struct SiS_MCLKData XGI27New_MCLKData[] = {
14 {0x5c, 0x23, 0x01, 166},
15 {0x19, 0x02, 0x01, 124},
16 {0x7C, 0x08, 0x80, 200},
17 {0x79, 0x06, 0x80, 250},
18 {0x29, 0x01, 0x81, 300},
19 {0x5c, 0x23, 0x01, 166},
20 {0x5c, 0x23, 0x01, 166},
21 {0x5c, 0x23, 0x01, 166}
24 /* yilin modify for xgi20 */
25 static struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
26 {0x5c, 0x23, 0x01, 166},
27 {0x55, 0x84, 0x01, 123},
28 {0x7C, 0x08, 0x01, 200},
29 {0x79, 0x06, 0x01, 250},
30 {0x29, 0x01, 0x81, 301},
31 {0x5c, 0x23, 0x01, 166},
32 {0x5c, 0x23, 0x01, 166},
33 {0x5c, 0x23, 0x01, 166}
36 static unsigned char XG27_SR13[4][8] = {
37 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
38 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
39 {0x32, 0x32, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
40 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
43 static unsigned char XGI340_SR13[4][8] = {
44 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
45 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
46 {0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
47 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
50 static unsigned char XGI340_cr41[24][8] = {
51 {0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
52 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
53 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
54 {0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
55 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
56 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
57 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
58 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
59 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
60 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
61 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
62 {0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
63 {0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
64 {0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
65 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
66 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
67 {0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
68 {0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
69 {0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
70 {0x11, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
71 {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
72 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
73 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
74 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
77 static unsigned char XGI27_cr41[24][8] = {
78 {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
79 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
80 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
81 {0xB3, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
84 {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
85 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
86 {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
87 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
88 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
89 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
90 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
91 {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
92 {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
93 {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
94 {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
95 {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
96 {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
97 {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
98 {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
99 {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
100 {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
101 {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
102 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
103 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
106 static unsigned char XGI340_CR6B[8][4] = {
107 {0xaa, 0xaa, 0xaa, 0xaa},
108 {0xaa, 0xaa, 0xaa, 0xaa},
109 {0xaa, 0xaa, 0xaa, 0xaa},
110 {0x00, 0x00, 0x00, 0x00},
111 {0x00, 0x00, 0x00, 0x00},
112 {0x00, 0x00, 0x00, 0x00},
113 {0x00, 0x00, 0x00, 0x00},
114 {0x00, 0x00, 0x00, 0x00}
117 static unsigned char XGI340_CR6E[8][4];
119 static unsigned char XGI340_CR6F[8][32];
121 static unsigned char XGI340_CR89[8][2];
123 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
124 static unsigned char XGI340_AGPReg[12] = {
125 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
126 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
129 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
131 static unsigned char XGI330_sr25[2];
132 static unsigned char XGI330_sr31 = 0xc0;
133 static unsigned char XGI330_sr32 = 0x11;
134 static unsigned char XGI330_SR33;
135 static unsigned char XG40_CRCF = 0x13;
136 static unsigned char XG40_DRAMTypeDefinition = 0xFF ;
138 static struct XGI_StStruct XGI330_SModeIDTable[] = {
139 {0x01, 0x9208, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00},
140 {0x01, 0x1210, 0x14, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00},
141 {0x01, 0x1010, 0x17, 0x02, 0x11, 0x00, 0x00, 0x01, 0x01},
142 {0x03, 0x8208, 0x03, 0x00, 0x14, 0x00, 0x00, 0x01, 0x02},
143 {0x03, 0x0210, 0x16, 0x01, 0x04, 0x01, 0x00, 0x01, 0x02},
144 {0x03, 0x0010, 0x18, 0x02, 0x15, 0x00, 0x00, 0x01, 0x03},
145 {0x05, 0x9209, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
146 {0x06, 0x8209, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
147 {0x07, 0x0000, 0x07, 0x03, 0x05, 0x03, 0x00, 0x01, 0x03},
148 {0x07, 0x0000, 0x19, 0x02, 0x15, 0x02, 0x00, 0x01, 0x03},
149 {0x0d, 0x920a, 0x0d, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
150 {0x0e, 0x820a, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
151 {0x0f, 0x0202, 0x11, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
152 {0x10, 0x0212, 0x12, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
153 {0x11, 0x0212, 0x1a, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
154 {0x12, 0x0212, 0x1b, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
155 {0x13, 0x021b, 0x1c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04},
156 {0x12, 0x0010, 0x18, 0x02, 0x24, 0x02, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
158 {0x12, 0x0210, 0x18, 0x01, 0x24, 0x01, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
160 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
164 static struct XGI_ExtStruct XGI330_EModeIDTable[] = {
165 {0x6a, 0x2212, 0x0407, 0x3a81, 0x0102, 0x08,
166 0x07, 0x00, 0x00, 0x07, 0x0e},
167 {0x2e, 0x0a1b, 0x0306, 0x3a57, 0x0101, 0x08,
168 0x06, 0x00, 0x00, 0x05, 0x06},
169 {0x2f, 0x0a1b, 0x0305, 0x3a50, 0x0100, 0x08,
170 0x05, 0x00, 0x00, 0x05, 0x05},
171 {0x30, 0x2a1b, 0x0407, 0x3a81, 0x0103, 0x08,
172 0x07, 0x00, 0x00, 0x07, 0x0e},
173 {0x31, 0x0a1b, 0x030d, 0x3b85, 0x0000, 0x08,
174 0x0d, 0x00, 0x00, 0x06, 0x3d},
175 {0x32, 0x0a1b, 0x0a0e, 0x3b8c, 0x0000, 0x08,
176 0x0e, 0x00, 0x00, 0x06, 0x3e},
177 {0x33, 0x0a1d, 0x0a0d, 0x3b85, 0x0000, 0x08,
178 0x0d, 0x00, 0x00, 0x06, 0x3d},
179 {0x34, 0x2a1d, 0x0a0e, 0x3b8c, 0x0000, 0x08,
180 0x0e, 0x00, 0x00, 0x06, 0x3e},
181 {0x35, 0x0a1f, 0x0a0d, 0x3b85, 0x0000, 0x08,
182 0x0d, 0x00, 0x00, 0x06, 0x3d},
183 {0x36, 0x2a1f, 0x0a0e, 0x3b8c, 0x0000, 0x08,
184 0x0e, 0x00, 0x00, 0x06, 0x3e},
185 {0x37, 0x0212, 0x0508, 0x3aab, 0x0104, 0x08,
186 0x08, 0x00, 0x00, 0x00, 0x16},
187 {0x38, 0x0a1b, 0x0508, 0x3aab, 0x0105, 0x08,
188 0x08, 0x00, 0x00, 0x00, 0x16},
189 {0x3a, 0x0e3b, 0x0609, 0x3adc, 0x0107, 0x08,
190 0x09, 0x00, 0x00, 0x00, 0x1e},
191 {0x3c, 0x0e3b, 0x070a, 0x3af2, 0x0130, 0x08,
192 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
193 add CRT2MODE [2003/10/07] */
194 {0x3d, 0x0e7d, 0x070a, 0x3af2, 0x0131, 0x08,
195 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
197 {0x40, 0x9a1c, 0x0000, 0x3a34, 0x010d, 0x08,
198 0x00, 0x00, 0x00, 0x04, 0x00},
199 {0x41, 0x9a1d, 0x0000, 0x3a34, 0x010e, 0x08,
200 0x00, 0x00, 0x00, 0x04, 0x00}, /* ModeIdIndex = 0x10 */
201 {0x43, 0x0a1c, 0x0306, 0x3a57, 0x0110, 0x08,
202 0x06, 0x00, 0x00, 0x05, 0x06},
203 {0x44, 0x0a1d, 0x0306, 0x3a57, 0x0111, 0x08,
204 0x06, 0x00, 0x00, 0x05, 0x06},
205 {0x46, 0x2a1c, 0x0407, 0x3a81, 0x0113, 0x08,
206 0x07, 0x00, 0x00, 0x07, 0x0e},
207 {0x47, 0x2a1d, 0x0407, 0x3a81, 0x0114, 0x08,
208 0x07, 0x00, 0x00, 0x07, 0x0e},
209 {0x49, 0x0a3c, 0x0508, 0x3aab, 0x0116, 0x08,
210 0x08, 0x00, 0x00, 0x00, 0x16},
211 {0x4a, 0x0a3d, 0x0508, 0x3aab, 0x0117, 0x08,
212 0x08, 0x00, 0x00, 0x00, 0x16},
213 {0x4c, 0x0e7c, 0x0609, 0x3adc, 0x0119, 0x08,
214 0x09, 0x00, 0x00, 0x00, 0x1e},
215 {0x4d, 0x0e7d, 0x0609, 0x3adc, 0x011a, 0x08,
216 0x09, 0x00, 0x00, 0x00, 0x1e},
217 {0x50, 0x9a1b, 0x0001, 0x3a3b, 0x0132, 0x08,
218 0x01, 0x00, 0x00, 0x04, 0x02},
219 {0x51, 0xba1b, 0x0103, 0x3a42, 0x0133, 0x08,
220 0x03, 0x00, 0x00, 0x07, 0x03},
221 {0x52, 0x9a1b, 0x0204, 0x3a49, 0x0134, 0x08,
222 0x04, 0x00, 0x00, 0x00, 0x04},
223 {0x56, 0x9a1d, 0x0001, 0x3a3b, 0x0135, 0x08,
224 0x01, 0x00, 0x00, 0x04, 0x02},
225 {0x57, 0xba1d, 0x0103, 0x3a42, 0x0136, 0x08,
226 0x03, 0x00, 0x00, 0x07, 0x03},
227 {0x58, 0x9a1d, 0x0204, 0x3a49, 0x0137, 0x08,
228 0x04, 0x00, 0x00, 0x00, 0x04},
229 {0x59, 0x9a1b, 0x0000, 0x3a34, 0x0138, 0x08,
230 0x00, 0x00, 0x00, 0x04, 0x00},
231 {0x5A, 0x021b, 0x0014, 0x3b83, 0x0138, 0x08,
232 0x01, 0x00, 0x00, 0x04, 0x3f}, /* ModeIdIndex = 0x20 */
233 {0x5B, 0x0a1d, 0x0014, 0x3b83, 0x0135, 0x08,
234 0x01, 0x00, 0x00, 0x04, 0x3f},
235 {0x5d, 0x0a1d, 0x0305, 0x3a50, 0x0139, 0x08,
236 0x05, 0x00, 0x00, 0x07, 0x05},
237 {0x62, 0x0a3f, 0x0306, 0x3a57, 0x013a, 0x08,
238 0x06, 0x00, 0x00, 0x05, 0x06},
239 {0x63, 0x2a3f, 0x0407, 0x3a81, 0x013b, 0x08,
240 0x07, 0x00, 0x00, 0x07, 0x0e},
241 {0x64, 0x0a7f, 0x0508, 0x3aab, 0x013c, 0x08,
242 0x08, 0x00, 0x00, 0x00, 0x16},
243 {0x65, 0x0eff, 0x0609, 0x3adc, 0x013d, 0x08,
244 0x09, 0x00, 0x00, 0x00, 0x1e},
245 {0x66, 0x0eff, 0x070a, 0x3af2, 0x013e, 0x08,
246 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
248 {0x68, 0x067b, 0x080b, 0x3b17, 0x013f, 0x08,
249 0x0b, 0x00, 0x00, 0x00, 0x29},
250 {0x69, 0x06fd, 0x080b, 0x3b17, 0x0140, 0x08,
251 0x0b, 0x00, 0x00, 0x00, 0x29},
252 {0x6b, 0x07ff, 0x080b, 0x3b17, 0x0141, 0x10,
253 0x0b, 0x00, 0x00, 0x00, 0x29},
254 {0x6c, 0x067b, 0x090c, 0x3b37, 0x0000, 0x08,
255 0x0c, 0x00, 0x00, 0x00, 0x2f},
256 {0x6d, 0x06fd, 0x090c, 0x3b37, 0x0000, 0x10,
257 0x0c, 0x00, 0x00, 0x00, 0x2f},
258 {0x6e, 0x07ff, 0x090c, 0x3b37, 0x0000, 0x10,
259 0x0c, 0x00, 0x00, 0x00, 0x2f},
260 {0x70, 0x2a1b, 0x0410, 0x3b52, 0x0000, 0x08,
261 0x10, 0x00, 0x00, 0x07, 0x34},
262 {0x71, 0x0a1b, 0x0511, 0x3b63, 0x0000, 0x08,
263 0x11, 0x00, 0x00, 0x00, 0x37},
264 {0x74, 0x0a1d, 0x0511, 0x3b63, 0x0000, 0x08,
265 0x11, 0x00, 0x00, 0x00, 0x37}, /* ModeIdIndex = 0x30 */
266 {0x75, 0x0a3d, 0x0612, 0x3b74, 0x0000, 0x08,
267 0x12, 0x00, 0x00, 0x00, 0x3a},
268 {0x76, 0x2a1f, 0x0410, 0x3b52, 0x0000, 0x08,
269 0x10, 0x00, 0x00, 0x07, 0x34},
270 {0x77, 0x0a1f, 0x0511, 0x3b63, 0x0000, 0x08,
271 0x11, 0x00, 0x00, 0x00, 0x37},
272 {0x78, 0x0a3f, 0x0612, 0x3b74, 0x0000, 0x08,
273 0x12, 0x00, 0x00, 0x00, 0x3a},
274 {0x79, 0x0a3b, 0x0612, 0x3b74, 0x0000, 0x08,
275 0x12, 0x00, 0x00, 0x00, 0x3a},
276 {0x7a, 0x2a1d, 0x0410, 0x3b52, 0x0000, 0x08,
277 0x10, 0x00, 0x00, 0x07, 0x34},
278 {0x7b, 0x0e3b, 0x060f, 0x3ad0, 0x0000, 0x08,
279 0x0f, 0x00, 0x00, 0x00, 0x1d},
280 {0x7c, 0x0e7d, 0x060f, 0x3ad0, 0x0000, 0x08,
281 0x0f, 0x00, 0x00, 0x00, 0x1d},
282 {0x7d, 0x0eff, 0x060f, 0x3ad0, 0x0000, 0x08,
283 0x0f, 0x00, 0x00, 0x00, 0x1d},
284 {0x20, 0x0e3b, 0x0D16, 0x49e0, 0x0000, 0x08,
285 0x16, 0x00, 0x00, 0x00, 0x43},
286 {0x21, 0x0e7d, 0x0D16, 0x49e0, 0x0000, 0x08,
287 0x16, 0x00, 0x00, 0x00, 0x43},
288 {0x22, 0x0eff, 0x0D16, 0x49e0, 0x0000, 0x08,
289 0x16, 0x00, 0x00, 0x00, 0x43},
290 {0x23, 0x0e3b, 0x0614, 0x49d5, 0x0000, 0x08,
291 0x14, 0x00, 0x00, 0x00, 0x41},
292 {0x24, 0x0e7d, 0x0614, 0x49d5, 0x0000, 0x08,
293 0x14, 0x00, 0x00, 0x00, 0x41},
294 {0x25, 0x0eff, 0x0614, 0x49d5, 0x0000, 0x08,
295 0x14, 0x00, 0x00, 0x00, 0x41},
296 {0x26, 0x063b, 0x0c15, 0x49dc, 0x0000, 0x08,
297 0x15, 0x00, 0x00, 0x00, 0x42}, /* ModeIdIndex = 0x40 */
298 {0x27, 0x067d, 0x0c15, 0x49dc, 0x0000, 0x08,
299 0x15, 0x00, 0x00, 0x00, 0x42},
300 {0x28, 0x06ff, 0x0c15, 0x49dc, 0x0000, 0x08,
301 0x15, 0x00, 0x00, 0x00, 0x42},
302 {0xff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00}
306 static struct SiS_StandTable_S XGI330_StandTable[] = {
309 0x28, 0x18, 0x08, 0x0800,
310 {0x09, 0x03, 0x00, 0x02},
312 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
313 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
314 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
316 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
317 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
318 0x08, 0x00, 0x0f, 0x00},
319 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
324 0x28, 0x18, 0x08, 0x0800,
325 {0x09, 0x03, 0x00, 0x02},
327 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
328 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
329 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
331 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
332 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
333 0x08, 0x00, 0x0f, 0x00},
334 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
339 0x50, 0x18, 0x08, 0x1000,
340 {0x01, 0x03, 0x00, 0x02},
342 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
343 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
344 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
346 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
347 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
348 0x08, 0x00, 0x0f, 0x00},
349 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
354 0x50, 0x18, 0x08, 0x1000,
355 {0x01, 0x03, 0x00, 0x02},
357 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
358 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
359 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
361 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
362 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
363 0x08, 0x00, 0x0f, 0x00},
364 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
369 0x28, 0x18, 0x08, 0x4000,
370 {0x09, 0x03, 0x00, 0x02},
372 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
373 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
376 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
377 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
378 0x01, 0x00, 0x03, 0x00},
379 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
384 0x28, 0x18, 0x08, 0x4000,
385 {0x09, 0x03, 0x00, 0x02},
387 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
388 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
389 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
391 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
392 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
393 0x01, 0x00, 0x03, 0x00},
394 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
399 0x50, 0x18, 0x08, 0x4000,
400 {0x01, 0x01, 0x00, 0x06},
402 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
403 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
404 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2,
406 {0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
407 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
408 0x01, 0x00, 0x01, 0x00},
409 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
414 0x50, 0x18, 0x0e, 0x1000,
415 {0x00, 0x03, 0x00, 0x03},
417 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
418 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
419 0x83, 0x85, 0x5d, 0x28, 0x0d, 0x63, 0xba, 0xa3,
421 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
422 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
423 0x0e, 0x00, 0x0f, 0x08},
424 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
429 0x00, 0x00, 0x00, 0x0000,
430 {0x00, 0x00, 0x00, 0x15},
432 {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
433 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x3f, 0x3f,
434 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00,
436 {0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x15, 0x15,
437 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
438 0x15, 0x15, 0x15, 0x15},
439 {0x15, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
444 0x00, 0x10, 0x04, 0x0114,
445 {0x11, 0x09, 0x15, 0x00},
447 {0x04, 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a,
448 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x2a, 0x3a,
449 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x10,
451 {0x14, 0x01, 0x11, 0x09, 0x15, 0x00, 0x10, 0x04,
452 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a, 0x2e,
453 0x3e, 0x2b, 0x3b, 0x2f},
454 {0x3f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
459 0x00, 0x10, 0x04, 0x0114,
460 {0x11, 0x05, 0x15, 0x20},
462 {0x24, 0x34, 0x21, 0x31, 0x25, 0x35, 0x08, 0x18,
463 0x0c, 0x1c, 0x09, 0x19, 0x0d, 0x1d, 0x28, 0x38,
464 0x2c, 0x3c, 0x29, 0x39, 0x2d, 0x3d, 0x02, 0x12,
466 {0x16, 0x03, 0x13, 0x07, 0x17, 0x22, 0x32, 0x26,
467 0x36, 0x23, 0x33, 0x27, 0x37, 0x0a, 0x1a, 0x0e,
468 0x1e, 0x0b, 0x1b, 0x0f},
469 {0x1f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
474 0x00, 0x10, 0x04, 0x0114,
475 {0x11, 0x09, 0x15, 0x2a},
477 {0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x05,
478 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x18, 0x1c, 0x20,
479 0x24, 0x28, 0x2d, 0x32, 0x38, 0x3f, 0x00, 0x10,
481 {0x2f, 0x3f, 0x1f, 0x27, 0x2f, 0x37, 0x3f, 0x2d,
482 0x31, 0x36, 0x3a, 0x3f, 0x00, 0x07, 0x0e, 0x15,
483 0x1c, 0x0e, 0x11, 0x15},
484 {0x18, 0x1c, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x00,
488 0x08, 0x0c, 0x10, 0x0a08,
489 {0x0c, 0x0e, 0x10, 0x0b},
491 {0x0d, 0x0f, 0x10, 0x10, 0x01, 0x08, 0x00, 0x00,
492 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00,
493 0x04, 0x04, 0x01, 0x00, 0x05, 0x02, 0x05, 0x00,
495 {0x01, 0x06, 0x05, 0x06, 0x00, 0x08, 0x01, 0x08,
496 0x00, 0x07, 0x02, 0x07, 0x06, 0x07, 0x00, 0x00,
497 0x00, 0x00, 0x00, 0x00},
498 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
503 0x28, 0x18, 0x08, 0x2000,
504 {0x09, 0x0f, 0x00, 0x06},
506 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
507 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
508 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3,
510 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
511 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
512 0x01, 0x00, 0x0f, 0x00},
513 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
518 0x50, 0x18, 0x08, 0x4000,
519 {0x01, 0x0f, 0x00, 0x06},
521 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
522 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
523 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3,
525 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
526 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
527 0x01, 0x00, 0x0f, 0x00},
528 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
533 0x00, 0x00, 0x00, 0x0000,
534 {0x01, 0x0f, 0x00, 0x0e},
536 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
537 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
538 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
540 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
541 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
542 0x01, 0x00, 0x00, 0x00},
543 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
548 0x9f, 0x3b, 0x00, 0x00c0,
549 {0x00, 0x00, 0x00, 0x00},
551 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x3f,
552 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
553 0x00, 0x00, 0x1a, 0x00, 0xac, 0x3e, 0x00, 0xc0,
555 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
557 0x00, 0x00, 0x00, 0x00},
558 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
563 0x50, 0x18, 0x0e, 0x8000,
564 {0x01, 0x0f, 0x00, 0x06},
566 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
567 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
568 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
570 {0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
571 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
572 0x0b, 0x00, 0x05, 0x00},
573 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05,
578 0x50, 0x18, 0x0e, 0x8000,
579 {0x01, 0x0f, 0x00, 0x06},
581 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
582 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
583 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
585 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
586 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
587 0x01, 0x00, 0x0f, 0x00},
588 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
593 0x28, 0x18, 0x0e, 0x0800,
594 {0x09, 0x03, 0x00, 0x02},
596 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
597 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
598 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
600 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
601 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
602 0x08, 0x00, 0x0f, 0x00},
603 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
608 0x28, 0x18, 0x0e, 0x0800,
609 {0x09, 0x03, 0x00, 0x02},
611 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
612 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
613 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
615 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
616 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
617 0x08, 0x00, 0x0f, 0x00},
618 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
623 0x50, 0x18, 0x0e, 0x1000,
624 {0x01, 0x03, 0x00, 0x02},
626 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
627 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
628 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
630 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
631 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
632 0x08, 0x00, 0x0f, 0x00},
633 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
638 0x50, 0x18, 0x0e, 0x1000,
639 {0x01, 0x03, 0x00, 0x02},
641 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
642 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
643 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
645 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
646 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
647 0x08, 0x00, 0x0f, 0x00},
648 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
653 0x28, 0x18, 0x10, 0x0800,
654 {0x08, 0x03, 0x00, 0x02},
656 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
657 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
658 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
660 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
661 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
662 0x0c, 0x00, 0x0f, 0x08},
663 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
668 0x50, 0x18, 0x10, 0x1000,
669 {0x00, 0x03, 0x00, 0x02},
671 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
672 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
673 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
675 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
676 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
677 0x0c, 0x00, 0x0f, 0x08},
678 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
683 0x50, 0x18, 0x10, 0x1000,
684 {0x00, 0x03, 0x00, 0x02},
686 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
687 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
688 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
690 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
691 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
692 0x0e, 0x00, 0x0f, 0x08},
693 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
698 0x50, 0x1d, 0x10, 0xa000,
699 {0x01, 0x0f, 0x00, 0x06},
701 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
702 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
703 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xc3,
705 {0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
706 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
707 0x01, 0x00, 0x0f, 0x00},
708 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01,
713 0x50, 0x1d, 0x10, 0xa000,
714 {0x01, 0x0f, 0x00, 0x06},
716 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
717 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
718 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
720 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
721 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
722 0x01, 0x00, 0x0f, 0x00},
723 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
728 0x28, 0x18, 0x08, 0x2000,
729 {0x01, 0x0f, 0x00, 0x0e},
731 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
732 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
733 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3,
735 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
736 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
737 0x41, 0x00, 0x0f, 0x00},
738 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
743 static struct XGI_TimingHStruct XGI_TimingH[1];
745 static struct XGI_TimingVStruct XGI_TimingV[1];
747 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
748 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
749 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
750 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
751 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
752 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
753 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
754 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
755 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
756 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
757 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
758 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
759 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
760 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
761 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
762 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
763 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
764 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
767 static struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
768 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
769 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
770 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
771 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
772 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
773 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
774 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
775 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
776 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
777 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
778 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
779 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
780 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
781 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
782 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
783 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
784 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
785 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
786 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
787 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
788 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
789 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
790 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
791 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
792 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
793 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
794 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
796 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
798 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
800 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
802 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
804 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
806 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
808 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
810 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
812 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
814 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
815 12 (800x600,100Hz) */
816 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
818 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
819 13 (800x600,120Hz) */
820 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
822 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
823 14 (800x600,160Hz) */
824 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
826 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
827 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
828 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
829 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
830 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
831 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
832 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
833 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
834 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
835 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
836 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
837 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
838 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
839 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
840 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
841 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
842 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
843 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
844 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
845 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
846 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
847 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
848 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
849 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
850 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
851 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
852 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
853 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
854 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
855 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
856 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
857 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
858 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
859 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
860 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
861 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
862 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
863 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
864 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
865 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
866 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
867 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
868 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
869 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
870 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
871 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
872 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
873 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
874 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
875 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
876 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
877 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
878 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
879 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
880 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
881 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
882 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
883 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
884 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
885 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
886 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
887 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
888 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
889 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
890 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
891 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
892 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
893 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
894 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
895 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
896 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
897 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
898 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
899 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
900 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
901 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
902 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
903 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
904 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
905 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
906 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
907 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
908 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
909 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
910 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
911 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
912 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
913 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
914 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
915 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
916 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
917 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
918 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
919 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
920 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
921 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
922 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
923 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
924 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
925 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
926 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
927 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
930 static unsigned char XGI_CH7017LV1024x768[] = {
931 0x60, 0x02, 0x00, 0x07, 0x40, 0xED,
932 0xA3, 0xC8, 0xC7, 0xAC, 0xE0, 0x02};
933 static unsigned char XGI_CH7017LV1400x1050[] = {
934 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3,
935 0xAD, 0xDB, 0xF6, 0xAC, 0xE0, 0x02};
937 /*add for new UNIVGABIOS*/
938 static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data[] = {
939 {62, 25, 800, 546, 1344, 806},
940 {32, 15, 930, 546, 1344, 806},
941 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
942 {104, 45, 945, 496, 1344, 806},
943 {62, 25, 800, 546, 1344, 806},
944 {31, 18, 1008, 624, 1344, 806},
945 {1, 1, 1344, 806, 1344, 806}
948 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data[] = {
949 /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
950 {42, 25, 1536, 419, 1344, 806},
951 /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
952 {48, 25, 1536, 369, 1344, 806},
953 /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
954 {42, 25, 1536, 419, 1344, 806},
955 /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
956 {48, 25, 1536, 369, 1344, 806},
957 {12, 5, 896, 500, 1344, 806},
958 {42, 25, 1024, 625, 1344, 806},
959 {1, 1, 1344, 806, 1344, 806},
960 {12, 5, 896, 500, 1344, 806},
961 {42, 25, 1024, 625, 1344, 806},
962 {1, 1, 1344, 806, 1344, 806},
963 {12, 5, 896, 500, 1344, 806},
964 {42, 25, 1024, 625, 1344, 806},
965 {1, 1, 1344, 806, 1344, 806}
968 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = {
969 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
971 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
972 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
973 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
974 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
975 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
976 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
979 static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data[] = {
980 {22, 5, 800, 510, 1650, 1088},
981 {22, 5, 800, 510, 1650, 1088},
982 {176, 45, 900, 510, 1650, 1088},
983 {176, 45, 900, 510, 1650, 1088},
984 {22, 5, 800, 510, 1650, 1088},
985 {13, 5, 1024, 675, 1560, 1152},
986 {16, 9, 1266, 804, 1688, 1072},
987 {1, 1, 1688, 1066, 1688, 1066}
990 static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data[] = {
991 {211, 60, 1024, 501, 1688, 1066},
992 {211, 60, 1024, 508, 1688, 1066},
993 {211, 60, 1024, 501, 1688, 1066},
994 {211, 60, 1024, 508, 1688, 1066},
995 {211, 60, 1024, 500, 1688, 1066},
996 {211, 75, 1024, 625, 1688, 1066},
997 {211, 120, 1280, 798, 1688, 1066},
998 {1, 1, 1688, 1066, 1688, 1066}
1001 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = {
1002 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1004 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1005 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1006 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1007 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1008 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1009 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1010 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1011 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1014 static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050[] = {
1015 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
1017 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
1018 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
1019 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
1020 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
1021 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
1022 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
1023 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
1025 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1028 static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = {
1029 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1030 // 00 (320x200,320x400,
1032 // // alan 10/14/2003 */
1033 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
1034 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1035 // 02 (360x400,720x400)
1036 // // alan 10/14/2003 */
1037 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
1038 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
1039 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
1040 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
1041 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
1042 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
1043 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
1046 static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = {
1047 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
1049 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
1050 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
1051 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
1052 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
1053 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
1054 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
1055 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
1056 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
1057 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
1060 static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = {
1061 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1063 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1064 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1065 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1066 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1067 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1068 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1069 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1070 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1073 static struct XGI330_LCDDataStruct XGI_NoScalingData[] = {
1074 {1, 1, 800, 449, 800, 449},
1075 {1, 1, 800, 449, 800, 449},
1076 {1, 1, 900, 449, 900, 449},
1077 {1, 1, 900, 449, 900, 449},
1078 {1, 1, 800, 525, 800, 525},
1079 {1, 1, 1056, 628, 1056, 628},
1080 {1, 1, 1344, 806, 1344, 806},
1081 {1, 1, 1688, 1066, 1688, 1066}
1084 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = {
1085 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
1087 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
1088 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
1089 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
1090 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
1091 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
1092 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
1095 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = {
1096 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
1098 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1099 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1100 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
1101 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
1102 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
1103 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
1106 static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75[] = {
1107 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
1109 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
1110 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
1111 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
1112 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1113 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1114 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1115 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
1118 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = {
1119 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
1121 {1, 1, 1688, 1066, 1688, 1066}, /* ; 01 (320x350,640x350) */
1122 {1, 1, 1688, 1066, 1688, 1066}, /* ; 02 (360x400,720x400) */
1123 {1, 1, 1688, 1066, 1688, 1066}, /* ; 03 (720x350) */
1124 {1, 1, 1688, 1066, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1125 {1, 1, 1688, 1066, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1126 {1, 1, 1688, 1066, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1127 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
1130 static struct XGI330_LCDDataStruct XGI_NoScalingDatax75[] = {
1131 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
1132 640x200, 640x400) */
1133 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
1134 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
1135 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
1136 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
1137 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1138 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1139 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1140 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1141 ;;[ycchen] 12/19/02 */
1142 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1143 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
1146 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data[] = {
1147 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
1148 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
1149 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
1150 {9, 1057, 0, 771}, /* ; 03 (720x350) */
1151 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
1152 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1153 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
1156 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data[] = {
1157 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
1158 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
1159 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
1160 {9, 1057, 686, 651}, /* ; 03 (720x350) */
1161 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
1162 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1163 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
1166 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data[] = {
1167 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1168 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1169 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
1170 {1152, 856, 597, 562}, /* ; 03 (720x350) */
1171 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
1172 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
1173 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
1176 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
1177 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
1178 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
1179 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
1180 {18, 1346, 926, 865}, /* 03 (720x350) */
1181 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1182 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1183 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1184 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1187 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] = {
1188 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
1189 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
1190 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
1191 {18, 1346, 917, 854}, /* 03 (720x350) */
1192 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1193 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1194 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1195 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1198 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
1199 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1200 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1201 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1202 {1368, 1008, 729, 688}, /* 03 (720x350) */
1203 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1204 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1205 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1206 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1209 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data[] = {
1210 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
1211 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
1212 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
1213 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
1214 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1215 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1216 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1217 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
1220 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data[] = {
1221 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
1222 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
1223 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
1224 {9, 1337, 917, 854}, /* ; 03 (720x350) */
1225 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1226 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1227 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1228 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
1231 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data[] = {
1232 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1233 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1234 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1235 {1368, 1008, 729, 688}, /* 03 (720x350) */
1236 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1237 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1238 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1239 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
1242 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1400x1050[] = {
1243 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1244 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
1245 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
1246 {18, 1464, 0, 1051}, /* 03 (720x350) */
1247 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
1248 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
1249 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
1250 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1251 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
1254 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1400x1050[] = {
1255 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1256 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
1257 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
1258 {9, 1455, 0, 1051}, /* 03 (720x350) */
1259 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
1260 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
1261 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
1262 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1263 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
1266 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data[] = {
1267 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1268 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1269 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1270 {1308, 1068, 781, 766}, /* 03 (720x350) */
1271 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1272 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1273 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1274 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1275 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
1278 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2[] = {
1279 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1280 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1281 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1282 {0, 1448, 0, 1051}, /* 03 (720x350) */
1283 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
1286 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
1287 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1288 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
1289 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
1290 {18, 1682, 0, 1201}, /* 03 (720x350) */
1291 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1292 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1293 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1294 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
1295 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1296 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
1299 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data[] = {
1300 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1301 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
1302 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
1303 {18, 1682, 1083, 1034}, /* 03 (720x350) */
1304 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1305 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1306 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1307 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1308 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1309 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
1312 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data[] = {
1313 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1314 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
1315 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
1316 {9, 1673, 0, 1201}, /* 03 (720x350) */
1317 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1318 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1319 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1320 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
1321 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1322 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
1325 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data[] = {
1326 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1327 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
1328 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
1329 {9, 1673, 1083, 1034}, /* 03 (720x350) */
1330 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1331 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1332 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1333 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1334 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1335 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
1338 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
1339 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1341 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1342 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1343 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
1344 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1345 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1346 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
1347 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1348 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz) },
1349 //;[ycchen] 12/19/02 */
1350 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1351 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
1354 /* ;;1024x768x75Hz */
1355 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1024x768x75[] = {
1356 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1357 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
1358 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
1359 {9, 1049, 0, 769}, /* ; 03 (720x350) */
1360 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
1361 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
1362 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
1365 /* ;;1024x768x75Hz */
1366 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data[] = {
1367 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1368 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1369 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
1370 {1192, 896, 597, 562}, /* ; 03 (720x350) */
1371 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
1372 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
1373 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
1376 /* ;;1280x1024x75Hz */
1377 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1280x1024x75[] = {
1378 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1379 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
1380 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
1381 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
1382 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
1383 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
1384 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1385 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
1388 /* 1280x1024x75Hz */
1389 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
1390 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1391 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1392 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1393 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1394 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1395 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1396 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1397 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1400 /* ;;1280x1024x75Hz */
1401 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1280x1024x75[] = {
1402 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1403 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
1404 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
1405 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
1406 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
1407 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
1408 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1409 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
1412 /* 1280x1024x75Hz */
1413 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
1414 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1415 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1416 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1417 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1418 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1419 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1420 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1421 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1424 /* Scaling LCD 75Hz */
1425 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
1426 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1428 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1429 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1430 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
1431 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1432 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1433 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1434 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1435 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)
1436 ;;[ycchen] 12/19/02 */
1437 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1438 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
1441 static struct XGI330_TVDataStruct XGI_StPALData[] = {
1442 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
1443 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
1444 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
1445 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
1446 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
1447 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
1450 static struct XGI330_TVDataStruct XGI_ExtPALData[] = {
1451 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1452 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1453 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1454 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1455 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
1456 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
1457 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
1458 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
1461 static struct XGI330_TVDataStruct XGI_StNTSCData[] = {
1462 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1463 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1464 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1465 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1466 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
1469 static struct XGI330_TVDataStruct XGI_ExtNTSCData[] = {
1470 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1471 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1472 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1473 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1474 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1475 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1476 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1477 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
1478 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1481 static struct XGI330_TVDataStruct XGI_St1HiTVData[] = {
1482 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1484 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1485 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
1486 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1487 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
1488 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
1491 static struct XGI330_TVDataStruct XGI_St2HiTVData[] = {
1492 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1494 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1495 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
1496 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1497 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
1498 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
1501 static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = {
1502 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1504 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
1505 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
1506 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
1507 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
1508 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
1509 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
1510 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
1511 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
1512 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
1513 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
1516 static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData[] = {
1517 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1518 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1519 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1520 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1521 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
1522 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
1523 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1524 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1525 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
1528 static struct XGI330_TVDataStruct XGI_StYPbPr525iData[] = {
1529 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1530 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1531 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1532 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1533 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
1536 static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData[] = {
1537 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1538 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1539 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1540 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1541 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1542 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1543 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1544 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1545 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1548 static struct XGI330_TVDataStruct XGI_StYPbPr525pData[] = {
1549 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
1550 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
1551 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
1552 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
1553 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
1556 static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = {
1557 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1559 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
1560 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
1561 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
1562 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1563 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1564 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1565 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1566 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1567 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1568 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1571 static struct XGI330_TVDataStruct XGI_StYPbPr750pData[] = {
1572 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1573 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1574 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1575 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1576 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
1579 static unsigned char XGI330_NTSCTiming[] = {
1580 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1581 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1582 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1583 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1584 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1585 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1586 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1587 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1590 static unsigned char XGI330_PALTiming[] = {
1591 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1592 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1593 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1594 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1595 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1596 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1597 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1598 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
1601 static unsigned char XGI330_HiTVExtTiming[] = {
1602 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1603 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1604 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1605 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1606 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1607 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1608 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1609 0x60, 0x14, 0x3D, 0x63, 0x4F,
1610 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
1613 static unsigned char XGI330_HiTVSt1Timing[] = {
1614 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1615 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1616 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1617 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1618 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1619 0x35, 0x35, 0x3B, 0x69, 0x1D,
1620 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1621 0x60, 0x04, 0x86, 0xAF, 0x5D,
1622 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
1625 static unsigned char XGI330_HiTVSt2Timing[] = {
1626 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1627 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1628 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1629 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1630 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1631 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1632 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1633 0x60, 0x14, 0x3D, 0x63, 0x4F,
1634 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
1637 static unsigned char XGI330_HiTVTextTiming[] = {
1638 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1639 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1640 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1641 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1642 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1643 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1644 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1645 0x60, 0x04, 0x96, 0x72, 0x5C,
1646 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1649 static unsigned char XGI330_YPbPr750pTiming[] = {
1650 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1651 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1652 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1653 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1654 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1655 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1656 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1657 0x60, 0x14, 0x73, 0x00, 0x40,
1658 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
1661 static unsigned char XGI330_YPbPr525pTiming[] = {
1662 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1663 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1664 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1665 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1666 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1667 0x51, 0x5e, 0x60, 0x49, 0x7d,
1668 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1669 0x60, 0x14, 0x4B, 0x43, 0x41,
1670 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1673 static unsigned char XGI330_YPbPr525iTiming[] = {
1674 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1675 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1676 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1677 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1678 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1679 0x03, 0x0A, 0x65, 0x9D, 0x08,
1680 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1681 0x60, 0x14, 0x4B, 0x00, 0x40,
1682 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
1685 static unsigned char XGI330_HiTVGroup3Data[] = {
1686 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1687 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1688 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1689 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1690 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1691 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1692 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1693 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1696 static unsigned char XGI330_HiTVGroup3Simu[] = {
1697 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1698 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1699 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1700 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1701 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1702 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1703 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1704 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1707 static unsigned char XGI330_HiTVGroup3Text[] = {
1708 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1709 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1710 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1711 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1712 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1713 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1714 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1715 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1718 static unsigned char XGI330_Ren525pGroup3[] = {
1719 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1720 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1721 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1722 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1723 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1724 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1725 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1726 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1729 static unsigned char XGI330_Ren750pGroup3[] = {
1730 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1731 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1732 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1733 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1734 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1735 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1736 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1737 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
1740 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1[] = {
1741 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1742 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1743 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1744 {1040, 388, 1344, 806}, /* 03 (720x350) */
1745 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1746 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1747 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
1751 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2[] = {
1752 {1344, 806, 1344, 806},
1753 {1344, 806, 1344, 806},
1754 {1344, 806, 1344, 806},
1755 {1344, 806, 1344, 806},
1756 {1344, 806, 1344, 806},
1757 {1344, 806, 1344, 806},
1758 {1344, 806, 1344, 806},
1759 {800, 449, 1280, 801},
1760 {800, 525, 1280, 813}
1763 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1[] = {
1764 {1048, 442, 1688, 1066},
1765 {1048, 392, 1688, 1066},
1766 {1048, 442, 1688, 1066},
1767 {1048, 392, 1688, 1066},
1768 {1048, 522, 1688, 1066},
1769 {1208, 642, 1688, 1066},
1770 {1432, 810, 1688, 1066},
1771 {1688, 1066, 1688, 1066}
1774 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2[] = {
1775 {1344, 806, 1344, 806},
1776 {1344, 806, 1344, 806},
1777 {1344, 806, 1344, 806},
1778 {1344, 806, 1344, 806},
1779 {1344, 806, 1344, 806},
1780 {1344, 806, 1344, 806},
1781 {1344, 806, 1344, 806},
1782 {800, 449, 1280, 801},
1783 {800, 525, 1280, 813}
1786 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1[] = {
1787 {928, 416, 1688, 1066},
1788 {928, 366, 1688, 1066},
1789 {928, 416, 1688, 1066},
1790 {928, 366, 1688, 1066},
1791 {928, 496, 1688, 1066},
1792 {1088, 616, 1688, 1066},
1793 {1312, 784, 1688, 1066},
1794 {1568, 1040, 1688, 1066},
1795 {1688, 1066, 1688, 1066}
1798 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2[] = {
1799 {1688, 1066, 1688, 1066},
1800 {1688, 1066, 1688, 1066},
1801 {1688, 1066, 1688, 1066},
1802 {1688, 1066, 1688, 1066},
1803 {1688, 1066, 1688, 1066},
1804 {1688, 1066, 1688, 1066},
1805 {1688, 1066, 1688, 1066},
1806 {1688, 1066, 1688, 1066},
1807 {1688, 1066, 1688, 1066}
1810 /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1811 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = {
1812 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1813 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1814 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1815 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1816 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1817 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1818 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1819 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1820 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1821 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
1824 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] = {
1825 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1826 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1827 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1828 { 800, 449, 800, 449}, /* 03 (720x350) */
1829 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1830 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1831 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1832 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1833 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1834 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1835 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
1838 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] = {
1839 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1840 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1841 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1842 {1040, 388, 1312, 800}, /* 03 (720x350) */
1843 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1844 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1845 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
1849 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] = {
1850 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1851 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1852 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1853 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1854 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1855 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1856 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
1859 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] = {
1860 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1861 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1862 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1863 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1864 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1865 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1866 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1867 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1870 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] = {
1871 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1872 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1873 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1874 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1875 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1876 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1877 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1878 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1881 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] = {
1882 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1883 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1884 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1885 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1886 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1887 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1888 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1889 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1890 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1891 ;;[ycchen] 12/19/02 */
1892 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1893 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
1896 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] = {
1897 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1898 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1899 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1900 {0, 1048, 0, 771}, /* 03 (720x350) */
1901 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1902 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1903 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
1906 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] = {
1907 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1908 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1909 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1910 {1142, 856, 597, 562}, /* 03 (720x350) */
1911 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1912 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1913 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1916 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] = {
1917 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1918 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1919 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1920 {320, 24, 597, 562}, /* 03 (720x350) */
1921 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
1924 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] = {
1925 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1926 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1927 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1928 {0, 1328, 0, 1025}, /* 03 (720x350) */
1929 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1930 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1931 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1932 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
1935 /* The Display setting for DE Mode Panel */
1936 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] = {
1937 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1938 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1939 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1940 {1408, 1048, 729, 688}, /* 03 (720x350) */
1941 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1942 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1943 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1944 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
1947 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] = {
1948 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1949 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1950 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1951 {0, 1448, 0, 1051}, /* 03 (720x350) */
1952 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1953 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1954 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1955 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1956 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1959 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] = {
1960 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1961 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1962 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1963 {1308, 1068, 781, 766}, /* 03 (720x350) */
1964 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1965 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1966 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1967 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1968 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1971 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] = {
1972 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1973 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1974 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1975 {0, 1664, 0, 1201}, /* 03 (720x350) */
1976 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1977 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1978 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1979 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1980 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1981 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
1984 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1985 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1987 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1988 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1989 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1990 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1991 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1992 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1993 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1994 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)
1995 ;;[ycchen] 12/19/02 */
1996 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1997 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
2000 /* ; 1024x768 Full-screen */
2001 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = {
2002 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
2003 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
2004 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
2005 {0, 1040, 0, 769}, /* ; 03 (720x350) */
2006 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
2007 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
2008 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
2011 /* ; 1024x768 center-screen (Enh. Mode) */
2012 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = {
2013 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
2014 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
2015 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
2016 {1142, 856, 597, 562}, /* 03 (720x350) */
2017 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
2018 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
2019 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
2022 /* ; 1024x768 center-screen (St.Mode) */
2023 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = {
2024 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
2025 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
2026 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
2027 {320, 24, 597, 562}, /* ; 03 (720x350) */
2028 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
2031 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] = {
2032 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
2033 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
2034 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
2035 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
2036 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
2037 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
2038 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
2039 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
2042 /* The Display setting for DE Mode Panel */
2043 /* [ycchen] 02/18/03 Set DE as default */
2044 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = {
2045 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
2046 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
2047 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
2048 {1408, 976, 729, 688}, /* ; 03 (720x350) */
2049 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
2050 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
2051 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
2052 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
2055 /* Scaling LCD 75Hz */
2056 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
2057 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
2059 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
2060 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
2061 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
2062 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
2063 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
2064 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
2065 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
2066 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz)
2067 ;;[ycchen] 12/19/02 */
2068 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
2069 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
2072 static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData[] = {
2073 { 840, 600, 840, 600},
2074 { 840, 600, 840, 600},
2075 { 840, 600, 840, 600},
2076 { 840, 600, 840, 600},
2077 { 784, 600, 784, 600},
2078 {1064, 750, 1064, 750}
2081 static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData[] = {
2082 { 840, 525, 840, 525},
2083 { 840, 525, 840, 525},
2084 { 840, 525, 840, 525},
2085 { 840, 525, 840, 525},
2086 { 784, 525, 784, 525},
2087 {1040, 700, 1040, 700}
2090 static struct XGI330_CHTVDataStruct XGI_CHTVUPALData[] = {
2091 {1008, 625, 1008, 625},
2092 {1008, 625, 1008, 625},
2093 {1008, 625, 1008, 625},
2094 {1008, 625, 1008, 625},
2095 { 840, 750, 840, 750},
2096 { 936, 836, 936, 836}
2099 static struct XGI330_CHTVDataStruct XGI_CHTVOPALData[] = {
2100 {1008, 625, 1008, 625},
2101 {1008, 625, 1008, 625},
2102 {1008, 625, 1008, 625},
2103 {1008, 625, 1008, 625},
2104 {840, 625, 840, 625},
2105 {960, 750, 960, 750}
2108 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2109 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
2110 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
2111 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
2112 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
2113 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2114 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2115 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2116 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
2117 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
2120 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2121 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
2122 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
2123 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
2124 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
2125 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
2126 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
2127 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
2128 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
2129 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
2130 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
2133 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2134 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
2135 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2136 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2137 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2138 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2139 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2140 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2141 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2142 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
2145 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2146 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
2147 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2148 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2149 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2150 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2151 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2152 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2153 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2154 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2155 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
2158 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2159 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
2160 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
2161 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
2162 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2163 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2164 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2165 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2166 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
2167 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2168 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2169 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
2172 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2173 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
2174 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
2175 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
2176 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
2177 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
2178 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2179 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2180 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
2181 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2182 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
2183 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
2186 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
2187 /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2188 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
2189 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2190 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2191 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2192 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
2193 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2194 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2195 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
2196 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2197 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2198 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
2199 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
2202 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2203 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
2204 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
2205 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
2206 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
2207 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
2208 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
2211 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2212 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
2213 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
2214 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
2215 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
2216 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
2217 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
2220 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2221 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
2222 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
2223 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
2224 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
2225 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
2226 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
2227 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
2230 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2231 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
2232 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
2233 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
2234 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
2235 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
2236 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
2237 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
2240 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2241 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
2242 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
2243 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
2244 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
2245 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
2246 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
2247 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
2248 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
2251 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2252 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
2253 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
2254 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
2255 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
2256 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
2257 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
2258 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
2259 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
2262 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2263 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
2264 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
2265 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
2266 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
2267 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
2268 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
2269 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
2270 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
2271 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
2274 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2275 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
2276 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
2277 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
2278 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
2279 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2280 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
2281 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
2282 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
2283 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
2286 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2287 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
2288 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
2289 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
2290 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
2291 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
2292 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
2295 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2296 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
2297 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2298 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2299 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2300 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2301 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2302 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2303 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2304 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
2307 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2308 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
2309 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
2310 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
2311 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
2312 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
2313 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
2316 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2317 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
2318 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
2319 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
2320 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2321 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2322 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2323 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2324 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
2325 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
2326 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
2329 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2330 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
2331 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
2332 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
2333 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
2334 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
2335 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
2336 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2338 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2339 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
2340 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2341 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2342 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2343 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2344 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
2345 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
2346 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2347 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
2348 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
2351 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2352 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
2353 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
2354 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
2355 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
2356 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
2357 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
2358 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2361 /*add for new UNIVGABIOS*/
2362 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
2363 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
2364 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
2365 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
2366 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
2367 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
2368 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
2369 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
2370 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
2371 {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
2372 {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
2373 {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
2374 {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
2375 {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
2376 {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
2377 {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
2378 {Panel_1280x1024x75, 0x0019, 0x0001, 15}, /* XGI_ExtLCD1280x1024x75Data*/
2379 {Panel_1280x1024x75, 0x0019, 0x0000, 16}, /* XGI_StLCD1280x1024x75Data */
2380 {Panel_1280x1024x75, 0x0018, 0x0010, 17}, /* XGI_CetLCD1280x1024x75Data*/
2381 {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
2382 {0xFF, 0x0000, 0x0000, 0} /* End of table */
2385 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
2386 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
2387 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
2388 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
2389 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
2390 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
2391 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
2392 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
2393 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
2394 {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
2395 {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
2396 {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
2397 {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
2398 {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
2399 {Panel_1024x768x75, 0x0019, 0x0001, 13}, /*XGI_ExtLCDDes1024x768x75Data*/
2400 {Panel_1024x768x75, 0x0019, 0x0000, 14}, /* XGI_StLCDDes1024x768x75Data*/
2401 {Panel_1024x768x75, 0x0018, 0x0010, 15}, /*XGI_CetLCDDes1024x768x75Data*/
2402 /* XGI_ExtLCDDes1280x1024x75Data */
2403 {Panel_1280x1024x75, 0x0019, 0x0001, 16},
2404 /* XGI_StLCDDes1280x1024x75Data */
2405 {Panel_1280x1024x75, 0x0019, 0x0000, 17},
2406 /* XGI_CetLCDDes1280x1024x75Data */
2407 {Panel_1280x1024x75, 0x0018, 0x0010, 18},
2408 {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
2409 {0xFF, 0x0000, 0x0000, 0}
2412 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1[] = {
2413 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
2414 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
2415 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
2416 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
2417 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
2418 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
2419 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
2420 {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
2421 {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
2422 {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
2423 {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
2424 {0xFF, 0x0000, 0x0000, 0}
2427 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
2428 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
2429 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
2430 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
2431 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
2432 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
2433 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
2434 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
2435 {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
2436 {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
2437 {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
2438 {Panel_1280x1024x75, 0x0018, 0x0000, 10}, /* XGI_LVDS1280x1024Data_1x75*/
2439 {Panel_1280x1024x75, 0x0018, 0x0010, 11}, /*XGI_LVDS1280x1024Data_2x75*/
2440 {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
2441 {0xFF, 0x0000, 0x0000, 0}
2444 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
2445 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
2446 {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
2447 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
2448 {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
2449 {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
2450 {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
2451 {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
2452 {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
2453 {PanelRef60Hz, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
2454 {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
2455 {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
2456 {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
2457 {Panel_1280x1024x75, 0x0018, 0x0000, 12}, /* XGI_LVDS1280x1024Des_1x75 */
2458 {Panel_1280x1024x75, 0x0018, 0x0010, 13}, /* XGI_LVDS1280x1024Des_2x75 */
2459 {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
2460 {0xFF, 0x0000, 0x0000, 0}
2463 static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = {
2464 {Panel_1024x768, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
2465 {Panel_1400x1050, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
2466 {0xFF, 0x0000, 0x0000, 0}
2469 static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
2470 {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
2471 {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
2472 {0x09E1, 0x0801, 2}, /* XGI_StPALData */
2473 {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
2474 {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
2475 {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
2476 {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
2477 {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
2478 {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
2479 {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
2480 {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
2481 {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
2482 {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
2483 {0xffff, 0x0000, 12} /* END */
2486 /* Chrontel 7017 TV List */
2487 static struct XGI330_TVDataTablStruct xgifb_chrontel_tv[] = {
2488 {0x0011, 0x0000, 0}, /* UNTSC */
2489 {0x0011, 0x0010, 1}, /* ONTSC */
2490 {0x0011, 0x0001, 2}, /* UPAL */
2491 {0x0011, 0x0011, 3}, /* OPAL */
2495 static unsigned short LCDLenList[] = {
2508 /* Dual link only */
2509 static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
2510 /* LCDCap1024x768 */
2511 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2512 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2513 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2514 /* LCDCap1280x1024 */
2515 {Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2516 0x012, 0x70, 0x03, VCLK108_2_315,
2517 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2518 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2519 /* LCDCap1400x1050 */
2520 {Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2521 0x012, 0x70, 0x03, VCLK108_2_315,
2522 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2523 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2524 /* LCDCap1600x1200 */
2525 {Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap, LCDToFull,
2526 0x012, 0xC0, 0x03, VCLK162,
2527 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
2528 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2529 /* LCDCap1024x768x75 */
2530 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
2531 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2532 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2533 /* LCDCap1280x1024x75 */
2534 {Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2535 0x012, 0x90, 0x03, VCLK135_5,
2536 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2537 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2539 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2540 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2541 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2544 static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
2545 /* LCDCap1024x768 */
2546 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2547 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2548 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2549 /* LCDCap1280x1024 */
2550 {Panel_1280x1024, DefaultLCDCap, StLCDBToA,
2551 0x012, 0x70, 0x03, VCLK108_2_315,
2552 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2553 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2554 /* LCDCap1400x1050 */
2555 {Panel_1400x1050, DefaultLCDCap, StLCDBToA,
2556 0x012, 0x70, 0x03, VCLK108_2_315,
2557 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2558 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2559 /* LCDCap1600x1200 */
2560 {Panel_1600x1200, DefaultLCDCap, LCDToFull,
2561 0x012, 0xC0, 0x03, VCLK162,
2562 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
2563 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2564 /* LCDCap1024x768x75 */
2565 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
2566 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2567 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2568 /* LCDCap1280x1024x75 */
2569 {Panel_1280x1024x75, DefaultLCDCap, StLCDBToA,
2570 0x012, 0x90, 0x03, VCLK135_5,
2571 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2572 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2574 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2575 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2576 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2579 static struct XGI_Ext2Struct XGI330_RefIndex[] = {
2580 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2581 0x00, 0x10, 0x59, 320, 200},/* 00 */
2582 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2583 0x00, 0x10, 0x00, 320, 400},/* 01 */
2584 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
2585 0x04, 0x20, 0x50, 320, 240},/* 02 */
2586 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
2587 0x05, 0x32, 0x51, 400, 300},/* 03 */
2588 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
2589 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2590 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
2591 0x00, 0x14, 0x2f, 640, 400},/* 05 */
2592 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
2593 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
2594 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
2595 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
2596 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
2597 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
2598 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
2599 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
2600 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
2601 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
2602 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
2603 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
2604 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
2605 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
2606 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
2607 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
2608 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
2609 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
2610 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
2611 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
2612 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
2613 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
2614 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
2615 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
2616 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
2617 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
2618 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
2619 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
2620 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
2621 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
2622 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
2623 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
2624 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
2625 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2626 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
2627 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
2628 VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
2629 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
2630 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2631 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
2632 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2633 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
2634 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2635 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
2636 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2637 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
2638 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2639 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
2640 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2641 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
2642 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2643 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
2644 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2645 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
2646 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2647 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
2648 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2649 /* 22 1600x1200x60Hz */
2650 {Mode32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
2651 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
2652 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
2653 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
2654 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
2655 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2656 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
2657 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2658 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
2659 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2660 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
2661 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2662 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
2663 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2664 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
2665 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2666 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
2667 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2668 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
2669 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2670 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
2671 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2672 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
2673 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2674 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
2675 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2676 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
2677 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2678 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
2679 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2680 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
2681 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2682 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
2683 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2684 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
2685 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2686 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2687 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
2688 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2689 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
2690 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2691 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
2692 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2693 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2694 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
2695 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2696 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
2697 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2698 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
2699 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2700 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2701 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
2702 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2703 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
2704 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2705 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
2706 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2707 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
2708 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2709 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
2710 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2711 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
2712 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2713 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
2714 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2715 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
2716 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2717 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
2718 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2719 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
2720 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2721 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
2722 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2723 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
2724 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2725 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
2726 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2727 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
2728 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2729 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
2730 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2733 static unsigned char XGI330_ScreenOffset[] = {
2734 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2735 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2739 static struct SiS_StResInfo_S XGI330_StResInfo[] = {
2747 static struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
2757 {1280, 1024, 8, 16},
2758 {1600, 1200, 8, 16},
2759 {1920, 1440, 8, 16},
2760 {2048, 1536, 8, 16},
2769 {1400, 1050, 8, 16},
2773 static unsigned char XGI330_OutputSelect = 0x40;
2774 static unsigned char XGI330_SoftSetting = 0x30;
2775 static unsigned char XGI330_SR07 = 0x18;
2777 static unsigned char XGI330_CR49[] = {0xaa, 0x88};
2778 static unsigned char XGI330_SR1F;
2779 static unsigned char XGI330_SR21 = 0xa3;
2780 static unsigned char XGI330_SR22 = 0xfb;
2781 static unsigned char XGI330_SR23 = 0xf6;
2782 static unsigned char XGI330_SR24 = 0xd;
2784 static unsigned char XGI330_CRT2Data_1_2;
2785 static unsigned char XGI330_CRT2Data_4_D;
2786 static unsigned char XGI330_CRT2Data_4_E;
2787 static unsigned char XGI330_CRT2Data_4_10 = 0x80;
2788 static unsigned short XGI330_RGBSenseData = 0xd1;
2789 static unsigned short XGI330_VideoSenseData = 0xb9;
2790 static unsigned short XGI330_YCSenseData = 0xb3;
2791 static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/
2792 static unsigned short XGI330_VideoSenseData2 = 0x0110;
2793 static unsigned short XGI330_YCSenseData2 = 0x016B;
2794 static unsigned char XG40_I2CDefinition;
2795 static unsigned char XG20_CR97 = 0x10 ;
2797 static unsigned char XG21_DVOSetting;
2798 static unsigned char XG21_CR2E;
2799 static unsigned char XG21_CR2F;
2800 static unsigned char XG21_CR46;
2801 static unsigned char XG21_CR47;
2803 static unsigned char XG27_CR97 = 0xC1 ;
2804 static unsigned char XG27_SR36 = 0x30 ;
2805 static unsigned char XG27_CR8F = 0x0C ;
2806 static unsigned char XG27_CRD0[] = {
2807 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2809 static unsigned char XG27_CRDE[2];
2810 static unsigned char XG27_SR40 = 0x04 ;
2811 static unsigned char XG27_SR41 = 0x00 ;
2813 static unsigned char Z11m_CR97 = 0x80 ;
2815 static struct XGI330_VCLKDataStruct XGI_VCLKData[] = {
2816 /* SR2B,SR2C,SR2D */
2817 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2818 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2819 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2820 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2821 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2822 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2823 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2824 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2825 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2826 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2827 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2828 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2829 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2830 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2831 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2832 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2833 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2834 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2835 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2836 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2837 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2838 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2839 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2840 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2841 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2842 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2843 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2844 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2845 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2846 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2847 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2848 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2849 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2850 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2851 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2852 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2853 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2854 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2855 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2856 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2857 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2858 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2859 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2860 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2861 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2862 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2863 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2864 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2865 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2866 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2867 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2868 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2869 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2870 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2871 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2872 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2873 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2874 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2875 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2876 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2877 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2878 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2879 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2880 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2881 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2882 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2883 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2884 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2885 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2886 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2887 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2888 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2889 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2890 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2891 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2892 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2893 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2894 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2895 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2896 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2897 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2898 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2899 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2900 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2901 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2902 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2903 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2904 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2905 {0xFF, 0x00, 0} /* End mark */
2908 static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
2909 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2910 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2911 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2912 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2913 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2914 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2915 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2916 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2917 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2918 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2919 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2920 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2921 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2922 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2923 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2924 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2925 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2926 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2927 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2928 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2929 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2930 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2931 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2932 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2933 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2934 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2935 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2936 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2937 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2938 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2939 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2940 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2941 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2942 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2943 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2944 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2945 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2946 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2947 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2948 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2949 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2950 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2951 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2952 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2953 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2954 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2955 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2956 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2957 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2958 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2959 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2960 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2961 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2962 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2963 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2964 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2965 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2966 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2967 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2968 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2969 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2970 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2971 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2972 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2973 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2974 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2975 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2976 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2977 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2978 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2979 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2980 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2981 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2982 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2983 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2984 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2985 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2986 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2987 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2988 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2989 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2990 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2991 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2992 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2993 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2994 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2995 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2996 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2997 {0xFF, 0x00, 0} /* End mark */
3000 static unsigned char XGI301TVDelayList[] = {
3001 0x22, /* ; 0 ExtNTSCDelay */
3002 0x22, /* ; 1 StNTSCDelay */
3003 0x22, /* ; 2 ExtPALDelay */
3004 0x22, /* ; 3 StPALDelay */
3005 0x88, /* ; 4 ExtHiTVDelay(1080i) */
3006 0xBB, /* ; 5 StHiTVDelay(1080i) */
3007 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3008 0x22, /* ; 7 StYPbPrDealy(525i) */
3009 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3010 0x22, /* ; 9 StYPbPrDealy(525p) */
3011 0x22, /* ; A ExtYPbPrDelay(750p) */
3012 0x22 /* B StYPbPrDealy(750p) */
3015 static unsigned char XGI301TVDelayList2[] = {
3016 0x22, /* ; 0 ExtNTSCDelay */
3017 0x22, /* ; 1 StNTSCDelay */
3018 0x22, /* ; 2 ExtPALDelay */
3019 0x22, /* ; 3 StPALDelay */
3020 0x22, /* ; 4 ExtHiTVDelay */
3021 0x22, /* ; 5 StHiTVDelay */
3022 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3023 0x22, /* ; 7 StYPbPrDealy(525i) */
3024 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3025 0x22, /* ; 9 StYPbPrDealy(525p) */
3026 0x22, /* ; A ExtYPbPrDelay(750p) */
3027 0x22 /* ; B StYPbPrDealy(750p) */
3031 static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
3032 0x04, /* ; 0 Adaptive */
3033 0x00, /* ; 1 new anti-flicker ? */
3035 0x04, /* ; 0 Adaptive */
3036 0x08, /* ; 1 new anti-flicker ? */
3039 0x00 /* ; 1 new anti-flicker ? */
3043 static unsigned char TVEdgeList[] = {
3044 0x00, /* ; 0 NTSC No Edge enhance */
3045 0x04, /* ; 1 NTSC Adaptive Edge enhance */
3046 0x00, /* ; 0 PAL No Edge enhance */
3047 0x04, /* ; 1 PAL Adaptive Edge enhance */
3048 0x00, /* ; 0 HiTV */
3052 static unsigned long TVPhaseList[] = {
3053 0x08BAED21, /* ; 0 NTSC phase */
3054 0x00E3052A, /* ; 1 PAL phase */
3055 0x9B2EE421, /* ; 2 PAL-M phase */
3056 0xBA3EF421, /* ; 3 PAL-N phase */
3057 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
3058 0xE00A831E, /* ; 5 PAL-M 1024x768 */
3059 0x00000000, /* ; 6 reserved */
3060 0x00000000, /* ; 7 reserved */
3061 0xD67BF021, /* ; 8 NTSC phase */
3062 0xE986092A, /* ; 9 PAL phase */
3063 0xA4EFE621, /* ; A PAL-M phase */
3064 0x4694F621, /* ; B PAL-N phase */
3065 0x8BDE711C, /* ; C NTSC 1024x768 */
3066 0xE00A831E /* ; D PAL-M 1024x768 */
3069 static unsigned char NTSCYFilter1[] = {
3070 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3071 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3072 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
3073 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
3074 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3075 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3076 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
3079 static unsigned char PALYFilter1[] = {
3080 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3081 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3082 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
3083 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
3084 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3085 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
3086 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
3089 static unsigned char xgifb_palmn_yfilter1[] = {
3090 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3091 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3092 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
3093 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
3094 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3095 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3096 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
3097 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
3100 static unsigned char xgifb_yfilter2[] = {
3101 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
3102 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
3103 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
3104 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
3105 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
3106 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
3107 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
3108 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
3111 static unsigned char XGI_NTSC1024AdjTime[] = {
3112 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
3113 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
3114 0x58, 0xe4, 0x73, 0xd0, 0x13
3117 static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
3119 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
3120 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
3121 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
3122 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
3123 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
3124 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
3125 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
3126 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
3131 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
3133 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3134 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3135 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3136 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3137 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3138 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3139 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3140 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
3144 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
3145 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
3146 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
3147 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
3148 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
3149 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
3150 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
3151 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
3155 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
3156 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
3157 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
3158 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3159 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3160 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
3161 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
3162 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
3167 static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
3169 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
3170 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
3171 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
3172 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3173 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3174 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
3175 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
3176 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
3180 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
3181 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
3182 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
3183 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
3184 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
3185 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
3186 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
3187 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
3191 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
3192 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
3193 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
3194 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
3195 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
3196 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
3197 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
3198 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
3203 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
3205 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3206 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3207 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3208 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3209 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3210 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3211 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3212 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */