blob: dddf261ed53d5e8d1a33dcb16a6db65fff0cccb1 [file] [log] [blame]
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001/* yilin modify for xgi20 */
Peter Huewefc39dcb2012-01-15 19:22:12 +01002static struct SiS_MCLKData XGI340New_MCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003 {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}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020011};
12
Peter Huewefc39dcb2012-01-15 19:22:12 +010013static struct SiS_MCLKData XGI27New_MCLKData[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080014 {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}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020022};
23
Kenji Toyama3ecf3522011-04-24 11:37:17 +080024/* yilin modify for xgi20 */
25static 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}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020034};
35
Randy Dunlap89229672010-08-10 08:46:44 -070036static unsigned char XGI340_SR13[4][8] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080037 {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 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020041};
42
Kenji Toyama3ecf3522011-04-24 11:37:17 +080043static 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 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020068};
69
Kenji Toyama3ecf3522011-04-24 11:37:17 +080070static unsigned char XGI27_cr41[24][8] = {
71 {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
72 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
73 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
74 {0xB5, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
75 CR99[2:0],
76 CR45[3:0]*/
77 {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
78 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
79 {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
80 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
81 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
82 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
83 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
84 {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
85 {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
86 {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
87 {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
88 {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
89 {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
90 {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
91 {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
92 {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
93 {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
94 {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
95 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020097};
98
Randy Dunlap89229672010-08-10 08:46:44 -070099static unsigned char XGI340_CR6B[8][4] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800100 {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}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200108};
109
Aaro Koskinen3825b382011-08-31 21:46:04 +0300110static unsigned char XGI340_CR6E[8][4];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200111
Aaro Koskinen3825b382011-08-31 21:46:04 +0300112static unsigned char XGI340_CR6F[8][32];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200113
Aaro Koskinen3825b382011-08-31 21:46:04 +0300114static unsigned char XGI340_CR89[8][2];
115
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800116/* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
Randy Dunlap89229672010-08-10 08:46:44 -0700117static unsigned char XGI340_AGPReg[12] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800118 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
119 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
120};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200121
Randy Dunlap89229672010-08-10 08:46:44 -0700122static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200123
Aaro Koskinen3825b382011-08-31 21:46:04 +0300124static unsigned char XGI330_sr25[2];
Randy Dunlap89229672010-08-10 08:46:44 -0700125static unsigned char XGI330_sr31 = 0xc0;
126static unsigned char XGI330_sr32 = 0x11;
Aaro Koskinen3825b382011-08-31 21:46:04 +0300127static unsigned char XGI330_SR33;
Randy Dunlap89229672010-08-10 08:46:44 -0700128static unsigned char XG40_CRCF = 0x13;
129static unsigned char XG40_DRAMTypeDefinition = 0xFF ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200130
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800131static struct XGI_StStruct XGI330_SModeIDTable[] = {
132 {0x01, 0x9208, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00},
133 {0x01, 0x1210, 0x14, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00},
134 {0x01, 0x1010, 0x17, 0x02, 0x11, 0x00, 0x00, 0x01, 0x01},
135 {0x03, 0x8208, 0x03, 0x00, 0x14, 0x00, 0x00, 0x01, 0x02},
136 {0x03, 0x0210, 0x16, 0x01, 0x04, 0x01, 0x00, 0x01, 0x02},
137 {0x03, 0x0010, 0x18, 0x02, 0x15, 0x00, 0x00, 0x01, 0x03},
138 {0x05, 0x9209, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
139 {0x06, 0x8209, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
140 {0x07, 0x0000, 0x07, 0x03, 0x05, 0x03, 0x00, 0x01, 0x03},
141 {0x07, 0x0000, 0x19, 0x02, 0x15, 0x02, 0x00, 0x01, 0x03},
142 {0x0d, 0x920a, 0x0d, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
143 {0x0e, 0x820a, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
144 {0x0f, 0x0202, 0x11, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
145 {0x10, 0x0212, 0x12, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
146 {0x11, 0x0212, 0x1a, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
147 {0x12, 0x0212, 0x1b, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
148 {0x13, 0x021b, 0x1c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04},
149 {0x12, 0x0010, 0x18, 0x02, 0x24, 0x02, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
150 not sure */
151 {0x12, 0x0210, 0x18, 0x01, 0x24, 0x01, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
152 not sure */
153 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200154};
155
156
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800157static struct XGI_ExtStruct XGI330_EModeIDTable[] = {
158 {0x6a, 0x2212, 0x0407, 0x3a81, 0x0102, 0x08,
159 0x07, 0x00, 0x00, 0x07, 0x0e},
160 {0x2e, 0x0a1b, 0x0306, 0x3a57, 0x0101, 0x08,
161 0x06, 0x00, 0x00, 0x05, 0x06},
162 {0x2f, 0x0a1b, 0x0305, 0x3a50, 0x0100, 0x08,
163 0x05, 0x00, 0x00, 0x05, 0x05},
164 {0x30, 0x2a1b, 0x0407, 0x3a81, 0x0103, 0x08,
165 0x07, 0x00, 0x00, 0x07, 0x0e},
166 {0x31, 0x0a1b, 0x030d, 0x3b85, 0x0000, 0x08,
167 0x0d, 0x00, 0x00, 0x06, 0x3d},
168 {0x32, 0x0a1b, 0x0a0e, 0x3b8c, 0x0000, 0x08,
169 0x0e, 0x00, 0x00, 0x06, 0x3e},
170 {0x33, 0x0a1d, 0x0a0d, 0x3b85, 0x0000, 0x08,
171 0x0d, 0x00, 0x00, 0x06, 0x3d},
172 {0x34, 0x2a1d, 0x0a0e, 0x3b8c, 0x0000, 0x08,
173 0x0e, 0x00, 0x00, 0x06, 0x3e},
174 {0x35, 0x0a1f, 0x0a0d, 0x3b85, 0x0000, 0x08,
175 0x0d, 0x00, 0x00, 0x06, 0x3d},
176 {0x36, 0x2a1f, 0x0a0e, 0x3b8c, 0x0000, 0x08,
177 0x0e, 0x00, 0x00, 0x06, 0x3e},
178 {0x37, 0x0212, 0x0508, 0x3aab, 0x0104, 0x08,
179 0x08, 0x00, 0x00, 0x00, 0x16},
180 {0x38, 0x0a1b, 0x0508, 0x3aab, 0x0105, 0x08,
181 0x08, 0x00, 0x00, 0x00, 0x16},
182 {0x3a, 0x0e3b, 0x0609, 0x3adc, 0x0107, 0x08,
183 0x09, 0x00, 0x00, 0x00, 0x1e},
184 {0x3c, 0x0e3b, 0x070a, 0x3af2, 0x0130, 0x08,
185 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
186 add CRT2MODE [2003/10/07] */
187 {0x3d, 0x0e7d, 0x070a, 0x3af2, 0x0131, 0x08,
188 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
189 add CRT2MODE */
190 {0x40, 0x9a1c, 0x0000, 0x3a34, 0x010d, 0x08,
191 0x00, 0x00, 0x00, 0x04, 0x00},
192 {0x41, 0x9a1d, 0x0000, 0x3a34, 0x010e, 0x08,
193 0x00, 0x00, 0x00, 0x04, 0x00}, /* ModeIdIndex = 0x10 */
194 {0x43, 0x0a1c, 0x0306, 0x3a57, 0x0110, 0x08,
195 0x06, 0x00, 0x00, 0x05, 0x06},
196 {0x44, 0x0a1d, 0x0306, 0x3a57, 0x0111, 0x08,
197 0x06, 0x00, 0x00, 0x05, 0x06},
198 {0x46, 0x2a1c, 0x0407, 0x3a81, 0x0113, 0x08,
199 0x07, 0x00, 0x00, 0x07, 0x0e},
200 {0x47, 0x2a1d, 0x0407, 0x3a81, 0x0114, 0x08,
201 0x07, 0x00, 0x00, 0x07, 0x0e},
202 {0x49, 0x0a3c, 0x0508, 0x3aab, 0x0116, 0x08,
203 0x08, 0x00, 0x00, 0x00, 0x16},
204 {0x4a, 0x0a3d, 0x0508, 0x3aab, 0x0117, 0x08,
205 0x08, 0x00, 0x00, 0x00, 0x16},
206 {0x4c, 0x0e7c, 0x0609, 0x3adc, 0x0119, 0x08,
207 0x09, 0x00, 0x00, 0x00, 0x1e},
208 {0x4d, 0x0e7d, 0x0609, 0x3adc, 0x011a, 0x08,
209 0x09, 0x00, 0x00, 0x00, 0x1e},
210 {0x50, 0x9a1b, 0x0001, 0x3a3b, 0x0132, 0x08,
211 0x01, 0x00, 0x00, 0x04, 0x02},
212 {0x51, 0xba1b, 0x0103, 0x3a42, 0x0133, 0x08,
213 0x03, 0x00, 0x00, 0x07, 0x03},
214 {0x52, 0x9a1b, 0x0204, 0x3a49, 0x0134, 0x08,
215 0x04, 0x00, 0x00, 0x00, 0x04},
216 {0x56, 0x9a1d, 0x0001, 0x3a3b, 0x0135, 0x08,
217 0x01, 0x00, 0x00, 0x04, 0x02},
218 {0x57, 0xba1d, 0x0103, 0x3a42, 0x0136, 0x08,
219 0x03, 0x00, 0x00, 0x07, 0x03},
220 {0x58, 0x9a1d, 0x0204, 0x3a49, 0x0137, 0x08,
221 0x04, 0x00, 0x00, 0x00, 0x04},
222 {0x59, 0x9a1b, 0x0000, 0x3a34, 0x0138, 0x08,
223 0x00, 0x00, 0x00, 0x04, 0x00},
224 {0x5A, 0x021b, 0x0014, 0x3b83, 0x0138, 0x08,
225 0x01, 0x00, 0x00, 0x04, 0x3f}, /* ModeIdIndex = 0x20 */
226 {0x5B, 0x0a1d, 0x0014, 0x3b83, 0x0135, 0x08,
227 0x01, 0x00, 0x00, 0x04, 0x3f},
228 {0x5d, 0x0a1d, 0x0305, 0x3a50, 0x0139, 0x08,
229 0x05, 0x00, 0x00, 0x07, 0x05},
230 {0x62, 0x0a3f, 0x0306, 0x3a57, 0x013a, 0x08,
231 0x06, 0x00, 0x00, 0x05, 0x06},
232 {0x63, 0x2a3f, 0x0407, 0x3a81, 0x013b, 0x08,
233 0x07, 0x00, 0x00, 0x07, 0x0e},
234 {0x64, 0x0a7f, 0x0508, 0x3aab, 0x013c, 0x08,
235 0x08, 0x00, 0x00, 0x00, 0x16},
236 {0x65, 0x0eff, 0x0609, 0x3adc, 0x013d, 0x08,
237 0x09, 0x00, 0x00, 0x00, 0x1e},
238 {0x66, 0x0eff, 0x070a, 0x3af2, 0x013e, 0x08,
239 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
240 add CRT2MODE */
241 {0x68, 0x067b, 0x080b, 0x3b17, 0x013f, 0x08,
242 0x0b, 0x00, 0x00, 0x00, 0x29},
243 {0x69, 0x06fd, 0x080b, 0x3b17, 0x0140, 0x08,
244 0x0b, 0x00, 0x00, 0x00, 0x29},
245 {0x6b, 0x07ff, 0x080b, 0x3b17, 0x0141, 0x10,
246 0x0b, 0x00, 0x00, 0x00, 0x29},
247 {0x6c, 0x067b, 0x090c, 0x3b37, 0x0000, 0x08,
248 0x0c, 0x00, 0x00, 0x00, 0x2f},
249 {0x6d, 0x06fd, 0x090c, 0x3b37, 0x0000, 0x10,
250 0x0c, 0x00, 0x00, 0x00, 0x2f},
251 {0x6e, 0x07ff, 0x090c, 0x3b37, 0x0000, 0x10,
252 0x0c, 0x00, 0x00, 0x00, 0x2f},
253 {0x70, 0x2a1b, 0x0410, 0x3b52, 0x0000, 0x08,
254 0x10, 0x00, 0x00, 0x07, 0x34},
255 {0x71, 0x0a1b, 0x0511, 0x3b63, 0x0000, 0x08,
256 0x11, 0x00, 0x00, 0x00, 0x37},
257 {0x74, 0x0a1d, 0x0511, 0x3b63, 0x0000, 0x08,
258 0x11, 0x00, 0x00, 0x00, 0x37}, /* ModeIdIndex = 0x30 */
259 {0x75, 0x0a3d, 0x0612, 0x3b74, 0x0000, 0x08,
260 0x12, 0x00, 0x00, 0x00, 0x3a},
261 {0x76, 0x2a1f, 0x0410, 0x3b52, 0x0000, 0x08,
262 0x10, 0x00, 0x00, 0x07, 0x34},
263 {0x77, 0x0a1f, 0x0511, 0x3b63, 0x0000, 0x08,
264 0x11, 0x00, 0x00, 0x00, 0x37},
265 {0x78, 0x0a3f, 0x0612, 0x3b74, 0x0000, 0x08,
266 0x12, 0x00, 0x00, 0x00, 0x3a},
267 {0x79, 0x0a3b, 0x0612, 0x3b74, 0x0000, 0x08,
268 0x12, 0x00, 0x00, 0x00, 0x3a},
269 {0x7a, 0x2a1d, 0x0410, 0x3b52, 0x0000, 0x08,
270 0x10, 0x00, 0x00, 0x07, 0x34},
271 {0x7b, 0x0e3b, 0x060f, 0x3ad0, 0x0000, 0x08,
272 0x0f, 0x00, 0x00, 0x00, 0x1d},
273 {0x7c, 0x0e7d, 0x060f, 0x3ad0, 0x0000, 0x08,
274 0x0f, 0x00, 0x00, 0x00, 0x1d},
275 {0x7d, 0x0eff, 0x060f, 0x3ad0, 0x0000, 0x08,
276 0x0f, 0x00, 0x00, 0x00, 0x1d},
277 {0x20, 0x0e3b, 0x0D16, 0x49e0, 0x0000, 0x08,
278 0x16, 0x00, 0x00, 0x00, 0x43},
279 {0x21, 0x0e7d, 0x0D16, 0x49e0, 0x0000, 0x08,
280 0x16, 0x00, 0x00, 0x00, 0x43},
281 {0x22, 0x0eff, 0x0D16, 0x49e0, 0x0000, 0x08,
282 0x16, 0x00, 0x00, 0x00, 0x43},
283 {0x23, 0x0e3b, 0x0614, 0x49d5, 0x0000, 0x08,
284 0x14, 0x00, 0x00, 0x00, 0x41},
285 {0x24, 0x0e7d, 0x0614, 0x49d5, 0x0000, 0x08,
286 0x14, 0x00, 0x00, 0x00, 0x41},
287 {0x25, 0x0eff, 0x0614, 0x49d5, 0x0000, 0x08,
288 0x14, 0x00, 0x00, 0x00, 0x41},
289 {0x26, 0x063b, 0x0c15, 0x49dc, 0x0000, 0x08,
290 0x15, 0x00, 0x00, 0x00, 0x42}, /* ModeIdIndex = 0x40 */
291 {0x27, 0x067d, 0x0c15, 0x49dc, 0x0000, 0x08,
292 0x15, 0x00, 0x00, 0x00, 0x42},
293 {0x28, 0x06ff, 0x0c15, 0x49dc, 0x0000, 0x08,
294 0x15, 0x00, 0x00, 0x00, 0x42},
295 {0xff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00,
296 0x00, 0x00, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200297};
298
Peter Huewefc39dcb2012-01-15 19:22:12 +0100299static struct SiS_StandTable_S XGI330_StandTable[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200300/* MD_0_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800301 {
302 0x28, 0x18, 0x08, 0x0800,
303 {0x09, 0x03, 0x00, 0x02},
304 0x63,
305 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
306 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
307 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
308 0xff},
309 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
310 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
311 0x08, 0x00, 0x0f, 0x00},
312 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
313 0xff}
314 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200315/* MD_1_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800316 {
317 0x28, 0x18, 0x08, 0x0800,
318 {0x09, 0x03, 0x00, 0x02},
319 0x63,
320 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
321 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
322 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
323 0xff},
324 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
325 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
326 0x08, 0x00, 0x0f, 0x00},
327 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
328 0xff}
329 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200330/* MD_2_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800331 {
332 0x50, 0x18, 0x08, 0x1000,
333 {0x01, 0x03, 0x00, 0x02},
334 0x63,
335 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
336 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
337 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
338 0xff},
339 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
340 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
341 0x08, 0x00, 0x0f, 0x00},
342 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
343 0xff}
344 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200345/* MD_3_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800346 {
347 0x50, 0x18, 0x08, 0x1000,
348 {0x01, 0x03, 0x00, 0x02},
349 0x63,
350 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
351 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
352 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
353 0xff},
354 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
355 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
356 0x08, 0x00, 0x0f, 0x00},
357 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
358 0xff}
359 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200360/* MD_4 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800361 {
362 0x28, 0x18, 0x08, 0x4000,
363 {0x09, 0x03, 0x00, 0x02},
364 0x63,
365 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
366 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
368 0xff},
369 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
370 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
371 0x01, 0x00, 0x03, 0x00},
372 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
373 0xff}
374 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200375/* MD_5 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800376 {
377 0x28, 0x18, 0x08, 0x4000,
378 {0x09, 0x03, 0x00, 0x02},
379 0x63,
380 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
381 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
382 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
383 0xff},
384 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
385 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
386 0x01, 0x00, 0x03, 0x00},
387 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
388 0xff}
389 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200390/* MD_6 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800391 {
392 0x50, 0x18, 0x08, 0x4000,
393 {0x01, 0x01, 0x00, 0x06},
394 0x63,
395 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
396 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
397 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2,
398 0xff},
399 {0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
400 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
401 0x01, 0x00, 0x01, 0x00},
402 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
403 0xff}
404 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200405/* MD_7 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800406 {
407 0x50, 0x18, 0x0e, 0x1000,
408 {0x00, 0x03, 0x00, 0x03},
409 0xa6,
410 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
411 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
412 0x83, 0x85, 0x5d, 0x28, 0x0d, 0x63, 0xba, 0xa3,
413 0xff},
414 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
415 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
416 0x0e, 0x00, 0x0f, 0x08},
417 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
418 0xff}
419 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200420/* MDA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800421 {
422 0x00, 0x00, 0x00, 0x0000,
423 {0x00, 0x00, 0x00, 0x15},
424 0x15,
425 {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
426 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x3f, 0x3f,
427 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00,
428 0x00},
429 {0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x15, 0x15,
430 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
431 0x15, 0x15, 0x15, 0x15},
432 {0x15, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
433 0x3f}
434 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200435/* CGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800436 {
437 0x00, 0x10, 0x04, 0x0114,
438 {0x11, 0x09, 0x15, 0x00},
439 0x10,
440 {0x04, 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a,
441 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x2a, 0x3a,
442 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x10,
443 0x04},
444 {0x14, 0x01, 0x11, 0x09, 0x15, 0x00, 0x10, 0x04,
445 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a, 0x2e,
446 0x3e, 0x2b, 0x3b, 0x2f},
447 {0x3f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
448 0x3f}
449 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200450/* EGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800451 {
452 0x00, 0x10, 0x04, 0x0114,
453 {0x11, 0x05, 0x15, 0x20},
454 0x30,
455 {0x24, 0x34, 0x21, 0x31, 0x25, 0x35, 0x08, 0x18,
456 0x0c, 0x1c, 0x09, 0x19, 0x0d, 0x1d, 0x28, 0x38,
457 0x2c, 0x3c, 0x29, 0x39, 0x2d, 0x3d, 0x02, 0x12,
458 0x06},
459 {0x16, 0x03, 0x13, 0x07, 0x17, 0x22, 0x32, 0x26,
460 0x36, 0x23, 0x33, 0x27, 0x37, 0x0a, 0x1a, 0x0e,
461 0x1e, 0x0b, 0x1b, 0x0f},
462 {0x1f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
463 0x3f}
464 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200465/* VGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800466 {
467 0x00, 0x10, 0x04, 0x0114,
468 {0x11, 0x09, 0x15, 0x2a},
469 0x3a,
470 {0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x05,
471 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x18, 0x1c, 0x20,
472 0x24, 0x28, 0x2d, 0x32, 0x38, 0x3f, 0x00, 0x10,
473 0x1f},
474 {0x2f, 0x3f, 0x1f, 0x27, 0x2f, 0x37, 0x3f, 0x2d,
475 0x31, 0x36, 0x3a, 0x3f, 0x00, 0x07, 0x0e, 0x15,
476 0x1c, 0x0e, 0x11, 0x15},
477 {0x18, 0x1c, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x00,
478 0x04}
479 },
480 {
481 0x08, 0x0c, 0x10, 0x0a08,
482 {0x0c, 0x0e, 0x10, 0x0b},
483 0x0c,
484 {0x0d, 0x0f, 0x10, 0x10, 0x01, 0x08, 0x00, 0x00,
485 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00,
486 0x04, 0x04, 0x01, 0x00, 0x05, 0x02, 0x05, 0x00,
487 0x06},
488 {0x01, 0x06, 0x05, 0x06, 0x00, 0x08, 0x01, 0x08,
489 0x00, 0x07, 0x02, 0x07, 0x06, 0x07, 0x00, 0x00,
490 0x00, 0x00, 0x00, 0x00},
491 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
492 0x00}
493 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200494/* MD_D */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800495 {
496 0x28, 0x18, 0x08, 0x2000,
497 {0x09, 0x0f, 0x00, 0x06},
498 0x63,
499 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
500 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
501 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3,
502 0xff},
503 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
504 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
505 0x01, 0x00, 0x0f, 0x00},
506 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
507 0xff}
508 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200509/* MD_E */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800510 {
511 0x50, 0x18, 0x08, 0x4000,
512 {0x01, 0x0f, 0x00, 0x06},
513 0x63,
514 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
515 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
516 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3,
517 0xff},
518 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
519 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
520 0x01, 0x00, 0x0f, 0x00},
521 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
522 0xff}
523 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200524/* ExtVGATable */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800525 {
526 0x00, 0x00, 0x00, 0x0000,
527 {0x01, 0x0f, 0x00, 0x0e},
528 0x23,
529 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
530 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
531 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
532 0xff},
533 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
534 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
535 0x01, 0x00, 0x00, 0x00},
536 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
537 0xff}
538 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200539/* ROM_SAVEPTR */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800540 {
541 0x9f, 0x3b, 0x00, 0x00c0,
542 {0x00, 0x00, 0x00, 0x00},
543 0x00,
544 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x3f,
545 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
546 0x00, 0x00, 0x1a, 0x00, 0xac, 0x3e, 0x00, 0xc0,
547 0x00},
548 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
549 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
550 0x00, 0x00, 0x00, 0x00},
551 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
552 0x00}
553 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200554/* MD_F */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800555 {
556 0x50, 0x18, 0x0e, 0x8000,
557 {0x01, 0x0f, 0x00, 0x06},
558 0xa2,
559 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
560 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
561 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
562 0xff},
563 {0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
564 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
565 0x0b, 0x00, 0x05, 0x00},
566 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05,
567 0xff}
568 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200569/* MD_10 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800570 {
571 0x50, 0x18, 0x0e, 0x8000,
572 {0x01, 0x0f, 0x00, 0x06},
573 0xa3,
574 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
575 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
576 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
577 0xff},
578 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
579 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
580 0x01, 0x00, 0x0f, 0x00},
581 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
582 0xff}
583 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200584/* MD_0_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800585 {
586 0x28, 0x18, 0x0e, 0x0800,
587 {0x09, 0x03, 0x00, 0x02},
588 0xa3,
589 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
590 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
591 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
592 0xff},
593 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
594 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
595 0x08, 0x00, 0x0f, 0x00},
596 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
597 0xff}
598 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200599/* MD_1_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800600 {
601 0x28, 0x18, 0x0e, 0x0800,
602 {0x09, 0x03, 0x00, 0x02},
603 0xa3,
604 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
605 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
606 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
607 0xff},
608 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
609 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
610 0x08, 0x00, 0x0f, 0x00},
611 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
612 0xff}
613 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200614/* MD_2_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800615 {
616 0x50, 0x18, 0x0e, 0x1000,
617 {0x01, 0x03, 0x00, 0x02},
618 0xa3,
619 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
620 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
621 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
622 0xff},
623 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
624 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
625 0x08, 0x00, 0x0f, 0x00},
626 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
627 0xff}
628 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200629/* MD_3_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800630 {
631 0x50, 0x18, 0x0e, 0x1000,
632 {0x01, 0x03, 0x00, 0x02},
633 0xa3,
634 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
635 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
636 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
637 0xff},
638 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
639 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
640 0x08, 0x00, 0x0f, 0x00},
641 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
642 0xff}
643 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200644/* MD_0_1_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800645 {
646 0x28, 0x18, 0x10, 0x0800,
647 {0x08, 0x03, 0x00, 0x02},
648 0x67,
649 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
650 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
651 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
652 0xff},
653 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
654 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
655 0x0c, 0x00, 0x0f, 0x08},
656 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
657 0xff}
658 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200659/* MD_2_3_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800660 {
661 0x50, 0x18, 0x10, 0x1000,
662 {0x00, 0x03, 0x00, 0x02},
663 0x67,
664 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
665 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
666 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
667 0xff},
668 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
669 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
670 0x0c, 0x00, 0x0f, 0x08},
671 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
672 0xff}
673 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200674/* MD_7_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800675 {
676 0x50, 0x18, 0x10, 0x1000,
677 {0x00, 0x03, 0x00, 0x02},
678 0x66,
679 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
680 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
681 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
682 0xff},
683 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
684 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
685 0x0e, 0x00, 0x0f, 0x08},
686 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
687 0xff}
688 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200689/* MD_11 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800690 {
691 0x50, 0x1d, 0x10, 0xa000,
692 {0x01, 0x0f, 0x00, 0x06},
693 0xe3,
694 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
695 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
696 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xc3,
697 0xff},
698 {0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
699 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
700 0x01, 0x00, 0x0f, 0x00},
701 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01,
702 0xff}
703 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200704/* ExtEGATable */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800705 {
706 0x50, 0x1d, 0x10, 0xa000,
707 {0x01, 0x0f, 0x00, 0x06},
708 0xe3,
709 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
710 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
711 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
712 0xff},
713 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
714 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
715 0x01, 0x00, 0x0f, 0x00},
716 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
717 0xff}
718 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200719/* MD_13 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800720 {
721 0x28, 0x18, 0x08, 0x2000,
722 {0x01, 0x0f, 0x00, 0x0e},
723 0x63,
724 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
725 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
726 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3,
727 0xff},
728 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
729 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
730 0x41, 0x00, 0x0f, 0x00},
731 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
732 0xff}
733 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200734};
735
Aaro Koskinen3825b382011-08-31 21:46:04 +0300736static struct XGI_TimingHStruct XGI_TimingH[1];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200737
Aaro Koskinen3825b382011-08-31 21:46:04 +0300738static struct XGI_TimingVStruct XGI_TimingV[1];
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800739
740static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
741 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
742 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
743 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
744 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
745 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
746 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
747 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
748 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
749 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
750 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
751 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
752 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
753 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
754 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
755 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
756 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
757 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
758};
759
760static struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
761 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
762 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
763 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
764 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
765 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
766 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
767 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
768 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
769 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
770 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
771 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
772 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
773 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
774 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
775 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
776 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
777 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
778 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
779 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
780 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
781 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
782 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
783 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
784 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
785 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
786 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
787 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
788 0D (800x600,56Hz) */
789 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
790 (VCLK 36.0MHz) */
791 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
792 0E (800x600,60Hz) */
793 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
794 (VCLK 40.0MHz) */
795 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
796 0F (800x600,72Hz) */
797 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
798 (VCLK 50.0MHz) */
799 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
800 10 (800x600,75Hz) */
801 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
802 (VCLK 49.5MHz) */
803 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
804 11 (800x600,85Hz) */
805 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
806 (VCLK 56.25MHz) */
807 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
808 12 (800x600,100Hz) */
809 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
810 (VCLK 75.8MHz) */
811 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
812 13 (800x600,120Hz) */
813 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
814 (VCLK 79.411MHz) */
815 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
816 14 (800x600,160Hz) */
817 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
818 (VCLK 105.822MHz) */
819 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
820 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
821 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
822 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
823 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
824 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
825 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
826 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
827 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
828 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
829 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
830 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
831 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
832 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
833 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
834 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
835 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
836 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
837 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
838 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
839 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
840 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
841 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
842 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
843 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
844 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
845 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
846 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
847 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
848 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
849 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
850 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
851 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
852 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
853 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
854 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
855 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
856 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
857 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
858 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
859 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
860 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
861 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
862 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
863 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
864 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
865 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
866 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
867 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
868 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
869 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
870 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
871 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
872 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
873 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
874 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
875 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
876 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
877 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
878 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
879 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
880 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
881 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
882 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
883 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
884 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
885 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
886 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
887 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
888 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
889 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
890 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
891 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
892 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
893 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
894 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
895 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
896 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
897 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
898 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
899 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
900 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
901 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
902 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
903 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
904 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
905 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
906 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
907 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
908 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
909 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
910 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
911 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
912 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
913 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
914 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
915 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
916 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
917 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
918 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
919 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
920 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200921};
922
Randy Dunlap89229672010-08-10 08:46:44 -0700923static unsigned char XGI_CH7017LV1024x768[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800924 0x60, 0x02, 0x00, 0x07, 0x40, 0xED,
925 0xA3, 0xC8, 0xC7, 0xAC, 0xE0, 0x02};
Randy Dunlap89229672010-08-10 08:46:44 -0700926static unsigned char XGI_CH7017LV1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800927 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3,
928 0xAD, 0xDB, 0xF6, 0xAC, 0xE0, 0x02};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200929
930/*add for new UNIVGABIOS*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800931static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data[] = {
932 {62, 25, 800, 546, 1344, 806},
933 {32, 15, 930, 546, 1344, 806},
934 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
935 {104, 45, 945, 496, 1344, 806},
936 {62, 25, 800, 546, 1344, 806},
937 {31, 18, 1008, 624, 1344, 806},
938 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200939};
940
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800941static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data[] = {
942 /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
943 {42, 25, 1536, 419, 1344, 806},
944 /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
945 {48, 25, 1536, 369, 1344, 806},
946 /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
947 {42, 25, 1536, 419, 1344, 806},
948 /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
949 {48, 25, 1536, 369, 1344, 806},
950 {12, 5, 896, 500, 1344, 806},
951 {42, 25, 1024, 625, 1344, 806},
952 {1, 1, 1344, 806, 1344, 806},
953 {12, 5, 896, 500, 1344, 806},
954 {42, 25, 1024, 625, 1344, 806},
955 {1, 1, 1344, 806, 1344, 806},
956 {12, 5, 896, 500, 1344, 806},
957 {42, 25, 1024, 625, 1344, 806},
958 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200959};
960
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800961static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = {
962 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
963 640x200,640x400) */
964 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
965 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
966 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
967 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
968 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
969 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200970};
971
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800972static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data[] = {
973 {22, 5, 800, 510, 1650, 1088},
974 {22, 5, 800, 510, 1650, 1088},
975 {176, 45, 900, 510, 1650, 1088},
976 {176, 45, 900, 510, 1650, 1088},
977 {22, 5, 800, 510, 1650, 1088},
978 {13, 5, 1024, 675, 1560, 1152},
979 {16, 9, 1266, 804, 1688, 1072},
980 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200981};
982
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800983static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data[] = {
984 {211, 60, 1024, 501, 1688, 1066},
985 {211, 60, 1024, 508, 1688, 1066},
986 {211, 60, 1024, 501, 1688, 1066},
987 {211, 60, 1024, 508, 1688, 1066},
988 {211, 60, 1024, 500, 1688, 1066},
989 {211, 75, 1024, 625, 1688, 1066},
990 {211, 120, 1280, 798, 1688, 1066},
991 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200992};
993
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800994static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = {
995 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
996 640x200,640x400) */
997 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
998 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
999 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1000 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1001 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1002 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1003 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1004 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001005};
1006
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001007static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001008 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
1009 640x200,640x400) */
1010 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
1011 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
1012 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
1013 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
1014 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
1015 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
1016 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
1017 w/o Scaling) */
1018 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001019};
1020
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001021static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = {
1022 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1023 // 00 (320x200,320x400,
1024 // 640x200,640x400)
1025 // // alan 10/14/2003 */
1026 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
1027 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1028 // 02 (360x400,720x400)
1029 // // alan 10/14/2003 */
1030 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
1031 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
1032 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
1033 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
1034 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
1035 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
1036 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001037};
1038
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001039static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = {
1040 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
1041 640x200,640x400) */
1042 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
1043 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
1044 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
1045 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
1046 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
1047 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
1048 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
1049 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
1050 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001051};
1052
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001053static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = {
1054 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1055 640x200,640x400) */
1056 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1057 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1058 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1059 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1060 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1061 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1062 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1063 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001064};
1065
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001066static struct XGI330_LCDDataStruct XGI_NoScalingData[] = {
1067 {1, 1, 800, 449, 800, 449},
1068 {1, 1, 800, 449, 800, 449},
1069 {1, 1, 900, 449, 900, 449},
1070 {1, 1, 900, 449, 900, 449},
1071 {1, 1, 800, 525, 800, 525},
1072 {1, 1, 1056, 628, 1056, 628},
1073 {1, 1, 1344, 806, 1344, 806},
1074 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001075};
1076
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001077static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = {
1078 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
1079 640x200,640x400) */
1080 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
1081 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
1082 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
1083 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
1084 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
1085 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001086};
1087
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001088static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = {
1089 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
1090 640x200,640x400) */
1091 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1092 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1093 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
1094 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
1095 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
1096 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001097};
1098
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001099static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001100 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
1101 640x200,640x400) */
1102 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
1103 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
1104 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
1105 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1106 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1107 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1108 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001109};
1110
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001111static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = {
1112 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
1113 640x200,640x400) */
1114 {1, 1, 1688, 1066, 1688, 1066}, /* ; 01 (320x350,640x350) */
1115 {1, 1, 1688, 1066, 1688, 1066}, /* ; 02 (360x400,720x400) */
1116 {1, 1, 1688, 1066, 1688, 1066}, /* ; 03 (720x350) */
1117 {1, 1, 1688, 1066, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1118 {1, 1, 1688, 1066, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1119 {1, 1, 1688, 1066, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1120 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001121};
1122
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001123static struct XGI330_LCDDataStruct XGI_NoScalingDatax75[] = {
1124 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
1125 640x200, 640x400) */
1126 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
1127 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
1128 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
1129 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
1130 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1131 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1132 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1133 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1134 ;;[ycchen] 12/19/02 */
1135 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1136 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001137};
1138
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001139static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data[] = {
1140 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
1141 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
1142 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
1143 {9, 1057, 0, 771}, /* ; 03 (720x350) */
1144 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
1145 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1146 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001147};
1148
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001149static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data[] = {
1150 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
1151 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
1152 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
1153 {9, 1057, 686, 651}, /* ; 03 (720x350) */
1154 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
1155 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1156 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001157};
1158
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001159static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data[] = {
1160 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1161 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1162 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
1163 {1152, 856, 597, 562}, /* ; 03 (720x350) */
1164 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
1165 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
1166 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001167};
1168
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001169static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
1170 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
1171 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
1172 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
1173 {18, 1346, 926, 865}, /* 03 (720x350) */
1174 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1175 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1176 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1177 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001178};
1179
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001180static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] = {
1181 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
1182 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
1183 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
1184 {18, 1346, 917, 854}, /* 03 (720x350) */
1185 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1186 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1187 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1188 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001189};
1190
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001191static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
1192 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1193 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1194 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1195 {1368, 1008, 729, 688}, /* 03 (720x350) */
1196 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1197 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1198 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1199 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001200};
1201
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001202static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data[] = {
1203 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
1204 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
1205 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
1206 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
1207 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1208 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1209 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1210 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001211};
1212
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001213static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data[] = {
1214 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
1215 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
1216 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
1217 {9, 1337, 917, 854}, /* ; 03 (720x350) */
1218 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1219 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1220 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1221 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001222};
1223
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001224static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data[] = {
1225 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1226 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1227 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1228 {1368, 1008, 729, 688}, /* 03 (720x350) */
1229 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1230 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1231 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1232 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001233};
1234
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001235static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001236 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1237 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
1238 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
1239 {18, 1464, 0, 1051}, /* 03 (720x350) */
1240 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
1241 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
1242 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
1243 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1244 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001245};
1246
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001247static struct XGI330_LCDDataDesStruct xgifb_lcddes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001248 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1249 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
1250 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
1251 {9, 1455, 0, 1051}, /* 03 (720x350) */
1252 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
1253 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
1254 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
1255 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1256 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001257};
1258
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001259static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data[] = {
1260 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1261 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1262 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1263 {1308, 1068, 781, 766}, /* 03 (720x350) */
1264 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1265 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1266 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1267 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1268 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001269};
1270
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001271static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2[] = {
1272 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1273 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1274 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1275 {0, 1448, 0, 1051}, /* 03 (720x350) */
1276 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001277};
1278
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001279static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
1280 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1281 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
1282 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
1283 {18, 1682, 0, 1201}, /* 03 (720x350) */
1284 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1285 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1286 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1287 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
1288 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1289 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001290};
1291
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001292static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data[] = {
1293 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1294 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
1295 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
1296 {18, 1682, 1083, 1034}, /* 03 (720x350) */
1297 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1298 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1299 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1300 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1301 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1302 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001303};
1304
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001305static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data[] = {
1306 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1307 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
1308 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
1309 {9, 1673, 0, 1201}, /* 03 (720x350) */
1310 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1311 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1312 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1313 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
1314 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1315 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001316};
1317
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001318static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data[] = {
1319 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1320 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
1321 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
1322 {9, 1673, 1083, 1034}, /* 03 (720x350) */
1323 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1324 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1325 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1326 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1327 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1328 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001329};
1330
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001331static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
1332 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1333 640x200,640x400) */
1334 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1335 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1336 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
1337 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1338 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1339 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
1340 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1341 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz) },
1342 //;[ycchen] 12/19/02 */
1343 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1344 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001345};
1346
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001347/* ;;1024x768x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001348static struct XGI330_LCDDataDesStruct xgifb_lcddes_1024x768x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001349 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1350 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
1351 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
1352 {9, 1049, 0, 769}, /* ; 03 (720x350) */
1353 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
1354 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
1355 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001356};
1357
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001358/* ;;1024x768x75Hz */
1359static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data[] = {
1360 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1361 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1362 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
1363 {1192, 896, 597, 562}, /* ; 03 (720x350) */
1364 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
1365 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
1366 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001367};
1368
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001369/* ;;1280x1024x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001370static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001371 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1372 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
1373 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
1374 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
1375 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
1376 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
1377 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1378 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001379};
1380
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001381/* 1280x1024x75Hz */
1382static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
1383 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1384 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1385 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1386 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1387 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1388 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1389 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1390 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001391};
1392
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001393/* ;;1280x1024x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001394static struct XGI330_LCDDataDesStruct xgifb_lcddes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001395 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1396 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
1397 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
1398 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
1399 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
1400 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
1401 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1402 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001403};
1404
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001405/* 1280x1024x75Hz */
1406static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
1407 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1408 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1409 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1410 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1411 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1412 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1413 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1414 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001415};
1416
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001417/* Scaling LCD 75Hz */
1418static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
1419 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1420 640x200,640x400) */
1421 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1422 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1423 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
1424 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1425 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1426 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1427 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1428 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)
1429 ;;[ycchen] 12/19/02 */
1430 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1431 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001432};
1433
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001434static struct XGI330_TVDataStruct XGI_StPALData[] = {
1435 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
1436 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
1437 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
1438 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
1439 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
1440 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001441};
1442
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001443static struct XGI330_TVDataStruct XGI_ExtPALData[] = {
1444 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1445 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1446 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1447 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1448 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
1449 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
1450 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
1451 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001452};
1453
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001454static struct XGI330_TVDataStruct XGI_StNTSCData[] = {
1455 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1456 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1457 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1458 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1459 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001460};
1461
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001462static struct XGI330_TVDataStruct XGI_ExtNTSCData[] = {
1463 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1464 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1465 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1466 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1467 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1468 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1469 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1470 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
1471 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001472};
1473
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001474static struct XGI330_TVDataStruct XGI_St1HiTVData[] = {
1475 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1476 640x200,640x400) */
1477 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1478 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
1479 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1480 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
1481 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001482};
1483
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001484static struct XGI330_TVDataStruct XGI_St2HiTVData[] = {
1485 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1486 640x200,640x400) */
1487 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1488 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
1489 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1490 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
1491 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001492};
1493
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001494static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = {
1495 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1496 640x200,640x400) */
1497 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
1498 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
1499 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
1500 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
1501 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
1502 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
1503 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
1504 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
1505 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
1506 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001507};
1508
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001509static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData[] = {
1510 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1511 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1512 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1513 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1514 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
1515 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
1516 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1517 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1518 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001519};
1520
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001521static struct XGI330_TVDataStruct XGI_StYPbPr525iData[] = {
1522 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1523 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1524 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1525 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1526 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001527};
1528
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001529static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData[] = {
1530 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1531 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1532 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1533 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1534 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1535 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1536 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1537 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1538 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001539};
1540
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001541static struct XGI330_TVDataStruct XGI_StYPbPr525pData[] = {
1542 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
1543 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
1544 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
1545 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
1546 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001547};
1548
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001549static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = {
1550 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1551 640x200,640x400) */
1552 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
1553 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
1554 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
1555 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1556 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1557 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1558 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1559 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1560 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1561 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1562};
1563
1564static struct XGI330_TVDataStruct XGI_StYPbPr750pData[] = {
1565 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1566 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1567 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1568 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1569 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001570};
1571
Randy Dunlap89229672010-08-10 08:46:44 -07001572static unsigned char XGI330_NTSCTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001573 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1574 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1575 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1576 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1577 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1578 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1579 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1580 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1581};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001582
Randy Dunlap89229672010-08-10 08:46:44 -07001583static unsigned char XGI330_PALTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001584 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1585 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1586 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1587 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1588 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1589 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1590 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1591 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001592};
1593
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001594static unsigned char XGI330_HiTVExtTiming[] = {
1595 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1596 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1597 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1598 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1599 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1600 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1601 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1602 0x60, 0x14, 0x3D, 0x63, 0x4F,
1603 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001604};
1605
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001606static unsigned char XGI330_HiTVSt1Timing[] = {
1607 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1608 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1609 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1610 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1611 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1612 0x35, 0x35, 0x3B, 0x69, 0x1D,
1613 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1614 0x60, 0x04, 0x86, 0xAF, 0x5D,
1615 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001616};
1617
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001618static unsigned char XGI330_HiTVSt2Timing[] = {
1619 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1620 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1621 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1622 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1623 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1624 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1625 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1626 0x60, 0x14, 0x3D, 0x63, 0x4F,
1627 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001628};
1629
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001630static unsigned char XGI330_HiTVTextTiming[] = {
1631 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1632 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1633 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1634 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1635 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1636 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1637 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1638 0x60, 0x04, 0x96, 0x72, 0x5C,
1639 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001640};
1641
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001642static unsigned char XGI330_YPbPr750pTiming[] = {
1643 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1644 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1645 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1646 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1647 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1648 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1649 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1650 0x60, 0x14, 0x73, 0x00, 0x40,
1651 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001652};
1653
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001654static unsigned char XGI330_YPbPr525pTiming[] = {
1655 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1656 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1657 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1658 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1659 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1660 0x51, 0x5e, 0x60, 0x49, 0x7d,
1661 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1662 0x60, 0x14, 0x4B, 0x43, 0x41,
1663 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001664};
1665
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001666static unsigned char XGI330_YPbPr525iTiming[] = {
1667 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1668 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1669 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1670 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1671 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1672 0x03, 0x0A, 0x65, 0x9D, 0x08,
1673 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1674 0x60, 0x14, 0x4B, 0x00, 0x40,
1675 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001676};
1677
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001678static unsigned char XGI330_HiTVGroup3Data[] = {
1679 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1680 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1681 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1682 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1683 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1684 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1685 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1686 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001687};
1688
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001689static unsigned char XGI330_HiTVGroup3Simu[] = {
1690 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1691 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1692 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1693 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1694 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1695 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1696 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1697 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001698};
1699
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001700static unsigned char XGI330_HiTVGroup3Text[] = {
1701 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1702 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1703 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1704 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1705 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1706 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1707 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1708 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001709};
1710
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001711static unsigned char XGI330_Ren525pGroup3[] = {
1712 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1713 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1714 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1715 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1716 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1717 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1718 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1719 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1720};
1721
1722static unsigned char XGI330_Ren750pGroup3[] = {
1723 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1724 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1725 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1726 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1727 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1728 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1729 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1730 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001731};
1732
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001733static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1[] = {
1734 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1735 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1736 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1737 {1040, 388, 1344, 806}, /* 03 (720x350) */
1738 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1739 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1740 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001741};
1742
1743
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001744static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2[] = {
1745 {1344, 806, 1344, 806},
1746 {1344, 806, 1344, 806},
1747 {1344, 806, 1344, 806},
1748 {1344, 806, 1344, 806},
1749 {1344, 806, 1344, 806},
1750 {1344, 806, 1344, 806},
1751 {1344, 806, 1344, 806},
1752 {800, 449, 1280, 801},
1753 {800, 525, 1280, 813}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001754};
1755
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001756static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1[] = {
1757 {1048, 442, 1688, 1066},
1758 {1048, 392, 1688, 1066},
1759 {1048, 442, 1688, 1066},
1760 {1048, 392, 1688, 1066},
1761 {1048, 522, 1688, 1066},
1762 {1208, 642, 1688, 1066},
1763 {1432, 810, 1688, 1066},
1764 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001765};
1766
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001767static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2[] = {
1768 {1344, 806, 1344, 806},
1769 {1344, 806, 1344, 806},
1770 {1344, 806, 1344, 806},
1771 {1344, 806, 1344, 806},
1772 {1344, 806, 1344, 806},
1773 {1344, 806, 1344, 806},
1774 {1344, 806, 1344, 806},
1775 {800, 449, 1280, 801},
1776 {800, 525, 1280, 813}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001777};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001778
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001779static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1[] = {
1780 {928, 416, 1688, 1066},
1781 {928, 366, 1688, 1066},
1782 {928, 416, 1688, 1066},
1783 {928, 366, 1688, 1066},
1784 {928, 496, 1688, 1066},
1785 {1088, 616, 1688, 1066},
1786 {1312, 784, 1688, 1066},
1787 {1568, 1040, 1688, 1066},
1788 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001789};
1790
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001791static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2[] = {
1792 {1688, 1066, 1688, 1066},
1793 {1688, 1066, 1688, 1066},
1794 {1688, 1066, 1688, 1066},
1795 {1688, 1066, 1688, 1066},
1796 {1688, 1066, 1688, 1066},
1797 {1688, 1066, 1688, 1066},
1798 {1688, 1066, 1688, 1066},
1799 {1688, 1066, 1688, 1066},
1800 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001801};
1802
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001803/* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1804static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = {
1805 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1806 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1807 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1808 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1809 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1810 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1811 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1812 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1813 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1814 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001815};
1816
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001817static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] = {
1818 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1819 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1820 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1821 { 800, 449, 800, 449}, /* 03 (720x350) */
1822 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1823 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1824 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1825 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1826 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1827 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1828 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001829};
1830
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001831static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] = {
1832 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1833 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1834 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1835 {1040, 388, 1312, 800}, /* 03 (720x350) */
1836 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1837 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1838 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001839};
1840
1841
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001842static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] = {
1843 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1844 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1845 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1846 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1847 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1848 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1849 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001850};
1851
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001852static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] = {
1853 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1854 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1855 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1856 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1857 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1858 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1859 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1860 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001861};
1862
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001863static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] = {
1864 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1865 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1866 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1867 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1868 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1869 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1870 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1871 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001872};
1873
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001874static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] = {
1875 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1876 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1877 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1878 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1879 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1880 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1881 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1882 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1883 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1884 ;;[ycchen] 12/19/02 */
1885 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1886 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001887};
1888
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001889static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] = {
1890 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1891 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1892 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1893 {0, 1048, 0, 771}, /* 03 (720x350) */
1894 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1895 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1896 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001897} ;
1898
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001899static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] = {
1900 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1901 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1902 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1903 {1142, 856, 597, 562}, /* 03 (720x350) */
1904 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1905 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1906 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001907};
1908
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001909static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] = {
1910 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1911 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1912 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1913 {320, 24, 597, 562}, /* 03 (720x350) */
1914 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001915};
1916
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001917static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] = {
1918 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1919 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1920 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1921 {0, 1328, 0, 1025}, /* 03 (720x350) */
1922 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1923 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1924 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1925 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001926};
1927
1928 /* The Display setting for DE Mode Panel */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001929static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] = {
1930 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1931 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1932 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1933 {1408, 1048, 729, 688}, /* 03 (720x350) */
1934 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1935 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1936 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1937 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001938};
1939
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001940static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] = {
1941 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1942 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1943 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1944 {0, 1448, 0, 1051}, /* 03 (720x350) */
1945 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1946 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1947 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1948 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1949 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001950};
1951
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001952static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] = {
1953 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1954 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1955 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1956 {1308, 1068, 781, 766}, /* 03 (720x350) */
1957 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1958 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1959 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1960 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1961 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001962};
1963
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001964static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] = {
1965 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1966 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1967 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1968 {0, 1664, 0, 1201}, /* 03 (720x350) */
1969 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1970 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1971 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1972 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1973 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1974 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001975};
1976
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001977static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1978 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1979 640x200,640x400) */
1980 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1981 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1982 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1983 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1984 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1985 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1986 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1987 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)
1988 ;;[ycchen] 12/19/02 */
1989 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1990 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001991};
1992
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001993/* ; 1024x768 Full-screen */
1994static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = {
1995 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1996 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
1997 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
1998 {0, 1040, 0, 769}, /* ; 03 (720x350) */
1999 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
2000 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
2001 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002002};
2003
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002004/* ; 1024x768 center-screen (Enh. Mode) */
2005static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = {
2006 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
2007 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
2008 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
2009 {1142, 856, 597, 562}, /* 03 (720x350) */
2010 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
2011 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
2012 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002013};
2014
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002015/* ; 1024x768 center-screen (St.Mode) */
2016static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = {
2017 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
2018 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
2019 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
2020 {320, 24, 597, 562}, /* ; 03 (720x350) */
2021 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002022};
2023
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002024static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] = {
2025 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
2026 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
2027 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
2028 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
2029 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
2030 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
2031 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
2032 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002033};
2034
2035/* The Display setting for DE Mode Panel */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002036/* [ycchen] 02/18/03 Set DE as default */
2037static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = {
2038 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
2039 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
2040 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
2041 {1408, 976, 729, 688}, /* ; 03 (720x350) */
2042 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
2043 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
2044 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
2045 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002046};
2047
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002048/* Scaling LCD 75Hz */
2049static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
2050 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
2051 640x200,640x400) */
2052 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
2053 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
2054 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
2055 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
2056 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
2057 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
2058 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
2059 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz)
2060 ;;[ycchen] 12/19/02 */
2061 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
2062 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002063};
2064
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002065static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData[] = {
2066 { 840, 600, 840, 600},
2067 { 840, 600, 840, 600},
2068 { 840, 600, 840, 600},
2069 { 840, 600, 840, 600},
2070 { 784, 600, 784, 600},
2071 {1064, 750, 1064, 750}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002072};
2073
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002074static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData[] = {
2075 { 840, 525, 840, 525},
2076 { 840, 525, 840, 525},
2077 { 840, 525, 840, 525},
2078 { 840, 525, 840, 525},
2079 { 784, 525, 784, 525},
2080 {1040, 700, 1040, 700}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002081};
2082
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002083static struct XGI330_CHTVDataStruct XGI_CHTVUPALData[] = {
2084 {1008, 625, 1008, 625},
2085 {1008, 625, 1008, 625},
2086 {1008, 625, 1008, 625},
2087 {1008, 625, 1008, 625},
2088 { 840, 750, 840, 750},
2089 { 936, 836, 936, 836}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002090};
2091
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002092static struct XGI330_CHTVDataStruct XGI_CHTVOPALData[] = {
2093 {1008, 625, 1008, 625},
2094 {1008, 625, 1008, 625},
2095 {1008, 625, 1008, 625},
2096 {1008, 625, 1008, 625},
2097 {840, 625, 840, 625},
2098 {960, 750, 960, 750}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002099};
2100
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002101/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2102static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
2103 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
2104 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
2105 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
2106 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2107 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2108 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2109 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
2110 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002111};
2112
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002113/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2114static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
2115 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
2116 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
2117 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
2118 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
2119 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
2120 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
2121 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
2122 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
2123 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002124};
2125
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002126/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2127static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
2128 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2129 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2130 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2131 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2132 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2133 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2134 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2135 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002136};
2137
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002138/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2139static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
2140 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2141 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2142 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2143 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2144 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2145 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2146 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2147 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2148 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002149};
2150
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002151/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2152static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
2153 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
2154 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
2155 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2156 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2157 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2158 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2159 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
2160 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2161 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2162 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002163};
2164
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002165/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2166static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
2167 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
2168 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
2169 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
2170 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
2171 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2172 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2173 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
2174 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2175 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
2176 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002177};
2178
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002179/* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002180/* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2181static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
2182 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2183 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2184 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2185 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
2186 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2187 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2188 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
2189 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2190 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2191 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
2192 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002193};
2194
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002195/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2196static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
2197 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
2198 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
2199 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
2200 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
2201 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002202};
2203
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002204/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2205static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
2206 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
2207 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
2208 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
2209 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
2210 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002211};
2212
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002213/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2214static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
2215 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
2216 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
2217 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
2218 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
2219 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
2220 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002221};
2222
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002223/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2224static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
2225 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
2226 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
2227 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
2228 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
2229 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
2230 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002231};
2232
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002233/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2234static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
2235 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
2236 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
2237 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
2238 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
2239 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
2240 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
2241 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002242};
2243
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002244/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2245static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
2246 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
2247 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
2248 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
2249 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
2250 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
2251 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
2252 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002253};
2254
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002255/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2256static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
2257 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
2258 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
2259 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
2260 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
2261 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
2262 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
2263 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
2264 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002265};
2266
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002267/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2268static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
2269 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
2270 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
2271 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
2272 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2273 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
2274 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
2275 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
2276 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002277};
2278
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002279/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2280static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
2281 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
2282 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
2283 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
2284 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
2285 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002286};
2287
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002288/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2289static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
2290 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2291 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2292 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2293 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2294 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2295 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2296 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2297 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002298};
2299
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002300/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2301static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
2302 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
2303 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
2304 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
2305 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
2306 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002307};
2308
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002309/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2310static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
2311 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
2312 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
2313 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2314 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2315 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2316 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2317 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
2318 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
2319 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002320};
2321
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002322/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2323static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
2324 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
2325 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
2326 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
2327 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
2328 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
2329 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2330};
2331/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2332static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
2333 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2334 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2335 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2336 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2337 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
2338 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
2339 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2340 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
2341 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002342};
2343
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002344/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2345static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
2346 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
2347 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
2348 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
2349 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
2350 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
2351 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002352};
2353
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002354/*add for new UNIVGABIOS*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002355static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002356 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
2357 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
2358 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
2359 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
2360 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
2361 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
2362 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
2363 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
2364 {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
2365 {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
2366 {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002367 {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002368 {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
2369 {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
2370 {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
2371 {Panel_1280x1024x75, 0x0019, 0x0001, 15}, /* XGI_ExtLCD1280x1024x75Data*/
2372 {Panel_1280x1024x75, 0x0019, 0x0000, 16}, /* XGI_StLCD1280x1024x75Data */
2373 {Panel_1280x1024x75, 0x0018, 0x0010, 17}, /* XGI_CetLCD1280x1024x75Data*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002374 {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
2375 {0xFF, 0x0000, 0x0000, 0} /* End of table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002376};
2377
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002378static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002379 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
2380 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
2381 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
2382 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
2383 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
2384 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
2385 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
2386 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
2387 {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
2388 {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
2389 {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
2390 {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002391 {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002392 {Panel_1024x768x75, 0x0019, 0x0001, 13}, /*XGI_ExtLCDDes1024x768x75Data*/
2393 {Panel_1024x768x75, 0x0019, 0x0000, 14}, /* XGI_StLCDDes1024x768x75Data*/
2394 {Panel_1024x768x75, 0x0018, 0x0010, 15}, /*XGI_CetLCDDes1024x768x75Data*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002395 /* XGI_ExtLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002396 {Panel_1280x1024x75, 0x0019, 0x0001, 16},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002397 /* XGI_StLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002398 {Panel_1280x1024x75, 0x0019, 0x0000, 17},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002399 /* XGI_CetLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002400 {Panel_1280x1024x75, 0x0018, 0x0010, 18},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002401 {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
2402 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002403};
2404
Aaro Koskinencc5c2ae2011-08-31 21:46:08 +03002405static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002406 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
2407 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
2408 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
2409 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
2410 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
2411 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
2412 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
2413 {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
2414 {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
2415 {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
2416 {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002417 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002418};
2419
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002420static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002421 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
2422 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
2423 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
2424 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
2425 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
2426 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
2427 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002428 {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002429 {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
2430 {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
2431 {Panel_1280x1024x75, 0x0018, 0x0000, 10}, /* XGI_LVDS1280x1024Data_1x75*/
2432 {Panel_1280x1024x75, 0x0018, 0x0010, 11}, /*XGI_LVDS1280x1024Data_2x75*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002433 {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
2434 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002435};
2436
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002437static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002438 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
2439 {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
2440 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
2441 {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
2442 {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
2443 {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
2444 {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
2445 {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002446 {PanelRef60Hz, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002447 {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
2448 {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
2449 {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
2450 {Panel_1280x1024x75, 0x0018, 0x0000, 12}, /* XGI_LVDS1280x1024Des_1x75 */
2451 {Panel_1280x1024x75, 0x0018, 0x0010, 13}, /* XGI_LVDS1280x1024Des_2x75 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002452 {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
2453 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002454};
2455
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002456static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002457 {Panel_1024x768, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
2458 {Panel_1400x1050, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002459 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002460};
2461
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002462static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
2463 {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
2464 {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
2465 {0x09E1, 0x0801, 2}, /* XGI_StPALData */
2466 {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
2467 {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
2468 {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
2469 {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
2470 {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
2471 {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
2472 {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
2473 {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
2474 {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
2475 {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
2476 {0xffff, 0x0000, 12} /* END */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002477};
2478
Aaro Koskinen0c23b6d2011-08-31 21:46:09 +03002479/* Chrontel 7017 TV List */
2480static struct XGI330_TVDataTablStruct xgifb_chrontel_tv[] = {
2481 {0x0011, 0x0000, 0}, /* UNTSC */
2482 {0x0011, 0x0010, 1}, /* ONTSC */
2483 {0x0011, 0x0001, 2}, /* UPAL */
2484 {0x0011, 0x0011, 3}, /* OPAL */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002485 {0xFFFF, 0x0000, 4}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002486};
2487
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002488static unsigned short LCDLenList[] = {
2489 LVDSCRT1Len_H,
2490 LVDSCRT1Len_V,
2491 LVDSDataLen,
2492 LCDDesDataLen,
2493 LCDDataLen,
2494 LCDDesDataLen,
2495 0,
2496 LCDDesDataLen,
2497 LCDDesDataLen,
2498 0
2499};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002500
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002501/* Dual link only */
2502static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002503/* LCDCap1024x768 */
Peter Huewe6896b942012-02-09 21:11:46 +01002504 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002505 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2506 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002507/* LCDCap1280x1024 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002508 {Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002509 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002510 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2511 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002512/* LCDCap1400x1050 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002513 {Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002514 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002515 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2516 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002517/* LCDCap1600x1200 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002518 {Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap, LCDToFull,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002519 0x012, 0xC0, 0x03, VCLK162,
2520 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
2521 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002522/* LCDCap1024x768x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002523 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002524 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2525 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002526/* LCDCap1280x1024x75 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002527 {Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002528 0x012, 0x90, 0x03, VCLK135_5,
2529 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2530 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002531/* LCDCapDefault */
Peter Huewe6896b942012-02-09 21:11:46 +01002532 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002533 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2534 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002535};
2536
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002537static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002538/* LCDCap1024x768 */
Peter Huewe6896b942012-02-09 21:11:46 +01002539 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002540 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2541 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002542/* LCDCap1280x1024 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002543 {Panel_1280x1024, DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002544 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002545 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2546 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002547/* LCDCap1400x1050 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002548 {Panel_1400x1050, DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002549 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002550 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2551 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002552/* LCDCap1600x1200 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002553 {Panel_1600x1200, DefaultLCDCap, LCDToFull,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002554 0x012, 0xC0, 0x03, VCLK162,
2555 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
2556 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002557/* LCDCap1024x768x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002558 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002559 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2560 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002561/* LCDCap1280x1024x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002562 {Panel_1280x1024x75, DefaultLCDCap, StLCDBToA,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002563 0x012, 0x90, 0x03, VCLK135_5,
2564 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2565 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002566/* LCDCapDefault */
Peter Huewe6896b942012-02-09 21:11:46 +01002567 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002568 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2569 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002570};
2571
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002572static struct XGI_Ext2Struct XGI330_RefIndex[] = {
Peter Huewe6896b942012-02-09 21:11:46 +01002573 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002574 0x00, 0x10, 0x59, 320, 200},/* 00 */
Peter Huewe6896b942012-02-09 21:11:46 +01002575 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002576 0x00, 0x10, 0x00, 320, 400},/* 01 */
Peter Huewe6896b942012-02-09 21:11:46 +01002577 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002578 0x04, 0x20, 0x50, 320, 240},/* 02 */
Peter Huewe6896b942012-02-09 21:11:46 +01002579 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002580 0x05, 0x32, 0x51, 400, 300},/* 03 */
Peter Huewe6896b942012-02-09 21:11:46 +01002581 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
2582 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2583 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002584 0x00, 0x14, 0x2f, 640, 400},/* 05 */
Peter Huewe6896b942012-02-09 21:11:46 +01002585 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002586 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
Peter Huewe6896b942012-02-09 21:11:46 +01002587 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002588 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002589 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002590 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002591 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002592 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002593 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002594 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002595 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002596 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002597 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002598 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002599 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002600 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002601 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002602 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002603 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002604 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002605 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002606 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002607 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002608 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002609 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002610 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002611 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002612 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002613 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002614 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002615 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002616 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002617 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002618 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2619 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002620 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
2621 VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
2622 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002623 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002624 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002625 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002626 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002627 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002628 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002629 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002630 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002631 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002632 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002633 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002634 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002635 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002636 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002637 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01002638 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002639 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01002640 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002641 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2642 /* 22 1600x1200x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002643 {Mode32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002644 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
Peter Huewe6896b942012-02-09 21:11:46 +01002645 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002646 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002647 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002648 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002649 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002650 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002651 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002652 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002653 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002654 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002655 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002656 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002657 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002658 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002659 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002660 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002661 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002662 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002663 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002664 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002665 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002666 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002667 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002668 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002669 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002670 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002671 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002672 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002673 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002674 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002675 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002676 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002677 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002678 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002679 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2680 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002681 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002682 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002683 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002684 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002685 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002686 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2687 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002688 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002689 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002690 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002691 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002692 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002693 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2694 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002695 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
Peter Huewe6896b942012-02-09 21:11:46 +01002696 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002697 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002698 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002699 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002700 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002701 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002702 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002703 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002704 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002705 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
Peter Huewe6896b942012-02-09 21:11:46 +01002706 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002707 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002708 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002709 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002710 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002711 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002712 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002713 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002714 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002715 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002716 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002717 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002718 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002719 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002720 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002721 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002722 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002723 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002724};
2725
Randy Dunlap89229672010-08-10 08:46:44 -07002726static unsigned char XGI330_ScreenOffset[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002727 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2728 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2729 0x57, 0x48
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002730};
2731
Peter Huewefc39dcb2012-01-15 19:22:12 +01002732static struct SiS_StResInfo_S XGI330_StResInfo[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002733 {640, 400},
2734 {640, 350},
2735 {720, 400},
2736 {720, 350},
2737 {640, 480}
2738};
2739
Peter Huewefc39dcb2012-01-15 19:22:12 +01002740static struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002741 { 320, 200, 8, 8},
2742 { 320, 240, 8, 8},
2743 { 320, 400, 8, 8},
2744 { 400, 300, 8, 8},
2745 { 512, 384, 8, 8},
2746 { 640, 400, 8, 16},
2747 { 640, 480, 8, 16},
2748 { 800, 600, 8, 16},
2749 {1024, 768, 8, 16},
2750 {1280, 1024, 8, 16},
2751 {1600, 1200, 8, 16},
2752 {1920, 1440, 8, 16},
2753 {2048, 1536, 8, 16},
2754 { 720, 480, 8, 16},
2755 { 720, 576, 8, 16},
2756 {1280, 960, 8, 16},
2757 { 800, 480, 8, 16},
2758 {1024, 576, 8, 16},
2759 {1280, 720, 8, 16},
2760 { 856, 480, 8, 16},
2761 {1280, 768, 8, 16},
2762 {1400, 1050, 8, 16},
2763 {1152, 864, 8, 16}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002764};
2765
Randy Dunlap89229672010-08-10 08:46:44 -07002766static unsigned char XGI330_OutputSelect = 0x40;
2767static unsigned char XGI330_SoftSetting = 0x30;
2768static unsigned char XGI330_SR07 = 0x18;
2769
Randy Dunlap89229672010-08-10 08:46:44 -07002770static unsigned char XGI330_CR49[] = {0xaa, 0x88};
Aaro Koskinen3825b382011-08-31 21:46:04 +03002771static unsigned char XGI330_SR1F;
Randy Dunlap89229672010-08-10 08:46:44 -07002772static unsigned char XGI330_SR21 = 0xa3;
Randy Dunlap89229672010-08-10 08:46:44 -07002773static unsigned char XGI330_SR22 = 0xfb;
2774static unsigned char XGI330_SR23 = 0xf6;
2775static unsigned char XGI330_SR24 = 0xd;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002776
Aaro Koskinen3825b382011-08-31 21:46:04 +03002777static unsigned char XGI330_CRT2Data_1_2;
2778static unsigned char XGI330_CRT2Data_4_D;
2779static unsigned char XGI330_CRT2Data_4_E;
Randy Dunlap89229672010-08-10 08:46:44 -07002780static unsigned char XGI330_CRT2Data_4_10 = 0x80;
2781static unsigned short XGI330_RGBSenseData = 0xd1;
2782static unsigned short XGI330_VideoSenseData = 0xb9;
2783static unsigned short XGI330_YCSenseData = 0xb3;
2784static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/
2785static unsigned short XGI330_VideoSenseData2 = 0x0110;
2786static unsigned short XGI330_YCSenseData2 = 0x016B;
Aaro Koskinen3825b382011-08-31 21:46:04 +03002787static unsigned char XG40_I2CDefinition;
Randy Dunlap89229672010-08-10 08:46:44 -07002788static unsigned char XG20_CR97 = 0x10 ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002789
Aaro Koskinen3825b382011-08-31 21:46:04 +03002790static unsigned char XG21_DVOSetting;
2791static unsigned char XG21_CR2E;
2792static unsigned char XG21_CR2F;
2793static unsigned char XG21_CR46;
2794static unsigned char XG21_CR47;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002795
Randy Dunlap89229672010-08-10 08:46:44 -07002796static unsigned char XG27_CR97 = 0xC1 ;
2797static unsigned char XG27_SR36 = 0x30 ;
2798static unsigned char XG27_CR8F = 0x0C ;
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002799static unsigned char XG27_CRD0[] = {
2800 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2801};
Aaro Koskinen3825b382011-08-31 21:46:04 +03002802static unsigned char XG27_CRDE[2];
Randy Dunlap89229672010-08-10 08:46:44 -07002803static unsigned char XG27_SR40 = 0x04 ;
2804static unsigned char XG27_SR41 = 0x00 ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002805
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002806static struct XGI330_VCLKDataStruct XGI_VCLKData[] = {
2807 /* SR2B,SR2C,SR2D */
2808 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2809 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2810 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2811 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2812 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2813 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2814 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2815 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2816 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2817 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2818 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2819 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2820 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2821 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2822 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2823 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2824 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2825 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2826 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2827 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2828 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2829 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2830 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2831 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2832 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2833 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2834 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2835 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2836 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2837 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2838 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2839 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2840 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2841 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2842 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2843 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2844 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2845 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2846 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2847 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2848 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2849 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2850 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2851 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2852 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2853 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2854 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2855 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2856 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2857 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2858 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2859 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2860 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2861 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2862 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2863 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2864 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2865 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2866 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2867 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2868 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2869 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2870 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2871 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2872 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2873 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2874 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2875 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2876 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2877 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2878 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2879 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2880 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2881 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2882 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2883 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2884 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002885 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2886 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2887 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2888 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2889 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2890 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2891 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2892 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2893 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2894 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2895 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2896 {0xFF, 0x00, 0} /* End mark */
2897};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002898
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002899static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
2900 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2901 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2902 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2903 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2904 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2905 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2906 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2907 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2908 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2909 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2910 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2911 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2912 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2913 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2914 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2915 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2916 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2917 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2918 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2919 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2920 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2921 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2922 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2923 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2924 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2925 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2926 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2927 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2928 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2929 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2930 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2931 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2932 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2933 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2934 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2935 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2936 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2937 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2938 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2939 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2940 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2941 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2942 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2943 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2944 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2945 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2946 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2947 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2948 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2949 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2950 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2951 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2952 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2953 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2954 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2955 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2956 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2957 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2958 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2959 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2960 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2961 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2962 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2963 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2964 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2965 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2966 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2967 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2968 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2969 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2970 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2971 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2972 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2973 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2974 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2975 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2976 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002977 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2978 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2979 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2980 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2981 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2982 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2983 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2984 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2985 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2986 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2987 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2988 {0xFF, 0x00, 0} /* End mark */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002989};
2990
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002991static unsigned char XGI301TVDelayList[] = {
2992 0x22, /* ; 0 ExtNTSCDelay */
2993 0x22, /* ; 1 StNTSCDelay */
2994 0x22, /* ; 2 ExtPALDelay */
2995 0x22, /* ; 3 StPALDelay */
2996 0x88, /* ; 4 ExtHiTVDelay(1080i) */
2997 0xBB, /* ; 5 StHiTVDelay(1080i) */
2998 0x22, /* ; 6 ExtYPbPrDelay(525i) */
2999 0x22, /* ; 7 StYPbPrDealy(525i) */
3000 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3001 0x22, /* ; 9 StYPbPrDealy(525p) */
3002 0x22, /* ; A ExtYPbPrDelay(750p) */
3003 0x22 /* B StYPbPrDealy(750p) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003004};
3005
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003006static unsigned char XGI301TVDelayList2[] = {
3007 0x22, /* ; 0 ExtNTSCDelay */
3008 0x22, /* ; 1 StNTSCDelay */
3009 0x22, /* ; 2 ExtPALDelay */
3010 0x22, /* ; 3 StPALDelay */
3011 0x22, /* ; 4 ExtHiTVDelay */
3012 0x22, /* ; 5 StHiTVDelay */
3013 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3014 0x22, /* ; 7 StYPbPrDealy(525i) */
3015 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3016 0x22, /* ; 9 StYPbPrDealy(525p) */
3017 0x22, /* ; A ExtYPbPrDelay(750p) */
3018 0x22 /* ; B StYPbPrDealy(750p) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003019};
3020
3021
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003022static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
3023 0x04, /* ; 0 Adaptive */
3024 0x00, /* ; 1 new anti-flicker ? */
3025
3026 0x04, /* ; 0 Adaptive */
3027 0x08, /* ; 1 new anti-flicker ? */
3028
3029 0x04, /* ; 0 ? */
3030 0x00 /* ; 1 new anti-flicker ? */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003031};
3032
3033
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003034static unsigned char TVEdgeList[] = {
3035 0x00, /* ; 0 NTSC No Edge enhance */
3036 0x04, /* ; 1 NTSC Adaptive Edge enhance */
3037 0x00, /* ; 0 PAL No Edge enhance */
3038 0x04, /* ; 1 PAL Adaptive Edge enhance */
3039 0x00, /* ; 0 HiTV */
3040 0x00 /* ; 1 HiTV */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003041};
3042
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003043static unsigned long TVPhaseList[] = {
3044 0x08BAED21, /* ; 0 NTSC phase */
3045 0x00E3052A, /* ; 1 PAL phase */
3046 0x9B2EE421, /* ; 2 PAL-M phase */
3047 0xBA3EF421, /* ; 3 PAL-N phase */
3048 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
3049 0xE00A831E, /* ; 5 PAL-M 1024x768 */
3050 0x00000000, /* ; 6 reserved */
3051 0x00000000, /* ; 7 reserved */
3052 0xD67BF021, /* ; 8 NTSC phase */
3053 0xE986092A, /* ; 9 PAL phase */
3054 0xA4EFE621, /* ; A PAL-M phase */
3055 0x4694F621, /* ; B PAL-N phase */
3056 0x8BDE711C, /* ; C NTSC 1024x768 */
3057 0xE00A831E /* ; D PAL-M 1024x768 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003058};
3059
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003060static unsigned char NTSCYFilter1[] = {
3061 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3062 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3063 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
3064 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
3065 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3066 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3067 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003068};
3069
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003070static unsigned char PALYFilter1[] = {
3071 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3072 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3073 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
3074 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
3075 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3076 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
3077 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003078};
3079
Aaro Koskinen2555e942011-08-31 21:46:06 +03003080static unsigned char xgifb_palmn_yfilter1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003081 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3082 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3083 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
3084 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
3085 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3086 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3087 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
3088 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003089};
3090
Aaro Koskinen80f86f82011-08-31 21:46:05 +03003091static unsigned char xgifb_yfilter2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003092 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
3093 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
3094 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
3095 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
3096 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
3097 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
3098 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
3099 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003100};
3101
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003102static unsigned char XGI_NTSC1024AdjTime[] = {
3103 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
3104 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
3105 0x58, 0xe4, 0x73, 0xd0, 0x13
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003106};
3107
Aaro Koskinen11fbdcd2011-08-31 21:46:10 +03003108static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003109 {0, {
3110 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
3111 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
3112 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
3113 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
3114 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
3115 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
3116 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
3117 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003118 }
3119 }
3120};
3121
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003122static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
3123 {600, {
3124 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3125 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3126 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3127 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3128 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3129 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3130 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3131 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
3132 }
3133 },
3134 {768, {
3135 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
3136 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
3137 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
3138 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
3139 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
3140 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
3141 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
3142 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
3143 }
3144 },
3145 {0xFFFF, {
3146 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
3147 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
3148 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
3149 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3150 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3151 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
3152 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
3153 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
3154 }
3155 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003156};
3157
Aaro Koskinen11fbdcd2011-08-31 21:46:10 +03003158static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003159 {480, {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003160 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
3161 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
3162 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
3163 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3164 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3165 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
3166 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
3167 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
3168 }
3169 },
3170 {600, {
3171 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
3172 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
3173 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
3174 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
3175 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
3176 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
3177 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
3178 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
3179 }
3180 },
3181 {0xFFFF, {
3182 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
3183 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
3184 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
3185 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
3186 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
3187 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
3188 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
3189 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
3190 }
3191 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003192};
3193
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003194static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
3195 {0xFFFF, {
3196 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3197 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3198 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3199 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3200 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3201 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3202 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3203 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */
3204 }
3205 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003206};