staging: xgifb: vb_setmode: eliminate GetVGAType/Set_VGAType
[deliverable/linux.git] / drivers / staging / xgifb / vb_table.h
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}
11 };
12
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}
22 };
23
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}
34 };
35
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 */
41 };
42
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 */
68 };
69
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],
75 CR99[2:0],
76 CR45[3:0]*/
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 */
97 };
98
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}
108 };
109
110 static unsigned char XGI340_CR6E[8][4];
111
112 static unsigned char XGI340_CR6F[8][32];
113
114 static unsigned char XGI340_CR89[8][2];
115
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
120 };
121
122 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
123
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 ;
130
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
150 not sure */
151 {0x12, 0x0210, 0x18, 0x01, 0x24, 0x01, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
152 not sure */
153 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
154 };
155
156
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
189 add CRT2MODE */
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
240 add CRT2MODE */
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}
297 };
298
299 static struct XGI_StandTableStruct XGI330_StandTable[] = {
300 /* MD_0_200 */
301 {
302 0x28, 0x18, 0x08, 0x0800,
303 {0x09, 0x03, 0x00, 0x02},
304 0x63,
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,
308 0xff},
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,
313 0xff}
314 },
315 /* MD_1_200 */
316 {
317 0x28, 0x18, 0x08, 0x0800,
318 {0x09, 0x03, 0x00, 0x02},
319 0x63,
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,
323 0xff},
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,
328 0xff}
329 },
330 /* MD_2_200 */
331 {
332 0x50, 0x18, 0x08, 0x1000,
333 {0x01, 0x03, 0x00, 0x02},
334 0x63,
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,
338 0xff},
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,
343 0xff}
344 },
345 /* MD_3_200 */
346 {
347 0x50, 0x18, 0x08, 0x1000,
348 {0x01, 0x03, 0x00, 0x02},
349 0x63,
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,
353 0xff},
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,
358 0xff}
359 },
360 /* MD_4 */
361 {
362 0x28, 0x18, 0x08, 0x4000,
363 {0x09, 0x03, 0x00, 0x02},
364 0x63,
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,
368 0xff},
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,
373 0xff}
374 },
375 /* MD_5 */
376 {
377 0x28, 0x18, 0x08, 0x4000,
378 {0x09, 0x03, 0x00, 0x02},
379 0x63,
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,
383 0xff},
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,
388 0xff}
389 },
390 /* MD_6 */
391 {
392 0x50, 0x18, 0x08, 0x4000,
393 {0x01, 0x01, 0x00, 0x06},
394 0x63,
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,
398 0xff},
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,
403 0xff}
404 },
405 /* MD_7 */
406 {
407 0x50, 0x18, 0x0e, 0x1000,
408 {0x00, 0x03, 0x00, 0x03},
409 0xa6,
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,
413 0xff},
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,
418 0xff}
419 },
420 /* MDA_DAC */
421 {
422 0x00, 0x00, 0x00, 0x0000,
423 {0x00, 0x00, 0x00, 0x15},
424 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,
428 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,
433 0x3f}
434 },
435 /* CGA_DAC */
436 {
437 0x00, 0x10, 0x04, 0x0114,
438 {0x11, 0x09, 0x15, 0x00},
439 0x10,
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,
443 0x04},
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,
448 0x3f}
449 },
450 /* EGA_DAC */
451 {
452 0x00, 0x10, 0x04, 0x0114,
453 {0x11, 0x05, 0x15, 0x20},
454 0x30,
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,
458 0x06},
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,
463 0x3f}
464 },
465 /* VGA_DAC */
466 {
467 0x00, 0x10, 0x04, 0x0114,
468 {0x11, 0x09, 0x15, 0x2a},
469 0x3a,
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,
473 0x1f},
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,
478 0x04}
479 },
480 {
481 0x08, 0x0c, 0x10, 0x0a08,
482 {0x0c, 0x0e, 0x10, 0x0b},
483 0x0c,
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,
487 0x06},
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,
492 0x00}
493 },
494 /* MD_D */
495 {
496 0x28, 0x18, 0x08, 0x2000,
497 {0x09, 0x0f, 0x00, 0x06},
498 0x63,
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,
502 0xff},
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,
507 0xff}
508 },
509 /* MD_E */
510 {
511 0x50, 0x18, 0x08, 0x4000,
512 {0x01, 0x0f, 0x00, 0x06},
513 0x63,
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,
517 0xff},
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,
522 0xff}
523 },
524 /* ExtVGATable */
525 {
526 0x00, 0x00, 0x00, 0x0000,
527 {0x01, 0x0f, 0x00, 0x0e},
528 0x23,
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,
532 0xff},
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,
537 0xff}
538 },
539 /* ROM_SAVEPTR */
540 {
541 0x9f, 0x3b, 0x00, 0x00c0,
542 {0x00, 0x00, 0x00, 0x00},
543 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,
547 0x00},
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,
552 0x00}
553 },
554 /* MD_F */
555 {
556 0x50, 0x18, 0x0e, 0x8000,
557 {0x01, 0x0f, 0x00, 0x06},
558 0xa2,
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,
562 0xff},
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,
567 0xff}
568 },
569 /* MD_10 */
570 {
571 0x50, 0x18, 0x0e, 0x8000,
572 {0x01, 0x0f, 0x00, 0x06},
573 0xa3,
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,
577 0xff},
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,
582 0xff}
583 },
584 /* MD_0_350 */
585 {
586 0x28, 0x18, 0x0e, 0x0800,
587 {0x09, 0x03, 0x00, 0x02},
588 0xa3,
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,
592 0xff},
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,
597 0xff}
598 },
599 /* MD_1_350 */
600 {
601 0x28, 0x18, 0x0e, 0x0800,
602 {0x09, 0x03, 0x00, 0x02},
603 0xa3,
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,
607 0xff},
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,
612 0xff}
613 },
614 /* MD_2_350 */
615 {
616 0x50, 0x18, 0x0e, 0x1000,
617 {0x01, 0x03, 0x00, 0x02},
618 0xa3,
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,
622 0xff},
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,
627 0xff}
628 },
629 /* MD_3_350 */
630 {
631 0x50, 0x18, 0x0e, 0x1000,
632 {0x01, 0x03, 0x00, 0x02},
633 0xa3,
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,
637 0xff},
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,
642 0xff}
643 },
644 /* MD_0_1_400 */
645 {
646 0x28, 0x18, 0x10, 0x0800,
647 {0x08, 0x03, 0x00, 0x02},
648 0x67,
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,
652 0xff},
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,
657 0xff}
658 },
659 /* MD_2_3_400 */
660 {
661 0x50, 0x18, 0x10, 0x1000,
662 {0x00, 0x03, 0x00, 0x02},
663 0x67,
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,
667 0xff},
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,
672 0xff}
673 },
674 /* MD_7_400 */
675 {
676 0x50, 0x18, 0x10, 0x1000,
677 {0x00, 0x03, 0x00, 0x02},
678 0x66,
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,
682 0xff},
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,
687 0xff}
688 },
689 /* MD_11 */
690 {
691 0x50, 0x1d, 0x10, 0xa000,
692 {0x01, 0x0f, 0x00, 0x06},
693 0xe3,
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,
697 0xff},
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,
702 0xff}
703 },
704 /* ExtEGATable */
705 {
706 0x50, 0x1d, 0x10, 0xa000,
707 {0x01, 0x0f, 0x00, 0x06},
708 0xe3,
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,
712 0xff},
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,
717 0xff}
718 },
719 /* MD_13 */
720 {
721 0x28, 0x18, 0x08, 0x2000,
722 {0x01, 0x0f, 0x00, 0x0e},
723 0x63,
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,
727 0xff},
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,
732 0xff}
733 }
734 };
735
736 static struct XGI_TimingHStruct XGI_TimingH[1];
737
738 static struct XGI_TimingVStruct XGI_TimingV[1];
739
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 */
758 };
759
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, /* ;
788 0D (800x600,56Hz) */
789 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
790 (VCLK 36.0MHz) */
791 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
792 0E (800x600,60Hz) */
793 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
794 (VCLK 40.0MHz) */
795 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
796 0F (800x600,72Hz) */
797 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
798 (VCLK 50.0MHz) */
799 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
800 10 (800x600,75Hz) */
801 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
802 (VCLK 49.5MHz) */
803 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
804 11 (800x600,85Hz) */
805 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
806 (VCLK 56.25MHz) */
807 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
808 12 (800x600,100Hz) */
809 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
810 (VCLK 75.8MHz) */
811 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
812 13 (800x600,120Hz) */
813 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
814 (VCLK 79.411MHz) */
815 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
816 14 (800x600,160Hz) */
817 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
818 (VCLK 105.822MHz) */
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 */
921 };
922
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};
929
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}
939 };
940
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}
959 };
960
961 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = {
962 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
963 640x200,640x400) */
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) */
970 };
971
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}
981 };
982
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}
992 };
993
994 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = {
995 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
996 640x200,640x400) */
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) */
1005 };
1006
1007 static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050[] = {
1008 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
1009 640x200,640x400) */
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
1017 w/o Scaling) */
1018 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
1019 };
1020
1021 static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = {
1022 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1023 // 00 (320x200,320x400,
1024 // 640x200,640x400)
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 */
1037 };
1038
1039 static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = {
1040 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
1041 640x200,640x400) */
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) */
1051 };
1052
1053 static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = {
1054 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1055 640x200,640x400) */
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) */
1064 };
1065
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}
1075 };
1076
1077 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = {
1078 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
1079 640x200,640x400) */
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) */
1086 };
1087
1088 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = {
1089 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
1090 640x200,640x400) */
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) */
1097 };
1098
1099 static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75[] = {
1100 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
1101 640x200,640x400) */
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) */
1109 };
1110
1111 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = {
1112 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
1113 640x200,640x400) */
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) */
1121 };
1122
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) */
1137 };
1138
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) */
1147 };
1148
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) */
1157 };
1158
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) */
1167 };
1168
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) */
1178 };
1179
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) */
1189 };
1190
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) */
1200 };
1201
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) */
1211 };
1212
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) */
1222 };
1223
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) */
1233 };
1234
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) */
1245 };
1246
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) */
1257 };
1258
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) */
1269 };
1270
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) */
1277 };
1278
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) */
1290 };
1291
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) */
1303 };
1304
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) */
1316 };
1317
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) */
1329 };
1330
1331 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
1332 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1333 640x200,640x400) */
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) */
1345 };
1346
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) */
1356 };
1357
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) */
1367 };
1368
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) */
1379 };
1380
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) */
1391 };
1392
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) */
1403 };
1404
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) */
1415 };
1416
1417 /* Scaling LCD 75Hz */
1418 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
1419 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1420 640x200,640x400) */
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) */
1432 };
1433
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}
1441 };
1442
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}
1452 };
1453
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}
1460 };
1461
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}
1472 };
1473
1474 static struct XGI330_TVDataStruct XGI_St1HiTVData[] = {
1475 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1476 640x200,640x400) */
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) */
1482 };
1483
1484 static struct XGI330_TVDataStruct XGI_St2HiTVData[] = {
1485 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1486 640x200,640x400) */
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) */
1492 };
1493
1494 static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = {
1495 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1496 640x200,640x400) */
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) */
1507 };
1508
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}
1519 };
1520
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},
1527 };
1528
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}
1539 };
1540
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},
1547 };
1548
1549 static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = {
1550 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1551 640x200,640x400) */
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}
1562 };
1563
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},
1570 };
1571
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
1581 };
1582
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
1592 };
1593
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
1604 };
1605
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
1616 };
1617
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
1628 };
1629
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
1640 };
1641
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
1652 };
1653
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
1664 };
1665
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
1676 };
1677
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
1687 };
1688
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
1698 };
1699
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
1709 };
1710
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
1720 };
1721
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
1731 };
1732
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) */
1741 };
1742
1743
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}
1754 };
1755
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}
1765 };
1766
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}
1777 };
1778
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}
1789 };
1790
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}
1801 };
1802
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) */
1815 };
1816
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) */
1829 };
1830
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) */
1839 };
1840
1841
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) */
1850 };
1851
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) */
1861 };
1862
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) */
1872 };
1873
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) */
1887 };
1888
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) */
1897 } ;
1898
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) */
1907 };
1908
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) */
1915 };
1916
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) */
1926 };
1927
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) */
1938 };
1939
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) */
1950 };
1951
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) */
1962 };
1963
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) */
1975 };
1976
1977 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1978 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1979 640x200,640x400) */
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) */
1991 };
1992
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) */
2002 };
2003
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) */
2013 };
2014
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) */
2022 };
2023
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) */
2033 };
2034
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) */
2046 };
2047
2048 /* Scaling LCD 75Hz */
2049 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
2050 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
2051 640x200,640x400) */
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) */
2063 };
2064
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}
2072 };
2073
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}
2081 };
2082
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}
2090 };
2091
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}
2099 };
2100
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) */
2111 };
2112
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) */
2124 };
2125
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) */
2136 };
2137
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) */
2149 };
2150
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) */
2163 };
2164
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) */
2177 };
2178
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) */
2193 };
2194
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) */
2202 };
2203
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) */
2211 };
2212
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) */
2221 };
2222
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) */
2231 };
2232
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) */
2242 };
2243
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) */
2253 };
2254
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) */
2265 };
2266
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) */
2277 };
2278
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) */
2286 };
2287
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) */
2298 };
2299
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) */
2307 };
2308
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) */
2320 };
2321
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) */
2330 };
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) */
2342 };
2343
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) */
2352 };
2353
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 */
2376 };
2377
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}
2403 };
2404
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}
2418 };
2419
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}
2435 };
2436
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}
2454 };
2455
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}
2460 };
2461
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 */
2477 };
2478
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 */
2485 {0xFFFF, 0x0000, 4}
2486 };
2487
2488 static unsigned short LCDLenList[] = {
2489 LVDSCRT1Len_H,
2490 LVDSCRT1Len_V,
2491 LVDSDataLen,
2492 LCDDesDataLen,
2493 LCDDataLen,
2494 LCDDesDataLen,
2495 0,
2496 LCDDesDataLen,
2497 LCDDesDataLen,
2498 0
2499 };
2500
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},
2531 /* LCDCapDefault */
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}
2535 };
2536
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},
2566 /* LCDCapDefault */
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}
2570 };
2571
2572 struct XGI21_LVDSCapStruct XGI21_LCDCapList[] = {
2573 {DisableLCD24bpp + LCDPolarity,
2574 2160, 1250, 1600, 1200, 64, 1, 192, 3,
2575 0x70, 0x24, 0x20, 0x04, 0x0A, 0x02, 0xC8
2576 },
2577 {DisableLCD24bpp + LCDPolarity,
2578 1688, 1066, 1280, 1024, 48, 1, 112, 3,
2579 0x70, 0x44, 0x20, 0x04, 0x0A, 0x02, 0xC8
2580 },
2581 {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
2582 1344, 806, 1024, 768, 24, 3, 136, 6,
2583 0x6C, 0x65, 0x20, 0x04, 0x0A, 0x02, 0xC8
2584 },
2585 {DisableLCD24bpp + LCDPolarity,
2586 1056, 628, 800, 600, 40, 1, 128, 4,
2587 0x42, 0xE2, 0x20, 0x14, 0x0A, 0x02, 0x00
2588 },
2589 {DisableLCD24bpp + LCDPolarity,
2590 928, 525, 800, 480, 40, 13, 48, 3,
2591 0x52, 0xC5, 0x20, 0x14, 0x0A, 0x02, 0x00
2592 },
2593 {DisableLCD24bpp + LCDPolarity + (LCDPolarity << 8),
2594 800, 525, 640, 480, 16, 10, 96, 2,
2595 0x1B, 0xE1, 0x20, 0x04, 0x0A, 0x02, 0xC8
2596 }
2597 };
2598
2599 static struct XGI_Ext2Struct XGI330_RefIndex[] = {
2600 {Support32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2601 0x00, 0x10, 0x59, 320, 200},/* 00 */
2602 {Support32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2603 0x00, 0x10, 0x00, 320, 400},/* 01 */
2604 {Support32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
2605 0x04, 0x20, 0x50, 320, 240},/* 02 */
2606 {Support32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
2607 0x05, 0x32, 0x51, 400, 300},/* 03 */
2608 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
2609 VCLK65, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2610 {Support32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
2611 0x00, 0x14, 0x2f, 640, 400},/* 05 */
2612 {Support32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
2613 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
2614 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
2615 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
2616 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
2617 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
2618 {Support32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
2619 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
2620 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
2621 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
2622 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
2623 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
2624 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
2625 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
2626 {Support32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
2627 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
2628 {Support32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
2629 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
2630 {Support32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
2631 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
2632 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
2633 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
2634 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
2635 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
2636 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
2637 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
2638 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
2639 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
2640 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
2641 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
2642 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
2643 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
2644 {Support32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
2645 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2646 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
2647 {Support32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
2648 VCLK65, 0x06, 0x47, 0x37, 1024, 768},
2649 {Support32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
2650 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2651 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
2652 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2653 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
2654 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2655 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
2656 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2657 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
2658 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2659 {Support32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2,
2660 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2661 {Support32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
2662 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2663 {Support32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2,
2664 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2665 {Support32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
2666 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2667 {Support32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
2668 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2669 /* 22 1600x1200x60Hz */
2670 {Support32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
2671 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
2672 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
2673 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
2674 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
2675 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2676 {Support32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
2677 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2678 {Support32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
2679 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2680 {Support32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
2681 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2682 {Support32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
2683 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2684 {Support32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
2685 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2686 {Support32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
2687 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2688 {Support32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
2689 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2690 {Support32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
2691 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2692 {Support32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
2693 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2694 {Support16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
2695 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2696 {Support32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
2697 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2698 {Support32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
2699 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2700 {Support32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
2701 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2702 {Support32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
2703 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2704 {Support16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
2705 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2706 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 +
2707 SyncPP + SupportYPbPr, RES800x480x60, VCLK39_77,
2708 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2709 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
2710 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2711 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
2712 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2713 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 +
2714 SyncPP + SupportYPbPr, RES1024x576x60, VCLK65,
2715 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2716 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
2717 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2718 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
2719 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2720 {Support32Bpp + SupportHiVisionTV + SupportRAMDAC2 +
2721 SyncPP + SupportYPbPr, RES1280x720x60, VCLK108_2,
2722 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2723 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
2724 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2725 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
2726 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2727 {Support32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
2728 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2729 {Support32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
2730 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2731 {Support32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
2732 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2733 {Support32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
2734 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2735 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
2736 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2737 {Support32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
2738 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2739 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
2740 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2741 {Support32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
2742 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2743 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
2744 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2745 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
2746 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2747 {Support32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
2748 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2749 {Support32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
2750 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2751 };
2752
2753 static unsigned char XGI330_ScreenOffset[] = {
2754 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2755 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2756 0x57, 0x48
2757 };
2758
2759 static struct XGI_StResInfoStruct XGI330_StResInfo[] = {
2760 {640, 400},
2761 {640, 350},
2762 {720, 400},
2763 {720, 350},
2764 {640, 480}
2765 };
2766
2767 static struct XGI_ModeResInfoStruct XGI330_ModeResInfo[] = {
2768 { 320, 200, 8, 8},
2769 { 320, 240, 8, 8},
2770 { 320, 400, 8, 8},
2771 { 400, 300, 8, 8},
2772 { 512, 384, 8, 8},
2773 { 640, 400, 8, 16},
2774 { 640, 480, 8, 16},
2775 { 800, 600, 8, 16},
2776 {1024, 768, 8, 16},
2777 {1280, 1024, 8, 16},
2778 {1600, 1200, 8, 16},
2779 {1920, 1440, 8, 16},
2780 {2048, 1536, 8, 16},
2781 { 720, 480, 8, 16},
2782 { 720, 576, 8, 16},
2783 {1280, 960, 8, 16},
2784 { 800, 480, 8, 16},
2785 {1024, 576, 8, 16},
2786 {1280, 720, 8, 16},
2787 { 856, 480, 8, 16},
2788 {1280, 768, 8, 16},
2789 {1400, 1050, 8, 16},
2790 {1152, 864, 8, 16}
2791 };
2792
2793 static unsigned char XGI330_OutputSelect = 0x40;
2794 static unsigned char XGI330_SoftSetting = 0x30;
2795 static unsigned char XGI330_SR07 = 0x18;
2796
2797 static unsigned char XGI330_CR49[] = {0xaa, 0x88};
2798 static unsigned char XGI330_SR1F;
2799 static unsigned char XGI330_SR21 = 0xa3;
2800 static unsigned char XGI330_SR22 = 0xfb;
2801 static unsigned char XGI330_SR23 = 0xf6;
2802 static unsigned char XGI330_SR24 = 0xd;
2803
2804 static unsigned char XGI330_CRT2Data_1_2;
2805 static unsigned char XGI330_CRT2Data_4_D;
2806 static unsigned char XGI330_CRT2Data_4_E;
2807 static unsigned char XGI330_CRT2Data_4_10 = 0x80;
2808 static unsigned short XGI330_RGBSenseData = 0xd1;
2809 static unsigned short XGI330_VideoSenseData = 0xb9;
2810 static unsigned short XGI330_YCSenseData = 0xb3;
2811 static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/
2812 static unsigned short XGI330_VideoSenseData2 = 0x0110;
2813 static unsigned short XGI330_YCSenseData2 = 0x016B;
2814 static unsigned char XG40_I2CDefinition;
2815 static unsigned char XG20_CR97 = 0x10 ;
2816
2817 static unsigned char XG21_DVOSetting;
2818 static unsigned char XG21_CR2E;
2819 static unsigned char XG21_CR2F;
2820 static unsigned char XG21_CR46;
2821 static unsigned char XG21_CR47;
2822
2823 static unsigned char XG27_CR97 = 0xC1 ;
2824 static unsigned char XG27_SR36 = 0x30 ;
2825 static unsigned char XG27_CR8F = 0x0C ;
2826 static unsigned char XG27_CRD0[] = {
2827 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2828 };
2829 static unsigned char XG27_CRDE[2];
2830 static unsigned char XG27_SR40 = 0x04 ;
2831 static unsigned char XG27_SR41 = 0x00 ;
2832
2833 static struct XGI330_VCLKDataStruct XGI_VCLKData[] = {
2834 /* SR2B,SR2C,SR2D */
2835 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2836 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2837 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2838 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2839 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2840 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2841 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2842 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2843 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2844 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2845 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2846 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2847 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2848 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2849 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2850 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2851 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2852 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2853 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2854 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2855 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2856 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2857 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2858 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2859 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2860 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2861 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2862 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2863 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2864 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2865 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2866 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2867 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2868 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2869 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2870 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2871 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2872 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2873 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2874 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2875 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2876 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2877 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2878 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2879 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2880 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2881 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2882 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2883 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2884 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2885 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2886 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2887 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2888 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2889 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2890 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2891 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2892 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2893 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2894 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2895 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2896 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2897 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2898 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2899 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2900 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2901 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2902 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2903 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2904 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2905 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2906 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2907 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2908 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2909 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2910 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2911 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2912 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2913 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2914 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2915 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2916 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2917 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2918 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2919 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2920 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2921 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2922 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2923 {0xFF, 0x00, 0} /* End mark */
2924 };
2925
2926 static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
2927 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2928 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2929 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2930 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2931 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2932 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2933 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2934 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2935 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2936 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2937 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2938 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2939 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2940 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2941 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2942 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2943 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2944 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2945 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2946 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2947 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2948 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2949 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2950 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2951 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2952 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2953 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2954 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2955 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2956 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2957 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2958 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2959 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2960 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2961 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2962 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2963 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2964 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2965 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2966 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2967 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2968 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2969 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2970 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2971 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2972 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2973 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2974 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2975 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2976 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2977 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2978 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2979 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2980 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2981 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2982 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2983 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2984 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2985 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2986 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2987 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2988 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2989 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2990 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2991 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2992 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2993 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2994 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2995 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2996 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2997 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2998 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2999 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
3000 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
3001 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
3002 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
3003 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
3004 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
3005 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
3006 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
3007 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
3008 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
3009 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
3010 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
3011 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
3012 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
3013 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
3014 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
3015 {0xFF, 0x00, 0} /* End mark */
3016 };
3017
3018 static unsigned char XGI301TVDelayList[] = {
3019 0x22, /* ; 0 ExtNTSCDelay */
3020 0x22, /* ; 1 StNTSCDelay */
3021 0x22, /* ; 2 ExtPALDelay */
3022 0x22, /* ; 3 StPALDelay */
3023 0x88, /* ; 4 ExtHiTVDelay(1080i) */
3024 0xBB, /* ; 5 StHiTVDelay(1080i) */
3025 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3026 0x22, /* ; 7 StYPbPrDealy(525i) */
3027 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3028 0x22, /* ; 9 StYPbPrDealy(525p) */
3029 0x22, /* ; A ExtYPbPrDelay(750p) */
3030 0x22 /* B StYPbPrDealy(750p) */
3031 };
3032
3033 static unsigned char XGI301TVDelayList2[] = {
3034 0x22, /* ; 0 ExtNTSCDelay */
3035 0x22, /* ; 1 StNTSCDelay */
3036 0x22, /* ; 2 ExtPALDelay */
3037 0x22, /* ; 3 StPALDelay */
3038 0x22, /* ; 4 ExtHiTVDelay */
3039 0x22, /* ; 5 StHiTVDelay */
3040 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3041 0x22, /* ; 7 StYPbPrDealy(525i) */
3042 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3043 0x22, /* ; 9 StYPbPrDealy(525p) */
3044 0x22, /* ; A ExtYPbPrDelay(750p) */
3045 0x22 /* ; B StYPbPrDealy(750p) */
3046 };
3047
3048
3049 static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
3050 0x04, /* ; 0 Adaptive */
3051 0x00, /* ; 1 new anti-flicker ? */
3052
3053 0x04, /* ; 0 Adaptive */
3054 0x08, /* ; 1 new anti-flicker ? */
3055
3056 0x04, /* ; 0 ? */
3057 0x00 /* ; 1 new anti-flicker ? */
3058 };
3059
3060
3061 static unsigned char TVEdgeList[] = {
3062 0x00, /* ; 0 NTSC No Edge enhance */
3063 0x04, /* ; 1 NTSC Adaptive Edge enhance */
3064 0x00, /* ; 0 PAL No Edge enhance */
3065 0x04, /* ; 1 PAL Adaptive Edge enhance */
3066 0x00, /* ; 0 HiTV */
3067 0x00 /* ; 1 HiTV */
3068 };
3069
3070 static unsigned long TVPhaseList[] = {
3071 0x08BAED21, /* ; 0 NTSC phase */
3072 0x00E3052A, /* ; 1 PAL phase */
3073 0x9B2EE421, /* ; 2 PAL-M phase */
3074 0xBA3EF421, /* ; 3 PAL-N phase */
3075 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
3076 0xE00A831E, /* ; 5 PAL-M 1024x768 */
3077 0x00000000, /* ; 6 reserved */
3078 0x00000000, /* ; 7 reserved */
3079 0xD67BF021, /* ; 8 NTSC phase */
3080 0xE986092A, /* ; 9 PAL phase */
3081 0xA4EFE621, /* ; A PAL-M phase */
3082 0x4694F621, /* ; B PAL-N phase */
3083 0x8BDE711C, /* ; C NTSC 1024x768 */
3084 0xE00A831E /* ; D PAL-M 1024x768 */
3085 };
3086
3087 static unsigned char NTSCYFilter1[] = {
3088 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3089 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3090 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
3091 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
3092 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3093 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3094 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
3095 };
3096
3097 static unsigned char PALYFilter1[] = {
3098 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3099 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3100 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
3101 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
3102 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3103 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
3104 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
3105 };
3106
3107 static unsigned char xgifb_palmn_yfilter1[] = {
3108 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3109 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3110 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
3111 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
3112 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3113 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3114 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
3115 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
3116 };
3117
3118 static unsigned char xgifb_yfilter2[] = {
3119 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
3120 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
3121 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
3122 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
3123 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
3124 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
3125 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
3126 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
3127 };
3128
3129 static unsigned char XGI_NTSC1024AdjTime[] = {
3130 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
3131 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
3132 0x58, 0xe4, 0x73, 0xd0, 0x13
3133 };
3134
3135 static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
3136 {0, {
3137 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
3138 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
3139 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
3140 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
3141 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
3142 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
3143 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
3144 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
3145 }
3146 }
3147 };
3148
3149 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
3150 {600, {
3151 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3152 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3153 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3154 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3155 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3156 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3157 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3158 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
3159 }
3160 },
3161 {768, {
3162 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
3163 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
3164 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
3165 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
3166 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
3167 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
3168 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
3169 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
3170 }
3171 },
3172 {0xFFFF, {
3173 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
3174 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
3175 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
3176 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3177 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3178 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
3179 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
3180 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
3181 }
3182 }
3183 };
3184
3185 static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
3186 {480, {
3187 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
3188 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
3189 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
3190 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3191 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3192 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
3193 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
3194 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
3195 }
3196 },
3197 {600, {
3198 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
3199 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
3200 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
3201 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
3202 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
3203 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
3204 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
3205 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
3206 }
3207 },
3208 {0xFFFF, {
3209 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
3210 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
3211 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
3212 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
3213 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
3214 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
3215 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
3216 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
3217 }
3218 }
3219 };
3220
3221 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
3222 {0xFFFF, {
3223 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3224 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3225 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3226 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3227 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3228 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3229 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3230 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */
3231 }
3232 }
3233 };
This page took 0.154468 seconds and 5 git commands to generate.