1 /* yilin modify for xgi20 */
2 static struct XGI_MCLKDataStruct 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 XGI_MCLKDataStruct 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 XGI340_SR13
[4][8] = {
37 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
38 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
39 {0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
40 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
43 static unsigned char XGI340_cr41
[24][8] = {
44 {0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
45 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
46 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
47 {0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
48 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
49 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
50 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
51 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
52 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
53 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
54 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
55 {0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
56 {0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
57 {0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
58 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
59 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
60 {0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
61 {0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
62 {0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
63 {0x11, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
64 {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
65 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
66 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
67 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
70 static unsigned char XGI27_cr41
[24][8] = {
71 {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
72 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
73 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
74 {0xB5, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
77 {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
78 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
79 {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
80 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
81 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
82 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
83 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
84 {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
85 {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
86 {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
87 {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
88 {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
89 {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
90 {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
91 {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
92 {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
93 {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
94 {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
95 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
99 static unsigned char XGI340_CR6B
[8][4] = {
100 {0xaa, 0xaa, 0xaa, 0xaa},
101 {0xaa, 0xaa, 0xaa, 0xaa},
102 {0xaa, 0xaa, 0xaa, 0xaa},
103 {0x00, 0x00, 0x00, 0x00},
104 {0x00, 0x00, 0x00, 0x00},
105 {0x00, 0x00, 0x00, 0x00},
106 {0x00, 0x00, 0x00, 0x00},
107 {0x00, 0x00, 0x00, 0x00}
110 static unsigned char XGI340_CR6E
[8][4];
112 static unsigned char XGI340_CR6F
[8][32];
114 static unsigned char XGI340_CR89
[8][2];
116 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
117 static unsigned char XGI340_AGPReg
[12] = {
118 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
119 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
122 static unsigned char XGI340_SR16
[4] = {0x03, 0x83, 0x03, 0x83};
124 static unsigned char XGI330_sr25
[2];
125 static unsigned char XGI330_sr31
= 0xc0;
126 static unsigned char XGI330_sr32
= 0x11;
127 static unsigned char XGI330_SR33
;
128 static unsigned char XG40_CRCF
= 0x13;
129 static unsigned char XG40_DRAMTypeDefinition
= 0xFF ;
131 static struct XGI_StStruct XGI330_SModeIDTable
[] = {
132 {0x01, 0x9208, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00},
133 {0x01, 0x1210, 0x14, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00},
134 {0x01, 0x1010, 0x17, 0x02, 0x11, 0x00, 0x00, 0x01, 0x01},
135 {0x03, 0x8208, 0x03, 0x00, 0x14, 0x00, 0x00, 0x01, 0x02},
136 {0x03, 0x0210, 0x16, 0x01, 0x04, 0x01, 0x00, 0x01, 0x02},
137 {0x03, 0x0010, 0x18, 0x02, 0x15, 0x00, 0x00, 0x01, 0x03},
138 {0x05, 0x9209, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
139 {0x06, 0x8209, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
140 {0x07, 0x0000, 0x07, 0x03, 0x05, 0x03, 0x00, 0x01, 0x03},
141 {0x07, 0x0000, 0x19, 0x02, 0x15, 0x02, 0x00, 0x01, 0x03},
142 {0x0d, 0x920a, 0x0d, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
143 {0x0e, 0x820a, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
144 {0x0f, 0x0202, 0x11, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
145 {0x10, 0x0212, 0x12, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
146 {0x11, 0x0212, 0x1a, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
147 {0x12, 0x0212, 0x1b, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
148 {0x13, 0x021b, 0x1c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04},
149 {0x12, 0x0010, 0x18, 0x02, 0x24, 0x02, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
151 {0x12, 0x0210, 0x18, 0x01, 0x24, 0x01, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
153 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
157 static struct XGI_ExtStruct XGI330_EModeIDTable
[] = {
158 {0x6a, 0x2212, 0x0407, 0x3a81, 0x0102, 0x08,
159 0x07, 0x00, 0x00, 0x07, 0x0e},
160 {0x2e, 0x0a1b, 0x0306, 0x3a57, 0x0101, 0x08,
161 0x06, 0x00, 0x00, 0x05, 0x06},
162 {0x2f, 0x0a1b, 0x0305, 0x3a50, 0x0100, 0x08,
163 0x05, 0x00, 0x00, 0x05, 0x05},
164 {0x30, 0x2a1b, 0x0407, 0x3a81, 0x0103, 0x08,
165 0x07, 0x00, 0x00, 0x07, 0x0e},
166 {0x31, 0x0a1b, 0x030d, 0x3b85, 0x0000, 0x08,
167 0x0d, 0x00, 0x00, 0x06, 0x3d},
168 {0x32, 0x0a1b, 0x0a0e, 0x3b8c, 0x0000, 0x08,
169 0x0e, 0x00, 0x00, 0x06, 0x3e},
170 {0x33, 0x0a1d, 0x0a0d, 0x3b85, 0x0000, 0x08,
171 0x0d, 0x00, 0x00, 0x06, 0x3d},
172 {0x34, 0x2a1d, 0x0a0e, 0x3b8c, 0x0000, 0x08,
173 0x0e, 0x00, 0x00, 0x06, 0x3e},
174 {0x35, 0x0a1f, 0x0a0d, 0x3b85, 0x0000, 0x08,
175 0x0d, 0x00, 0x00, 0x06, 0x3d},
176 {0x36, 0x2a1f, 0x0a0e, 0x3b8c, 0x0000, 0x08,
177 0x0e, 0x00, 0x00, 0x06, 0x3e},
178 {0x37, 0x0212, 0x0508, 0x3aab, 0x0104, 0x08,
179 0x08, 0x00, 0x00, 0x00, 0x16},
180 {0x38, 0x0a1b, 0x0508, 0x3aab, 0x0105, 0x08,
181 0x08, 0x00, 0x00, 0x00, 0x16},
182 {0x3a, 0x0e3b, 0x0609, 0x3adc, 0x0107, 0x08,
183 0x09, 0x00, 0x00, 0x00, 0x1e},
184 {0x3c, 0x0e3b, 0x070a, 0x3af2, 0x0130, 0x08,
185 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
186 add CRT2MODE [2003/10/07] */
187 {0x3d, 0x0e7d, 0x070a, 0x3af2, 0x0131, 0x08,
188 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
190 {0x40, 0x9a1c, 0x0000, 0x3a34, 0x010d, 0x08,
191 0x00, 0x00, 0x00, 0x04, 0x00},
192 {0x41, 0x9a1d, 0x0000, 0x3a34, 0x010e, 0x08,
193 0x00, 0x00, 0x00, 0x04, 0x00}, /* ModeIdIndex = 0x10 */
194 {0x43, 0x0a1c, 0x0306, 0x3a57, 0x0110, 0x08,
195 0x06, 0x00, 0x00, 0x05, 0x06},
196 {0x44, 0x0a1d, 0x0306, 0x3a57, 0x0111, 0x08,
197 0x06, 0x00, 0x00, 0x05, 0x06},
198 {0x46, 0x2a1c, 0x0407, 0x3a81, 0x0113, 0x08,
199 0x07, 0x00, 0x00, 0x07, 0x0e},
200 {0x47, 0x2a1d, 0x0407, 0x3a81, 0x0114, 0x08,
201 0x07, 0x00, 0x00, 0x07, 0x0e},
202 {0x49, 0x0a3c, 0x0508, 0x3aab, 0x0116, 0x08,
203 0x08, 0x00, 0x00, 0x00, 0x16},
204 {0x4a, 0x0a3d, 0x0508, 0x3aab, 0x0117, 0x08,
205 0x08, 0x00, 0x00, 0x00, 0x16},
206 {0x4c, 0x0e7c, 0x0609, 0x3adc, 0x0119, 0x08,
207 0x09, 0x00, 0x00, 0x00, 0x1e},
208 {0x4d, 0x0e7d, 0x0609, 0x3adc, 0x011a, 0x08,
209 0x09, 0x00, 0x00, 0x00, 0x1e},
210 {0x50, 0x9a1b, 0x0001, 0x3a3b, 0x0132, 0x08,
211 0x01, 0x00, 0x00, 0x04, 0x02},
212 {0x51, 0xba1b, 0x0103, 0x3a42, 0x0133, 0x08,
213 0x03, 0x00, 0x00, 0x07, 0x03},
214 {0x52, 0x9a1b, 0x0204, 0x3a49, 0x0134, 0x08,
215 0x04, 0x00, 0x00, 0x00, 0x04},
216 {0x56, 0x9a1d, 0x0001, 0x3a3b, 0x0135, 0x08,
217 0x01, 0x00, 0x00, 0x04, 0x02},
218 {0x57, 0xba1d, 0x0103, 0x3a42, 0x0136, 0x08,
219 0x03, 0x00, 0x00, 0x07, 0x03},
220 {0x58, 0x9a1d, 0x0204, 0x3a49, 0x0137, 0x08,
221 0x04, 0x00, 0x00, 0x00, 0x04},
222 {0x59, 0x9a1b, 0x0000, 0x3a34, 0x0138, 0x08,
223 0x00, 0x00, 0x00, 0x04, 0x00},
224 {0x5A, 0x021b, 0x0014, 0x3b83, 0x0138, 0x08,
225 0x01, 0x00, 0x00, 0x04, 0x3f}, /* ModeIdIndex = 0x20 */
226 {0x5B, 0x0a1d, 0x0014, 0x3b83, 0x0135, 0x08,
227 0x01, 0x00, 0x00, 0x04, 0x3f},
228 {0x5d, 0x0a1d, 0x0305, 0x3a50, 0x0139, 0x08,
229 0x05, 0x00, 0x00, 0x07, 0x05},
230 {0x62, 0x0a3f, 0x0306, 0x3a57, 0x013a, 0x08,
231 0x06, 0x00, 0x00, 0x05, 0x06},
232 {0x63, 0x2a3f, 0x0407, 0x3a81, 0x013b, 0x08,
233 0x07, 0x00, 0x00, 0x07, 0x0e},
234 {0x64, 0x0a7f, 0x0508, 0x3aab, 0x013c, 0x08,
235 0x08, 0x00, 0x00, 0x00, 0x16},
236 {0x65, 0x0eff, 0x0609, 0x3adc, 0x013d, 0x08,
237 0x09, 0x00, 0x00, 0x00, 0x1e},
238 {0x66, 0x0eff, 0x070a, 0x3af2, 0x013e, 0x08,
239 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
241 {0x68, 0x067b, 0x080b, 0x3b17, 0x013f, 0x08,
242 0x0b, 0x00, 0x00, 0x00, 0x29},
243 {0x69, 0x06fd, 0x080b, 0x3b17, 0x0140, 0x08,
244 0x0b, 0x00, 0x00, 0x00, 0x29},
245 {0x6b, 0x07ff, 0x080b, 0x3b17, 0x0141, 0x10,
246 0x0b, 0x00, 0x00, 0x00, 0x29},
247 {0x6c, 0x067b, 0x090c, 0x3b37, 0x0000, 0x08,
248 0x0c, 0x00, 0x00, 0x00, 0x2f},
249 {0x6d, 0x06fd, 0x090c, 0x3b37, 0x0000, 0x10,
250 0x0c, 0x00, 0x00, 0x00, 0x2f},
251 {0x6e, 0x07ff, 0x090c, 0x3b37, 0x0000, 0x10,
252 0x0c, 0x00, 0x00, 0x00, 0x2f},
253 {0x70, 0x2a1b, 0x0410, 0x3b52, 0x0000, 0x08,
254 0x10, 0x00, 0x00, 0x07, 0x34},
255 {0x71, 0x0a1b, 0x0511, 0x3b63, 0x0000, 0x08,
256 0x11, 0x00, 0x00, 0x00, 0x37},
257 {0x74, 0x0a1d, 0x0511, 0x3b63, 0x0000, 0x08,
258 0x11, 0x00, 0x00, 0x00, 0x37}, /* ModeIdIndex = 0x30 */
259 {0x75, 0x0a3d, 0x0612, 0x3b74, 0x0000, 0x08,
260 0x12, 0x00, 0x00, 0x00, 0x3a},
261 {0x76, 0x2a1f, 0x0410, 0x3b52, 0x0000, 0x08,
262 0x10, 0x00, 0x00, 0x07, 0x34},
263 {0x77, 0x0a1f, 0x0511, 0x3b63, 0x0000, 0x08,
264 0x11, 0x00, 0x00, 0x00, 0x37},
265 {0x78, 0x0a3f, 0x0612, 0x3b74, 0x0000, 0x08,
266 0x12, 0x00, 0x00, 0x00, 0x3a},
267 {0x79, 0x0a3b, 0x0612, 0x3b74, 0x0000, 0x08,
268 0x12, 0x00, 0x00, 0x00, 0x3a},
269 {0x7a, 0x2a1d, 0x0410, 0x3b52, 0x0000, 0x08,
270 0x10, 0x00, 0x00, 0x07, 0x34},
271 {0x7b, 0x0e3b, 0x060f, 0x3ad0, 0x0000, 0x08,
272 0x0f, 0x00, 0x00, 0x00, 0x1d},
273 {0x7c, 0x0e7d, 0x060f, 0x3ad0, 0x0000, 0x08,
274 0x0f, 0x00, 0x00, 0x00, 0x1d},
275 {0x7d, 0x0eff, 0x060f, 0x3ad0, 0x0000, 0x08,
276 0x0f, 0x00, 0x00, 0x00, 0x1d},
277 {0x20, 0x0e3b, 0x0D16, 0x49e0, 0x0000, 0x08,
278 0x16, 0x00, 0x00, 0x00, 0x43},
279 {0x21, 0x0e7d, 0x0D16, 0x49e0, 0x0000, 0x08,
280 0x16, 0x00, 0x00, 0x00, 0x43},
281 {0x22, 0x0eff, 0x0D16, 0x49e0, 0x0000, 0x08,
282 0x16, 0x00, 0x00, 0x00, 0x43},
283 {0x23, 0x0e3b, 0x0614, 0x49d5, 0x0000, 0x08,
284 0x14, 0x00, 0x00, 0x00, 0x41},
285 {0x24, 0x0e7d, 0x0614, 0x49d5, 0x0000, 0x08,
286 0x14, 0x00, 0x00, 0x00, 0x41},
287 {0x25, 0x0eff, 0x0614, 0x49d5, 0x0000, 0x08,
288 0x14, 0x00, 0x00, 0x00, 0x41},
289 {0x26, 0x063b, 0x0c15, 0x49dc, 0x0000, 0x08,
290 0x15, 0x00, 0x00, 0x00, 0x42}, /* ModeIdIndex = 0x40 */
291 {0x27, 0x067d, 0x0c15, 0x49dc, 0x0000, 0x08,
292 0x15, 0x00, 0x00, 0x00, 0x42},
293 {0x28, 0x06ff, 0x0c15, 0x49dc, 0x0000, 0x08,
294 0x15, 0x00, 0x00, 0x00, 0x42},
295 {0xff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00}
299 static struct XGI_StandTableStruct XGI330_StandTable
[] = {
302 0x28, 0x18, 0x08, 0x0800,
303 {0x09, 0x03, 0x00, 0x02},
305 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
306 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
307 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
309 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
310 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
311 0x08, 0x00, 0x0f, 0x00},
312 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
317 0x28, 0x18, 0x08, 0x0800,
318 {0x09, 0x03, 0x00, 0x02},
320 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
321 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
322 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
324 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
325 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
326 0x08, 0x00, 0x0f, 0x00},
327 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
332 0x50, 0x18, 0x08, 0x1000,
333 {0x01, 0x03, 0x00, 0x02},
335 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
336 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
337 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
339 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
340 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
341 0x08, 0x00, 0x0f, 0x00},
342 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
347 0x50, 0x18, 0x08, 0x1000,
348 {0x01, 0x03, 0x00, 0x02},
350 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
351 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
352 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
354 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
355 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
356 0x08, 0x00, 0x0f, 0x00},
357 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
362 0x28, 0x18, 0x08, 0x4000,
363 {0x09, 0x03, 0x00, 0x02},
365 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
366 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
369 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
370 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
371 0x01, 0x00, 0x03, 0x00},
372 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
377 0x28, 0x18, 0x08, 0x4000,
378 {0x09, 0x03, 0x00, 0x02},
380 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
381 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
384 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
385 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
386 0x01, 0x00, 0x03, 0x00},
387 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
392 0x50, 0x18, 0x08, 0x4000,
393 {0x01, 0x01, 0x00, 0x06},
395 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
396 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2,
399 {0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
400 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
401 0x01, 0x00, 0x01, 0x00},
402 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
407 0x50, 0x18, 0x0e, 0x1000,
408 {0x00, 0x03, 0x00, 0x03},
410 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
411 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
412 0x83, 0x85, 0x5d, 0x28, 0x0d, 0x63, 0xba, 0xa3,
414 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
415 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
416 0x0e, 0x00, 0x0f, 0x08},
417 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
422 0x00, 0x00, 0x00, 0x0000,
423 {0x00, 0x00, 0x00, 0x15},
425 {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
426 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x3f, 0x3f,
427 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00,
429 {0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x15, 0x15,
430 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
431 0x15, 0x15, 0x15, 0x15},
432 {0x15, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
437 0x00, 0x10, 0x04, 0x0114,
438 {0x11, 0x09, 0x15, 0x00},
440 {0x04, 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a,
441 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x2a, 0x3a,
442 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x10,
444 {0x14, 0x01, 0x11, 0x09, 0x15, 0x00, 0x10, 0x04,
445 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a, 0x2e,
446 0x3e, 0x2b, 0x3b, 0x2f},
447 {0x3f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
452 0x00, 0x10, 0x04, 0x0114,
453 {0x11, 0x05, 0x15, 0x20},
455 {0x24, 0x34, 0x21, 0x31, 0x25, 0x35, 0x08, 0x18,
456 0x0c, 0x1c, 0x09, 0x19, 0x0d, 0x1d, 0x28, 0x38,
457 0x2c, 0x3c, 0x29, 0x39, 0x2d, 0x3d, 0x02, 0x12,
459 {0x16, 0x03, 0x13, 0x07, 0x17, 0x22, 0x32, 0x26,
460 0x36, 0x23, 0x33, 0x27, 0x37, 0x0a, 0x1a, 0x0e,
461 0x1e, 0x0b, 0x1b, 0x0f},
462 {0x1f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
467 0x00, 0x10, 0x04, 0x0114,
468 {0x11, 0x09, 0x15, 0x2a},
470 {0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x05,
471 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x18, 0x1c, 0x20,
472 0x24, 0x28, 0x2d, 0x32, 0x38, 0x3f, 0x00, 0x10,
474 {0x2f, 0x3f, 0x1f, 0x27, 0x2f, 0x37, 0x3f, 0x2d,
475 0x31, 0x36, 0x3a, 0x3f, 0x00, 0x07, 0x0e, 0x15,
476 0x1c, 0x0e, 0x11, 0x15},
477 {0x18, 0x1c, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x00,
481 0x08, 0x0c, 0x10, 0x0a08,
482 {0x0c, 0x0e, 0x10, 0x0b},
484 {0x0d, 0x0f, 0x10, 0x10, 0x01, 0x08, 0x00, 0x00,
485 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00,
486 0x04, 0x04, 0x01, 0x00, 0x05, 0x02, 0x05, 0x00,
488 {0x01, 0x06, 0x05, 0x06, 0x00, 0x08, 0x01, 0x08,
489 0x00, 0x07, 0x02, 0x07, 0x06, 0x07, 0x00, 0x00,
490 0x00, 0x00, 0x00, 0x00},
491 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
496 0x28, 0x18, 0x08, 0x2000,
497 {0x09, 0x0f, 0x00, 0x06},
499 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
500 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
501 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3,
503 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
504 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
505 0x01, 0x00, 0x0f, 0x00},
506 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
511 0x50, 0x18, 0x08, 0x4000,
512 {0x01, 0x0f, 0x00, 0x06},
514 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
515 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
516 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3,
518 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
519 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
520 0x01, 0x00, 0x0f, 0x00},
521 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
526 0x00, 0x00, 0x00, 0x0000,
527 {0x01, 0x0f, 0x00, 0x0e},
529 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
530 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
531 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
533 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
534 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
535 0x01, 0x00, 0x00, 0x00},
536 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
541 0x9f, 0x3b, 0x00, 0x00c0,
542 {0x00, 0x00, 0x00, 0x00},
544 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x3f,
545 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
546 0x00, 0x00, 0x1a, 0x00, 0xac, 0x3e, 0x00, 0xc0,
548 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
549 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
550 0x00, 0x00, 0x00, 0x00},
551 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
556 0x50, 0x18, 0x0e, 0x8000,
557 {0x01, 0x0f, 0x00, 0x06},
559 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
560 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
561 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
563 {0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
564 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
565 0x0b, 0x00, 0x05, 0x00},
566 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05,
571 0x50, 0x18, 0x0e, 0x8000,
572 {0x01, 0x0f, 0x00, 0x06},
574 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
575 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
576 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
578 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
579 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
580 0x01, 0x00, 0x0f, 0x00},
581 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
586 0x28, 0x18, 0x0e, 0x0800,
587 {0x09, 0x03, 0x00, 0x02},
589 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
590 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
591 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
593 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
594 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
595 0x08, 0x00, 0x0f, 0x00},
596 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
601 0x28, 0x18, 0x0e, 0x0800,
602 {0x09, 0x03, 0x00, 0x02},
604 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
605 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
606 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
608 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
609 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
610 0x08, 0x00, 0x0f, 0x00},
611 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
616 0x50, 0x18, 0x0e, 0x1000,
617 {0x01, 0x03, 0x00, 0x02},
619 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
620 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
621 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
623 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
624 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
625 0x08, 0x00, 0x0f, 0x00},
626 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
631 0x50, 0x18, 0x0e, 0x1000,
632 {0x01, 0x03, 0x00, 0x02},
634 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
635 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
636 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
638 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
639 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
640 0x08, 0x00, 0x0f, 0x00},
641 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
646 0x28, 0x18, 0x10, 0x0800,
647 {0x08, 0x03, 0x00, 0x02},
649 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
650 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
651 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
653 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
654 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
655 0x0c, 0x00, 0x0f, 0x08},
656 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
661 0x50, 0x18, 0x10, 0x1000,
662 {0x00, 0x03, 0x00, 0x02},
664 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
665 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
666 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
668 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
669 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
670 0x0c, 0x00, 0x0f, 0x08},
671 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
676 0x50, 0x18, 0x10, 0x1000,
677 {0x00, 0x03, 0x00, 0x02},
679 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
680 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
681 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
683 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
684 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
685 0x0e, 0x00, 0x0f, 0x08},
686 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
691 0x50, 0x1d, 0x10, 0xa000,
692 {0x01, 0x0f, 0x00, 0x06},
694 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
695 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
696 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xc3,
698 {0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
699 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
700 0x01, 0x00, 0x0f, 0x00},
701 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01,
706 0x50, 0x1d, 0x10, 0xa000,
707 {0x01, 0x0f, 0x00, 0x06},
709 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
710 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
711 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
713 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
714 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
715 0x01, 0x00, 0x0f, 0x00},
716 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
721 0x28, 0x18, 0x08, 0x2000,
722 {0x01, 0x0f, 0x00, 0x0e},
724 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
725 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
726 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3,
728 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
729 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
730 0x41, 0x00, 0x0f, 0x00},
731 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
736 static struct XGI_TimingHStruct XGI_TimingH
[1];
738 static struct XGI_TimingVStruct XGI_TimingV
[1];
740 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table
[] = {
741 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
742 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
743 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
744 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
745 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
746 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
747 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
748 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
749 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
750 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
751 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
752 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
753 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
754 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
755 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
756 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
757 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
760 static struct XGI_CRT1TableStruct XGI_CRT1Table
[] = {
761 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
762 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
763 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
764 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
765 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
766 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
767 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
768 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
769 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
770 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
771 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
772 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
773 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
774 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
775 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
776 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
777 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
778 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
779 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
780 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
781 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
782 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
783 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
784 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
785 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
786 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
787 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
789 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
791 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
793 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
795 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
797 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
799 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
801 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
803 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
805 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
807 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
808 12 (800x600,100Hz) */
809 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
811 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
812 13 (800x600,120Hz) */
813 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
815 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
816 14 (800x600,160Hz) */
817 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
819 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
820 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
821 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
822 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
823 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
824 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
825 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
826 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
827 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
828 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
829 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
830 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
831 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
832 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
833 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
834 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
835 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
836 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
837 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
838 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
839 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
840 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
841 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
842 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
843 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
844 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
845 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
846 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
847 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
848 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
849 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
850 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
851 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
852 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
853 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
854 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
855 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
856 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
857 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
858 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
859 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
860 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
861 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
862 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
863 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
864 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
865 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
866 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
867 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
868 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
869 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
870 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
871 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
872 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
873 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
874 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
875 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
876 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
877 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
878 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
879 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
880 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
881 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
882 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
883 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
884 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
885 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
886 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
887 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
888 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
889 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
890 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
891 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
892 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
893 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
894 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
895 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
896 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
897 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
898 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
899 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
900 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
901 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
902 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
903 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
904 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
905 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
906 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
907 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
908 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
909 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
910 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
911 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
912 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
913 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
914 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
915 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
916 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
917 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
918 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
919 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
920 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
923 static unsigned char XGI_CH7017LV1024x768
[] = {
924 0x60, 0x02, 0x00, 0x07, 0x40, 0xED,
925 0xA3, 0xC8, 0xC7, 0xAC, 0xE0, 0x02};
926 static unsigned char XGI_CH7017LV1400x1050
[] = {
927 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3,
928 0xAD, 0xDB, 0xF6, 0xAC, 0xE0, 0x02};
930 /*add for new UNIVGABIOS*/
931 static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data
[] = {
932 {62, 25, 800, 546, 1344, 806},
933 {32, 15, 930, 546, 1344, 806},
934 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
935 {104, 45, 945, 496, 1344, 806},
936 {62, 25, 800, 546, 1344, 806},
937 {31, 18, 1008, 624, 1344, 806},
938 {1, 1, 1344, 806, 1344, 806}
941 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data
[] = {
942 /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
943 {42, 25, 1536, 419, 1344, 806},
944 /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
945 {48, 25, 1536, 369, 1344, 806},
946 /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
947 {42, 25, 1536, 419, 1344, 806},
948 /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
949 {48, 25, 1536, 369, 1344, 806},
950 {12, 5, 896, 500, 1344, 806},
951 {42, 25, 1024, 625, 1344, 806},
952 {1, 1, 1344, 806, 1344, 806},
953 {12, 5, 896, 500, 1344, 806},
954 {42, 25, 1024, 625, 1344, 806},
955 {1, 1, 1344, 806, 1344, 806},
956 {12, 5, 896, 500, 1344, 806},
957 {42, 25, 1024, 625, 1344, 806},
958 {1, 1, 1344, 806, 1344, 806}
961 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data
[] = {
962 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
964 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
965 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
966 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
967 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
968 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
969 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
972 static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data
[] = {
973 {22, 5, 800, 510, 1650, 1088},
974 {22, 5, 800, 510, 1650, 1088},
975 {176, 45, 900, 510, 1650, 1088},
976 {176, 45, 900, 510, 1650, 1088},
977 {22, 5, 800, 510, 1650, 1088},
978 {13, 5, 1024, 675, 1560, 1152},
979 {16, 9, 1266, 804, 1688, 1072},
980 {1, 1, 1688, 1066, 1688, 1066}
983 static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data
[] = {
984 {211, 60, 1024, 501, 1688, 1066},
985 {211, 60, 1024, 508, 1688, 1066},
986 {211, 60, 1024, 501, 1688, 1066},
987 {211, 60, 1024, 508, 1688, 1066},
988 {211, 60, 1024, 500, 1688, 1066},
989 {211, 75, 1024, 625, 1688, 1066},
990 {211, 120, 1280, 798, 1688, 1066},
991 {1, 1, 1688, 1066, 1688, 1066}
994 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data
[] = {
995 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
997 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
998 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
999 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1000 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1001 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1002 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1003 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1004 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1007 static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050
[] = {
1008 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
1010 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
1011 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
1012 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
1013 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
1014 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
1015 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
1016 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
1018 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1021 static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data
[] = {
1022 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1023 // 00 (320x200,320x400,
1025 // // alan 10/14/2003 */
1026 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
1027 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1028 // 02 (360x400,720x400)
1029 // // alan 10/14/2003 */
1030 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
1031 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
1032 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
1033 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
1034 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
1035 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
1036 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
1039 static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data
[] = {
1040 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
1042 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
1043 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
1044 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
1045 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
1046 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
1047 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
1048 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
1049 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
1050 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
1053 static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data
[] = {
1054 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1056 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1057 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1058 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1059 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1060 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1061 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1062 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1063 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1066 static struct XGI330_LCDDataStruct XGI_NoScalingData
[] = {
1067 {1, 1, 800, 449, 800, 449},
1068 {1, 1, 800, 449, 800, 449},
1069 {1, 1, 900, 449, 900, 449},
1070 {1, 1, 900, 449, 900, 449},
1071 {1, 1, 800, 525, 800, 525},
1072 {1, 1, 1056, 628, 1056, 628},
1073 {1, 1, 1344, 806, 1344, 806},
1074 {1, 1, 1688, 1066, 1688, 1066}
1077 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data
[] = {
1078 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
1080 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
1081 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
1082 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
1083 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
1084 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
1085 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
1088 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data
[] = {
1089 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
1091 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1092 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1093 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
1094 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
1095 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
1096 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
1099 static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75
[] = {
1100 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
1102 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
1103 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
1104 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
1105 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1106 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1107 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1108 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
1111 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data
[] = {
1112 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
1114 {1, 1, 1688, 1066, 1688, 1066}, /* ; 01 (320x350,640x350) */
1115 {1, 1, 1688, 1066, 1688, 1066}, /* ; 02 (360x400,720x400) */
1116 {1, 1, 1688, 1066, 1688, 1066}, /* ; 03 (720x350) */
1117 {1, 1, 1688, 1066, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1118 {1, 1, 1688, 1066, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1119 {1, 1, 1688, 1066, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1120 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
1123 static struct XGI330_LCDDataStruct XGI_NoScalingDatax75
[] = {
1124 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
1125 640x200, 640x400) */
1126 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
1127 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
1128 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
1129 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
1130 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1131 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1132 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1133 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1134 ;;[ycchen] 12/19/02 */
1135 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1136 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
1139 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data
[] = {
1140 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
1141 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
1142 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
1143 {9, 1057, 0, 771}, /* ; 03 (720x350) */
1144 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
1145 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1146 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
1149 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data
[] = {
1150 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
1151 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
1152 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
1153 {9, 1057, 686, 651}, /* ; 03 (720x350) */
1154 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
1155 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1156 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
1159 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data
[] = {
1160 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1161 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1162 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
1163 {1152, 856, 597, 562}, /* ; 03 (720x350) */
1164 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
1165 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
1166 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
1169 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data
[] = {
1170 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
1171 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
1172 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
1173 {18, 1346, 926, 865}, /* 03 (720x350) */
1174 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1175 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1176 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1177 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1180 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data
[] = {
1181 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
1182 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
1183 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
1184 {18, 1346, 917, 854}, /* 03 (720x350) */
1185 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1186 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1187 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1188 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1191 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data
[] = {
1192 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1193 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1194 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1195 {1368, 1008, 729, 688}, /* 03 (720x350) */
1196 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1197 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1198 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1199 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
1202 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data
[] = {
1203 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
1204 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
1205 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
1206 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
1207 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1208 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1209 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1210 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
1213 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data
[] = {
1214 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
1215 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
1216 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
1217 {9, 1337, 917, 854}, /* ; 03 (720x350) */
1218 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1219 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1220 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1221 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
1224 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data
[] = {
1225 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1226 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1227 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1228 {1368, 1008, 729, 688}, /* 03 (720x350) */
1229 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1230 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1231 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1232 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
1235 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1400x1050
[] = {
1236 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1237 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
1238 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
1239 {18, 1464, 0, 1051}, /* 03 (720x350) */
1240 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
1241 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
1242 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
1243 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1244 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
1247 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1400x1050
[] = {
1248 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1249 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
1250 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
1251 {9, 1455, 0, 1051}, /* 03 (720x350) */
1252 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
1253 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
1254 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
1255 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1256 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
1259 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data
[] = {
1260 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1261 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1262 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1263 {1308, 1068, 781, 766}, /* 03 (720x350) */
1264 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1265 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1266 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1267 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1268 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
1271 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2
[] = {
1272 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1273 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1274 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1275 {0, 1448, 0, 1051}, /* 03 (720x350) */
1276 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
1279 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data
[] = {
1280 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1281 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
1282 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
1283 {18, 1682, 0, 1201}, /* 03 (720x350) */
1284 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1285 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1286 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1287 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
1288 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1289 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
1292 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data
[] = {
1293 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1294 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
1295 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
1296 {18, 1682, 1083, 1034}, /* 03 (720x350) */
1297 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1298 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1299 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1300 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1301 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1302 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
1305 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data
[] = {
1306 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1307 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
1308 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
1309 {9, 1673, 0, 1201}, /* 03 (720x350) */
1310 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1311 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1312 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1313 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
1314 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1315 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
1318 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data
[] = {
1319 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1320 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
1321 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
1322 {9, 1673, 1083, 1034}, /* 03 (720x350) */
1323 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1324 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1325 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1326 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1327 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1328 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
1331 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData
[] = {
1332 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1334 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1335 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1336 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
1337 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1338 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1339 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
1340 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1341 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz) },
1342 //;[ycchen] 12/19/02 */
1343 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1344 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
1347 /* ;;1024x768x75Hz */
1348 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1024x768x75
[] = {
1349 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1350 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
1351 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
1352 {9, 1049, 0, 769}, /* ; 03 (720x350) */
1353 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
1354 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
1355 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
1358 /* ;;1024x768x75Hz */
1359 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data
[] = {
1360 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1361 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1362 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
1363 {1192, 896, 597, 562}, /* ; 03 (720x350) */
1364 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
1365 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
1366 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
1369 /* ;;1280x1024x75Hz */
1370 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1280x1024x75
[] = {
1371 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1372 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
1373 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
1374 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
1375 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
1376 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
1377 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1378 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
1381 /* 1280x1024x75Hz */
1382 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data
[] = {
1383 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1384 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1385 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1386 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1387 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1388 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1389 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1390 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1393 /* ;;1280x1024x75Hz */
1394 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1280x1024x75
[] = {
1395 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1396 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
1397 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
1398 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
1399 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
1400 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
1401 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1402 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
1405 /* 1280x1024x75Hz */
1406 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data
[] = {
1407 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1408 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1409 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1410 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1411 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1412 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1413 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1414 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1417 /* Scaling LCD 75Hz */
1418 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75
[] = {
1419 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1421 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1422 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1423 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
1424 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1425 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1426 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1427 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1428 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)
1429 ;;[ycchen] 12/19/02 */
1430 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1431 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
1434 static struct XGI330_TVDataStruct XGI_StPALData
[] = {
1435 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
1436 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
1437 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
1438 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
1439 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
1440 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
1443 static struct XGI330_TVDataStruct XGI_ExtPALData
[] = {
1444 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1445 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1446 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1447 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1448 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
1449 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
1450 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
1451 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
1454 static struct XGI330_TVDataStruct XGI_StNTSCData
[] = {
1455 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1456 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1457 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1458 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1459 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
1462 static struct XGI330_TVDataStruct XGI_ExtNTSCData
[] = {
1463 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1464 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1465 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1466 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1467 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1468 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1469 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1470 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
1471 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1474 static struct XGI330_TVDataStruct XGI_St1HiTVData
[] = {
1475 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1477 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1478 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
1479 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1480 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
1481 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
1484 static struct XGI330_TVDataStruct XGI_St2HiTVData
[] = {
1485 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1487 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1488 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
1489 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1490 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
1491 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
1494 static struct XGI330_TVDataStruct XGI_ExtHiTVData
[] = {
1495 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1497 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
1498 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
1499 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
1500 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
1501 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
1502 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
1503 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
1504 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
1505 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
1506 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
1509 static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData
[] = {
1510 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1511 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1512 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1513 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1514 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
1515 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
1516 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1517 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1518 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
1521 static struct XGI330_TVDataStruct XGI_StYPbPr525iData
[] = {
1522 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1523 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1524 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1525 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1526 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
1529 static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData
[] = {
1530 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1531 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1532 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1533 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1534 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1535 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1536 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1537 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1538 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1541 static struct XGI330_TVDataStruct XGI_StYPbPr525pData
[] = {
1542 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
1543 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
1544 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
1545 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
1546 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
1549 static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData
[] = {
1550 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1552 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
1553 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
1554 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
1555 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1556 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1557 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1558 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1559 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1560 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1561 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1564 static struct XGI330_TVDataStruct XGI_StYPbPr750pData
[] = {
1565 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1566 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1567 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1568 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1569 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
1572 static unsigned char XGI330_NTSCTiming
[] = {
1573 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1574 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1575 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1576 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1577 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1578 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1579 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1580 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1583 static unsigned char XGI330_PALTiming
[] = {
1584 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1585 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1586 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1587 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1588 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1589 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1590 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1591 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
1594 static unsigned char XGI330_HiTVExtTiming
[] = {
1595 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1596 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1597 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1598 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1599 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1600 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1601 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1602 0x60, 0x14, 0x3D, 0x63, 0x4F,
1603 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
1606 static unsigned char XGI330_HiTVSt1Timing
[] = {
1607 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1608 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1609 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1610 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1611 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1612 0x35, 0x35, 0x3B, 0x69, 0x1D,
1613 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1614 0x60, 0x04, 0x86, 0xAF, 0x5D,
1615 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
1618 static unsigned char XGI330_HiTVSt2Timing
[] = {
1619 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1620 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1621 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1622 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1623 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1624 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1625 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1626 0x60, 0x14, 0x3D, 0x63, 0x4F,
1627 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
1630 static unsigned char XGI330_HiTVTextTiming
[] = {
1631 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1632 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1633 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1634 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1635 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1636 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1637 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1638 0x60, 0x04, 0x96, 0x72, 0x5C,
1639 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1642 static unsigned char XGI330_YPbPr750pTiming
[] = {
1643 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1644 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1645 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1646 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1647 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1648 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1649 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1650 0x60, 0x14, 0x73, 0x00, 0x40,
1651 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
1654 static unsigned char XGI330_YPbPr525pTiming
[] = {
1655 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1656 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1657 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1658 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1659 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1660 0x51, 0x5e, 0x60, 0x49, 0x7d,
1661 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1662 0x60, 0x14, 0x4B, 0x43, 0x41,
1663 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1666 static unsigned char XGI330_YPbPr525iTiming
[] = {
1667 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1668 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1669 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1670 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1671 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1672 0x03, 0x0A, 0x65, 0x9D, 0x08,
1673 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1674 0x60, 0x14, 0x4B, 0x00, 0x40,
1675 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
1678 static unsigned char XGI330_HiTVGroup3Data
[] = {
1679 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1680 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1681 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1682 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1683 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1684 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1685 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1686 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1689 static unsigned char XGI330_HiTVGroup3Simu
[] = {
1690 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1691 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1692 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1693 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1694 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1695 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1696 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1697 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1700 static unsigned char XGI330_HiTVGroup3Text
[] = {
1701 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1702 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1703 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1704 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1705 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1706 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1707 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1708 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1711 static unsigned char XGI330_Ren525pGroup3
[] = {
1712 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1713 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1714 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1715 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1716 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1717 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1718 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1719 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1722 static unsigned char XGI330_Ren750pGroup3
[] = {
1723 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1724 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1725 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1726 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1727 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1728 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1729 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1730 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
1733 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1
[] = {
1734 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1735 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1736 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1737 {1040, 388, 1344, 806}, /* 03 (720x350) */
1738 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1739 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1740 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
1744 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2
[] = {
1745 {1344, 806, 1344, 806},
1746 {1344, 806, 1344, 806},
1747 {1344, 806, 1344, 806},
1748 {1344, 806, 1344, 806},
1749 {1344, 806, 1344, 806},
1750 {1344, 806, 1344, 806},
1751 {1344, 806, 1344, 806},
1752 {800, 449, 1280, 801},
1753 {800, 525, 1280, 813}
1756 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1
[] = {
1757 {1048, 442, 1688, 1066},
1758 {1048, 392, 1688, 1066},
1759 {1048, 442, 1688, 1066},
1760 {1048, 392, 1688, 1066},
1761 {1048, 522, 1688, 1066},
1762 {1208, 642, 1688, 1066},
1763 {1432, 810, 1688, 1066},
1764 {1688, 1066, 1688, 1066}
1767 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2
[] = {
1768 {1344, 806, 1344, 806},
1769 {1344, 806, 1344, 806},
1770 {1344, 806, 1344, 806},
1771 {1344, 806, 1344, 806},
1772 {1344, 806, 1344, 806},
1773 {1344, 806, 1344, 806},
1774 {1344, 806, 1344, 806},
1775 {800, 449, 1280, 801},
1776 {800, 525, 1280, 813}
1779 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1
[] = {
1780 {928, 416, 1688, 1066},
1781 {928, 366, 1688, 1066},
1782 {928, 416, 1688, 1066},
1783 {928, 366, 1688, 1066},
1784 {928, 496, 1688, 1066},
1785 {1088, 616, 1688, 1066},
1786 {1312, 784, 1688, 1066},
1787 {1568, 1040, 1688, 1066},
1788 {1688, 1066, 1688, 1066}
1791 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2
[] = {
1792 {1688, 1066, 1688, 1066},
1793 {1688, 1066, 1688, 1066},
1794 {1688, 1066, 1688, 1066},
1795 {1688, 1066, 1688, 1066},
1796 {1688, 1066, 1688, 1066},
1797 {1688, 1066, 1688, 1066},
1798 {1688, 1066, 1688, 1066},
1799 {1688, 1066, 1688, 1066},
1800 {1688, 1066, 1688, 1066}
1803 /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1804 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1
[] = {
1805 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1806 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1807 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1808 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1809 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1810 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1811 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1812 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1813 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1814 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
1817 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData
[] = {
1818 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1819 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1820 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1821 { 800, 449, 800, 449}, /* 03 (720x350) */
1822 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1823 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1824 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1825 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1826 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1827 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1828 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
1831 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75
[] = {
1832 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1833 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1834 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1835 {1040, 388, 1312, 800}, /* 03 (720x350) */
1836 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1837 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1838 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
1842 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75
[] = {
1843 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1844 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1845 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1846 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1847 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1848 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1849 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
1852 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75
[] = {
1853 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1854 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1855 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1856 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1857 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1858 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1859 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1860 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1863 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75
[] = {
1864 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1865 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1866 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1867 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1868 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1869 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1870 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1871 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1874 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75
[] = {
1875 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1876 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1877 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1878 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1879 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1880 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1881 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1882 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1883 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1884 ;;[ycchen] 12/19/02 */
1885 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1886 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
1889 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1
[] = {
1890 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1891 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1892 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1893 {0, 1048, 0, 771}, /* 03 (720x350) */
1894 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1895 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1896 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
1899 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2
[] = {
1900 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1901 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1902 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1903 {1142, 856, 597, 562}, /* 03 (720x350) */
1904 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1905 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1906 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1909 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3
[] = {
1910 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1911 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1912 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1913 {320, 24, 597, 562}, /* 03 (720x350) */
1914 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
1917 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1
[] = {
1918 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1919 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1920 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1921 {0, 1328, 0, 1025}, /* 03 (720x350) */
1922 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1923 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1924 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1925 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
1928 /* The Display setting for DE Mode Panel */
1929 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2
[] = {
1930 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1931 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1932 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1933 {1408, 1048, 729, 688}, /* 03 (720x350) */
1934 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1935 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1936 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1937 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
1940 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1
[] = {
1941 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1942 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1943 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1944 {0, 1448, 0, 1051}, /* 03 (720x350) */
1945 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1946 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1947 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1948 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1949 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1952 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2
[] = {
1953 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1954 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1955 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1956 {1308, 1068, 781, 766}, /* 03 (720x350) */
1957 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1958 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1959 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1960 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1961 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1964 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1
[] = {
1965 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1966 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1967 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1968 {0, 1664, 0, 1201}, /* 03 (720x350) */
1969 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1970 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1971 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1972 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1973 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1974 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
1977 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData
[] = {
1978 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1980 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1981 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1982 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1983 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1984 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1985 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1986 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1987 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)
1988 ;;[ycchen] 12/19/02 */
1989 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1990 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
1993 /* ; 1024x768 Full-screen */
1994 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75
[] = {
1995 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1996 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1997 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1998 {0, 1040, 0, 769}, /* ; 03 (720x350) */
1999 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
2000 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
2001 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
2004 /* ; 1024x768 center-screen (Enh. Mode) */
2005 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75
[] = {
2006 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
2007 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
2008 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
2009 {1142, 856, 597, 562}, /* 03 (720x350) */
2010 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
2011 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
2012 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
2015 /* ; 1024x768 center-screen (St.Mode) */
2016 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75
[] = {
2017 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
2018 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
2019 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
2020 {320, 24, 597, 562}, /* ; 03 (720x350) */
2021 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
2024 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75
[] = {
2025 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
2026 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
2027 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
2028 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
2029 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
2030 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
2031 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
2032 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
2035 /* The Display setting for DE Mode Panel */
2036 /* [ycchen] 02/18/03 Set DE as default */
2037 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75
[] = {
2038 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
2039 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
2040 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
2041 {1408, 976, 729, 688}, /* ; 03 (720x350) */
2042 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
2043 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
2044 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
2045 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
2048 /* Scaling LCD 75Hz */
2049 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75
[] = {
2050 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
2052 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
2053 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
2054 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
2055 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
2056 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
2057 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
2058 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
2059 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz)
2060 ;;[ycchen] 12/19/02 */
2061 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
2062 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
2065 static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData
[] = {
2066 { 840, 600, 840, 600},
2067 { 840, 600, 840, 600},
2068 { 840, 600, 840, 600},
2069 { 840, 600, 840, 600},
2070 { 784, 600, 784, 600},
2071 {1064, 750, 1064, 750}
2074 static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData
[] = {
2075 { 840, 525, 840, 525},
2076 { 840, 525, 840, 525},
2077 { 840, 525, 840, 525},
2078 { 840, 525, 840, 525},
2079 { 784, 525, 784, 525},
2080 {1040, 700, 1040, 700}
2083 static struct XGI330_CHTVDataStruct XGI_CHTVUPALData
[] = {
2084 {1008, 625, 1008, 625},
2085 {1008, 625, 1008, 625},
2086 {1008, 625, 1008, 625},
2087 {1008, 625, 1008, 625},
2088 { 840, 750, 840, 750},
2089 { 936, 836, 936, 836}
2092 static struct XGI330_CHTVDataStruct XGI_CHTVOPALData
[] = {
2093 {1008, 625, 1008, 625},
2094 {1008, 625, 1008, 625},
2095 {1008, 625, 1008, 625},
2096 {1008, 625, 1008, 625},
2097 {840, 625, 840, 625},
2098 {960, 750, 960, 750}
2101 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2102 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H
[] = {
2103 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
2104 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
2105 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
2106 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2107 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2108 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2109 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
2110 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
2113 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2114 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H
[] = {
2115 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
2116 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
2117 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
2118 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
2119 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
2120 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
2121 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
2122 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
2123 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
2126 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2127 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H
[] = {
2128 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2129 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2130 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2131 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2132 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2133 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2134 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2135 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
2138 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2139 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H
[] = {
2140 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2141 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2142 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2143 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2144 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2145 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2146 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2147 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2148 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
2151 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2152 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H
[] = {
2153 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
2154 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
2155 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2156 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2157 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2158 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2159 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
2160 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2161 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2162 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
2165 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2166 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H
[] = {
2167 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
2168 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
2169 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
2170 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
2171 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2172 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2173 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
2174 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2175 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
2176 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
2179 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
2180 /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2181 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H
[] = {
2182 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2183 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2184 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2185 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
2186 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2187 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2188 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
2189 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2190 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2191 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
2192 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
2195 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2196 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V
[] = {
2197 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
2198 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
2199 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
2200 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
2201 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
2204 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2205 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V
[] = {
2206 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
2207 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
2208 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
2209 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
2210 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
2213 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2214 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V
[] = {
2215 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
2216 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
2217 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
2218 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
2219 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
2220 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
2223 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2224 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V
[] = {
2225 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
2226 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
2227 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
2228 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
2229 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
2230 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
2233 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2234 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V
[] = {
2235 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
2236 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
2237 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
2238 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
2239 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
2240 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
2241 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
2244 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2245 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V
[] = {
2246 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
2247 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
2248 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
2249 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
2250 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
2251 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
2252 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
2255 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2256 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V
[] = {
2257 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
2258 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
2259 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
2260 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
2261 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
2262 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
2263 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
2264 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
2267 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2268 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75
[] = {
2269 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
2270 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
2271 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
2272 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2273 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
2274 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
2275 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
2276 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
2279 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2280 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75
[] = {
2281 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
2282 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
2283 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
2284 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
2285 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
2288 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2289 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75
[] = {
2290 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2291 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2292 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2293 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2294 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2295 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2296 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2297 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
2300 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2301 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75
[] = {
2302 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
2303 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
2304 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
2305 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
2306 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
2309 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2310 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75
[] = {
2311 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
2312 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
2313 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2314 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2315 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2316 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2317 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
2318 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
2319 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
2322 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2323 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75
[] = {
2324 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
2325 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
2326 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
2327 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
2328 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
2329 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2331 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2332 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75
[] = {
2333 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2334 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2335 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2336 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2337 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
2338 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
2339 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2340 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
2341 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
2344 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2345 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75
[] = {
2346 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
2347 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
2348 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
2349 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
2350 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
2351 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2354 /*add for new UNIVGABIOS*/
2355 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable
[] = {
2356 {Panel1024x768
, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
2357 {Panel1024x768
, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
2358 {Panel1024x768
, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
2359 {Panel1280x1024
, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
2360 {Panel1280x1024
, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
2361 {Panel1280x1024
, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
2362 {Panel1400x1050
, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
2363 {Panel1400x1050
, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
2364 {Panel1400x1050
, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
2365 {Panel1600x1200
, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
2366 {Panel1600x1200
, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
2367 {PanelRef60Hz
, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
2368 {Panel1024x768x75
, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
2369 {Panel1024x768x75
, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
2370 {Panel1024x768x75
, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
2371 {Panel1280x1024x75
, 0x0019, 0x0001, 15}, /* XGI_ExtLCD1280x1024x75Data*/
2372 {Panel1280x1024x75
, 0x0019, 0x0000, 16}, /* XGI_StLCD1280x1024x75Data */
2373 {Panel1280x1024x75
, 0x0018, 0x0010, 17}, /* XGI_CetLCD1280x1024x75Data*/
2374 {PanelRef75Hz
, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
2375 {0xFF, 0x0000, 0x0000, 0} /* End of table */
2378 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable
[] = {
2379 {Panel1024x768
, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
2380 {Panel1024x768
, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
2381 {Panel1024x768
, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
2382 {Panel1280x1024
, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
2383 {Panel1280x1024
, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
2384 {Panel1280x1024
, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
2385 {Panel1400x1050
, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
2386 {Panel1400x1050
, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
2387 {Panel1400x1050
, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
2388 {Panel1400x1050
, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
2389 {Panel1600x1200
, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
2390 {Panel1600x1200
, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
2391 {PanelRef60Hz
, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
2392 {Panel1024x768x75
, 0x0019, 0x0001, 13}, /*XGI_ExtLCDDes1024x768x75Data*/
2393 {Panel1024x768x75
, 0x0019, 0x0000, 14}, /* XGI_StLCDDes1024x768x75Data*/
2394 {Panel1024x768x75
, 0x0018, 0x0010, 15}, /*XGI_CetLCDDes1024x768x75Data*/
2395 /* XGI_ExtLCDDes1280x1024x75Data */
2396 {Panel1280x1024x75
, 0x0019, 0x0001, 16},
2397 /* XGI_StLCDDes1280x1024x75Data */
2398 {Panel1280x1024x75
, 0x0019, 0x0000, 17},
2399 /* XGI_CetLCDDes1280x1024x75Data */
2400 {Panel1280x1024x75
, 0x0018, 0x0010, 18},
2401 {PanelRef75Hz
, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
2402 {0xFF, 0x0000, 0x0000, 0}
2405 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1
[] = {
2406 {Panel1024x768
, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
2407 {Panel1024x768
, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
2408 {Panel1280x1024
, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
2409 {Panel1280x1024
, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
2410 {Panel1400x1050
, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
2411 {Panel1400x1050
, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
2412 {Panel1600x1200
, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
2413 {Panel1024x768x75
, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
2414 {Panel1024x768x75
, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
2415 {Panel1280x1024x75
, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
2416 {Panel1280x1024x75
, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
2417 {0xFF, 0x0000, 0x0000, 0}
2420 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr
[] = {
2421 {Panel1024x768
, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
2422 {Panel1024x768
, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
2423 {Panel1280x1024
, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
2424 {Panel1280x1024
, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
2425 {Panel1400x1050
, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
2426 {Panel1400x1050
, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
2427 {Panel1600x1200
, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
2428 {PanelRef60Hz
, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
2429 {Panel1024x768x75
, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
2430 {Panel1024x768x75
, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
2431 {Panel1280x1024x75
, 0x0018, 0x0000, 10}, /* XGI_LVDS1280x1024Data_1x75*/
2432 {Panel1280x1024x75
, 0x0018, 0x0010, 11}, /*XGI_LVDS1280x1024Data_2x75*/
2433 {PanelRef75Hz
, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
2434 {0xFF, 0x0000, 0x0000, 0}
2437 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr
[] = {
2438 {Panel1024x768
, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
2439 {Panel1024x768
, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
2440 {Panel1024x768
, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
2441 {Panel1280x1024
, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
2442 {Panel1280x1024
, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
2443 {Panel1400x1050
, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
2444 {Panel1400x1050
, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
2445 {Panel1600x1200
, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
2446 {PanelRef60Hz
, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
2447 {Panel1024x768x75
, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
2448 {Panel1024x768x75
, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
2449 {Panel1024x768x75
, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
2450 {Panel1280x1024x75
, 0x0018, 0x0000, 12}, /* XGI_LVDS1280x1024Des_1x75 */
2451 {Panel1280x1024x75
, 0x0018, 0x0010, 13}, /* XGI_LVDS1280x1024Des_2x75 */
2452 {PanelRef75Hz
, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
2453 {0xFF, 0x0000, 0x0000, 0}
2456 static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr
[] = {
2457 {Panel1024x768
, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
2458 {Panel1400x1050
, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
2459 {0xFF, 0x0000, 0x0000, 0}
2462 static struct XGI330_TVDataTablStruct XGI_TVDataTable
[] = {
2463 {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
2464 {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
2465 {0x09E1, 0x0801, 2}, /* XGI_StPALData */
2466 {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
2467 {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
2468 {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
2469 {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
2470 {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
2471 {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
2472 {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
2473 {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
2474 {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
2475 {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
2476 {0xffff, 0x0000, 12} /* END */
2479 /* Chrontel 7017 TV List */
2480 static struct XGI330_TVDataTablStruct xgifb_chrontel_tv
[] = {
2481 {0x0011, 0x0000, 0}, /* UNTSC */
2482 {0x0011, 0x0010, 1}, /* ONTSC */
2483 {0x0011, 0x0001, 2}, /* UPAL */
2484 {0x0011, 0x0011, 3}, /* OPAL */
2488 static unsigned short LCDLenList
[] = {
2501 /* Dual link only */
2502 static struct XGI330_LCDCapStruct XGI_LCDDLCapList
[] = {
2503 /* LCDCap1024x768 */
2504 {Panel1024x768
, DefaultLCDCap
, 0, 0x012, 0x88, 0x06, VCLK65
,
2505 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2506 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2507 /* LCDCap1280x1024 */
2508 {Panel1280x1024
, LCDDualLink
+DefaultLCDCap
, StLCDBToA
,
2509 0x012, 0x70, 0x03, VCLK108_2
,
2510 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2511 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2512 /* LCDCap1400x1050 */
2513 {Panel1400x1050
, LCDDualLink
+DefaultLCDCap
, StLCDBToA
,
2514 0x012, 0x70, 0x03, VCLK108_2
,
2515 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2516 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2517 /* LCDCap1600x1200 */
2518 {Panel1600x1200
, LCDDualLink
+DefaultLCDCap
, LCDToFull
,
2519 0x012, 0xC0, 0x03, VCLK162
,
2520 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
2521 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2522 /* LCDCap1024x768x75 */
2523 {Panel1024x768x75
, DefaultLCDCap
, 0, 0x012, 0x60, 0, VCLK78_75
,
2524 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2525 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2526 /* LCDCap1280x1024x75 */
2527 {Panel1280x1024x75
, LCDDualLink
+DefaultLCDCap
, StLCDBToA
,
2528 0x012, 0x90, 0x03, VCLK135_5
,
2529 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2530 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2532 {0xFF, DefaultLCDCap
, 0, 0x012, 0x88, 0x06, VCLK65
,
2533 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2534 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2537 static struct XGI330_LCDCapStruct XGI_LCDCapList
[] = {
2538 /* LCDCap1024x768 */
2539 {Panel1024x768
, DefaultLCDCap
, 0, 0x012, 0x88, 0x06, VCLK65
,
2540 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2541 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2542 /* LCDCap1280x1024 */
2543 {Panel1280x1024
, DefaultLCDCap
, StLCDBToA
,
2544 0x012, 0x70, 0x03, VCLK108_2
,
2545 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2546 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2547 /* LCDCap1400x1050 */
2548 {Panel1400x1050
, DefaultLCDCap
, StLCDBToA
,
2549 0x012, 0x70, 0x03, VCLK108_2
,
2550 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2551 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2552 /* LCDCap1600x1200 */
2553 {Panel1600x1200
, DefaultLCDCap
, LCDToFull
,
2554 0x012, 0xC0, 0x03, VCLK162
,
2555 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
2556 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2557 /* LCDCap1024x768x75 */
2558 {Panel1024x768x75
, DefaultLCDCap
, 0, 0x012, 0x60, 0, VCLK78_75
,
2559 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2560 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2561 /* LCDCap1280x1024x75 */
2562 {Panel1280x1024x75
, DefaultLCDCap
, StLCDBToA
,
2563 0x012, 0x90, 0x03, VCLK135_5
,
2564 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2565 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2567 {0xFF, DefaultLCDCap
, 0, 0x012, 0x88, 0x06, VCLK65
,
2568 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2569 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2572 static struct XGI_Ext2Struct XGI330_RefIndex
[] = {
2573 {Support32Bpp
+ SupportAllCRT2
+ SyncPN
, RES320x200
, VCLK25_175
,
2574 0x00, 0x10, 0x59, 320, 200},/* 00 */
2575 {Support32Bpp
+ SupportAllCRT2
+ SyncPN
, RES320x200
, VCLK25_175
,
2576 0x00, 0x10, 0x00, 320, 400},/* 01 */
2577 {Support32Bpp
+ SupportAllCRT2
+ SyncNN
, RES320x240
, VCLK25_175
,
2578 0x04, 0x20, 0x50, 320, 240},/* 02 */
2579 {Support32Bpp
+ SupportAllCRT2
+ SyncPP
, RES400x300
, VCLK40
,
2580 0x05, 0x32, 0x51, 400, 300},/* 03 */
2581 {Support32Bpp
+ NoSupportTV
+ SyncNN
+ SupportTV1024
, RES512x384
,
2582 VCLK65
, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2583 {Support32Bpp
+ SupportAllCRT2
+ SyncPN
, RES640x400
, VCLK25_175
,
2584 0x00, 0x14, 0x2f, 640, 400},/* 05 */
2585 {Support32Bpp
+ SupportAllCRT2
+ SyncNN
, RES640x480x60
, VCLK25_175
,
2586 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
2587 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncNN
, RES640x480x72
, VCLK31_5
,
2588 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
2589 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncNN
, RES640x480x75
, VCLK31_5
,
2590 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
2591 {Support32Bpp
+ SupportRAMDAC2
+ SyncNN
, RES640x480x85
, VCLK36
,
2592 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
2593 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES640x480x100
, VCLK43_163
,
2594 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
2595 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES640x480x120
, VCLK52_406
,
2596 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
2597 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES640x480x160
, VCLK72_852
,
2598 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
2599 {Support32Bpp
+ SupportRAMDAC2
+ SyncNN
, RES640x480x200
, VCLK86_6
,
2600 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
2601 {Support32Bpp
+ NoSupportLCD
+ SyncPP
, RES800x600x56
, VCLK36
,
2602 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
2603 {Support32Bpp
+ NoSupportTV
+ SyncPP
, RES800x600x60
, VCLK40
,
2604 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
2605 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncPP
, RES800x600x72
, VCLK50
,
2606 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
2607 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncPP
, RES800x600x75
, VCLK49_5
,
2608 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
2609 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES800x600x85
, VCLK56_25
,
2610 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
2611 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES800x600x100
, VCLK68_179
,
2612 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
2613 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES800x600x120
, VCLK83_95
,
2614 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
2615 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES800x600x160
, VCLK116_406
,
2616 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
2617 {Support32Bpp
+ InterlaceMode
+ SyncPP
, RES1024x768x43
, VCLK44_9
,
2618 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2619 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
2620 {Support32Bpp
+ NoSupportTV
+ SyncNN
+ SupportTV1024
, RES1024x768x60
,
2621 VCLK65
, 0x06, 0x47, 0x37, 1024, 768},
2622 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncNN
, RES1024x768x70
, VCLK75
,
2623 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2624 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncPP
, RES1024x768x75
, VCLK78_75
,
2625 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2626 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1024x768x85
, VCLK94_5
,
2627 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2628 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES1024x768x100
, VCLK113_309
,
2629 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2630 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES1024x768x120
, VCLK139_054
,
2631 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2632 {Support32Bpp
+ SupportLCD
+ SyncPP
, RES1280x960x60
, VCLK108_2
,
2633 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2634 {Support32Bpp
+ InterlaceMode
+ SyncPP
, RES1280x1024x43
, VCLK78_75
,
2635 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2636 {Support32Bpp
+ NoSupportTV
+ SyncPP
, RES1280x1024x60
, VCLK108_2
,
2637 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2638 {Support32Bpp
+ NoSupportTV
+ SyncPP
, RES1280x1024x75
, VCLK135_5
,
2639 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2640 {Support32Bpp
+ SyncPP
, RES1280x1024x85
, VCLK157_5
,
2641 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2642 /* 22 1600x1200x60Hz */
2643 {Support32Bpp
+ SupportLCD
+ SyncPP
+ SupportCRT2in301C
,
2644 RES1600x1200x60
, VCLK162
, 0x09, 0x7A, 0x3c, 1600, 1200},
2645 {Support32Bpp
+ SyncPP
+ SupportCRT2in301C
, RES1600x1200x65
, VCLK175
,
2646 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
2647 {Support32Bpp
+ SyncPP
+ SupportCRT2in301C
, RES1600x1200x70
, VCLK189
,
2648 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2649 {Support32Bpp
+ SyncPP
+ SupportCRT2in301C
, RES1600x1200x75
, VCLK202_5
,
2650 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2651 {Support32Bpp
+ SyncPP
, RES1600x1200x85
, VCLK229_5
,
2652 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2653 {Support32Bpp
+ SyncPP
, RES1600x1200x100
, VCLK269_655
,
2654 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2655 {Support32Bpp
+ SyncPP
, RES1600x1200x120
, VCLK323_586
,
2656 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2657 {Support32Bpp
+ SupportLCD
+ SyncNP
, RES1920x1440x60
, VCLK234
,
2658 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2659 {Support32Bpp
+ SyncPN
, RES1920x1440x65
, VCLK254_817
,
2660 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2661 {Support32Bpp
+ SyncPN
, RES1920x1440x70
, VCLK277_015
,
2662 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2663 {Support32Bpp
+ SyncPN
, RES1920x1440x75
, VCLK291_132
,
2664 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2665 {Support32Bpp
+ SyncPN
, RES1920x1440x85
, VCLK330_615
,
2666 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2667 {Support16Bpp
+ SyncPN
, RES1920x1440x100
, VCLK388_631
,
2668 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2669 {Support32Bpp
+ SupportLCD
+ SyncPN
, RES2048x1536x60
, VCLK266_952
,
2670 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2671 {Support32Bpp
+ SyncPN
, RES2048x1536x65
, VCLK291_766
,
2672 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2673 {Support32Bpp
+ SyncPN
, RES2048x1536x70
, VCLK315_195
,
2674 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2675 {Support32Bpp
+ SyncPN
, RES2048x1536x75
, VCLK340_477
,
2676 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2677 {Support16Bpp
+ SyncPN
, RES2048x1536x85
, VCLK375_847
,
2678 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2679 {Support32Bpp
+ SupportHiVisionTV
+ SupportRAMDAC2
+
2680 SyncPP
+ SupportYPbPr
, RES800x480x60
, VCLK39_77
,
2681 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2682 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES800x480x75
, VCLK49_5
,
2683 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2684 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES800x480x85
, VCLK56_25
,
2685 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2686 {Support32Bpp
+ SupportHiVisionTV
+ SupportRAMDAC2
+
2687 SyncPP
+ SupportYPbPr
, RES1024x576x60
, VCLK65
,
2688 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2689 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1024x576x75
, VCLK78_75
,
2690 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2691 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1024x576x85
, VCLK94_5
,
2692 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2693 {Support32Bpp
+ SupportHiVisionTV
+ SupportRAMDAC2
+
2694 SyncPP
+ SupportYPbPr
, RES1280x720x60
, VCLK108_2
,
2695 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2696 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1280x720x75
, VCLK135_5
,
2697 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2698 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1280x720x85
, VCLK157_5
,
2699 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2700 {Support32Bpp
+ SupportTV
+ SyncNN
, RES720x480x60
, VCLK28_322
,
2701 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2702 {Support32Bpp
+ SupportTV
+ SyncPP
, RES720x576x56
, VCLK36
,
2703 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2704 {Support32Bpp
+ InterlaceMode
+ NoSupportLCD
+ SyncPP
, RES856x480x79I
,
2705 VCLK35_2
, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2706 {Support32Bpp
+ NoSupportLCD
+ SyncNN
, RES856x480x60
, VCLK35_2
,
2707 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2708 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncPP
, RES1280x768x60
,
2709 VCLK79_411
, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2710 {Support32Bpp
+ NoSupportHiVisionTV
+ SyncPP
, RES1400x1050x60
,
2711 VCLK122_61
, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2712 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1152x864x60
, VCLK80_350
,
2713 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2714 {Support32Bpp
+ SupportRAMDAC2
+ SyncPP
, RES1152x864x75
, VCLK107_385
,
2715 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2716 {Support32Bpp
+ SupportLCD
+ SupportRAMDAC2
+ SyncPP
, RES1280x960x75
,
2717 VCLK125_999
, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2718 {Support32Bpp
+ SupportLCD
+ SupportRAMDAC2
+ SyncPP
, RES1280x960x85
,
2719 VCLK148_5
, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2720 {Support32Bpp
+ SupportLCD
+ SupportRAMDAC2
+ SyncPP
, RES1280x960x120
,
2721 VCLK217_325
, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2722 {Support32Bpp
+ SupportRAMDAC2
+ SyncPN
, RES1024x768x160
, VCLK139_054
,
2723 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2726 static unsigned char XGI330_ScreenOffset
[] = {
2727 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2728 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2732 static struct XGI_StResInfoStruct XGI330_StResInfo
[] = {
2740 static struct XGI_ModeResInfoStruct XGI330_ModeResInfo
[] = {
2750 {1280, 1024, 8, 16},
2751 {1600, 1200, 8, 16},
2752 {1920, 1440, 8, 16},
2753 {2048, 1536, 8, 16},
2762 {1400, 1050, 8, 16},
2766 static unsigned char XGI330_OutputSelect
= 0x40;
2767 static unsigned char XGI330_SoftSetting
= 0x30;
2768 static unsigned char XGI330_SR07
= 0x18;
2770 static unsigned char XGI330_CR49
[] = {0xaa, 0x88};
2771 static unsigned char XGI330_SR1F
;
2772 static unsigned char XGI330_SR21
= 0xa3;
2773 static unsigned char XGI330_SR22
= 0xfb;
2774 static unsigned char XGI330_SR23
= 0xf6;
2775 static unsigned char XGI330_SR24
= 0xd;
2777 static unsigned char XGI330_CRT2Data_1_2
;
2778 static unsigned char XGI330_CRT2Data_4_D
;
2779 static unsigned char XGI330_CRT2Data_4_E
;
2780 static unsigned char XGI330_CRT2Data_4_10
= 0x80;
2781 static unsigned short XGI330_RGBSenseData
= 0xd1;
2782 static unsigned short XGI330_VideoSenseData
= 0xb9;
2783 static unsigned short XGI330_YCSenseData
= 0xb3;
2784 static unsigned short XGI330_RGBSenseData2
= 0x0190; /*301b*/
2785 static unsigned short XGI330_VideoSenseData2
= 0x0110;
2786 static unsigned short XGI330_YCSenseData2
= 0x016B;
2787 static unsigned char XG40_I2CDefinition
;
2788 static unsigned char XG20_CR97
= 0x10 ;
2790 static unsigned char XG21_DVOSetting
;
2791 static unsigned char XG21_CR2E
;
2792 static unsigned char XG21_CR2F
;
2793 static unsigned char XG21_CR46
;
2794 static unsigned char XG21_CR47
;
2796 static unsigned char XG27_CR97
= 0xC1 ;
2797 static unsigned char XG27_SR36
= 0x30 ;
2798 static unsigned char XG27_CR8F
= 0x0C ;
2799 static unsigned char XG27_CRD0
[] = {
2800 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2802 static unsigned char XG27_CRDE
[2];
2803 static unsigned char XG27_SR40
= 0x04 ;
2804 static unsigned char XG27_SR41
= 0x00 ;
2806 static struct XGI330_VCLKDataStruct XGI_VCLKData
[] = {
2807 /* SR2B,SR2C,SR2D */
2808 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2809 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2810 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2811 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2812 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2813 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2814 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2815 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2816 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2817 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2818 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2819 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2820 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2821 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2822 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2823 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2824 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2825 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2826 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2827 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2828 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2829 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2830 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2831 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2832 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2833 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2834 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2835 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2836 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2837 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2838 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2839 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2840 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2841 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2842 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2843 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2844 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2845 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2846 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2847 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2848 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2849 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2850 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2851 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2852 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2853 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2854 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2855 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2856 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2857 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2858 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2859 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2860 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2861 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2862 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2863 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2864 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2865 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2866 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2867 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2868 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2869 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2870 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2871 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2872 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2873 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2874 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2875 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2876 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2877 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2878 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2879 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2880 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2881 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2882 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2883 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2884 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2885 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2886 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2887 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2888 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2889 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2890 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2891 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2892 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2893 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2894 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2895 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2896 {0xFF, 0x00, 0} /* End mark */
2899 static struct XGI330_VCLKDataStruct XGI_VBVCLKData
[] = {
2900 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2901 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2902 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2903 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2904 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2905 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2906 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2907 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2908 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2909 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2910 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2911 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2912 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2913 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2914 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2915 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2916 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2917 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2918 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2919 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2920 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2921 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2922 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2923 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2924 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2925 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2926 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2927 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2928 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2929 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2930 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2931 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2932 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2933 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2934 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2935 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2936 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2937 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2938 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2939 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2940 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2941 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2942 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2943 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2944 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2945 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2946 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2947 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2948 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2949 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2950 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2951 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2952 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2953 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2954 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2955 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2956 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2957 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2958 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2959 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2960 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2961 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2962 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2963 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2964 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2965 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2966 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2967 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2968 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2969 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2970 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2971 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2972 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2973 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2974 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2975 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2976 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2977 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2978 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2979 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2980 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2981 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2982 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2983 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2984 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2985 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2986 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2987 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2988 {0xFF, 0x00, 0} /* End mark */
2991 static unsigned char XGI301TVDelayList
[] = {
2992 0x22, /* ; 0 ExtNTSCDelay */
2993 0x22, /* ; 1 StNTSCDelay */
2994 0x22, /* ; 2 ExtPALDelay */
2995 0x22, /* ; 3 StPALDelay */
2996 0x88, /* ; 4 ExtHiTVDelay(1080i) */
2997 0xBB, /* ; 5 StHiTVDelay(1080i) */
2998 0x22, /* ; 6 ExtYPbPrDelay(525i) */
2999 0x22, /* ; 7 StYPbPrDealy(525i) */
3000 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3001 0x22, /* ; 9 StYPbPrDealy(525p) */
3002 0x22, /* ; A ExtYPbPrDelay(750p) */
3003 0x22 /* B StYPbPrDealy(750p) */
3006 static unsigned char XGI301TVDelayList2
[] = {
3007 0x22, /* ; 0 ExtNTSCDelay */
3008 0x22, /* ; 1 StNTSCDelay */
3009 0x22, /* ; 2 ExtPALDelay */
3010 0x22, /* ; 3 StPALDelay */
3011 0x22, /* ; 4 ExtHiTVDelay */
3012 0x22, /* ; 5 StHiTVDelay */
3013 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3014 0x22, /* ; 7 StYPbPrDealy(525i) */
3015 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3016 0x22, /* ; 9 StYPbPrDealy(525p) */
3017 0x22, /* ; A ExtYPbPrDelay(750p) */
3018 0x22 /* ; B StYPbPrDealy(750p) */
3022 static unsigned char TVAntiFlickList
[] = {/* NTSCAntiFlicker */
3023 0x04, /* ; 0 Adaptive */
3024 0x00, /* ; 1 new anti-flicker ? */
3026 0x04, /* ; 0 Adaptive */
3027 0x08, /* ; 1 new anti-flicker ? */
3030 0x00 /* ; 1 new anti-flicker ? */
3034 static unsigned char TVEdgeList
[] = {
3035 0x00, /* ; 0 NTSC No Edge enhance */
3036 0x04, /* ; 1 NTSC Adaptive Edge enhance */
3037 0x00, /* ; 0 PAL No Edge enhance */
3038 0x04, /* ; 1 PAL Adaptive Edge enhance */
3039 0x00, /* ; 0 HiTV */
3043 static unsigned long TVPhaseList
[] = {
3044 0x08BAED21, /* ; 0 NTSC phase */
3045 0x00E3052A, /* ; 1 PAL phase */
3046 0x9B2EE421, /* ; 2 PAL-M phase */
3047 0xBA3EF421, /* ; 3 PAL-N phase */
3048 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
3049 0xE00A831E, /* ; 5 PAL-M 1024x768 */
3050 0x00000000, /* ; 6 reserved */
3051 0x00000000, /* ; 7 reserved */
3052 0xD67BF021, /* ; 8 NTSC phase */
3053 0xE986092A, /* ; 9 PAL phase */
3054 0xA4EFE621, /* ; A PAL-M phase */
3055 0x4694F621, /* ; B PAL-N phase */
3056 0x8BDE711C, /* ; C NTSC 1024x768 */
3057 0xE00A831E /* ; D PAL-M 1024x768 */
3060 static unsigned char NTSCYFilter1
[] = {
3061 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3062 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3063 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
3064 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
3065 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3066 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3067 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
3070 static unsigned char PALYFilter1
[] = {
3071 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3072 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3073 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
3074 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
3075 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3076 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
3077 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
3080 static unsigned char xgifb_palmn_yfilter1
[] = {
3081 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3082 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3083 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
3084 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
3085 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3086 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3087 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
3088 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
3091 static unsigned char xgifb_yfilter2
[] = {
3092 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
3093 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
3094 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
3095 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
3096 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
3097 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
3098 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
3099 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
3102 static unsigned char XGI_NTSC1024AdjTime
[] = {
3103 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
3104 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
3105 0x58, 0xe4, 0x73, 0xd0, 0x13
3108 static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing
[] = {
3110 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
3111 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
3112 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
3113 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
3114 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
3115 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
3116 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
3117 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
3122 static struct XGI301C_Tap4TimingStruct PALTap4Timing
[] = {
3124 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3125 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3126 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3127 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3128 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3129 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3130 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3131 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
3135 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
3136 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
3137 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
3138 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
3139 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
3140 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
3141 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
3142 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
3146 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
3147 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
3148 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
3149 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3150 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3151 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
3152 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
3153 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
3158 static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing
[] = {
3160 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
3161 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
3162 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
3163 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3164 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3165 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
3166 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
3167 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
3171 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
3172 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
3173 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
3174 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
3175 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
3176 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
3177 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
3178 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
3182 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
3183 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
3184 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
3185 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
3186 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
3187 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
3188 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
3189 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
3194 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing
[] = {
3196 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3197 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3198 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3199 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3200 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3201 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3202 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3203 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */