1 /* yilin modify for xgi20 */
2 static struct SiS_MCLKData XGI340New_MCLKData[] = {
3 {0x16, 0x01, 0x01, 166},
4 {0x19, 0x02, 0x01, 124},
5 {0x7C, 0x08, 0x01, 200},
6 {0x79, 0x06, 0x01, 250},
7 {0x29, 0x01, 0x81, 301},
8 {0x5c, 0x23, 0x01, 166},
9 {0x5c, 0x23, 0x01, 166},
10 {0x5c, 0x23, 0x01, 166}
13 static struct SiS_MCLKData XGI27New_MCLKData[] = {
14 {0x5c, 0x23, 0x01, 166},
15 {0x19, 0x02, 0x01, 124},
16 {0x7C, 0x08, 0x80, 200},
17 {0x79, 0x06, 0x80, 250},
18 {0x29, 0x01, 0x81, 300},
19 {0x5c, 0x23, 0x01, 166},
20 {0x5c, 0x23, 0x01, 166},
21 {0x5c, 0x23, 0x01, 166}
24 /* yilin modify for xgi20 */
25 static struct XGI_ECLKDataStruct XGI340_ECLKData[] = {
26 {0x5c, 0x23, 0x01, 166},
27 {0x55, 0x84, 0x01, 123},
28 {0x7C, 0x08, 0x01, 200},
29 {0x79, 0x06, 0x01, 250},
30 {0x29, 0x01, 0x81, 301},
31 {0x5c, 0x23, 0x01, 166},
32 {0x5c, 0x23, 0x01, 166},
33 {0x5c, 0x23, 0x01, 166}
36 static unsigned char XGI340_SR13[4][8] = {
37 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
38 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
39 {0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
40 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
43 static unsigned char XGI340_cr41[24][8] = {
44 {0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
45 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
46 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
47 {0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
48 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
49 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
50 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
51 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
52 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
53 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
54 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
55 {0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
56 {0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
57 {0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
58 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
59 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
60 {0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
61 {0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
62 {0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
63 {0x11, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
64 {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
65 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
66 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
67 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
70 static unsigned char XGI27_cr41[24][8] = {
71 {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
72 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
73 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
74 {0xB5, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
77 {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
78 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
79 {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
80 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
81 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
82 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
83 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
84 {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
85 {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
86 {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
87 {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
88 {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
89 {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
90 {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
91 {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
92 {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
93 {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
94 {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
95 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
99 static unsigned char XGI340_CR6B[8][4] = {
100 {0xaa, 0xaa, 0xaa, 0xaa},
101 {0xaa, 0xaa, 0xaa, 0xaa},
102 {0xaa, 0xaa, 0xaa, 0xaa},
103 {0x00, 0x00, 0x00, 0x00},
104 {0x00, 0x00, 0x00, 0x00},
105 {0x00, 0x00, 0x00, 0x00},
106 {0x00, 0x00, 0x00, 0x00},
107 {0x00, 0x00, 0x00, 0x00}
110 static unsigned char XGI340_CR6E[8][4];
112 static unsigned char XGI340_CR6F[8][32];
114 static unsigned char XGI340_CR89[8][2];
116 /* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
117 static unsigned char XGI340_AGPReg[12] = {
118 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
119 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
122 static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
124 static unsigned char XGI330_sr25[2];
125 static unsigned char XGI330_sr31 = 0xc0;
126 static unsigned char XGI330_sr32 = 0x11;
127 static unsigned char XGI330_SR33;
128 static unsigned char XG40_CRCF = 0x13;
129 static unsigned char XG40_DRAMTypeDefinition = 0xFF ;
131 static struct XGI_ExtStruct XGI330_EModeIDTable[] = {
132 {0x2e, 0x0a1b, 0x0306, 0x3a57, 0x0101, 0x08,
133 0x06, 0x00, 0x00, 0x05, 0x06},
134 {0x2f, 0x0a1b, 0x0305, 0x3a50, 0x0100, 0x08,
135 0x05, 0x00, 0x00, 0x05, 0x05},
136 {0x30, 0x2a1b, 0x0407, 0x3a81, 0x0103, 0x08,
137 0x07, 0x00, 0x00, 0x07, 0x0e},
138 {0x31, 0x0a1b, 0x030d, 0x3b85, 0x0000, 0x08,
139 0x0d, 0x00, 0x00, 0x06, 0x3d},
140 {0x32, 0x0a1b, 0x0a0e, 0x3b8c, 0x0000, 0x08,
141 0x0e, 0x00, 0x00, 0x06, 0x3e},
142 {0x33, 0x0a1d, 0x0a0d, 0x3b85, 0x0000, 0x08,
143 0x0d, 0x00, 0x00, 0x06, 0x3d},
144 {0x34, 0x2a1d, 0x0a0e, 0x3b8c, 0x0000, 0x08,
145 0x0e, 0x00, 0x00, 0x06, 0x3e},
146 {0x35, 0x0a1f, 0x0a0d, 0x3b85, 0x0000, 0x08,
147 0x0d, 0x00, 0x00, 0x06, 0x3d},
148 {0x36, 0x2a1f, 0x0a0e, 0x3b8c, 0x0000, 0x08,
149 0x0e, 0x00, 0x00, 0x06, 0x3e},
150 {0x38, 0x0a1b, 0x0508, 0x3aab, 0x0105, 0x08,
151 0x08, 0x00, 0x00, 0x00, 0x16},
152 {0x3a, 0x0e3b, 0x0609, 0x3adc, 0x0107, 0x08,
153 0x09, 0x00, 0x00, 0x00, 0x1e},
154 {0x3c, 0x0e3b, 0x070a, 0x3af2, 0x0130, 0x08,
155 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
156 add CRT2MODE [2003/10/07] */
157 {0x3d, 0x0e7d, 0x070a, 0x3af2, 0x0131, 0x08,
158 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
160 {0x40, 0x9a1c, 0x0000, 0x3a34, 0x010d, 0x08,
161 0x00, 0x00, 0x00, 0x04, 0x00},
162 {0x41, 0x9a1d, 0x0000, 0x3a34, 0x010e, 0x08,
163 0x00, 0x00, 0x00, 0x04, 0x00}, /* ModeIdIndex = 0x10 */
164 {0x43, 0x0a1c, 0x0306, 0x3a57, 0x0110, 0x08,
165 0x06, 0x00, 0x00, 0x05, 0x06},
166 {0x44, 0x0a1d, 0x0306, 0x3a57, 0x0111, 0x08,
167 0x06, 0x00, 0x00, 0x05, 0x06},
168 {0x46, 0x2a1c, 0x0407, 0x3a81, 0x0113, 0x08,
169 0x07, 0x00, 0x00, 0x07, 0x0e},
170 {0x47, 0x2a1d, 0x0407, 0x3a81, 0x0114, 0x08,
171 0x07, 0x00, 0x00, 0x07, 0x0e},
172 {0x49, 0x0a3c, 0x0508, 0x3aab, 0x0116, 0x08,
173 0x08, 0x00, 0x00, 0x00, 0x16},
174 {0x4a, 0x0a3d, 0x0508, 0x3aab, 0x0117, 0x08,
175 0x08, 0x00, 0x00, 0x00, 0x16},
176 {0x4c, 0x0e7c, 0x0609, 0x3adc, 0x0119, 0x08,
177 0x09, 0x00, 0x00, 0x00, 0x1e},
178 {0x4d, 0x0e7d, 0x0609, 0x3adc, 0x011a, 0x08,
179 0x09, 0x00, 0x00, 0x00, 0x1e},
180 {0x50, 0x9a1b, 0x0001, 0x3a3b, 0x0132, 0x08,
181 0x01, 0x00, 0x00, 0x04, 0x02},
182 {0x51, 0xba1b, 0x0103, 0x3a42, 0x0133, 0x08,
183 0x03, 0x00, 0x00, 0x07, 0x03},
184 {0x52, 0x9a1b, 0x0204, 0x3a49, 0x0134, 0x08,
185 0x04, 0x00, 0x00, 0x00, 0x04},
186 {0x56, 0x9a1d, 0x0001, 0x3a3b, 0x0135, 0x08,
187 0x01, 0x00, 0x00, 0x04, 0x02},
188 {0x57, 0xba1d, 0x0103, 0x3a42, 0x0136, 0x08,
189 0x03, 0x00, 0x00, 0x07, 0x03},
190 {0x58, 0x9a1d, 0x0204, 0x3a49, 0x0137, 0x08,
191 0x04, 0x00, 0x00, 0x00, 0x04},
192 {0x59, 0x9a1b, 0x0000, 0x3a34, 0x0138, 0x08,
193 0x00, 0x00, 0x00, 0x04, 0x00},
194 {0x5A, 0x021b, 0x0014, 0x3b83, 0x0138, 0x08,
195 0x01, 0x00, 0x00, 0x04, 0x3f}, /* ModeIdIndex = 0x20 */
196 {0x5B, 0x0a1d, 0x0014, 0x3b83, 0x0135, 0x08,
197 0x01, 0x00, 0x00, 0x04, 0x3f},
198 {0x5d, 0x0a1d, 0x0305, 0x3a50, 0x0139, 0x08,
199 0x05, 0x00, 0x00, 0x07, 0x05},
200 {0x62, 0x0a3f, 0x0306, 0x3a57, 0x013a, 0x08,
201 0x06, 0x00, 0x00, 0x05, 0x06},
202 {0x63, 0x2a3f, 0x0407, 0x3a81, 0x013b, 0x08,
203 0x07, 0x00, 0x00, 0x07, 0x0e},
204 {0x64, 0x0a7f, 0x0508, 0x3aab, 0x013c, 0x08,
205 0x08, 0x00, 0x00, 0x00, 0x16},
206 {0x65, 0x0eff, 0x0609, 0x3adc, 0x013d, 0x08,
207 0x09, 0x00, 0x00, 0x00, 0x1e},
208 {0x66, 0x0eff, 0x070a, 0x3af2, 0x013e, 0x08,
209 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
211 {0x68, 0x067b, 0x080b, 0x3b17, 0x013f, 0x08,
212 0x0b, 0x00, 0x00, 0x00, 0x29},
213 {0x69, 0x06fd, 0x080b, 0x3b17, 0x0140, 0x08,
214 0x0b, 0x00, 0x00, 0x00, 0x29},
215 {0x6b, 0x07ff, 0x080b, 0x3b17, 0x0141, 0x10,
216 0x0b, 0x00, 0x00, 0x00, 0x29},
217 {0x6c, 0x067b, 0x090c, 0x3b37, 0x0000, 0x08,
218 0x0c, 0x00, 0x00, 0x00, 0x2f},
219 {0x6d, 0x06fd, 0x090c, 0x3b37, 0x0000, 0x10,
220 0x0c, 0x00, 0x00, 0x00, 0x2f},
221 {0x6e, 0x07ff, 0x090c, 0x3b37, 0x0000, 0x10,
222 0x0c, 0x00, 0x00, 0x00, 0x2f},
223 {0x70, 0x2a1b, 0x0410, 0x3b52, 0x0000, 0x08,
224 0x10, 0x00, 0x00, 0x07, 0x34},
225 {0x71, 0x0a1b, 0x0511, 0x3b63, 0x0000, 0x08,
226 0x11, 0x00, 0x00, 0x00, 0x37},
227 {0x74, 0x0a1d, 0x0511, 0x3b63, 0x0000, 0x08,
228 0x11, 0x00, 0x00, 0x00, 0x37}, /* ModeIdIndex = 0x30 */
229 {0x75, 0x0a3d, 0x0612, 0x3b74, 0x0000, 0x08,
230 0x12, 0x00, 0x00, 0x00, 0x3a},
231 {0x76, 0x2a1f, 0x0410, 0x3b52, 0x0000, 0x08,
232 0x10, 0x00, 0x00, 0x07, 0x34},
233 {0x77, 0x0a1f, 0x0511, 0x3b63, 0x0000, 0x08,
234 0x11, 0x00, 0x00, 0x00, 0x37},
235 {0x78, 0x0a3f, 0x0612, 0x3b74, 0x0000, 0x08,
236 0x12, 0x00, 0x00, 0x00, 0x3a},
237 {0x79, 0x0a3b, 0x0612, 0x3b74, 0x0000, 0x08,
238 0x12, 0x00, 0x00, 0x00, 0x3a},
239 {0x7a, 0x2a1d, 0x0410, 0x3b52, 0x0000, 0x08,
240 0x10, 0x00, 0x00, 0x07, 0x34},
241 {0x7b, 0x0e3b, 0x060f, 0x3ad0, 0x0000, 0x08,
242 0x0f, 0x00, 0x00, 0x00, 0x1d},
243 {0x7c, 0x0e7d, 0x060f, 0x3ad0, 0x0000, 0x08,
244 0x0f, 0x00, 0x00, 0x00, 0x1d},
245 {0x7d, 0x0eff, 0x060f, 0x3ad0, 0x0000, 0x08,
246 0x0f, 0x00, 0x00, 0x00, 0x1d},
247 {0x20, 0x0e3b, 0x0D16, 0x49e0, 0x0000, 0x08,
248 0x16, 0x00, 0x00, 0x00, 0x43},
249 {0x21, 0x0e7d, 0x0D16, 0x49e0, 0x0000, 0x08,
250 0x16, 0x00, 0x00, 0x00, 0x43},
251 {0x22, 0x0eff, 0x0D16, 0x49e0, 0x0000, 0x08,
252 0x16, 0x00, 0x00, 0x00, 0x43},
253 {0x23, 0x0e3b, 0x0614, 0x49d5, 0x0000, 0x08,
254 0x14, 0x00, 0x00, 0x00, 0x41},
255 {0x24, 0x0e7d, 0x0614, 0x49d5, 0x0000, 0x08,
256 0x14, 0x00, 0x00, 0x00, 0x41},
257 {0x25, 0x0eff, 0x0614, 0x49d5, 0x0000, 0x08,
258 0x14, 0x00, 0x00, 0x00, 0x41},
259 {0x26, 0x063b, 0x0c15, 0x49dc, 0x0000, 0x08,
260 0x15, 0x00, 0x00, 0x00, 0x42}, /* ModeIdIndex = 0x40 */
261 {0x27, 0x067d, 0x0c15, 0x49dc, 0x0000, 0x08,
262 0x15, 0x00, 0x00, 0x00, 0x42},
263 {0x28, 0x06ff, 0x0c15, 0x49dc, 0x0000, 0x08,
264 0x15, 0x00, 0x00, 0x00, 0x42},
265 {0xff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00,
266 0x00, 0x00, 0x00, 0x00, 0x00}
269 static struct SiS_StandTable_S XGI330_StandTable = {
271 0x00, 0x00, 0x00, 0x0000,
272 {0x01, 0x0f, 0x00, 0x0e},
274 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
275 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
276 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
278 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
279 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
280 0x01, 0x00, 0x00, 0x00},
281 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
285 static struct XGI_TimingHStruct XGI_TimingH[1];
287 static struct XGI_TimingVStruct XGI_TimingV[1];
289 static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
290 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
291 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
292 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
293 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
294 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
295 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
296 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
297 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
298 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
299 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
300 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
301 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
302 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
303 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
304 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
305 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
306 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
309 static struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
310 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
311 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
312 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
313 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
314 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
315 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
316 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
317 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
318 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
319 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
320 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
321 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
322 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
323 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
324 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
325 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
326 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
327 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
328 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
329 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
330 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
331 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
332 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
333 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
334 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
335 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
336 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
338 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
340 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
342 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
344 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
346 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
348 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
350 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
352 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
354 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
356 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
357 12 (800x600,100Hz) */
358 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
360 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
361 13 (800x600,120Hz) */
362 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
364 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
365 14 (800x600,160Hz) */
366 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
368 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
369 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
370 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
371 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
372 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
373 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
374 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
375 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
376 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
377 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
378 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
379 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
380 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
381 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
382 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
383 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
384 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
385 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
386 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
387 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
388 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
389 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
390 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
391 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
392 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
393 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
394 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
395 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
396 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
397 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
398 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
399 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
400 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
401 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
402 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
403 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
404 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
405 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
406 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
407 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
408 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
409 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
410 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
411 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
412 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
413 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
414 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
415 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
416 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
417 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
418 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
419 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
420 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
421 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
422 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
423 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
424 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
425 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
426 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
427 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
428 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
429 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
430 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
431 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
432 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
433 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
434 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
435 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
436 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
437 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
438 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
439 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
440 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
441 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
442 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
443 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
444 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
445 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
446 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
447 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
448 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
449 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
450 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
451 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
452 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
453 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
454 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
455 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
456 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
457 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
458 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
459 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
460 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
461 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
462 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
463 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
464 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
465 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
466 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
467 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
468 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
469 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
472 static unsigned char XGI_CH7017LV1024x768[] = {
473 0x60, 0x02, 0x00, 0x07, 0x40, 0xED,
474 0xA3, 0xC8, 0xC7, 0xAC, 0xE0, 0x02};
475 static unsigned char XGI_CH7017LV1400x1050[] = {
476 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3,
477 0xAD, 0xDB, 0xF6, 0xAC, 0xE0, 0x02};
479 /*add for new UNIVGABIOS*/
480 static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data[] = {
481 {62, 25, 800, 546, 1344, 806},
482 {32, 15, 930, 546, 1344, 806},
483 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
484 {104, 45, 945, 496, 1344, 806},
485 {62, 25, 800, 546, 1344, 806},
486 {31, 18, 1008, 624, 1344, 806},
487 {1, 1, 1344, 806, 1344, 806}
490 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data[] = {
491 /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
492 {42, 25, 1536, 419, 1344, 806},
493 /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
494 {48, 25, 1536, 369, 1344, 806},
495 /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
496 {42, 25, 1536, 419, 1344, 806},
497 /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
498 {48, 25, 1536, 369, 1344, 806},
499 {12, 5, 896, 500, 1344, 806},
500 {42, 25, 1024, 625, 1344, 806},
501 {1, 1, 1344, 806, 1344, 806},
502 {12, 5, 896, 500, 1344, 806},
503 {42, 25, 1024, 625, 1344, 806},
504 {1, 1, 1344, 806, 1344, 806},
505 {12, 5, 896, 500, 1344, 806},
506 {42, 25, 1024, 625, 1344, 806},
507 {1, 1, 1344, 806, 1344, 806}
510 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = {
511 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
513 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
514 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
515 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
516 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
517 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
518 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
521 static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data[] = {
522 {22, 5, 800, 510, 1650, 1088},
523 {22, 5, 800, 510, 1650, 1088},
524 {176, 45, 900, 510, 1650, 1088},
525 {176, 45, 900, 510, 1650, 1088},
526 {22, 5, 800, 510, 1650, 1088},
527 {13, 5, 1024, 675, 1560, 1152},
528 {16, 9, 1266, 804, 1688, 1072},
529 {1, 1, 1688, 1066, 1688, 1066}
532 static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data[] = {
533 {211, 60, 1024, 501, 1688, 1066},
534 {211, 60, 1024, 508, 1688, 1066},
535 {211, 60, 1024, 501, 1688, 1066},
536 {211, 60, 1024, 508, 1688, 1066},
537 {211, 60, 1024, 500, 1688, 1066},
538 {211, 75, 1024, 625, 1688, 1066},
539 {211, 120, 1280, 798, 1688, 1066},
540 {1, 1, 1688, 1066, 1688, 1066}
543 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = {
544 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
546 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
547 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
548 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
549 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
550 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
551 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
552 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
553 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
556 static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050[] = {
557 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
559 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
560 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
561 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
562 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
563 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
564 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
565 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
567 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
570 static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = {
571 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
572 // 00 (320x200,320x400,
574 // // alan 10/14/2003 */
575 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
576 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
577 // 02 (360x400,720x400)
578 // // alan 10/14/2003 */
579 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
580 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
581 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
582 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
583 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
584 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
585 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
588 static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = {
589 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
591 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
592 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
593 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
594 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
595 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
596 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
597 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
598 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
599 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
602 static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = {
603 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
605 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
606 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
607 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
608 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
609 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
610 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
611 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
612 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
615 static struct XGI330_LCDDataStruct XGI_NoScalingData[] = {
616 {1, 1, 800, 449, 800, 449},
617 {1, 1, 800, 449, 800, 449},
618 {1, 1, 900, 449, 900, 449},
619 {1, 1, 900, 449, 900, 449},
620 {1, 1, 800, 525, 800, 525},
621 {1, 1, 1056, 628, 1056, 628},
622 {1, 1, 1344, 806, 1344, 806},
623 {1, 1, 1688, 1066, 1688, 1066}
626 static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = {
627 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
629 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
630 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
631 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
632 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
633 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
634 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
637 static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = {
638 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
640 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
641 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
642 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
643 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
644 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
645 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
648 static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75[] = {
649 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
651 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
652 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
653 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
654 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
655 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
656 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
657 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
660 static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = {
661 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
663 {1, 1, 1688, 1066, 1688, 1066}, /* ; 01 (320x350,640x350) */
664 {1, 1, 1688, 1066, 1688, 1066}, /* ; 02 (360x400,720x400) */
665 {1, 1, 1688, 1066, 1688, 1066}, /* ; 03 (720x350) */
666 {1, 1, 1688, 1066, 1688, 1066}, /* ; 04 (640x480x75Hz) */
667 {1, 1, 1688, 1066, 1688, 1066}, /* ; 05 (800x600x75Hz) */
668 {1, 1, 1688, 1066, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
669 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
672 static struct XGI330_LCDDataStruct XGI_NoScalingDatax75[] = {
673 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
675 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
676 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
677 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
678 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
679 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
680 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
681 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
682 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
683 ;;[ycchen] 12/19/02 */
684 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
685 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
688 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data[] = {
689 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
690 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
691 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
692 {9, 1057, 0, 771}, /* ; 03 (720x350) */
693 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
694 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
695 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
698 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data[] = {
699 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
700 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
701 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
702 {9, 1057, 686, 651}, /* ; 03 (720x350) */
703 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
704 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
705 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
708 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data[] = {
709 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
710 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
711 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
712 {1152, 856, 597, 562}, /* ; 03 (720x350) */
713 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
714 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
715 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
718 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
719 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
720 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
721 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
722 {18, 1346, 926, 865}, /* 03 (720x350) */
723 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
724 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
725 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
726 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
729 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] = {
730 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
731 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
732 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
733 {18, 1346, 917, 854}, /* 03 (720x350) */
734 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
735 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
736 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
737 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
740 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
741 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
742 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
743 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
744 {1368, 1008, 729, 688}, /* 03 (720x350) */
745 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
746 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
747 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
748 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
751 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data[] = {
752 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
753 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
754 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
755 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
756 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
757 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
758 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
759 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
762 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data[] = {
763 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
764 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
765 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
766 {9, 1337, 917, 854}, /* ; 03 (720x350) */
767 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
768 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
769 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
770 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
773 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data[] = {
774 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
775 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
776 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
777 {1368, 1008, 729, 688}, /* 03 (720x350) */
778 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
779 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
780 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
781 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
784 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1400x1050[] = {
785 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
786 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
787 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
788 {18, 1464, 0, 1051}, /* 03 (720x350) */
789 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
790 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
791 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
792 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
793 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
796 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1400x1050[] = {
797 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
798 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
799 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
800 {9, 1455, 0, 1051}, /* 03 (720x350) */
801 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
802 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
803 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
804 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
805 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
808 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data[] = {
809 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
810 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
811 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
812 {1308, 1068, 781, 766}, /* 03 (720x350) */
813 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
814 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
815 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
816 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
817 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
820 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2[] = {
821 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
822 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
823 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
824 {0, 1448, 0, 1051}, /* 03 (720x350) */
825 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
828 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
829 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
830 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
831 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
832 {18, 1682, 0, 1201}, /* 03 (720x350) */
833 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
834 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
835 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
836 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
837 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
838 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
841 static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data[] = {
842 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
843 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
844 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
845 {18, 1682, 1083, 1034}, /* 03 (720x350) */
846 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
847 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
848 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
849 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
850 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
851 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
854 static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data[] = {
855 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
856 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
857 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
858 {9, 1673, 0, 1201}, /* 03 (720x350) */
859 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
860 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
861 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
862 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
863 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
864 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
867 static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data[] = {
868 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
869 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
870 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
871 {9, 1673, 1083, 1034}, /* 03 (720x350) */
872 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
873 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
874 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
875 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
876 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
877 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
880 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
881 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
883 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
884 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
885 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
886 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
887 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
888 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
889 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
890 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz) },
891 //;[ycchen] 12/19/02 */
892 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
893 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
896 /* ;;1024x768x75Hz */
897 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1024x768x75[] = {
898 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
899 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
900 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
901 {9, 1049, 0, 769}, /* ; 03 (720x350) */
902 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
903 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
904 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
907 /* ;;1024x768x75Hz */
908 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data[] = {
909 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
910 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
911 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
912 {1192, 896, 597, 562}, /* ; 03 (720x350) */
913 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
914 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
915 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
918 /* ;;1280x1024x75Hz */
919 static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1280x1024x75[] = {
920 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
921 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
922 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
923 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
924 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
925 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
926 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
927 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
931 static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
932 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
933 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
934 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
935 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
936 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
937 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
938 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
939 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
942 /* ;;1280x1024x75Hz */
943 static struct XGI330_LCDDataDesStruct xgifb_lcddes_1280x1024x75[] = {
944 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
945 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
946 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
947 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
948 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
949 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
950 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
951 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
955 static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
956 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
957 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
958 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
959 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
960 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
961 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
962 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
963 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
966 /* Scaling LCD 75Hz */
967 static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
968 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
970 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
971 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
972 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
973 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
974 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
975 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
976 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
977 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)
978 ;;[ycchen] 12/19/02 */
979 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
980 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
983 static struct XGI330_TVDataStruct XGI_StPALData[] = {
984 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
985 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
986 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
987 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
988 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
989 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
992 static struct XGI330_TVDataStruct XGI_ExtPALData[] = {
993 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
994 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
995 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
996 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
997 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
998 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
999 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
1000 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
1003 static struct XGI330_TVDataStruct XGI_StNTSCData[] = {
1004 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1005 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1006 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1007 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1008 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
1011 static struct XGI330_TVDataStruct XGI_ExtNTSCData[] = {
1012 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1013 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1014 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1015 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1016 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1017 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1018 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1019 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
1020 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1023 static struct XGI330_TVDataStruct XGI_St1HiTVData[] = {
1024 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1026 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1027 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
1028 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1029 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
1030 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
1033 static struct XGI330_TVDataStruct XGI_St2HiTVData[] = {
1034 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1036 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1037 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
1038 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1039 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
1040 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
1043 static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = {
1044 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1046 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
1047 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
1048 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
1049 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
1050 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
1051 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
1052 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
1053 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
1054 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
1055 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
1058 static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData[] = {
1059 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1060 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1061 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1062 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1063 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
1064 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
1065 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1066 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1067 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
1070 static struct XGI330_TVDataStruct XGI_StYPbPr525iData[] = {
1071 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1072 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1073 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1074 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1075 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
1078 static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData[] = {
1079 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1080 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1081 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1082 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1083 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1084 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1085 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1086 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1087 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
1090 static struct XGI330_TVDataStruct XGI_StYPbPr525pData[] = {
1091 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
1092 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
1093 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
1094 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
1095 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
1098 static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = {
1099 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1101 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
1102 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
1103 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
1104 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1105 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1106 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1107 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1108 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1109 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1110 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1113 static struct XGI330_TVDataStruct XGI_StYPbPr750pData[] = {
1114 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1115 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1116 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1117 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1118 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
1121 static unsigned char XGI330_NTSCTiming[] = {
1122 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1123 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1124 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1125 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1126 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1127 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1128 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1129 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1132 static unsigned char XGI330_PALTiming[] = {
1133 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1134 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1135 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1136 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1137 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1138 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1139 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1140 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
1143 static unsigned char XGI330_HiTVExtTiming[] = {
1144 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1145 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1146 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1147 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1148 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1149 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1150 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1151 0x60, 0x14, 0x3D, 0x63, 0x4F,
1152 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
1155 static unsigned char XGI330_HiTVSt1Timing[] = {
1156 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1157 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1158 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1159 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1160 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1161 0x35, 0x35, 0x3B, 0x69, 0x1D,
1162 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1163 0x60, 0x04, 0x86, 0xAF, 0x5D,
1164 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
1167 static unsigned char XGI330_HiTVSt2Timing[] = {
1168 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1169 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1170 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1171 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1172 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1173 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1174 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1175 0x60, 0x14, 0x3D, 0x63, 0x4F,
1176 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
1179 static unsigned char XGI330_HiTVTextTiming[] = {
1180 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1181 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1182 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1183 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1184 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1185 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1186 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1187 0x60, 0x04, 0x96, 0x72, 0x5C,
1188 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1191 static unsigned char XGI330_YPbPr750pTiming[] = {
1192 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1193 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1194 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1195 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1196 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1197 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1198 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1199 0x60, 0x14, 0x73, 0x00, 0x40,
1200 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
1203 static unsigned char XGI330_YPbPr525pTiming[] = {
1204 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1205 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1206 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1207 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1208 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1209 0x51, 0x5e, 0x60, 0x49, 0x7d,
1210 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1211 0x60, 0x14, 0x4B, 0x43, 0x41,
1212 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
1215 static unsigned char XGI330_YPbPr525iTiming[] = {
1216 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1217 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1218 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1219 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1220 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1221 0x03, 0x0A, 0x65, 0x9D, 0x08,
1222 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1223 0x60, 0x14, 0x4B, 0x00, 0x40,
1224 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
1227 static unsigned char XGI330_HiTVGroup3Data[] = {
1228 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1229 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1230 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1231 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1232 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1233 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1234 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1235 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1238 static unsigned char XGI330_HiTVGroup3Simu[] = {
1239 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1240 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1241 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1242 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1243 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1244 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1245 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1246 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1249 static unsigned char XGI330_HiTVGroup3Text[] = {
1250 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1251 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1252 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1253 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1254 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1255 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1256 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1257 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
1260 static unsigned char XGI330_Ren525pGroup3[] = {
1261 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1262 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1263 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1264 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1265 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1266 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1267 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1268 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1271 static unsigned char XGI330_Ren750pGroup3[] = {
1272 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1273 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1274 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1275 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1276 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1277 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1278 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1279 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
1282 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1[] = {
1283 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1284 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1285 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1286 {1040, 388, 1344, 806}, /* 03 (720x350) */
1287 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1288 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1289 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
1293 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2[] = {
1294 {1344, 806, 1344, 806},
1295 {1344, 806, 1344, 806},
1296 {1344, 806, 1344, 806},
1297 {1344, 806, 1344, 806},
1298 {1344, 806, 1344, 806},
1299 {1344, 806, 1344, 806},
1300 {1344, 806, 1344, 806},
1301 {800, 449, 1280, 801},
1302 {800, 525, 1280, 813}
1305 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1[] = {
1306 {1048, 442, 1688, 1066},
1307 {1048, 392, 1688, 1066},
1308 {1048, 442, 1688, 1066},
1309 {1048, 392, 1688, 1066},
1310 {1048, 522, 1688, 1066},
1311 {1208, 642, 1688, 1066},
1312 {1432, 810, 1688, 1066},
1313 {1688, 1066, 1688, 1066}
1316 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2[] = {
1317 {1344, 806, 1344, 806},
1318 {1344, 806, 1344, 806},
1319 {1344, 806, 1344, 806},
1320 {1344, 806, 1344, 806},
1321 {1344, 806, 1344, 806},
1322 {1344, 806, 1344, 806},
1323 {1344, 806, 1344, 806},
1324 {800, 449, 1280, 801},
1325 {800, 525, 1280, 813}
1328 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1[] = {
1329 {928, 416, 1688, 1066},
1330 {928, 366, 1688, 1066},
1331 {928, 416, 1688, 1066},
1332 {928, 366, 1688, 1066},
1333 {928, 496, 1688, 1066},
1334 {1088, 616, 1688, 1066},
1335 {1312, 784, 1688, 1066},
1336 {1568, 1040, 1688, 1066},
1337 {1688, 1066, 1688, 1066}
1340 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2[] = {
1341 {1688, 1066, 1688, 1066},
1342 {1688, 1066, 1688, 1066},
1343 {1688, 1066, 1688, 1066},
1344 {1688, 1066, 1688, 1066},
1345 {1688, 1066, 1688, 1066},
1346 {1688, 1066, 1688, 1066},
1347 {1688, 1066, 1688, 1066},
1348 {1688, 1066, 1688, 1066},
1349 {1688, 1066, 1688, 1066}
1352 /* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1353 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = {
1354 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1355 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1356 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1357 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1358 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1359 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1360 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1361 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1362 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1363 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
1366 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] = {
1367 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1368 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1369 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1370 { 800, 449, 800, 449}, /* 03 (720x350) */
1371 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1372 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1373 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1374 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1375 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1376 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1377 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
1380 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] = {
1381 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1382 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1383 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1384 {1040, 388, 1312, 800}, /* 03 (720x350) */
1385 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1386 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1387 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
1391 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] = {
1392 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1393 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1394 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1395 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1396 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1397 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1398 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
1401 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] = {
1402 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1403 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1404 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1405 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1406 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1407 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1408 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1409 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1412 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] = {
1413 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1414 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1415 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1416 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1417 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1418 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1419 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1420 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
1423 static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] = {
1424 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1425 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1426 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1427 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1428 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1429 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1430 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1431 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1432 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1433 ;;[ycchen] 12/19/02 */
1434 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1435 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
1438 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] = {
1439 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1440 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1441 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1442 {0, 1048, 0, 771}, /* 03 (720x350) */
1443 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1444 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1445 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
1448 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] = {
1449 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1450 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1451 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1452 {1142, 856, 597, 562}, /* 03 (720x350) */
1453 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1454 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1455 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1458 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] = {
1459 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1460 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1461 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1462 {320, 24, 597, 562}, /* 03 (720x350) */
1463 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
1466 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] = {
1467 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1468 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1469 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1470 {0, 1328, 0, 1025}, /* 03 (720x350) */
1471 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1472 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1473 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1474 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
1477 /* The Display setting for DE Mode Panel */
1478 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] = {
1479 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1480 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1481 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1482 {1408, 1048, 729, 688}, /* 03 (720x350) */
1483 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1484 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1485 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1486 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
1489 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] = {
1490 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1491 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1492 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1493 {0, 1448, 0, 1051}, /* 03 (720x350) */
1494 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1495 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1496 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1497 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1498 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1501 static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] = {
1502 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1503 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1504 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1505 {1308, 1068, 781, 766}, /* 03 (720x350) */
1506 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1507 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1508 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1509 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1510 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
1513 static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] = {
1514 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1515 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1516 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1517 {0, 1664, 0, 1201}, /* 03 (720x350) */
1518 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1519 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1520 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1521 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1522 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1523 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
1526 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1527 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1529 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1530 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1531 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1532 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1533 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1534 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1535 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1536 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)
1537 ;;[ycchen] 12/19/02 */
1538 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1539 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
1542 /* ; 1024x768 Full-screen */
1543 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = {
1544 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1545 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1546 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1547 {0, 1040, 0, 769}, /* ; 03 (720x350) */
1548 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
1549 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
1550 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
1553 /* ; 1024x768 center-screen (Enh. Mode) */
1554 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = {
1555 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1556 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1557 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1558 {1142, 856, 597, 562}, /* 03 (720x350) */
1559 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1560 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1561 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
1564 /* ; 1024x768 center-screen (St.Mode) */
1565 static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = {
1566 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1567 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
1568 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
1569 {320, 24, 597, 562}, /* ; 03 (720x350) */
1570 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
1573 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] = {
1574 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1575 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
1576 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
1577 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
1578 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
1579 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
1580 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
1581 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1584 /* The Display setting for DE Mode Panel */
1585 /* [ycchen] 02/18/03 Set DE as default */
1586 static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = {
1587 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1588 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
1589 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
1590 {1408, 976, 729, 688}, /* ; 03 (720x350) */
1591 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
1592 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
1593 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
1594 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
1597 /* Scaling LCD 75Hz */
1598 static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
1599 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1601 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1602 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1603 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
1604 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1605 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1606 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1607 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1608 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz)
1609 ;;[ycchen] 12/19/02 */
1610 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1611 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
1614 static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData[] = {
1615 { 840, 600, 840, 600},
1616 { 840, 600, 840, 600},
1617 { 840, 600, 840, 600},
1618 { 840, 600, 840, 600},
1619 { 784, 600, 784, 600},
1620 {1064, 750, 1064, 750}
1623 static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData[] = {
1624 { 840, 525, 840, 525},
1625 { 840, 525, 840, 525},
1626 { 840, 525, 840, 525},
1627 { 840, 525, 840, 525},
1628 { 784, 525, 784, 525},
1629 {1040, 700, 1040, 700}
1632 static struct XGI330_CHTVDataStruct XGI_CHTVUPALData[] = {
1633 {1008, 625, 1008, 625},
1634 {1008, 625, 1008, 625},
1635 {1008, 625, 1008, 625},
1636 {1008, 625, 1008, 625},
1637 { 840, 750, 840, 750},
1638 { 936, 836, 936, 836}
1641 static struct XGI330_CHTVDataStruct XGI_CHTVOPALData[] = {
1642 {1008, 625, 1008, 625},
1643 {1008, 625, 1008, 625},
1644 {1008, 625, 1008, 625},
1645 {1008, 625, 1008, 625},
1646 {840, 625, 840, 625},
1647 {960, 750, 960, 750}
1650 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1651 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
1652 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
1653 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
1654 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
1655 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1656 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1657 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1658 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
1659 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1662 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1663 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
1664 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
1665 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
1666 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
1667 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
1668 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
1669 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
1670 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
1671 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
1672 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
1675 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1676 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
1677 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1678 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1679 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1680 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1681 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1682 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1683 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1684 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
1687 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1688 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
1689 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1690 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1691 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1692 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1693 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1694 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1695 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
1696 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1697 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
1700 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1701 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
1702 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
1703 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
1704 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1705 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
1706 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
1707 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
1708 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
1709 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1710 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1711 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1714 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1715 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
1716 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
1717 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
1718 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
1719 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
1720 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
1721 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
1722 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
1723 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
1724 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
1725 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
1728 /* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
1729 /* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1730 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
1731 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
1732 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
1733 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
1734 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
1735 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
1736 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
1737 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
1738 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
1739 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
1740 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
1741 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
1744 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1745 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
1746 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
1747 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
1748 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
1749 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
1750 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1753 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1754 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
1755 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
1756 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
1757 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
1758 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
1759 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
1762 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1763 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
1764 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
1765 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
1766 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
1767 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
1768 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
1769 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1772 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1773 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
1774 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
1775 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
1776 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
1777 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
1778 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
1779 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
1782 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1783 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
1784 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
1785 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
1786 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
1787 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
1788 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
1789 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
1790 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
1793 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1794 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
1795 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
1796 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
1797 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
1798 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
1799 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
1800 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
1801 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
1804 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1805 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
1806 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
1807 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
1808 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
1809 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
1810 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
1811 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
1812 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
1813 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
1816 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1817 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
1818 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
1819 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
1820 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
1821 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1822 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
1823 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
1824 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
1825 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1828 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
1829 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
1830 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
1831 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
1832 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
1833 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
1834 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
1837 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1838 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
1839 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1840 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1841 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1842 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1843 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1844 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1845 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1846 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
1849 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1850 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
1851 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
1852 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
1853 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
1854 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
1855 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
1858 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1859 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
1860 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
1861 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
1862 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1863 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1864 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
1865 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
1866 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
1867 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
1868 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1871 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1872 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
1873 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
1874 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
1875 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
1876 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
1877 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
1878 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1880 /* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
1881 static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
1882 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
1883 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
1884 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
1885 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
1886 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
1887 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
1888 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
1889 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
1890 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
1893 /* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
1894 static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
1895 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
1896 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
1897 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
1898 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
1899 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
1900 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
1903 /*add for new UNIVGABIOS*/
1904 static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
1905 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
1906 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
1907 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
1908 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
1909 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
1910 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
1911 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
1912 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
1913 {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
1914 {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
1915 {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
1916 {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
1917 {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
1918 {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
1919 {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
1920 {Panel_1280x1024x75, 0x0019, 0x0001, 15}, /* XGI_ExtLCD1280x1024x75Data*/
1921 {Panel_1280x1024x75, 0x0019, 0x0000, 16}, /* XGI_StLCD1280x1024x75Data */
1922 {Panel_1280x1024x75, 0x0018, 0x0010, 17}, /* XGI_CetLCD1280x1024x75Data*/
1923 {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
1924 {0xFF, 0x0000, 0x0000, 0} /* End of table */
1927 static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
1928 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
1929 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
1930 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
1931 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
1932 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
1933 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
1934 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
1935 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
1936 {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
1937 {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
1938 {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
1939 {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
1940 {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
1941 {Panel_1024x768x75, 0x0019, 0x0001, 13}, /*XGI_ExtLCDDes1024x768x75Data*/
1942 {Panel_1024x768x75, 0x0019, 0x0000, 14}, /* XGI_StLCDDes1024x768x75Data*/
1943 {Panel_1024x768x75, 0x0018, 0x0010, 15}, /*XGI_CetLCDDes1024x768x75Data*/
1944 /* XGI_ExtLCDDes1280x1024x75Data */
1945 {Panel_1280x1024x75, 0x0019, 0x0001, 16},
1946 /* XGI_StLCDDes1280x1024x75Data */
1947 {Panel_1280x1024x75, 0x0019, 0x0000, 17},
1948 /* XGI_CetLCDDes1280x1024x75Data */
1949 {Panel_1280x1024x75, 0x0018, 0x0010, 18},
1950 {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
1951 {0xFF, 0x0000, 0x0000, 0}
1954 static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1[] = {
1955 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
1956 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
1957 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
1958 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
1959 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
1960 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
1961 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
1962 {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
1963 {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
1964 {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
1965 {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
1966 {0xFF, 0x0000, 0x0000, 0}
1969 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
1970 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
1971 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
1972 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
1973 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
1974 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
1975 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
1976 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
1977 {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
1978 {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
1979 {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
1980 {Panel_1280x1024x75, 0x0018, 0x0000, 10}, /* XGI_LVDS1280x1024Data_1x75*/
1981 {Panel_1280x1024x75, 0x0018, 0x0010, 11}, /*XGI_LVDS1280x1024Data_2x75*/
1982 {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
1983 {0xFF, 0x0000, 0x0000, 0}
1986 static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
1987 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
1988 {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
1989 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
1990 {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
1991 {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
1992 {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
1993 {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
1994 {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
1995 {PanelRef60Hz, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
1996 {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
1997 {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
1998 {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
1999 {Panel_1280x1024x75, 0x0018, 0x0000, 12}, /* XGI_LVDS1280x1024Des_1x75 */
2000 {Panel_1280x1024x75, 0x0018, 0x0010, 13}, /* XGI_LVDS1280x1024Des_2x75 */
2001 {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
2002 {0xFF, 0x0000, 0x0000, 0}
2005 static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = {
2006 {Panel_1024x768, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
2007 {Panel_1400x1050, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
2008 {0xFF, 0x0000, 0x0000, 0}
2011 static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
2012 {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
2013 {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
2014 {0x09E1, 0x0801, 2}, /* XGI_StPALData */
2015 {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
2016 {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
2017 {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
2018 {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
2019 {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
2020 {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
2021 {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
2022 {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
2023 {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
2024 {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
2025 {0xffff, 0x0000, 12} /* END */
2028 /* Chrontel 7017 TV List */
2029 static struct XGI330_TVDataTablStruct xgifb_chrontel_tv[] = {
2030 {0x0011, 0x0000, 0}, /* UNTSC */
2031 {0x0011, 0x0010, 1}, /* ONTSC */
2032 {0x0011, 0x0001, 2}, /* UPAL */
2033 {0x0011, 0x0011, 3}, /* OPAL */
2037 static unsigned short LCDLenList[] = {
2050 /* Dual link only */
2051 static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
2052 /* LCDCap1024x768 */
2053 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2054 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2055 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2056 /* LCDCap1280x1024 */
2057 {Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2058 0x012, 0x70, 0x03, VCLK108_2_315,
2059 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2060 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2061 /* LCDCap1400x1050 */
2062 {Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2063 0x012, 0x70, 0x03, VCLK108_2_315,
2064 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2065 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2066 /* LCDCap1600x1200 */
2067 {Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap, LCDToFull,
2068 0x012, 0xC0, 0x03, VCLK162,
2069 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
2070 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2071 /* LCDCap1024x768x75 */
2072 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
2073 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2074 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2075 /* LCDCap1280x1024x75 */
2076 {Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
2077 0x012, 0x90, 0x03, VCLK135_5,
2078 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2079 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2081 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2082 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2083 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2086 static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
2087 /* LCDCap1024x768 */
2088 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2089 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2090 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2091 /* LCDCap1280x1024 */
2092 {Panel_1280x1024, DefaultLCDCap, StLCDBToA,
2093 0x012, 0x70, 0x03, VCLK108_2_315,
2094 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2095 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2096 /* LCDCap1400x1050 */
2097 {Panel_1400x1050, DefaultLCDCap, StLCDBToA,
2098 0x012, 0x70, 0x03, VCLK108_2_315,
2099 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2100 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2101 /* LCDCap1600x1200 */
2102 {Panel_1600x1200, DefaultLCDCap, LCDToFull,
2103 0x012, 0xC0, 0x03, VCLK162,
2104 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
2105 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2106 /* LCDCap1024x768x75 */
2107 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
2108 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2109 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
2110 /* LCDCap1280x1024x75 */
2111 {Panel_1280x1024x75, DefaultLCDCap, StLCDBToA,
2112 0x012, 0x90, 0x03, VCLK135_5,
2113 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2114 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
2116 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
2117 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2118 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
2121 static struct XGI_Ext2Struct XGI330_RefIndex[] = {
2122 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2123 0x00, 0x10, 0x59, 320, 200},/* 00 */
2124 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
2125 0x00, 0x10, 0x00, 320, 400},/* 01 */
2126 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
2127 0x04, 0x20, 0x50, 320, 240},/* 02 */
2128 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
2129 0x05, 0x32, 0x51, 400, 300},/* 03 */
2130 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
2131 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2132 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
2133 0x00, 0x14, 0x2f, 640, 400},/* 05 */
2134 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
2135 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
2136 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
2137 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
2138 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
2139 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
2140 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
2141 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
2142 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
2143 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
2144 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
2145 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
2146 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
2147 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
2148 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
2149 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
2150 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
2151 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
2152 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
2153 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
2154 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
2155 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
2156 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
2157 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
2158 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
2159 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
2160 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
2161 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
2162 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
2163 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
2164 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
2165 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
2166 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
2167 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2168 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
2169 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
2170 VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
2171 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
2172 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
2173 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
2174 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
2175 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
2176 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
2177 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
2178 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
2179 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
2180 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
2181 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
2182 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
2183 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
2184 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
2185 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
2186 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
2187 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
2188 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
2189 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
2190 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2191 /* 22 1600x1200x60Hz */
2192 {Mode32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
2193 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
2194 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
2195 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
2196 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
2197 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
2198 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
2199 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
2200 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
2201 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
2202 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
2203 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
2204 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
2205 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
2206 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
2207 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
2208 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
2209 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
2210 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
2211 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
2212 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
2213 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
2214 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
2215 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
2216 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
2217 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
2218 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
2219 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
2220 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
2221 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
2222 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
2223 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
2224 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
2225 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
2226 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
2227 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
2228 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2229 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
2230 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
2231 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
2232 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
2233 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
2234 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
2235 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2236 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
2237 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
2238 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
2239 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
2240 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
2241 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
2242 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2243 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
2244 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
2245 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
2246 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
2247 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
2248 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
2249 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
2250 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
2251 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
2252 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
2253 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
2254 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
2255 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
2256 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
2257 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
2258 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
2259 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
2260 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
2261 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
2262 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
2263 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
2264 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
2265 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
2266 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
2267 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
2268 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
2269 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
2270 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
2271 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
2272 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
2275 static unsigned char XGI330_ScreenOffset[] = {
2276 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2277 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2281 static struct SiS_StResInfo_S XGI330_StResInfo[] = {
2289 static struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
2299 {1280, 1024, 8, 16},
2300 {1600, 1200, 8, 16},
2301 {1920, 1440, 8, 16},
2302 {2048, 1536, 8, 16},
2311 {1400, 1050, 8, 16},
2315 static unsigned char XGI330_OutputSelect = 0x40;
2316 static unsigned char XGI330_SoftSetting = 0x30;
2317 static unsigned char XGI330_SR07 = 0x18;
2319 static unsigned char XGI330_CR49[] = {0xaa, 0x88};
2320 static unsigned char XGI330_SR1F;
2321 static unsigned char XGI330_SR21 = 0xa3;
2322 static unsigned char XGI330_SR22 = 0xfb;
2323 static unsigned char XGI330_SR23 = 0xf6;
2324 static unsigned char XGI330_SR24 = 0xd;
2326 static unsigned char XGI330_CRT2Data_1_2;
2327 static unsigned char XGI330_CRT2Data_4_D;
2328 static unsigned char XGI330_CRT2Data_4_E;
2329 static unsigned char XGI330_CRT2Data_4_10 = 0x80;
2330 static unsigned short XGI330_RGBSenseData = 0xd1;
2331 static unsigned short XGI330_VideoSenseData = 0xb9;
2332 static unsigned short XGI330_YCSenseData = 0xb3;
2333 static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/
2334 static unsigned short XGI330_VideoSenseData2 = 0x0110;
2335 static unsigned short XGI330_YCSenseData2 = 0x016B;
2336 static unsigned char XG40_I2CDefinition;
2337 static unsigned char XG20_CR97 = 0x10 ;
2339 static unsigned char XG21_DVOSetting;
2340 static unsigned char XG21_CR2E;
2341 static unsigned char XG21_CR2F;
2342 static unsigned char XG21_CR46;
2343 static unsigned char XG21_CR47;
2345 static unsigned char XG27_CR97 = 0xC1 ;
2346 static unsigned char XG27_SR36 = 0x30 ;
2347 static unsigned char XG27_CR8F = 0x0C ;
2348 static unsigned char XG27_CRD0[] = {
2349 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2351 static unsigned char XG27_CRDE[2];
2352 static unsigned char XG27_SR40 = 0x04 ;
2353 static unsigned char XG27_SR41 = 0x00 ;
2355 static struct XGI330_VCLKDataStruct XGI_VCLKData[] = {
2356 /* SR2B,SR2C,SR2D */
2357 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2358 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2359 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2360 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2361 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2362 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2363 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2364 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2365 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2366 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2367 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2368 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2369 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2370 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2371 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2372 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2373 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2374 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2375 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2376 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2377 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2378 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2379 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2380 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2381 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2382 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2383 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2384 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2385 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2386 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2387 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2388 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2389 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2390 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2391 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2392 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2393 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2394 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2395 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2396 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2397 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2398 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2399 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2400 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2401 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2402 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2403 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2404 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2405 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2406 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2407 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2408 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2409 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2410 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2411 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2412 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2413 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2414 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2415 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2416 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2417 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2418 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2419 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2420 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2421 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2422 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2423 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2424 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2425 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2426 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2427 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2428 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2429 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2430 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2431 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2432 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2433 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2434 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2435 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2436 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2437 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2438 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2439 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2440 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2441 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2442 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2443 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2444 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2445 {0xFF, 0x00, 0} /* End mark */
2448 static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
2449 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2450 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2451 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2452 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2453 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2454 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2455 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2456 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2457 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2458 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2459 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2460 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2461 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2462 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2463 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2464 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2465 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2466 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2467 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2468 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2469 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2470 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2471 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2472 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2473 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2474 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2475 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2476 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2477 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2478 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2479 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2480 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2481 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2482 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2483 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2484 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2485 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2486 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2487 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2488 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2489 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2490 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2491 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2492 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2493 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2494 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2495 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2496 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2497 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2498 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2499 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2500 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2501 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2502 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2503 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2504 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2505 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2506 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2507 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2508 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2509 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2510 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2511 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2512 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2513 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2514 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2515 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2516 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2517 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2518 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2519 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2520 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2521 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2522 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2523 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2524 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2525 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
2526 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2527 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2528 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2529 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2530 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2531 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2532 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2533 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2534 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2535 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2536 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2537 {0xFF, 0x00, 0} /* End mark */
2540 static unsigned char XGI301TVDelayList[] = {
2541 0x22, /* ; 0 ExtNTSCDelay */
2542 0x22, /* ; 1 StNTSCDelay */
2543 0x22, /* ; 2 ExtPALDelay */
2544 0x22, /* ; 3 StPALDelay */
2545 0x88, /* ; 4 ExtHiTVDelay(1080i) */
2546 0xBB, /* ; 5 StHiTVDelay(1080i) */
2547 0x22, /* ; 6 ExtYPbPrDelay(525i) */
2548 0x22, /* ; 7 StYPbPrDealy(525i) */
2549 0x22, /* ; 8 ExtYPbPrDelay(525p) */
2550 0x22, /* ; 9 StYPbPrDealy(525p) */
2551 0x22, /* ; A ExtYPbPrDelay(750p) */
2552 0x22 /* B StYPbPrDealy(750p) */
2555 static unsigned char XGI301TVDelayList2[] = {
2556 0x22, /* ; 0 ExtNTSCDelay */
2557 0x22, /* ; 1 StNTSCDelay */
2558 0x22, /* ; 2 ExtPALDelay */
2559 0x22, /* ; 3 StPALDelay */
2560 0x22, /* ; 4 ExtHiTVDelay */
2561 0x22, /* ; 5 StHiTVDelay */
2562 0x22, /* ; 6 ExtYPbPrDelay(525i) */
2563 0x22, /* ; 7 StYPbPrDealy(525i) */
2564 0x22, /* ; 8 ExtYPbPrDelay(525p) */
2565 0x22, /* ; 9 StYPbPrDealy(525p) */
2566 0x22, /* ; A ExtYPbPrDelay(750p) */
2567 0x22 /* ; B StYPbPrDealy(750p) */
2571 static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
2572 0x04, /* ; 0 Adaptive */
2573 0x00, /* ; 1 new anti-flicker ? */
2575 0x04, /* ; 0 Adaptive */
2576 0x08, /* ; 1 new anti-flicker ? */
2579 0x00 /* ; 1 new anti-flicker ? */
2583 static unsigned char TVEdgeList[] = {
2584 0x00, /* ; 0 NTSC No Edge enhance */
2585 0x04, /* ; 1 NTSC Adaptive Edge enhance */
2586 0x00, /* ; 0 PAL No Edge enhance */
2587 0x04, /* ; 1 PAL Adaptive Edge enhance */
2588 0x00, /* ; 0 HiTV */
2592 static unsigned long TVPhaseList[] = {
2593 0x08BAED21, /* ; 0 NTSC phase */
2594 0x00E3052A, /* ; 1 PAL phase */
2595 0x9B2EE421, /* ; 2 PAL-M phase */
2596 0xBA3EF421, /* ; 3 PAL-N phase */
2597 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
2598 0xE00A831E, /* ; 5 PAL-M 1024x768 */
2599 0x00000000, /* ; 6 reserved */
2600 0x00000000, /* ; 7 reserved */
2601 0xD67BF021, /* ; 8 NTSC phase */
2602 0xE986092A, /* ; 9 PAL phase */
2603 0xA4EFE621, /* ; A PAL-M phase */
2604 0x4694F621, /* ; B PAL-N phase */
2605 0x8BDE711C, /* ; C NTSC 1024x768 */
2606 0xE00A831E /* ; D PAL-M 1024x768 */
2609 static unsigned char NTSCYFilter1[] = {
2610 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2611 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2612 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
2613 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
2614 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2615 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2616 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
2619 static unsigned char PALYFilter1[] = {
2620 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2621 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2622 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
2623 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
2624 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2625 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
2626 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
2629 static unsigned char xgifb_palmn_yfilter1[] = {
2630 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
2631 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
2632 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
2633 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
2634 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
2635 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
2636 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
2637 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
2640 static unsigned char xgifb_yfilter2[] = {
2641 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
2642 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
2643 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
2644 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
2645 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
2646 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
2647 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
2648 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
2651 static unsigned char XGI_NTSC1024AdjTime[] = {
2652 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
2653 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
2654 0x58, 0xe4, 0x73, 0xd0, 0x13
2657 static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
2659 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
2660 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
2661 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
2662 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
2663 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
2664 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
2665 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
2666 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
2671 static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
2673 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2674 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2675 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2676 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2677 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2678 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2679 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2680 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
2684 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
2685 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
2686 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
2687 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
2688 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
2689 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
2690 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
2691 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
2695 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
2696 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
2697 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
2698 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2699 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2700 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
2701 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
2702 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
2707 static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
2709 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
2710 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
2711 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
2712 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
2713 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
2714 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
2715 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
2716 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
2720 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
2721 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
2722 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
2723 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
2724 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
2725 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
2726 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
2727 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
2731 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
2732 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
2733 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
2734 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
2735 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
2736 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
2737 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
2738 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
2743 static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
2745 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
2746 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
2747 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
2748 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
2749 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
2750 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
2751 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
2752 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */