blob: e8d6f674b274f745da615283ca9ef119c34dcf69 [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
Dmitry Eremin-Solenikov64903112012-03-19 21:50:09 +040036static unsigned char XG27_SR13[4][8] = {
37 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
38 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
39 {0x32, 0x32, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
40 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
41};
42
Randy Dunlap89229672010-08-10 08:46:44 -070043static unsigned char XGI340_SR13[4][8] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +080044 {0x35, 0x45, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR13 */
45 {0x41, 0x51, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR14 */
46 {0x31, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00}, /* SR18 */
47 {0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00} /* SR1B */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020048};
49
Kenji Toyama3ecf3522011-04-24 11:37:17 +080050static unsigned char XGI340_cr41[24][8] = {
51 {0x20, 0x50, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
52 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
53 {0xc4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
54 {0xb5, 0xa4, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00},
55 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00},
56 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
57 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
58 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
59 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
60 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
61 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
62 {0x88, 0xa8, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
63 {0x44, 0x44, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
64 {0x48, 0x48, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
65 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
66 {0x54, 0x54, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
67 {0x0a, 0x0a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
68 {0x44, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
69 {0x10, 0x10, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
70 {0x11, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
71 {0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
72 {0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
73 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
74 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +020075};
76
Kenji Toyama3ecf3522011-04-24 11:37:17 +080077static unsigned char XGI27_cr41[24][8] = {
78 {0x20, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 0 CR41 */
79 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 1 CR8A */
80 {0xC4, 0x40, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 2 CR8B */
Dmitry Eremin-Solenikov64903112012-03-19 21:50:09 +040081 {0xB3, 0x13, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 3 CR40[7],
Kenji Toyama3ecf3522011-04-24 11:37:17 +080082 CR99[2:0],
83 CR45[3:0]*/
84 {0xf0, 0xf5, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 4 CR59 */
85 {0x90, 0x90, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 5 CR68 */
86 {0x77, 0x67, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 6 CR69 */
87 {0x77, 0x77, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 7 CR6A */
88 {0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 8 CR6D */
89 {0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 9 CR80 */
90 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 10 CR81 */
91 {0x88, 0xcc, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 11 CR82 */
92 {0x44, 0x88, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 12 CR85 */
93 {0x48, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 13 CR86 */
94 {0x54, 0x32, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 14 CR90 */
95 {0x54, 0x33, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 15 CR91 */
96 {0x0a, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 16 CR92 */
97 {0x44, 0x63, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 17 CR93 */
98 {0x10, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 18 CR94 */
99 {0x11, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 19 CR95 */
100 {0x05, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 20 CR96 */
101 {0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 21 CRC3 */
102 {0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 22 CRC4 */
103 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} /* 23 CRC5 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200104};
105
Randy Dunlap89229672010-08-10 08:46:44 -0700106static unsigned char XGI340_CR6B[8][4] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800107 {0xaa, 0xaa, 0xaa, 0xaa},
108 {0xaa, 0xaa, 0xaa, 0xaa},
109 {0xaa, 0xaa, 0xaa, 0xaa},
110 {0x00, 0x00, 0x00, 0x00},
111 {0x00, 0x00, 0x00, 0x00},
112 {0x00, 0x00, 0x00, 0x00},
113 {0x00, 0x00, 0x00, 0x00},
114 {0x00, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200115};
116
Aaro Koskinen3825b382011-08-31 21:46:04 +0300117static unsigned char XGI340_CR6E[8][4];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200118
Aaro Koskinen3825b382011-08-31 21:46:04 +0300119static unsigned char XGI340_CR6F[8][32];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200120
Aaro Koskinen3825b382011-08-31 21:46:04 +0300121static unsigned char XGI340_CR89[8][2];
122
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800123/* CR47,CR48,CR49,CR4A,CR4B,CR4C,CR70,CR71,CR74,CR75,CR76,CR77 */
Randy Dunlap89229672010-08-10 08:46:44 -0700124static unsigned char XGI340_AGPReg[12] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800125 0x28, 0x23, 0x00, 0x20, 0x00, 0x20,
126 0x00, 0x05, 0xd0, 0x10, 0x10, 0x00
127};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200128
Randy Dunlap89229672010-08-10 08:46:44 -0700129static unsigned char XGI340_SR16[4] = {0x03, 0x83, 0x03, 0x83};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200130
Aaro Koskinen3825b382011-08-31 21:46:04 +0300131static unsigned char XGI330_sr25[2];
Randy Dunlap89229672010-08-10 08:46:44 -0700132static unsigned char XGI330_sr31 = 0xc0;
133static unsigned char XGI330_sr32 = 0x11;
Aaro Koskinen3825b382011-08-31 21:46:04 +0300134static unsigned char XGI330_SR33;
Randy Dunlap89229672010-08-10 08:46:44 -0700135static unsigned char XG40_CRCF = 0x13;
136static unsigned char XG40_DRAMTypeDefinition = 0xFF ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200137
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800138static struct XGI_StStruct XGI330_SModeIDTable[] = {
139 {0x01, 0x9208, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00},
140 {0x01, 0x1210, 0x14, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00},
141 {0x01, 0x1010, 0x17, 0x02, 0x11, 0x00, 0x00, 0x01, 0x01},
142 {0x03, 0x8208, 0x03, 0x00, 0x14, 0x00, 0x00, 0x01, 0x02},
143 {0x03, 0x0210, 0x16, 0x01, 0x04, 0x01, 0x00, 0x01, 0x02},
144 {0x03, 0x0010, 0x18, 0x02, 0x15, 0x00, 0x00, 0x01, 0x03},
145 {0x05, 0x9209, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
146 {0x06, 0x8209, 0x06, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
147 {0x07, 0x0000, 0x07, 0x03, 0x05, 0x03, 0x00, 0x01, 0x03},
148 {0x07, 0x0000, 0x19, 0x02, 0x15, 0x02, 0x00, 0x01, 0x03},
149 {0x0d, 0x920a, 0x0d, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04},
150 {0x0e, 0x820a, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00, 0x05},
151 {0x0f, 0x0202, 0x11, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
152 {0x10, 0x0212, 0x12, 0x01, 0x04, 0x01, 0x00, 0x00, 0x05},
153 {0x11, 0x0212, 0x1a, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
154 {0x12, 0x0212, 0x1b, 0x04, 0x24, 0x04, 0x00, 0x00, 0x05},
155 {0x13, 0x021b, 0x1c, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04},
156 {0x12, 0x0010, 0x18, 0x02, 0x24, 0x02, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
157 not sure */
158 {0x12, 0x0210, 0x18, 0x01, 0x24, 0x01, 0x00, 0x00, 0x05},/* St_CRT2CRTC2
159 not sure */
160 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200161};
162
163
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800164static struct XGI_ExtStruct XGI330_EModeIDTable[] = {
165 {0x6a, 0x2212, 0x0407, 0x3a81, 0x0102, 0x08,
166 0x07, 0x00, 0x00, 0x07, 0x0e},
167 {0x2e, 0x0a1b, 0x0306, 0x3a57, 0x0101, 0x08,
168 0x06, 0x00, 0x00, 0x05, 0x06},
169 {0x2f, 0x0a1b, 0x0305, 0x3a50, 0x0100, 0x08,
170 0x05, 0x00, 0x00, 0x05, 0x05},
171 {0x30, 0x2a1b, 0x0407, 0x3a81, 0x0103, 0x08,
172 0x07, 0x00, 0x00, 0x07, 0x0e},
173 {0x31, 0x0a1b, 0x030d, 0x3b85, 0x0000, 0x08,
174 0x0d, 0x00, 0x00, 0x06, 0x3d},
175 {0x32, 0x0a1b, 0x0a0e, 0x3b8c, 0x0000, 0x08,
176 0x0e, 0x00, 0x00, 0x06, 0x3e},
177 {0x33, 0x0a1d, 0x0a0d, 0x3b85, 0x0000, 0x08,
178 0x0d, 0x00, 0x00, 0x06, 0x3d},
179 {0x34, 0x2a1d, 0x0a0e, 0x3b8c, 0x0000, 0x08,
180 0x0e, 0x00, 0x00, 0x06, 0x3e},
181 {0x35, 0x0a1f, 0x0a0d, 0x3b85, 0x0000, 0x08,
182 0x0d, 0x00, 0x00, 0x06, 0x3d},
183 {0x36, 0x2a1f, 0x0a0e, 0x3b8c, 0x0000, 0x08,
184 0x0e, 0x00, 0x00, 0x06, 0x3e},
185 {0x37, 0x0212, 0x0508, 0x3aab, 0x0104, 0x08,
186 0x08, 0x00, 0x00, 0x00, 0x16},
187 {0x38, 0x0a1b, 0x0508, 0x3aab, 0x0105, 0x08,
188 0x08, 0x00, 0x00, 0x00, 0x16},
189 {0x3a, 0x0e3b, 0x0609, 0x3adc, 0x0107, 0x08,
190 0x09, 0x00, 0x00, 0x00, 0x1e},
191 {0x3c, 0x0e3b, 0x070a, 0x3af2, 0x0130, 0x08,
192 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
193 add CRT2MODE [2003/10/07] */
194 {0x3d, 0x0e7d, 0x070a, 0x3af2, 0x0131, 0x08,
195 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
196 add CRT2MODE */
197 {0x40, 0x9a1c, 0x0000, 0x3a34, 0x010d, 0x08,
198 0x00, 0x00, 0x00, 0x04, 0x00},
199 {0x41, 0x9a1d, 0x0000, 0x3a34, 0x010e, 0x08,
200 0x00, 0x00, 0x00, 0x04, 0x00}, /* ModeIdIndex = 0x10 */
201 {0x43, 0x0a1c, 0x0306, 0x3a57, 0x0110, 0x08,
202 0x06, 0x00, 0x00, 0x05, 0x06},
203 {0x44, 0x0a1d, 0x0306, 0x3a57, 0x0111, 0x08,
204 0x06, 0x00, 0x00, 0x05, 0x06},
205 {0x46, 0x2a1c, 0x0407, 0x3a81, 0x0113, 0x08,
206 0x07, 0x00, 0x00, 0x07, 0x0e},
207 {0x47, 0x2a1d, 0x0407, 0x3a81, 0x0114, 0x08,
208 0x07, 0x00, 0x00, 0x07, 0x0e},
209 {0x49, 0x0a3c, 0x0508, 0x3aab, 0x0116, 0x08,
210 0x08, 0x00, 0x00, 0x00, 0x16},
211 {0x4a, 0x0a3d, 0x0508, 0x3aab, 0x0117, 0x08,
212 0x08, 0x00, 0x00, 0x00, 0x16},
213 {0x4c, 0x0e7c, 0x0609, 0x3adc, 0x0119, 0x08,
214 0x09, 0x00, 0x00, 0x00, 0x1e},
215 {0x4d, 0x0e7d, 0x0609, 0x3adc, 0x011a, 0x08,
216 0x09, 0x00, 0x00, 0x00, 0x1e},
217 {0x50, 0x9a1b, 0x0001, 0x3a3b, 0x0132, 0x08,
218 0x01, 0x00, 0x00, 0x04, 0x02},
219 {0x51, 0xba1b, 0x0103, 0x3a42, 0x0133, 0x08,
220 0x03, 0x00, 0x00, 0x07, 0x03},
221 {0x52, 0x9a1b, 0x0204, 0x3a49, 0x0134, 0x08,
222 0x04, 0x00, 0x00, 0x00, 0x04},
223 {0x56, 0x9a1d, 0x0001, 0x3a3b, 0x0135, 0x08,
224 0x01, 0x00, 0x00, 0x04, 0x02},
225 {0x57, 0xba1d, 0x0103, 0x3a42, 0x0136, 0x08,
226 0x03, 0x00, 0x00, 0x07, 0x03},
227 {0x58, 0x9a1d, 0x0204, 0x3a49, 0x0137, 0x08,
228 0x04, 0x00, 0x00, 0x00, 0x04},
229 {0x59, 0x9a1b, 0x0000, 0x3a34, 0x0138, 0x08,
230 0x00, 0x00, 0x00, 0x04, 0x00},
231 {0x5A, 0x021b, 0x0014, 0x3b83, 0x0138, 0x08,
232 0x01, 0x00, 0x00, 0x04, 0x3f}, /* ModeIdIndex = 0x20 */
233 {0x5B, 0x0a1d, 0x0014, 0x3b83, 0x0135, 0x08,
234 0x01, 0x00, 0x00, 0x04, 0x3f},
235 {0x5d, 0x0a1d, 0x0305, 0x3a50, 0x0139, 0x08,
236 0x05, 0x00, 0x00, 0x07, 0x05},
237 {0x62, 0x0a3f, 0x0306, 0x3a57, 0x013a, 0x08,
238 0x06, 0x00, 0x00, 0x05, 0x06},
239 {0x63, 0x2a3f, 0x0407, 0x3a81, 0x013b, 0x08,
240 0x07, 0x00, 0x00, 0x07, 0x0e},
241 {0x64, 0x0a7f, 0x0508, 0x3aab, 0x013c, 0x08,
242 0x08, 0x00, 0x00, 0x00, 0x16},
243 {0x65, 0x0eff, 0x0609, 0x3adc, 0x013d, 0x08,
244 0x09, 0x00, 0x00, 0x00, 0x1e},
245 {0x66, 0x0eff, 0x070a, 0x3af2, 0x013e, 0x08,
246 0x0a, 0x00, 0x00, 0x00, 0x22}, /* mode 1600x1200
247 add CRT2MODE */
248 {0x68, 0x067b, 0x080b, 0x3b17, 0x013f, 0x08,
249 0x0b, 0x00, 0x00, 0x00, 0x29},
250 {0x69, 0x06fd, 0x080b, 0x3b17, 0x0140, 0x08,
251 0x0b, 0x00, 0x00, 0x00, 0x29},
252 {0x6b, 0x07ff, 0x080b, 0x3b17, 0x0141, 0x10,
253 0x0b, 0x00, 0x00, 0x00, 0x29},
254 {0x6c, 0x067b, 0x090c, 0x3b37, 0x0000, 0x08,
255 0x0c, 0x00, 0x00, 0x00, 0x2f},
256 {0x6d, 0x06fd, 0x090c, 0x3b37, 0x0000, 0x10,
257 0x0c, 0x00, 0x00, 0x00, 0x2f},
258 {0x6e, 0x07ff, 0x090c, 0x3b37, 0x0000, 0x10,
259 0x0c, 0x00, 0x00, 0x00, 0x2f},
260 {0x70, 0x2a1b, 0x0410, 0x3b52, 0x0000, 0x08,
261 0x10, 0x00, 0x00, 0x07, 0x34},
262 {0x71, 0x0a1b, 0x0511, 0x3b63, 0x0000, 0x08,
263 0x11, 0x00, 0x00, 0x00, 0x37},
264 {0x74, 0x0a1d, 0x0511, 0x3b63, 0x0000, 0x08,
265 0x11, 0x00, 0x00, 0x00, 0x37}, /* ModeIdIndex = 0x30 */
266 {0x75, 0x0a3d, 0x0612, 0x3b74, 0x0000, 0x08,
267 0x12, 0x00, 0x00, 0x00, 0x3a},
268 {0x76, 0x2a1f, 0x0410, 0x3b52, 0x0000, 0x08,
269 0x10, 0x00, 0x00, 0x07, 0x34},
270 {0x77, 0x0a1f, 0x0511, 0x3b63, 0x0000, 0x08,
271 0x11, 0x00, 0x00, 0x00, 0x37},
272 {0x78, 0x0a3f, 0x0612, 0x3b74, 0x0000, 0x08,
273 0x12, 0x00, 0x00, 0x00, 0x3a},
274 {0x79, 0x0a3b, 0x0612, 0x3b74, 0x0000, 0x08,
275 0x12, 0x00, 0x00, 0x00, 0x3a},
276 {0x7a, 0x2a1d, 0x0410, 0x3b52, 0x0000, 0x08,
277 0x10, 0x00, 0x00, 0x07, 0x34},
278 {0x7b, 0x0e3b, 0x060f, 0x3ad0, 0x0000, 0x08,
279 0x0f, 0x00, 0x00, 0x00, 0x1d},
280 {0x7c, 0x0e7d, 0x060f, 0x3ad0, 0x0000, 0x08,
281 0x0f, 0x00, 0x00, 0x00, 0x1d},
282 {0x7d, 0x0eff, 0x060f, 0x3ad0, 0x0000, 0x08,
283 0x0f, 0x00, 0x00, 0x00, 0x1d},
284 {0x20, 0x0e3b, 0x0D16, 0x49e0, 0x0000, 0x08,
285 0x16, 0x00, 0x00, 0x00, 0x43},
286 {0x21, 0x0e7d, 0x0D16, 0x49e0, 0x0000, 0x08,
287 0x16, 0x00, 0x00, 0x00, 0x43},
288 {0x22, 0x0eff, 0x0D16, 0x49e0, 0x0000, 0x08,
289 0x16, 0x00, 0x00, 0x00, 0x43},
290 {0x23, 0x0e3b, 0x0614, 0x49d5, 0x0000, 0x08,
291 0x14, 0x00, 0x00, 0x00, 0x41},
292 {0x24, 0x0e7d, 0x0614, 0x49d5, 0x0000, 0x08,
293 0x14, 0x00, 0x00, 0x00, 0x41},
294 {0x25, 0x0eff, 0x0614, 0x49d5, 0x0000, 0x08,
295 0x14, 0x00, 0x00, 0x00, 0x41},
296 {0x26, 0x063b, 0x0c15, 0x49dc, 0x0000, 0x08,
297 0x15, 0x00, 0x00, 0x00, 0x42}, /* ModeIdIndex = 0x40 */
298 {0x27, 0x067d, 0x0c15, 0x49dc, 0x0000, 0x08,
299 0x15, 0x00, 0x00, 0x00, 0x42},
300 {0x28, 0x06ff, 0x0c15, 0x49dc, 0x0000, 0x08,
301 0x15, 0x00, 0x00, 0x00, 0x42},
302 {0xff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00,
303 0x00, 0x00, 0x00, 0x00, 0x00}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200304};
305
Peter Huewefc39dcb2012-01-15 19:22:12 +0100306static struct SiS_StandTable_S XGI330_StandTable[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200307/* MD_0_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800308 {
309 0x28, 0x18, 0x08, 0x0800,
310 {0x09, 0x03, 0x00, 0x02},
311 0x63,
312 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
313 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
314 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
315 0xff},
316 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
317 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
318 0x08, 0x00, 0x0f, 0x00},
319 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
320 0xff}
321 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200322/* MD_1_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800323 {
324 0x28, 0x18, 0x08, 0x0800,
325 {0x09, 0x03, 0x00, 0x02},
326 0x63,
327 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
328 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
329 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
330 0xff},
331 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
332 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
333 0x08, 0x00, 0x0f, 0x00},
334 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
335 0xff}
336 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200337/* MD_2_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800338 {
339 0x50, 0x18, 0x08, 0x1000,
340 {0x01, 0x03, 0x00, 0x02},
341 0x63,
342 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
343 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
344 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
345 0xff},
346 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
347 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
348 0x08, 0x00, 0x0f, 0x00},
349 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
350 0xff}
351 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200352/* MD_3_200 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800353 {
354 0x50, 0x18, 0x08, 0x1000,
355 {0x01, 0x03, 0x00, 0x02},
356 0x63,
357 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
358 0x00, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00,
359 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
360 0xff},
361 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
362 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
363 0x08, 0x00, 0x0f, 0x00},
364 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
365 0xff}
366 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200367/* MD_4 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800368 {
369 0x28, 0x18, 0x08, 0x4000,
370 {0x09, 0x03, 0x00, 0x02},
371 0x63,
372 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
373 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
375 0xff},
376 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
377 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
378 0x01, 0x00, 0x03, 0x00},
379 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
380 0xff}
381 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200382/* MD_5 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800383 {
384 0x28, 0x18, 0x08, 0x4000,
385 {0x09, 0x03, 0x00, 0x02},
386 0x63,
387 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
388 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
389 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xa2,
390 0xff},
391 {0x00, 0x13, 0x15, 0x17, 0x02, 0x04, 0x06, 0x07,
392 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
393 0x01, 0x00, 0x03, 0x00},
394 {0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0x00,
395 0xff}
396 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200397/* MD_6 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800398 {
399 0x50, 0x18, 0x08, 0x4000,
400 {0x01, 0x01, 0x00, 0x06},
401 0x63,
402 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
403 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
404 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xc2,
405 0xff},
406 {0x00, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
407 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17,
408 0x01, 0x00, 0x01, 0x00},
409 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
410 0xff}
411 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200412/* MD_7 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800413 {
414 0x50, 0x18, 0x0e, 0x1000,
415 {0x00, 0x03, 0x00, 0x03},
416 0xa6,
417 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
418 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
419 0x83, 0x85, 0x5d, 0x28, 0x0d, 0x63, 0xba, 0xa3,
420 0xff},
421 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
422 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
423 0x0e, 0x00, 0x0f, 0x08},
424 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
425 0xff}
426 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200427/* MDA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800428 {
429 0x00, 0x00, 0x00, 0x0000,
430 {0x00, 0x00, 0x00, 0x15},
431 0x15,
432 {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
433 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x3f, 0x3f,
434 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00,
435 0x00},
436 {0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x15, 0x15,
437 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
438 0x15, 0x15, 0x15, 0x15},
439 {0x15, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
440 0x3f}
441 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200442/* CGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800443 {
444 0x00, 0x10, 0x04, 0x0114,
445 {0x11, 0x09, 0x15, 0x00},
446 0x10,
447 {0x04, 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a,
448 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x2a, 0x3a,
449 0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x10,
450 0x04},
451 {0x14, 0x01, 0x11, 0x09, 0x15, 0x00, 0x10, 0x04,
452 0x14, 0x01, 0x11, 0x09, 0x15, 0x2a, 0x3a, 0x2e,
453 0x3e, 0x2b, 0x3b, 0x2f},
454 {0x3f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
455 0x3f}
456 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200457/* EGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800458 {
459 0x00, 0x10, 0x04, 0x0114,
460 {0x11, 0x05, 0x15, 0x20},
461 0x30,
462 {0x24, 0x34, 0x21, 0x31, 0x25, 0x35, 0x08, 0x18,
463 0x0c, 0x1c, 0x09, 0x19, 0x0d, 0x1d, 0x28, 0x38,
464 0x2c, 0x3c, 0x29, 0x39, 0x2d, 0x3d, 0x02, 0x12,
465 0x06},
466 {0x16, 0x03, 0x13, 0x07, 0x17, 0x22, 0x32, 0x26,
467 0x36, 0x23, 0x33, 0x27, 0x37, 0x0a, 0x1a, 0x0e,
468 0x1e, 0x0b, 0x1b, 0x0f},
469 {0x1f, 0x2a, 0x3a, 0x2e, 0x3e, 0x2b, 0x3b, 0x2f,
470 0x3f}
471 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200472/* VGA_DAC */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800473 {
474 0x00, 0x10, 0x04, 0x0114,
475 {0x11, 0x09, 0x15, 0x2a},
476 0x3a,
477 {0x2e, 0x3e, 0x2b, 0x3b, 0x2f, 0x3f, 0x00, 0x05,
478 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x18, 0x1c, 0x20,
479 0x24, 0x28, 0x2d, 0x32, 0x38, 0x3f, 0x00, 0x10,
480 0x1f},
481 {0x2f, 0x3f, 0x1f, 0x27, 0x2f, 0x37, 0x3f, 0x2d,
482 0x31, 0x36, 0x3a, 0x3f, 0x00, 0x07, 0x0e, 0x15,
483 0x1c, 0x0e, 0x11, 0x15},
484 {0x18, 0x1c, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x00,
485 0x04}
486 },
487 {
488 0x08, 0x0c, 0x10, 0x0a08,
489 {0x0c, 0x0e, 0x10, 0x0b},
490 0x0c,
491 {0x0d, 0x0f, 0x10, 0x10, 0x01, 0x08, 0x00, 0x00,
492 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x01, 0x00,
493 0x04, 0x04, 0x01, 0x00, 0x05, 0x02, 0x05, 0x00,
494 0x06},
495 {0x01, 0x06, 0x05, 0x06, 0x00, 0x08, 0x01, 0x08,
496 0x00, 0x07, 0x02, 0x07, 0x06, 0x07, 0x00, 0x00,
497 0x00, 0x00, 0x00, 0x00},
498 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
499 0x00}
500 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200501/* MD_D */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800502 {
503 0x28, 0x18, 0x08, 0x2000,
504 {0x09, 0x0f, 0x00, 0x06},
505 0x63,
506 {0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
507 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
508 0x9c, 0x8e, 0x8f, 0x14, 0x00, 0x96, 0xb9, 0xe3,
509 0xff},
510 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
511 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
512 0x01, 0x00, 0x0f, 0x00},
513 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
514 0xff}
515 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200516/* MD_E */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800517 {
518 0x50, 0x18, 0x08, 0x4000,
519 {0x01, 0x0f, 0x00, 0x06},
520 0x63,
521 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
522 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
523 0x9c, 0x8e, 0x8f, 0x28, 0x00, 0x96, 0xb9, 0xe3,
524 0xff},
525 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
526 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
527 0x01, 0x00, 0x0f, 0x00},
528 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
529 0xff}
530 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200531/* ExtVGATable */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800532 {
533 0x00, 0x00, 0x00, 0x0000,
534 {0x01, 0x0f, 0x00, 0x0e},
535 0x23,
536 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
537 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
538 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
539 0xff},
540 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
541 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
542 0x01, 0x00, 0x00, 0x00},
543 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
544 0xff}
545 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200546/* ROM_SAVEPTR */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800547 {
548 0x9f, 0x3b, 0x00, 0x00c0,
549 {0x00, 0x00, 0x00, 0x00},
550 0x00,
551 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x3f,
552 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
553 0x00, 0x00, 0x1a, 0x00, 0xac, 0x3e, 0x00, 0xc0,
554 0x00},
555 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
557 0x00, 0x00, 0x00, 0x00},
558 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
559 0x00}
560 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200561/* MD_F */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800562 {
563 0x50, 0x18, 0x0e, 0x8000,
564 {0x01, 0x0f, 0x00, 0x06},
565 0xa2,
566 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
567 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
568 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
569 0xff},
570 {0x00, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
571 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
572 0x0b, 0x00, 0x05, 0x00},
573 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05,
574 0xff}
575 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200576/* MD_10 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800577 {
578 0x50, 0x18, 0x0e, 0x8000,
579 {0x01, 0x0f, 0x00, 0x06},
580 0xa3,
581 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
582 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
583 0x82, 0x84, 0x5d, 0x28, 0x0f, 0x63, 0xba, 0xe3,
584 0xff},
585 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
586 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
587 0x01, 0x00, 0x0f, 0x00},
588 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
589 0xff}
590 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200591/* MD_0_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800592 {
593 0x28, 0x18, 0x0e, 0x0800,
594 {0x09, 0x03, 0x00, 0x02},
595 0xa3,
596 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
597 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
598 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
599 0xff},
600 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
601 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
602 0x08, 0x00, 0x0f, 0x00},
603 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
604 0xff}
605 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200606/* MD_1_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800607 {
608 0x28, 0x18, 0x0e, 0x0800,
609 {0x09, 0x03, 0x00, 0x02},
610 0xa3,
611 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xa0, 0xbf, 0x1f,
612 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
613 0x83, 0x85, 0x5d, 0x14, 0x1f, 0x63, 0xba, 0xa3,
614 0xff},
615 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
616 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
617 0x08, 0x00, 0x0f, 0x00},
618 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
619 0xff}
620 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200621/* MD_2_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800622 {
623 0x50, 0x18, 0x0e, 0x1000,
624 {0x01, 0x03, 0x00, 0x02},
625 0xa3,
626 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
627 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
628 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
629 0xff},
630 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
631 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
632 0x08, 0x00, 0x0f, 0x00},
633 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
634 0xff}
635 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200636/* MD_3_350 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800637 {
638 0x50, 0x18, 0x0e, 0x1000,
639 {0x01, 0x03, 0x00, 0x02},
640 0xa3,
641 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
642 0x00, 0x4d, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x00,
643 0x83, 0x85, 0x5d, 0x28, 0x1f, 0x63, 0xba, 0xa3,
644 0xff},
645 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
646 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
647 0x08, 0x00, 0x0f, 0x00},
648 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
649 0xff}
650 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200651/* MD_0_1_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800652 {
653 0x28, 0x18, 0x10, 0x0800,
654 {0x08, 0x03, 0x00, 0x02},
655 0x67,
656 {0x2d, 0x27, 0x28, 0x90, 0x2b, 0xb1, 0xbf, 0x1f,
657 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
658 0x9c, 0x8e, 0x8f, 0x14, 0x1f, 0x96, 0xb9, 0xa3,
659 0xff},
660 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
661 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
662 0x0c, 0x00, 0x0f, 0x08},
663 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
664 0xff}
665 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200666/* MD_2_3_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800667 {
668 0x50, 0x18, 0x10, 0x1000,
669 {0x00, 0x03, 0x00, 0x02},
670 0x67,
671 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
672 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
673 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
674 0xff},
675 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
676 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
677 0x0c, 0x00, 0x0f, 0x08},
678 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
679 0xff}
680 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200681/* MD_7_400 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800682 {
683 0x50, 0x18, 0x10, 0x1000,
684 {0x00, 0x03, 0x00, 0x02},
685 0x66,
686 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
687 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
688 0x9c, 0x8e, 0x8f, 0x28, 0x0f, 0x96, 0xb9, 0xa3,
689 0xff},
690 {0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
691 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
692 0x0e, 0x00, 0x0f, 0x08},
693 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00,
694 0xff}
695 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200696/* MD_11 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800697 {
698 0x50, 0x1d, 0x10, 0xa000,
699 {0x01, 0x0f, 0x00, 0x06},
700 0xe3,
701 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
702 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
703 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xc3,
704 0xff},
705 {0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
706 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
707 0x01, 0x00, 0x0f, 0x00},
708 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01,
709 0xff}
710 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200711/* ExtEGATable */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800712 {
713 0x50, 0x1d, 0x10, 0xa000,
714 {0x01, 0x0f, 0x00, 0x06},
715 0xe3,
716 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0x0b, 0x3e,
717 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
718 0xe9, 0x8b, 0xdf, 0x28, 0x00, 0xe7, 0x04, 0xe3,
719 0xff},
720 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
721 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
722 0x01, 0x00, 0x0f, 0x00},
723 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x0f,
724 0xff}
725 },
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200726/* MD_13 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800727 {
728 0x28, 0x18, 0x08, 0x2000,
729 {0x01, 0x0f, 0x00, 0x0e},
730 0x63,
731 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
732 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
733 0x9c, 0x8e, 0x8f, 0x28, 0x40, 0x96, 0xb9, 0xa3,
734 0xff},
735 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
736 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
737 0x41, 0x00, 0x0f, 0x00},
738 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f,
739 0xff}
740 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200741};
742
Aaro Koskinen3825b382011-08-31 21:46:04 +0300743static struct XGI_TimingHStruct XGI_TimingH[1];
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200744
Aaro Koskinen3825b382011-08-31 21:46:04 +0300745static struct XGI_TimingVStruct XGI_TimingV[1];
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800746
747static struct XGI_XG21CRT1Struct XGI_UpdateCRT1Table[] = {
748 {0x01, 0x27, 0x91, 0x8f, 0xc0}, /* 00 */
749 {0x03, 0x4f, 0x83, 0x8f, 0xc0}, /* 01 */
750 {0x05, 0x27, 0x91, 0x8f, 0xc0}, /* 02 */
751 {0x06, 0x4f, 0x83, 0x8f, 0xc0}, /* 03 */
752 {0x07, 0x4f, 0x83, 0x8f, 0xc0}, /* 04 */
753 {0x0d, 0x27, 0x91, 0x8f, 0xc0}, /* 05 */
754 {0x0e, 0x4f, 0x83, 0x8f, 0xc0}, /* 06 */
755 {0x0f, 0x4f, 0x83, 0x5d, 0xc0}, /* 07 */
756 {0x10, 0x4f, 0x83, 0x5d, 0xc0}, /* 08 */
757 {0x11, 0x4f, 0x83, 0xdf, 0x0c}, /* 09 */
758 {0x12, 0x4f, 0x83, 0xdf, 0x0c}, /* 10 */
759 {0x13, 0x4f, 0x83, 0x8f, 0xc0}, /* 11 */
760 {0x2e, 0x4f, 0x83, 0xdf, 0x0c}, /* 12 */
761 {0x2e, 0x4f, 0x87, 0xdf, 0xc0}, /* 13 */
762 {0x2f, 0x4f, 0x83, 0x8f, 0xc0}, /* 14 */
763 {0x50, 0x27, 0x91, 0xdf, 0x0c}, /* 15 */
764 {0x59, 0x27, 0x91, 0x8f, 0xc0} /* 16 */
765};
766
767static struct XGI_CRT1TableStruct XGI_CRT1Table[] = {
768 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
769 0xbf, 0x1f, 0x9c, 0x8e, 0x96, 0xb9, 0x30} }, /* 0x0 */
770 { {0x2d, 0x28, 0x90, 0x2c, 0x90, 0x00, 0x04, 0x00,
771 0x0b, 0x3e, 0xe9, 0x8b, 0xe7, 0x04, 0x00} }, /* 0x1 */
772 { {0x3D, 0x31, 0x81, 0x37, 0x1F, 0x00, 0x05, 0x00,
773 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* 0x2 */
774 { {0x4F, 0x3F, 0x93, 0x45, 0x0D, 0x00, 0x01, 0x00,
775 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x3 */
776 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
777 0xBF, 0x1F, 0x9C, 0x8E, 0x96, 0xB9, 0x30} }, /* 0x4 */
778 { {0x5F, 0x50, 0x82, 0x55, 0x81, 0x00, 0x05, 0x00,
779 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x5 */
780 { {0x63, 0x50, 0x86, 0x56, 0x9B, 0x00, 0x01, 0x00,
781 0x06, 0x3E, 0xE8, 0x8B, 0xE7, 0xFF, 0x10} }, /* 0x6 */
782 { {0x64, 0x4F, 0x88, 0x55, 0x9D, 0x00, 0x01, 0x00,
783 0xF2, 0x1F, 0xE0, 0x83, 0xDF, 0xF3, 0x10} }, /* 0x7 */
784 { {0x63, 0x4F, 0x87, 0x5A, 0x81, 0x00, 0x05, 0x00,
785 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x10} }, /* 0x8 */
786 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
787 0xFB, 0x1F, 0xE0, 0x83, 0xDF, 0xFC, 0x80} }, /* 0x9 */
788 { {0x65, 0x4F, 0x89, 0x58, 0x80, 0x00, 0x05, 0x60,
789 0x01, 0x3E, 0xE0, 0x83, 0xDF, 0x02, 0x80} }, /* 0xa */
790 { {0x67, 0x4F, 0x8B, 0x58, 0x81, 0x00, 0x05, 0x60,
791 0x0D, 0x3E, 0xE0, 0x83, 0xDF, 0x0E, 0x90} }, /* 0xb */
792 { {0x65, 0x4F, 0x89, 0x57, 0x9F, 0x00, 0x01, 0x00,
793 0xFB, 0x1F, 0xE6, 0x8A, 0xDF, 0xFC, 0x10} }, /* 0xc */
794 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00, /* ;
795 0D (800x600,56Hz) */
796 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* ;
797 (VCLK 36.0MHz) */
798 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00, /* ;
799 0E (800x600,60Hz) */
800 0x72, 0xF0, 0x58, 0x8C, 0x57, 0x73, 0xA0} }, /* ;
801 (VCLK 40.0MHz) */
802 { {0x7D, 0x63, 0x81, 0x6E, 0x1D, 0x00, 0x06, 0x00, /* ;
803 0F (800x600,72Hz) */
804 0x98, 0xF0, 0x7C, 0x82, 0x57, 0x99, 0x80} }, /* ;
805 (VCLK 50.0MHz) */
806 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00, /* ;
807 10 (800x600,75Hz) */
808 0x6F, 0xF0, 0x58, 0x8B, 0x57, 0x70, 0xA0} }, /* ;
809 (VCLK 49.5MHz) */
810 { {0x7E, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00, /* ;
811 11 (800x600,85Hz) */
812 0x75, 0xF0, 0x58, 0x8B, 0x57, 0x76, 0xA0} }, /* ;
813 (VCLK 56.25MHz) */
814 { {0x81, 0x63, 0x85, 0x6D, 0x18, 0x00, 0x06, 0x60, /* ;
815 12 (800x600,100Hz) */
816 0x7A, 0xF0, 0x58, 0x8B, 0x57, 0x7B, 0xA0} }, /* ;
817 (VCLK 75.8MHz) */
818 { {0x83, 0x63, 0x87, 0x6E, 0x19, 0x00, 0x06, 0x60, /* ;
819 13 (800x600,120Hz) */
820 0x81, 0xF0, 0x58, 0x8B, 0x57, 0x82, 0xA0} }, /* ;
821 (VCLK 79.411MHz) */
822 { {0x85, 0x63, 0x89, 0x6F, 0x1A, 0x00, 0x06, 0x60, /* ;
823 14 (800x600,160Hz) */
824 0x91, 0xF0, 0x58, 0x8B, 0x57, 0x92, 0xA0} }, /* ;
825 (VCLK 105.822MHz) */
826 { {0x99, 0x7F, 0x9D, 0x84, 0x1A, 0x00, 0x02, 0x00,
827 0x96, 0x1F, 0x7F, 0x83, 0x7F, 0x97, 0x10} }, /* 0x15 */
828 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
829 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x16 */
830 { {0xA1, 0x7F, 0x85, 0x86, 0x97, 0x00, 0x02, 0x00,
831 0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} }, /* 0x17 */
832 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
833 0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} }, /* 0x18 */
834 { {0xA7, 0x7F, 0x8B, 0x89, 0x95, 0x00, 0x02, 0x00,
835 0x26, 0xF5, 0x00, 0x83, 0xFF, 0x27, 0x90} }, /* 0x19 */
836 { {0xA9, 0x7F, 0x8D, 0x8C, 0x9A, 0x00, 0x02, 0x62,
837 0x2C, 0xF5, 0x00, 0x83, 0xFF, 0x2D, 0x14} }, /* 0x1a */
838 { {0xAB, 0x7F, 0x8F, 0x8D, 0x9B, 0x00, 0x02, 0x62,
839 0x35, 0xF5, 0x00, 0x83, 0xFF, 0x36, 0x14} }, /* 0x1b */
840 { {0xCF, 0x9F, 0x93, 0xB2, 0x01, 0x00, 0x03, 0x00,
841 0x14, 0xBA, 0x00, 0x83, 0xFF, 0x15, 0x00} }, /* 0x1c */
842 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
843 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1d */
844 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
845 0x28, 0x5A, 0x00, 0x83, 0xFF, 0x29, 0x89} }, /* 0x1e */
846 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
847 0x2E, 0x5A, 0x00, 0x83, 0xFF, 0x2F, 0x89} }, /* 0x1f */
848 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
849 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x20 */
850 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
851 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x21 */
852 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
853 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x22 */
854 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
855 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x23 */
856 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
857 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x24 */
858 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
859 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x25 */
860 { {0x09, 0xC7, 0x8D, 0xD3, 0x0B, 0x01, 0x04, 0x00,
861 0xE0, 0x10, 0xB0, 0x83, 0xAF, 0xE1, 0x2F} }, /* 0x26 */
862 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
863 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x27 */
864 { {0x43, 0xEF, 0x87, 0x06, 0x00, 0x41, 0x05, 0x62,
865 0xD4, 0x1F, 0xA0, 0x83, 0x9F, 0xD5, 0x9F} }, /* 0x28 */
866 { {0x45, 0xEF, 0x89, 0x07, 0x01, 0x41, 0x05, 0x62,
867 0xD9, 0x1F, 0xA0, 0x83, 0x9F, 0xDA, 0x9F} }, /* 0x29 */
868 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
869 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2a */
870 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
871 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2b */
872 { {0x40, 0xEF, 0x84, 0x03, 0x1D, 0x41, 0x01, 0x00,
873 0xDA, 0x1F, 0xA0, 0x83, 0x9F, 0xDB, 0x1F} }, /* 0x2c */
874 { {0x59, 0xFF, 0x9D, 0x17, 0x13, 0x41, 0x05, 0x44,
875 0x33, 0xBA, 0x00, 0x83, 0xFF, 0x34, 0x0F} }, /* 0x2d */
876 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
877 0x38, 0xBA, 0x00, 0x83, 0xFF, 0x39, 0x0F} }, /* 0x2e */
878 { {0x5B, 0xFF, 0x9F, 0x18, 0x14, 0x41, 0x05, 0x44,
879 0x3D, 0xBA, 0x00, 0x83, 0xFF, 0x3E, 0x0F} }, /* 0x2f */
880 { {0x5D, 0xFF, 0x81, 0x19, 0x95, 0x41, 0x05, 0x44,
881 0x41, 0xBA, 0x00, 0x84, 0xFF, 0x42, 0x0F} }, /* 0x30 */
882 { {0x55, 0xFF, 0x99, 0x0D, 0x0C, 0x41, 0x05, 0x00,
883 0x3E, 0xBA, 0x00, 0x84, 0xFF, 0x3F, 0x0F} }, /* 0x31 */
884 { {0x7F, 0x63, 0x83, 0x6C, 0x1C, 0x00, 0x06, 0x00,
885 0x72, 0xBA, 0x27, 0x8B, 0xDF, 0x73, 0x80} }, /* 0x32 */
886 { {0x7F, 0x63, 0x83, 0x69, 0x13, 0x00, 0x06, 0x00,
887 0x6F, 0xBA, 0x26, 0x89, 0xDF, 0x6F, 0x80} }, /* 0x33 */
888 { {0x7F, 0x63, 0x82, 0x6B, 0x13, 0x00, 0x06, 0x00,
889 0x75, 0xBA, 0x29, 0x8C, 0xDF, 0x75, 0x80} }, /* 0x34 */
890 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00,
891 0x24, 0xF1, 0xAF, 0x85, 0x3F, 0x25, 0xB0} }, /* 0x35 */
892 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00,
893 0x1E, 0xF1, 0xAD, 0x81, 0x3F, 0x1F, 0xB0} }, /* 0x36 */
894 { {0xA7, 0x7F, 0x88, 0x89, 0x15, 0x00, 0x02, 0x00,
895 0x26, 0xF1, 0xB1, 0x85, 0x3F, 0x27, 0xB0} }, /* 0x37 */
896 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
897 0x28, 0xC4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x38 */
898 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00,
899 0x28, 0xD4, 0x7A, 0x8E, 0xCF, 0x29, 0xA1} }, /* 0x39 */
900 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x00,
901 0x2E, 0xD4, 0x7D, 0x81, 0xCF, 0x2F, 0xA1} }, /* 0x3a */
902 { {0xDC, 0x9F, 0x00, 0xAB, 0x19, 0x00, 0x07, 0x00,
903 0xE6, 0xEF, 0xC0, 0xC3, 0xBF, 0xE7, 0x90} }, /* 0x3b */
904 { {0x6B, 0x59, 0x8F, 0x5E, 0x8C, 0x00, 0x05, 0x00,
905 0x0B, 0x3E, 0xE9, 0x8B, 0xE7, 0x04, 0x00} }, /* 0x3c */
906 { {0x7B, 0x63, 0x9F, 0x6A, 0x93, 0x00, 0x05, 0x00,
907 0x6F, 0xF0, 0x58, 0x8A, 0x57, 0x70, 0xA0} }, /* 0x3d */
908 { {0x86, 0x6A, 0x8a, 0x74, 0x06, 0x00, 0x02, 0x00,
909 0x8c, 0x15, 0x4f, 0x83, 0xef, 0x8d, 0x30} }, /* 0x3e */
910 { {0x81, 0x6A, 0x85, 0x70, 0x00, 0x00, 0x02, 0x00,
911 0x0f, 0x3e, 0xeb, 0x8e, 0xdf, 0x10, 0x00} }, /* 0x3f */
912 { {0xCE, 0x9F, 0x92, 0xA9, 0x17, 0x00, 0x07, 0x00,
913 0x20, 0xF5, 0x03, 0x88, 0xFF, 0x21, 0x90} }, /* 0x40 */
914 { {0xE6, 0xAE, 0x8A, 0xBD, 0x90, 0x00, 0x03, 0x00,
915 0x3D, 0x10, 0x1A, 0x8D, 0x19, 0x3E, 0x2F} }, /* 0x41 */
916 { {0xB9, 0x8F, 0x9D, 0x9B, 0x8A, 0x00, 0x06, 0x00,
917 0x7D, 0xFF, 0x60, 0x83, 0x5F, 0x7E, 0x90} }, /* 0x42 */
918 { {0xC3, 0x8F, 0x87, 0x9B, 0x0B, 0x00, 0x07, 0x00,
919 0x82, 0xFF, 0x60, 0x83, 0x5F, 0x83, 0x90} }, /* 0x43 */
920 { {0xAD, 0x7F, 0x91, 0x8E, 0x9C, 0x00, 0x02, 0x82,
921 0x49, 0xF5, 0x00, 0x83, 0xFF, 0x4A, 0x90} }, /* 0x44 */
922 { {0xCD, 0x9F, 0x91, 0xA7, 0x19, 0x00, 0x07, 0x60,
923 0xE6, 0xFF, 0xC0, 0x83, 0xBF, 0xE7, 0x90} }, /* 0x45 */
924 { {0xD3, 0x9F, 0x97, 0xAB, 0x1F, 0x00, 0x07, 0x60,
925 0xF1, 0xFF, 0xC0, 0x83, 0xBF, 0xF2, 0x90} }, /* 0x46 */
926 { {0xD7, 0x9F, 0x9B, 0xAC, 0x1E, 0x00, 0x07, 0x00,
927 0x03, 0xDE, 0xC0, 0x84, 0xBF, 0x04, 0x90} } /* 0x47 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200928};
929
Randy Dunlap89229672010-08-10 08:46:44 -0700930static unsigned char XGI_CH7017LV1024x768[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800931 0x60, 0x02, 0x00, 0x07, 0x40, 0xED,
932 0xA3, 0xC8, 0xC7, 0xAC, 0xE0, 0x02};
Randy Dunlap89229672010-08-10 08:46:44 -0700933static unsigned char XGI_CH7017LV1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800934 0x60, 0x03, 0x11, 0x00, 0x40, 0xE3,
935 0xAD, 0xDB, 0xF6, 0xAC, 0xE0, 0x02};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200936
937/*add for new UNIVGABIOS*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800938static struct XGI330_LCDDataStruct XGI_StLCD1024x768Data[] = {
939 {62, 25, 800, 546, 1344, 806},
940 {32, 15, 930, 546, 1344, 806},
941 {62, 25, 800, 546, 1344, 806}, /*chiawenfordot9->dot8*/
942 {104, 45, 945, 496, 1344, 806},
943 {62, 25, 800, 546, 1344, 806},
944 {31, 18, 1008, 624, 1344, 806},
945 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200946};
947
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800948static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768Data[] = {
949 /* { 12, 5, 896, 512,1344, 806}, // alan 09/12/2003 */
950 {42, 25, 1536, 419, 1344, 806},
951 /* { 12, 5, 896, 510,1344, 806}, // alan 09/12/2003 */
952 {48, 25, 1536, 369, 1344, 806},
953 /* { 32, 15,1008, 505,1344, 806}, // alan 09/12/2003 */
954 {42, 25, 1536, 419, 1344, 806},
955 /* { 32, 15,1008, 514,1344, 806}, // alan 09/12/2003 */
956 {48, 25, 1536, 369, 1344, 806},
957 {12, 5, 896, 500, 1344, 806},
958 {42, 25, 1024, 625, 1344, 806},
959 {1, 1, 1344, 806, 1344, 806},
960 {12, 5, 896, 500, 1344, 806},
961 {42, 25, 1024, 625, 1344, 806},
962 {1, 1, 1344, 806, 1344, 806},
963 {12, 5, 896, 500, 1344, 806},
964 {42, 25, 1024, 625, 1344, 806},
965 {1, 1, 1344, 806, 1344, 806}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200966};
967
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800968static struct XGI330_LCDDataStruct XGI_CetLCD1024x768Data[] = {
969 {1, 1, 1344, 806, 1344, 806}, /* ; 00 (320x200,320x400,
970 640x200,640x400) */
971 {1, 1, 1344, 806, 1344, 806}, /* 01 (320x350,640x350) */
972 {1, 1, 1344, 806, 1344, 806}, /* 02 (360x400,720x400) */
973 {1, 1, 1344, 806, 1344, 806}, /* 03 (720x350) */
974 {1, 1, 1344, 806, 1344, 806}, /* 04 (640x480x60Hz) */
975 {1, 1, 1344, 806, 1344, 806}, /* 05 (800x600x60Hz) */
976 {1, 1, 1344, 806, 1344, 806} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200977};
978
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800979static struct XGI330_LCDDataStruct XGI_StLCD1280x1024Data[] = {
980 {22, 5, 800, 510, 1650, 1088},
981 {22, 5, 800, 510, 1650, 1088},
982 {176, 45, 900, 510, 1650, 1088},
983 {176, 45, 900, 510, 1650, 1088},
984 {22, 5, 800, 510, 1650, 1088},
985 {13, 5, 1024, 675, 1560, 1152},
986 {16, 9, 1266, 804, 1688, 1072},
987 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200988};
989
Kenji Toyama3ecf3522011-04-24 11:37:17 +0800990static struct XGI330_LCDDataStruct XGI_ExtLCD1280x1024Data[] = {
991 {211, 60, 1024, 501, 1688, 1066},
992 {211, 60, 1024, 508, 1688, 1066},
993 {211, 60, 1024, 501, 1688, 1066},
994 {211, 60, 1024, 508, 1688, 1066},
995 {211, 60, 1024, 500, 1688, 1066},
996 {211, 75, 1024, 625, 1688, 1066},
997 {211, 120, 1280, 798, 1688, 1066},
998 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +0200999};
1000
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001001static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024Data[] = {
1002 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1003 640x200,640x400) */
1004 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1005 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1006 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1007 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1008 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1009 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1010 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1011 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001012};
1013
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001014static struct XGI330_LCDDataStruct xgifb_lcd_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001015 {211, 100, 2100, 408, 1688, 1066}, /* 00 (320x200,320x400,
1016 640x200,640x400) */
1017 {211, 64, 1536, 358, 1688, 1066}, /* 01 (320x350,640x350) */
1018 {211, 100, 2100, 408, 1688, 1066}, /* 02 (360x400,720x400) */
1019 {211, 64, 1536, 358, 1688, 1066}, /* 03 (720x350) */
1020 {211, 48, 840, 488, 1688, 1066}, /* 04 (640x480x60Hz) */
1021 {211, 72, 1008, 609, 1688, 1066}, /* 05 (800x600x60Hz) */
1022 {211, 128, 1400, 776, 1688, 1066}, /* 06 (1024x768x60Hz) */
1023 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz
1024 w/o Scaling) */
1025 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001026};
1027
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001028static struct XGI330_LCDDataStruct XGI_ExtLCD1600x1200Data[] = {
1029 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1030 // 00 (320x200,320x400,
1031 // 640x200,640x400)
1032 // // alan 10/14/2003 */
1033 {27, 7, 1920, 375, 2160, 1250}, /* 01 (320x350,640x350) */
1034 {4, 1, 1620, 420, 2160, 1250}, /* { 3,1,2160,425,2160,1250 },
1035 // 02 (360x400,720x400)
1036 // // alan 10/14/2003 */
1037 {27, 7, 1920, 375, 2160, 1250}, /* 03 (720x350) */
1038 {27, 4, 800, 500, 2160, 1250}, /* 04 (640x480x60Hz) */
1039 {4, 1, 1080, 625, 2160, 1250}, /* 05 (800x600x60Hz) */
1040 {5, 2, 1350, 800, 2160, 1250}, /* 06 (1024x768x60Hz) */
1041 {27, 16, 1500, 1064, 2160, 1250}, /* 07 (1280x1024x60Hz) */
1042 {9, 7, 1920, 1106, 2160, 1250}, /* 08 (1400x1050x60Hz) */
1043 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200x60Hz) ;302lv */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001044};
1045
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001046static struct XGI330_LCDDataStruct XGI_StLCD1600x1200Data[] = {
1047 {27, 4, 800, 500, 2160, 1250}, /* 00 (320x200,320x400,
1048 640x200,640x400) */
1049 {27, 4, 800, 500, 2160, 1250}, /* 01 (320x350,640x350) */
1050 {27, 4, 800, 500, 2160, 1250}, /* 02 (360x400,720x400) */
1051 {27, 4, 800, 500, 2160, 1250}, /* 03 (720x350) */
1052 {27, 4, 800, 500, 2160, 1250}, /* 04 (320x240,640x480) */
1053 {4, 1, 1080, 625, 2160, 1250}, /* 05 (400x300,800x600) */
1054 {5, 2, 1350, 800, 2160, 1250}, /* 06 (512x384,1024x768) */
1055 {135, 88, 1600, 1100, 2160, 1250}, /* 07 (1280x1024) */
1056 {1, 1, 1800, 1500, 2160, 1250}, /* 08 (1400x1050) */
1057 {1, 1, 2160, 1250, 2160, 1250} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001058};
1059
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001060static struct XGI330_LCDDataStruct XGI_CetLCD1400x1050Data[] = {
1061 {1, 1, 1688, 1066, 1688, 1066}, /* 00 (320x200,320x400,
1062 640x200,640x400) */
1063 {1, 1, 1688, 1066, 1688, 1066}, /* 01 (320x350,640x350) */
1064 {1, 1, 1688, 1066, 1688, 1066}, /* 02 (360x400,720x400) */
1065 {1, 1, 1688, 1066, 1688, 1066}, /* 03 (720x350) */
1066 {1, 1, 1688, 1066, 1688, 1066}, /* 04 (640x480x60Hz) */
1067 {1, 1, 1688, 1066, 1688, 1066}, /* 05 (800x600x60Hz) */
1068 {1, 1, 1688, 1066, 1688, 1066}, /* 06 (1024x768x60Hz) */
1069 {1, 1, 1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1070 {1, 1, 1688, 1066, 1688, 1066} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001071};
1072
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001073static struct XGI330_LCDDataStruct XGI_NoScalingData[] = {
1074 {1, 1, 800, 449, 800, 449},
1075 {1, 1, 800, 449, 800, 449},
1076 {1, 1, 900, 449, 900, 449},
1077 {1, 1, 900, 449, 900, 449},
1078 {1, 1, 800, 525, 800, 525},
1079 {1, 1, 1056, 628, 1056, 628},
1080 {1, 1, 1344, 806, 1344, 806},
1081 {1, 1, 1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001082};
1083
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001084static struct XGI330_LCDDataStruct XGI_ExtLCD1024x768x75Data[] = {
1085 {42, 25, 1536, 419, 1344, 806}, /* ; 00 (320x200,320x400,
1086 640x200,640x400) */
1087 {48, 25, 1536, 369, 1344, 806}, /* ; 01 (320x350,640x350) */
1088 {42, 25, 1536, 419, 1344, 806}, /* ; 02 (360x400,720x400) */
1089 {48, 25, 1536, 369, 1344, 806}, /* ; 03 (720x350) */
1090 {8, 5, 1312, 500, 1312, 800}, /* ; 04 (640x480x75Hz) */
1091 {41, 25, 1024, 625, 1312, 800}, /* ; 05 (800x600x75Hz) */
1092 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001093};
1094
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001095static struct XGI330_LCDDataStruct XGI_CetLCD1024x768x75Data[] = {
1096 {1, 1, 1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,
1097 640x200,640x400) */
1098 {1, 1, 1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1099 {1, 1, 1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1100 {1, 1, 1312, 800, 1312, 800}, /* ; 03 (720x350) */
1101 {1, 1, 1312, 800, 1312, 800}, /* ; 04 (640x480x75Hz) */
1102 {1, 1, 1312, 800, 1312, 800}, /* ; 05 (800x600x75Hz) */
1103 {1, 1, 1312, 800, 1312, 800} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001104};
1105
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001106static struct XGI330_LCDDataStruct xgifb_lcd_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001107 {211, 60, 1024, 501, 1688, 1066}, /* ; 00 (320x200,320x400,
1108 640x200,640x400) */
1109 {211, 60, 1024, 508, 1688, 1066}, /* ; 01 (320x350,640x350) */
1110 {211, 60, 1024, 501, 1688, 1066}, /* ; 02 (360x400,720x400) */
1111 {211, 60, 1024, 508, 1688, 1066}, /* ; 03 (720x350) */
1112 {211, 45, 768, 498, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1113 {211, 75, 1024, 625, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1114 {211, 120, 1280, 798, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1115 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001116};
1117
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001118static struct XGI330_LCDDataStruct XGI_CetLCD1280x1024x75Data[] = {
1119 {1, 1, 1688, 1066, 1688, 1066}, /* ; 00 (320x200,320x400,
1120 640x200,640x400) */
1121 {1, 1, 1688, 1066, 1688, 1066}, /* ; 01 (320x350,640x350) */
1122 {1, 1, 1688, 1066, 1688, 1066}, /* ; 02 (360x400,720x400) */
1123 {1, 1, 1688, 1066, 1688, 1066}, /* ; 03 (720x350) */
1124 {1, 1, 1688, 1066, 1688, 1066}, /* ; 04 (640x480x75Hz) */
1125 {1, 1, 1688, 1066, 1688, 1066}, /* ; 05 (800x600x75Hz) */
1126 {1, 1, 1688, 1066, 1688, 1066}, /* ; 06 (1024x768x75Hz) */
1127 {1, 1, 1688, 1066, 1688, 1066} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001128};
1129
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001130static struct XGI330_LCDDataStruct XGI_NoScalingDatax75[] = {
1131 {1, 1, 800, 449, 800, 449}, /* ; 00 (320x200, 320x400,
1132 640x200, 640x400) */
1133 {1, 1, 800, 449, 800, 449}, /* ; 01 (320x350, 640x350) */
1134 {1, 1, 900, 449, 900, 449}, /* ; 02 (360x400, 720x400) */
1135 {1, 1, 900, 449, 900, 449}, /* ; 03 (720x350) */
1136 {1, 1, 840, 500, 840, 500}, /* ; 04 (640x480x75Hz) */
1137 {1, 1, 1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1138 {1, 1, 1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1139 {1, 1, 1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1140 {1, 1, 1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1141 ;;[ycchen] 12/19/02 */
1142 {1, 1, 2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1143 {1, 1, 1688, 806, 1688, 806} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001144};
1145
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001146static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1024x768Data[] = {
1147 {9, 1057, 0, 771}, /* ; 00 (320x200,320x400,640x200,640x400) */
1148 {9, 1057, 0, 771}, /* ; 01 (320x350,640x350) */
1149 {9, 1057, 0, 771}, /* ; 02 (360x400,720x400) */
1150 {9, 1057, 0, 771}, /* ; 03 (720x350) */
1151 {9, 1057, 0, 771}, /* ; 04 (640x480x60Hz) */
1152 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1153 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001154};
1155
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001156static struct XGI330_LCDDataDesStruct XGI_StLCDDes1024x768Data[] = {
1157 {9, 1057, 737, 703}, /* ; 00 (320x200,320x400,640x200,640x400) */
1158 {9, 1057, 686, 651}, /* ; 01 (320x350,640x350) */
1159 {9, 1057, 737, 703}, /* ; 02 (360x400,720x400) */
1160 {9, 1057, 686, 651}, /* ; 03 (720x350) */
1161 {9, 1057, 776, 741}, /* ; 04 (640x480x60Hz) */
1162 {9, 1057, 0, 771}, /* ; 05 (800x600x60Hz) */
1163 {9, 1057, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001164};
1165
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001166static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768Data[] = {
1167 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1168 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1169 {1152, 856, 622, 587}, /* ; 02 (360x400,720x400) */
1170 {1152, 856, 597, 562}, /* ; 03 (720x350) */
1171 {1152, 856, 662, 627}, /* ; 04 (640x480x60Hz) */
1172 {1232, 936, 722, 687}, /* ; 05 (800x600x60Hz) */
1173 {0, 1048, 805, 770} /* ; 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001174};
1175
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001176static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1280x1024Data[] = {
1177 {18, 1346, 981, 940}, /* 00 (320x200,320x400,640x200,640x400) */
1178 {18, 1346, 926, 865}, /* 01 (320x350,640x350) */
1179 {18, 1346, 981, 940}, /* 02 (360x400,720x400) */
1180 {18, 1346, 926, 865}, /* 03 (720x350) */
1181 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1182 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1183 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1184 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001185};
1186
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001187static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1280x1024Data[] = {
1188 {18, 1346, 970, 907}, /* 00 (320x200,320x400,640x200,640x400) */
1189 {18, 1346, 917, 854}, /* 01 (320x350,640x350) */
1190 {18, 1346, 970, 907}, /* 02 (360x400,720x400) */
1191 {18, 1346, 917, 854}, /* 03 (720x350) */
1192 {18, 1346, 0, 1025}, /* 04 (640x480x60Hz) */
1193 {18, 1346, 0, 1025}, /* 05 (800x600x60Hz) */
1194 {18, 1346, 1065, 1024}, /* 06 (1024x768x60Hz) */
1195 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001196};
1197
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001198static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024Data[] = {
1199 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1200 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1201 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1202 {1368, 1008, 729, 688}, /* 03 (720x350) */
1203 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1204 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1205 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1206 {18, 1346, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001207};
1208
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001209static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1280x1024Data[] = {
1210 {9, 1337, 981, 940}, /* ; 00 (320x200,320x400,640x200,640x400) */
1211 {9, 1337, 926, 884}, /* ; 01 (320x350,640x350) alan, 2003/09/30 */
1212 {9, 1337, 981, 940}, /* ; 02 (360x400,720x400) */
1213 {9, 1337, 926, 884}, /* ; 03 (720x350) alan, 2003/09/30 */
1214 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1215 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1216 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1217 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001218};
1219
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001220static struct XGI330_LCDDataDesStruct XGI_StLCDDes1280x1024Data[] = {
1221 {9, 1337, 970, 907}, /* ; 00 (320x200,320x400,640x200,640x400) */
1222 {9, 1337, 917, 854}, /* ; 01 (320x350,640x350) */
1223 {9, 1337, 970, 907}, /* ; 02 (360x400,720x400) */
1224 {9, 1337, 917, 854}, /* ; 03 (720x350) */
1225 {9, 1337, 0, 1025}, /* ; 04 (640x480x60Hz) */
1226 {9, 1337, 0, 1025}, /* ; 05 (800x600x60Hz) */
1227 {9, 1337, 1065, 1024}, /* ; 06 (1024x768x60Hz) */
1228 {9, 1337, 1065, 1024} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001229};
1230
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001231static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024Data[] = {
1232 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1233 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1234 {1368, 1008, 752, 711}, /* 02 (360x400,720x400) */
1235 {1368, 1008, 729, 688}, /* 03 (720x350) */
1236 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1237 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1238 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1239 {9, 1337, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001240};
1241
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001242static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001243 {18, 1464, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1244 {18, 1464, 0, 1051}, /* 01 (320x350,640x350) */
1245 {18, 1464, 0, 1051}, /* 02 (360x400,720x400) */
1246 {18, 1464, 0, 1051}, /* 03 (720x350) */
1247 {18, 1464, 0, 1051}, /* 04 (640x480x60Hz) */
1248 {18, 1464, 0, 1051}, /* 05 (800x600x60Hz) */
1249 {18, 1464, 0, 1051}, /* 06 (1024x768x60Hz) */
1250 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1251 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001252};
1253
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001254static struct XGI330_LCDDataDesStruct xgifb_lcddes_1400x1050[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001255 {9, 1455, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1256 {9, 1455, 0, 1051}, /* 01 (320x350,640x350) */
1257 {9, 1455, 0, 1051}, /* 02 (360x400,720x400) */
1258 {9, 1455, 0, 1051}, /* 03 (720x350) */
1259 {9, 1455, 0, 1051}, /* 04 (640x480x60Hz) */
1260 {9, 1455, 0, 1051}, /* 05 (800x600x60Hz) */
1261 {9, 1455, 0, 1051}, /* 06 (1024x768x60Hz) */
1262 {1637, 1397, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1263 {9, 1455, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001264};
1265
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001266static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data[] = {
1267 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1268 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1269 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1270 {1308, 1068, 781, 766}, /* 03 (720x350) */
1271 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1272 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1273 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1274 {1646, 1406, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1275 {18, 1464, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001276};
1277
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001278static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1400x1050Data2[] = {
1279 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1280 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1281 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1282 {0, 1448, 0, 1051}, /* 03 (720x350) */
1283 {0, 1448, 0, 1051} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001284};
1285
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001286static struct XGI330_LCDDataDesStruct XGI_ExtLCDDLDes1600x1200Data[] = {
1287 {18, 1682, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1288 {18, 1682, 0, 1201}, /* 01 (320x350,640x350) */
1289 {18, 1682, 0, 1201}, /* 02 (360x400,720x400) */
1290 {18, 1682, 0, 1201}, /* 03 (720x350) */
1291 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1292 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1293 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1294 {18, 1682, 0, 1201}, /* 07 (1280x1024x60Hz) */
1295 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1296 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001297};
1298
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001299static struct XGI330_LCDDataDesStruct XGI_StLCDDLDes1600x1200Data[] = {
1300 {18, 1682, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1301 {18, 1682, 1083, 1034}, /* 01 (320x350,640x350) */
1302 {18, 1682, 1150, 1101}, /* 02 (360x400,720x400) */
1303 {18, 1682, 1083, 1034}, /* 03 (720x350) */
1304 {18, 1682, 0, 1201}, /* 04 (640x480x60Hz) */
1305 {18, 1682, 0, 1201}, /* 05 (800x600x60Hz) */
1306 {18, 1682, 0, 1201}, /* 06 (1024x768x60Hz) */
1307 {18, 1682, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1308 {18, 1682, 0, 1201}, /* 08 (1400x1050x60Hz) */
1309 {18, 1682, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001310};
1311
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001312static struct XGI330_LCDDataDesStruct XGI_ExtLCDDes1600x1200Data[] = {
1313 {9, 1673, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1314 {9, 1673, 0, 1201}, /* 01 (320x350,640x350) */
1315 {9, 1673, 0, 1201}, /* 02 (360x400,720x400) */
1316 {9, 1673, 0, 1201}, /* 03 (720x350) */
1317 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1318 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1319 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1320 {9, 1673, 0, 1201}, /* 07 (1280x1024x60Hz) */
1321 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1322 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001323};
1324
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001325static struct XGI330_LCDDataDesStruct XGI_StLCDDes1600x1200Data[] = {
1326 {9, 1673, 1150, 1101}, /* 00 (320x200,320x400,640x200,640x400) */
1327 {9, 1673, 1083, 1034}, /* 01 (320x350,640x350) */
1328 {9, 1673, 1150, 1101}, /* 02 (360x400,720x400) */
1329 {9, 1673, 1083, 1034}, /* 03 (720x350) */
1330 {9, 1673, 0, 1201}, /* 04 (640x480x60Hz) */
1331 {9, 1673, 0, 1201}, /* 05 (800x600x60Hz) */
1332 {9, 1673, 0, 1201}, /* 06 (1024x768x60Hz) */
1333 {9, 1673, 1232, 1183}, /* 07 (1280x1024x60Hz) */
1334 {9, 1673, 0, 1201}, /* 08 (1400x1050x60Hz) */
1335 {9, 1673, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001336};
1337
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001338static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesData[] = {
1339 {9, 657, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1340 640x200,640x400) */
1341 {9, 657, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1342 {9, 657, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1343 {9, 657, 448, 355, 96, 2}, /* 03 (720x350) */
1344 {9, 657, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1345 {9, 849, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1346 {9, 1057, 805, 770, 0136, 6}, /* 06 (1024x768x60Hz) */
1347 {9, 1337, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1348 {9, 1457, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz) },
1349 //;[ycchen] 12/19/02 */
1350 {9, 1673, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1351 {9, 1337, 0, 771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001352};
1353
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001354/* ;;1024x768x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001355static struct XGI330_LCDDataDesStruct xgifb_lcddes_1024x768x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001356 {9, 1049, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
1357 {9, 1049, 0, 769}, /* ; 01 (320x350,640x350) */
1358 {9, 1049, 0, 769}, /* ; 02 (360x400,720x400) */
1359 {9, 1049, 0, 769}, /* ; 03 (720x350) */
1360 {9, 1049, 0, 769}, /* ; 04 (640x480x75Hz) */
1361 {9, 1049, 0, 769}, /* ; 05 (800x600x75Hz) */
1362 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001363};
1364
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001365/* ;;1024x768x75Hz */
1366static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1024x768x75Data[] = {
1367 {1152, 856, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
1368 {1152, 856, 597, 562}, /* ; 01 (320x350,640x350) */
1369 {1192, 896, 622, 587}, /* ; 02 (360x400,720x400) */
1370 {1192, 896, 597, 562}, /* ; 03 (720x350) */
1371 {1129, 857, 656, 625}, /* ; 04 (640x480x75Hz) */
1372 {1209, 937, 716, 685}, /* ; 05 (800x600x75Hz) */
1373 {9, 1049, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001374};
1375
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001376/* ;;1280x1024x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001377static struct XGI330_LCDDataDesStruct xgifb_lcddldes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001378 {18, 1314, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1379 {18, 1314, 0, 1025}, /* ; 01 (320x350,640x350) */
1380 {18, 1314, 0, 1025}, /* ; 02 (360x400,720x400) */
1381 {18, 1314, 0, 1025}, /* ; 03 (720x350) */
1382 {18, 1314, 0, 1025}, /* ; 04 (640x480x60Hz) */
1383 {18, 1314, 0, 1025}, /* ; 05 (800x600x60Hz) */
1384 {18, 1314, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1385 {18, 1314, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001386};
1387
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001388/* 1280x1024x75Hz */
1389static struct XGI330_LCDDataDesStruct XGI_CetLCDDLDes1280x1024x75Data[] = {
1390 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1391 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1392 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1393 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1394 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1395 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1396 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1397 {18, 1314, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001398};
1399
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001400/* ;;1280x1024x75Hz */
Aaro Koskinenada2bda2011-08-31 21:46:07 +03001401static struct XGI330_LCDDataDesStruct xgifb_lcddes_1280x1024x75[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001402 {9, 1305, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
1403 {9, 1305, 0, 1025}, /* ; 01 (320x350,640x350) */
1404 {9, 1305, 0, 1025}, /* ; 02 (360x400,720x400) */
1405 {9, 1305, 0, 1025}, /* ; 03 (720x350) */
1406 {9, 1305, 0, 1025}, /* ; 04 (640x480x60Hz) */
1407 {9, 1305, 0, 1025}, /* ; 05 (800x600x60Hz) */
1408 {9, 1305, 0, 1025}, /* ; 06 (1024x768x60Hz) */
1409 {9, 1305, 0, 1025} /* ; 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001410};
1411
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001412/* 1280x1024x75Hz */
1413static struct XGI330_LCDDataDesStruct XGI_CetLCDDes1280x1024x75Data[] = {
1414 {1368, 1008, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
1415 {1368, 1008, 729, 688}, /* ; 01 (320x350,640x350) */
1416 {1408, 1048, 752, 711}, /* ; 02 (360x400,720x400) */
1417 {1408, 1048, 729, 688}, /* ; 03 (720x350) */
1418 {1377, 985, 794, 753}, /* ; 04 (640x480x75Hz) */
1419 {1457, 1065, 854, 813}, /* ; 05 (800x600x75Hz) */
1420 {1569, 1177, 938, 897}, /* ; 06 (1024x768x75Hz) */
1421 {9, 1305, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001422};
1423
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001424/* Scaling LCD 75Hz */
1425static struct XGI330_LCDDataDesStruct2 XGI_NoScalingDesDatax75[] = {
1426 {9, 657, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
1427 640x200,640x400) */
1428 {9, 657, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
1429 {9, 738, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
1430 {9, 738, 448, 355, 108, 2}, /* ; 03 (720x350) */
1431 {9, 665, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
1432 {9, 825, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
1433 {9, 1049, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
1434 {9, 1305, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
1435 {9, 1457, 0, 1051, 112, 3}, /* ; 08 (1400x1050x60Hz)
1436 ;;[ycchen] 12/19/02 */
1437 {9, 1673, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
1438 {9, 1337, 0, 771, 112, 6} /* ; 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001439};
1440
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001441static struct XGI330_TVDataStruct XGI_StPALData[] = {
1442 {1, 1, 864, 525, 1270, 400, 100, 0, 760},
1443 {1, 1, 864, 525, 1270, 350, 100, 0, 760},
1444 {1, 1, 864, 525, 1270, 400, 0, 0, 720},
1445 {1, 1, 864, 525, 1270, 350, 0, 0, 720},
1446 {1, 1, 864, 525, 1270, 480, 50, 0, 760},
1447 {1, 1, 864, 525, 1270, 600, 50, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001448};
1449
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001450static struct XGI330_TVDataStruct XGI_ExtPALData[] = {
1451 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1452 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1453 {2, 1, 1080, 463, 1270, 500, 50, 0, 50},
1454 {15, 7, 1152, 413, 1270, 500, 50, 0, 50},
1455 {2, 1, 900, 543, 1270, 500, 0, 0, 50},
1456 {4, 3, 1080, 663, 1270, 500, 438, 0, 438},
1457 {1, 1, 1125, 831, 1270, 500, 686, 0, 686}, /*301b*/
1458 {3, 2, 1080, 619, 1270, 540, 438, 0, 438}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001459};
1460
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001461static struct XGI330_TVDataStruct XGI_StNTSCData[] = {
1462 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1463 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1464 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1465 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1466 {1, 1, 858, 525, 1270, 480, 0, 0, 760}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001467};
1468
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001469static struct XGI330_TVDataStruct XGI_ExtNTSCData[] = {
1470 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1471 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1472 {9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1473 {12, 5, 858, 403, 1270, 420, 171, 0, 171},
1474 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1475 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1476 {1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1477 {2, 1, 858, 503, 1584, 480, 0, 1, 0},
1478 {3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001479};
1480
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001481static struct XGI330_TVDataStruct XGI_St1HiTVData[] = {
1482 {1, 1, 892, 563, 690, 800, 0, 0, 0}, /* 00 (320x200,320x400,
1483 640x200,640x400) */
1484 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1485 {1, 1, 1000, 563, 785, 800, 0, 0, 0}, /* 02 (360x400,720x400) */
1486 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1487 {1, 1, 892, 563, 690, 960, 0, 0, 0}, /* 04 (320x240,640x480) */
1488 {8, 5, 1050, 683, 1648, 960, 0x150, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001489};
1490
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001491static struct XGI330_TVDataStruct XGI_St2HiTVData[] = {
1492 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 00 (320x200,320x400,
1493 640x200,640x400) */
1494 {1, 1, 892, 563, 690, 700, 0, 0, 0}, /* 01 (320x350,640x350) */
1495 {3, 1, 840, 483, 1648, 960, 0x032, 0, 0}, /* 02 (360x400,720x400) */
1496 {1, 1, 1000, 563, 785, 700, 0, 0, 0}, /* 03 (720x350) */
1497 {5, 2, 840, 563, 1648, 960, 0x08D, 1, 0}, /* 04 (320x240,640x480) */
1498 {8, 5, 1050, 683, 1648, 960, 0x17C, 1, 0} /* 05 (400x300,800x600) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001499};
1500
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001501static struct XGI330_TVDataStruct XGI_ExtHiTVData[] = {
1502 {6, 1, 840, 563, 1632, 960, 0, 0, 0}, /* 00 (320x200,320x400,
1503 640x200,640x400) */
1504 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 01 (320x350,640x350) */
1505 {3, 1, 840, 483, 1632, 960, 0, 0, 0}, /* 02 (360x400,720x400) */
1506 {3, 1, 960, 563, 1632, 960, 0, 0, 0}, /* 03 (720x350) */
1507 {5, 1, 840, 563, 1648, 960, 0x166, 1, 0}, /* 04 (320x240,640x480) */
1508 {16, 5, 1050, 683, 1648, 960, 0x143, 1, 0}, /* 05 (400x300,800x600) */
1509 {25, 12, 1260, 851, 1648, 960, 0x032, 0, 0}, /* 06 (512x384,1024x768)*/
1510 {5, 4, 1575, 1124, 1648, 960, 0x128, 0, 0}, /* 07 (1280x1024) */
1511 {4, 1, 1050, 563, 1548, 960, 0x143, 1, 0}, /* 08 (800x480) */
1512 {5, 2, 1400, 659, 1648, 960, 0x032, 0, 0}, /* 09 (1024x576) */
1513 {8, 5, 1750, 803, 1648, 960, 0x128, 0, 0} /* 0A (1280x720) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001514};
1515
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001516static struct XGI330_TVDataStruct XGI_ExtYPbPr525iData[] = {
1517 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1518 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1519 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1520 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1521 {143, 80, 836, 523, 1250, 420, 224, 0, 0},
1522 {143, 120, 1008, 643, 1250, 420, 0, 1, 0},
1523 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1524 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1525 { 3, 2, 1001, 533, 1250, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001526};
1527
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001528static struct XGI330_TVDataStruct XGI_StYPbPr525iData[] = {
1529 {1, 1, 858, 525, 1270, 400, 50, 0, 760},
1530 {1, 1, 858, 525, 1270, 350, 50, 0, 640},
1531 {1, 1, 858, 525, 1270, 400, 0, 0, 720},
1532 {1, 1, 858, 525, 1270, 350, 0, 0, 720},
1533 {1, 1, 858, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001534};
1535
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001536static struct XGI330_TVDataStruct XGI_ExtYPbPr525pData[] = {
1537 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1538 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1539 { 9, 5, 1001, 453, 1270, 420, 171, 0, 171},
1540 { 12, 5, 858, 403, 1270, 420, 171, 0, 171},
1541 {143, 80, 836, 523, 1270, 420, 224, 0, 0},
1542 {143, 120, 1008, 643, 1270, 420, 0, 1, 0},
1543 { 1, 1, 1120, 821, 1516, 420, 0, 1, 0}, /*301b*/
1544 { 2, 1, 858, 503, 1584, 480, 0, 1, 0},
1545 { 3, 2, 1001, 533, 1270, 420, 0, 0, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001546};
1547
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001548static struct XGI330_TVDataStruct XGI_StYPbPr525pData[] = {
1549 {1, 1, 1716, 525, 1270, 400, 50, 0, 760},
1550 {1, 1, 1716, 525, 1270, 350, 50, 0, 640},
1551 {1, 1, 1716, 525, 1270, 400, 0, 0, 720},
1552 {1, 1, 1716, 525, 1270, 350, 0, 0, 720},
1553 {1, 1, 1716, 525, 1270, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001554};
1555
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001556static struct XGI330_TVDataStruct XGI_ExtYPbPr750pData[] = {
1557 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 00 (320x200,320x400,
1558 640x200,640x400) */
1559 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 01 (320x350,640x350) */
1560 { 3, 1, 935, 470, 1130, 680, 50, 0, 0}, /* 02 (360x400,720x400) */
1561 {24, 7, 935, 420, 1130, 680, 50, 0, 0}, /* 03 (720x350) */
1562 { 2, 1, 1100, 590, 1130, 640, 50, 0, 0}, /* 04 (320x240,640x480) */
1563 { 3, 2, 1210, 690, 1130, 660, 50, 0, 0}, /* 05 (400x300,800x600) */
1564 { 1, 1, 1375, 878, 1130, 640, 638, 0, 0}, /* 06 (1024x768) */
1565 { 2, 1, 858, 503, 1130, 480, 0, 1, 0}, /* 07 (720x480) */
1566 { 5, 4, 1815, 570, 1130, 660, 50, 0, 0},
1567 { 5, 3, 1100, 686, 1130, 640, 50, 1, 0},
1568 {10, 9, 1320, 830, 1130, 640, 50, 0, 0}
1569};
1570
1571static struct XGI330_TVDataStruct XGI_StYPbPr750pData[] = {
1572 {1, 1, 1650, 750, 1280, 400, 50, 0, 760},
1573 {1, 1, 1650, 750, 1280, 350, 50, 0, 640},
1574 {1, 1, 1650, 750, 1280, 400, 0, 0, 720},
1575 {1, 1, 1650, 750, 1280, 350, 0, 0, 720},
1576 {1, 1, 1650, 750, 1280, 480, 0, 0, 760},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001577};
1578
Randy Dunlap89229672010-08-10 08:46:44 -07001579static unsigned char XGI330_NTSCTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001580 0x17, 0x1d, 0x03, 0x09, 0x05, 0x06, 0x0c, 0x0c,
1581 0x94, 0x49, 0x01, 0x0a, 0x06, 0x0d, 0x04, 0x0a,
1582 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x1b,
1583 0x0c, 0x50, 0x00, 0x97, 0x00, 0xda, 0x4a, 0x17,
1584 0x7d, 0x05, 0x4b, 0x00, 0x00, 0xe2, 0x00, 0x02,
1585 0x03, 0x0a, 0x65, 0x9d, 0x08, 0x92, 0x8f, 0x40,
1586 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x50,
1587 0x00, 0x40, 0x44, 0x00, 0xdb, 0x02, 0x3b, 0x00
1588};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001589
Randy Dunlap89229672010-08-10 08:46:44 -07001590static unsigned char XGI330_PALTiming[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001591 0x21, 0x5A, 0x35, 0x6e, 0x04, 0x38, 0x3d, 0x70,
1592 0x94, 0x49, 0x01, 0x12, 0x06, 0x3e, 0x35, 0x6d,
1593 0x06, 0x14, 0x3e, 0x35, 0x6d, 0x00, 0x45, 0x2b,
1594 0x70, 0x50, 0x00, 0x9b, 0x00, 0xd9, 0x5d, 0x17,
1595 0x7d, 0x05, 0x45, 0x00, 0x00, 0xe8, 0x00, 0x02,
1596 0x0d, 0x00, 0x68, 0xb0, 0x0b, 0x92, 0x8f, 0x40,
1597 0x60, 0x80, 0x14, 0x90, 0x8c, 0x60, 0x14, 0x63,
1598 0x00, 0x40, 0x3e, 0x00, 0xe1, 0x02, 0x28, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001599};
1600
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001601static unsigned char XGI330_HiTVExtTiming[] = {
1602 0x2D, 0x60, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1603 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1604 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1605 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1606 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1607 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1608 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1609 0x60, 0x14, 0x3D, 0x63, 0x4F,
1610 0x27, 0x00, 0xfc, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001611};
1612
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001613static unsigned char XGI330_HiTVSt1Timing[] = {
1614 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1615 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1616 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1617 0x65, 0x90, 0x7B, 0xA8, 0x03, 0xF0, 0x87, 0x03,
1618 0x11, 0x15, 0x11, 0xCF, 0x10, 0x11, 0xCF, 0x10,
1619 0x35, 0x35, 0x3B, 0x69, 0x1D,
1620 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1621 0x60, 0x04, 0x86, 0xAF, 0x5D,
1622 0x0E, 0x00, 0xfc, 0xff, 0x2d, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001623};
1624
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001625static unsigned char XGI330_HiTVSt2Timing[] = {
1626 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x64,
1627 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1628 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1629 0x64, 0x90, 0x33, 0x8C, 0x18, 0x36, 0x3E, 0x13,
1630 0x2A, 0xDE, 0x2A, 0x44, 0x40, 0x2A, 0x44, 0x40,
1631 0x8E, 0x8E, 0x82, 0x07, 0x0B,
1632 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1633 0x60, 0x14, 0x3D, 0x63, 0x4F,
1634 0x27, 0x00, 0xFC, 0xff, 0x6a, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001635};
1636
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001637static unsigned char XGI330_HiTVTextTiming[] = {
1638 0x32, 0x65, 0x2C, 0x5F, 0x08, 0x31, 0x3A, 0x65,
1639 0x28, 0x02, 0x01, 0x3D, 0x06, 0x3E, 0x35, 0x6D,
1640 0x06, 0x14, 0x3E, 0x35, 0x6D, 0x00, 0xC5, 0x3F,
1641 0x65, 0x90, 0xE7, 0xBC, 0x03, 0x0C, 0x97, 0x03,
1642 0x14, 0x78, 0x14, 0x08, 0x20, 0x14, 0x08, 0x20,
1643 0xC8, 0xC8, 0x3B, 0xD2, 0x26,
1644 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1645 0x60, 0x04, 0x96, 0x72, 0x5C,
1646 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001647};
1648
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001649static unsigned char XGI330_YPbPr750pTiming[] = {
1650 0x30, 0x1d, 0xe8, 0x09, 0x09, 0xed, 0x0c, 0x0c,
1651 0x98, 0x0a, 0x01, 0x0c, 0x06, 0x0d, 0x04, 0x0a,
1652 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1653 0xed, 0x50, 0x70, 0x9f, 0x16, 0x59, 0x60, 0x13,
1654 0x27, 0x0b, 0x27, 0xfc, 0x30, 0x27, 0x1c, 0xb0,
1655 0x4b, 0x4b, 0x6f, 0x2f, 0x63,
1656 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1657 0x60, 0x14, 0x73, 0x00, 0x40,
1658 0x11, 0x00, 0xfc, 0xff, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001659};
1660
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001661static unsigned char XGI330_YPbPr525pTiming[] = {
1662 0x3E, 0x11, 0x06, 0x09, 0x0b, 0x0c, 0x0c, 0x0c,
1663 0x98, 0x0a, 0x01, 0x0d, 0x06, 0x0d, 0x04, 0x0a,
1664 0x06, 0x14, 0x0d, 0x04, 0x0a, 0x00, 0x85, 0x3f,
1665 0x0c, 0x50, 0xb2, 0x9f, 0x16, 0x59, 0x4f, 0x13,
1666 0xad, 0x11, 0xad, 0x1d, 0x40, 0x8a, 0x3d, 0xb8,
1667 0x51, 0x5e, 0x60, 0x49, 0x7d,
1668 0x92, 0x0F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1669 0x60, 0x14, 0x4B, 0x43, 0x41,
1670 0x11, 0x00, 0xFC, 0xFF, 0x32, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001671};
1672
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001673static unsigned char XGI330_YPbPr525iTiming[] = {
1674 0x1B, 0x21, 0x03, 0x09, 0x05, 0x06, 0x0C, 0x0C,
1675 0x94, 0x49, 0x01, 0x0A, 0x06, 0x0D, 0x04, 0x0A,
1676 0x06, 0x14, 0x0D, 0x04, 0x0A, 0x00, 0x85, 0x1B,
1677 0x0C, 0x50, 0x00, 0x97, 0x00, 0xDA, 0x4A, 0x17,
1678 0x7D, 0x05, 0x4B, 0x00, 0x00, 0xE2, 0x00, 0x02,
1679 0x03, 0x0A, 0x65, 0x9D, 0x08,
1680 0x92, 0x8F, 0x40, 0x60, 0x80, 0x14, 0x90, 0x8C,
1681 0x60, 0x14, 0x4B, 0x00, 0x40,
1682 0x44, 0x00, 0xDB, 0x02, 0x3B, 0x00
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001683};
1684
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001685static unsigned char XGI330_HiTVGroup3Data[] = {
1686 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x5F,
1687 0x05, 0x21, 0xB2, 0xB2, 0x55, 0x77, 0x2A, 0xA6,
1688 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1689 0x8C, 0x6E, 0x60, 0x2E, 0x58, 0x48, 0x72, 0x44,
1690 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1691 0x4F, 0x7F, 0x03, 0xA8, 0x7D, 0x20, 0x1A, 0xA9,
1692 0x14, 0x05, 0x03, 0x7E, 0x64, 0x31, 0x14, 0x75,
1693 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001694};
1695
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001696static unsigned char XGI330_HiTVGroup3Simu[] = {
1697 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0x95,
1698 0xDB, 0x20, 0xB8, 0xB8, 0x55, 0x47, 0x2A, 0xA6,
1699 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1700 0x8C, 0x6E, 0x60, 0x15, 0x26, 0xD3, 0xE4, 0x11,
1701 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1702 0x67, 0x36, 0x01, 0x47, 0x0E, 0x10, 0xBE, 0xB4,
1703 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1704 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001705};
1706
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001707static unsigned char XGI330_HiTVGroup3Text[] = {
1708 0x00, 0x1A, 0x22, 0x63, 0x62, 0x22, 0x08, 0xA7,
1709 0xF5, 0x20, 0xCE, 0xCE, 0x55, 0x47, 0x2A, 0xA6,
1710 0x25, 0x2F, 0x47, 0xFA, 0xC8, 0xFF, 0x8E, 0x20,
1711 0x8C, 0x6E, 0x60, 0x18, 0x2C, 0x0C, 0x20, 0x22,
1712 0x56, 0x36, 0x4F, 0x6E, 0x3F, 0x80, 0x00, 0x80,
1713 0x93, 0x3C, 0x01, 0x50, 0x2F, 0x10, 0xF4, 0xCA,
1714 0x01, 0x05, 0x03, 0x7E, 0x65, 0x31, 0x14, 0x75,
1715 0x18, 0x05, 0x18, 0x05, 0x4C, 0xA8, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001716};
1717
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001718static unsigned char XGI330_Ren525pGroup3[] = {
1719 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x13,
1720 0xB1, 0x41, 0x62, 0x62, 0xFF, 0xF4, 0x45, 0xa6,
1721 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1722 0xAC, 0xDA, 0x60, 0xFe, 0x6A, 0x9A, 0x06, 0x10,
1723 0xd1, 0x04, 0x18, 0x0a, 0xFF, 0x80, 0x00, 0x80,
1724 0x3c, 0x77, 0x00, 0xEF, 0xE0, 0x10, 0xB0, 0xE0,
1725 0x10, 0x4F, 0x0F, 0x0F, 0x05, 0x0F, 0x08, 0x6E,
1726 0x1a, 0x1F, 0x25, 0x2a, 0x4C, 0xAA, 0x01
1727};
1728
1729static unsigned char XGI330_Ren750pGroup3[] = {
1730 0x00, 0x14, 0x15, 0x25, 0x55, 0x15, 0x0b, 0x7a,
1731 0x54, 0x41, 0xE7, 0xE7, 0xFF, 0xF4, 0x45, 0xa6,
1732 0x25, 0x2F, 0x67, 0xF6, 0xbf, 0xFF, 0x8E, 0x20,
1733 0xAC, 0x6A, 0x60, 0x2b, 0x52, 0xCD, 0x61, 0x10,
1734 0x51, 0x04, 0x18, 0x0a, 0x1F, 0x80, 0x00, 0x80,
1735 0xFF, 0xA4, 0x04, 0x2B, 0x94, 0x21, 0x72, 0x94,
1736 0x26, 0x05, 0x01, 0x0F, 0xed, 0x0F, 0x0A, 0x64,
1737 0x18, 0x1D, 0x23, 0x28, 0x4C, 0xAA, 0x01
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001738};
1739
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001740static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1[] = {
1741 { 960, 438, 1344, 806}, /* 00 (320x200,320x400,640x200,640x400) */
1742 { 960, 388, 1344, 806}, /* 01 (320x350,640x350) */
1743 {1040, 438, 1344, 806}, /* 02 (360x400,720x400) */
1744 {1040, 388, 1344, 806}, /* 03 (720x350) */
1745 { 960, 518, 1344, 806}, /* 04 (320x240,640x480) */
1746 {1120, 638, 1344, 806}, /* 05 (400x300,800x600) */
1747 {1344, 806, 1344, 806} /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001748};
1749
1750
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001751static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2[] = {
1752 {1344, 806, 1344, 806},
1753 {1344, 806, 1344, 806},
1754 {1344, 806, 1344, 806},
1755 {1344, 806, 1344, 806},
1756 {1344, 806, 1344, 806},
1757 {1344, 806, 1344, 806},
1758 {1344, 806, 1344, 806},
1759 {800, 449, 1280, 801},
1760 {800, 525, 1280, 813}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001761};
1762
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001763static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1[] = {
1764 {1048, 442, 1688, 1066},
1765 {1048, 392, 1688, 1066},
1766 {1048, 442, 1688, 1066},
1767 {1048, 392, 1688, 1066},
1768 {1048, 522, 1688, 1066},
1769 {1208, 642, 1688, 1066},
1770 {1432, 810, 1688, 1066},
1771 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001772};
1773
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001774static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2[] = {
1775 {1344, 806, 1344, 806},
1776 {1344, 806, 1344, 806},
1777 {1344, 806, 1344, 806},
1778 {1344, 806, 1344, 806},
1779 {1344, 806, 1344, 806},
1780 {1344, 806, 1344, 806},
1781 {1344, 806, 1344, 806},
1782 {800, 449, 1280, 801},
1783 {800, 525, 1280, 813}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001784};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001785
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001786static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_1[] = {
1787 {928, 416, 1688, 1066},
1788 {928, 366, 1688, 1066},
1789 {928, 416, 1688, 1066},
1790 {928, 366, 1688, 1066},
1791 {928, 496, 1688, 1066},
1792 {1088, 616, 1688, 1066},
1793 {1312, 784, 1688, 1066},
1794 {1568, 1040, 1688, 1066},
1795 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001796};
1797
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001798static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Data_2[] = {
1799 {1688, 1066, 1688, 1066},
1800 {1688, 1066, 1688, 1066},
1801 {1688, 1066, 1688, 1066},
1802 {1688, 1066, 1688, 1066},
1803 {1688, 1066, 1688, 1066},
1804 {1688, 1066, 1688, 1066},
1805 {1688, 1066, 1688, 1066},
1806 {1688, 1066, 1688, 1066},
1807 {1688, 1066, 1688, 1066}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001808};
1809
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001810/* ;;[ycchen] 12/05/02 LCDHTxLCDVT=2048x1320 */
1811static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Data_1[] = {
1812 {1088, 520, 2048, 1320}, /* 00 (320x200,320x400,640x200,640x400) */
1813 {1088, 470, 2048, 1320}, /* 01 (320x350,640x350) */
1814 {1088, 520, 2048, 1320}, /* 02 (360x400,720x400) */
1815 {1088, 470, 2048, 1320}, /* 03 (720x350) */
1816 {1088, 600, 2048, 1320}, /* 04 (320x240,640x480) */
1817 {1248, 720, 2048, 1320}, /* 05 (400x300,800x600) */
1818 {1472, 888, 2048, 1320}, /* 06 (512x384,1024x768) */
1819 {1728, 1144, 2048, 1320}, /* 07 (640x512,1280x1024) */
1820 {1848, 1170, 2048, 1320}, /* 08 (1400x1050) */
1821 {2048, 1320, 2048, 1320} /* 09 (1600x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001822};
1823
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001824static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingData[] = {
1825 { 800, 449, 800, 449}, /* 00 (320x200,320x400,640x200,640x400) */
1826 { 800, 449, 800, 449}, /* 01 (320x350,640x350) */
1827 { 800, 449, 800, 449}, /* 02 (360x400,720x400) */
1828 { 800, 449, 800, 449}, /* 03 (720x350) */
1829 { 800, 525, 800, 525}, /* 04 (640x480x60Hz) */
1830 {1056, 628, 1056, 628}, /* 05 (800x600x60Hz) */
1831 {1344, 806, 1344, 806}, /* 06 (1024x768x60Hz) */
1832 {1688, 1066, 1688, 1066}, /* 07 (1280x1024x60Hz) */
1833 {1688, 1066, 1688, 1066}, /* 08 (1400x1050x60Hz) ;;[ycchen] 12/19/02 */
1834 {2160, 1250, 2160, 1250}, /* 09 (1600x1200x60Hz) */
1835 {1688, 806, 1688, 806} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001836};
1837
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001838static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_1x75[] = {
1839 { 960, 438, 1312, 800}, /* 00 (320x200,320x400,640x200,640x400) */
1840 { 960, 388, 1312, 800}, /* 01 (320x350,640x350) */
1841 {1040, 438, 1312, 800}, /* 02 (360x400,720x400) */
1842 {1040, 388, 1312, 800}, /* 03 (720x350) */
1843 { 928, 512, 1312, 800}, /* 04 (320x240,640x480) */
1844 {1088, 632, 1312, 800}, /* 05 (400x300,800x600) */
1845 {1312, 800, 1312, 800}, /* 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001846};
1847
1848
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001849static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Data_2x75[] = {
1850 {1312, 800, 1312, 800}, /* ; 00 (320x200,320x400,640x200,640x400) */
1851 {1312, 800, 1312, 800}, /* ; 01 (320x350,640x350) */
1852 {1312, 800, 1312, 800}, /* ; 02 (360x400,720x400) */
1853 {1312, 800, 1312, 800}, /* ; 03 (720x350) */
1854 {1312, 800, 1312, 800}, /* ; 04 (320x240,640x480) */
1855 {1312, 800, 1312, 800}, /* ; 05 (400x300,800x600) */
1856 {1312, 800, 1312, 800}, /* ; 06 (512x384,1024x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001857};
1858
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001859static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_1x75[] = {
1860 {1048, 442, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1861 {1048, 392, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1862 {1128, 442, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1863 {1128, 392, 1688, 1066 }, /* ; 03 (720x350) */
1864 {1048, 522, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1865 {1208, 642, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1866 {1432, 810, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1867 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001868};
1869
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001870static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Data_2x75[] = {
1871 {1688, 1066, 1688, 1066 }, /* ; 00 (320x200,320x400,640x200,640x400) */
1872 {1688, 1066, 1688, 1066 }, /* ; 01 (320x350,640x350) */
1873 {1688, 1066, 1688, 1066 }, /* ; 02 (360x400,720x400) */
1874 {1688, 1066, 1688, 1066 }, /* ; 03 (720x350) */
1875 {1688, 1066, 1688, 1066 }, /* ; 04 (320x240,640x480) */
1876 {1688, 1066, 1688, 1066 }, /* ; 05 (400x300,800x600) */
1877 {1688, 1066, 1688, 1066 }, /* ; 06 (512x384,1024x768) */
1878 {1688, 1066, 1688, 1066 }, /* ; 06; 07 (640x512,1280x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001879};
1880
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001881static struct XGI330_LVDSDataStruct XGI_LVDSNoScalingDatax75[] = {
1882 { 800, 449, 800, 449}, /* ; 00 (320x200,320x400,640x200,640x400) */
1883 { 800, 449, 800, 449}, /* ; 01 (320x350,640x350) */
1884 { 900, 449, 900, 449}, /* ; 02 (360x400,720x400) */
1885 { 900, 449, 900, 449}, /* ; 03 (720x350) */
1886 { 800, 500, 800, 500}, /* ; 04 (640x480x75Hz) */
1887 {1056, 625, 1056, 625}, /* ; 05 (800x600x75Hz) */
1888 {1312, 800, 1312, 800}, /* ; 06 (1024x768x75Hz) */
1889 {1688, 1066, 1688, 1066}, /* ; 07 (1280x1024x75Hz) */
1890 {1688, 1066, 1688, 1066}, /* ; 08 (1400x1050x75Hz)
1891 ;;[ycchen] 12/19/02 */
1892 {2160, 1250, 2160, 1250}, /* ; 09 (1600x1200x75Hz) */
1893 {1688, 806, 1688, 806}, /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001894};
1895
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001896static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1[] = {
1897 {0, 1048, 0, 771}, /* 00 (320x200,320x400,640x200,640x400) */
1898 {0, 1048, 0, 771}, /* 01 (320x350,640x350) */
1899 {0, 1048, 0, 771}, /* 02 (360x400,720x400) */
1900 {0, 1048, 0, 771}, /* 03 (720x350) */
1901 {0, 1048, 0, 771}, /* 04 (640x480x60Hz) */
1902 {0, 1048, 0, 771}, /* 05 (800x600x60Hz) */
1903 {0, 1048, 805, 770} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001904} ;
1905
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001906static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2[] = {
1907 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1908 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
1909 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
1910 {1142, 856, 597, 562}, /* 03 (720x350) */
1911 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
1912 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
1913 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001914};
1915
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001916static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3[] = {
1917 {320, 24, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
1918 {320, 24, 597, 562}, /* 01 (320x350,640x350) */
1919 {320, 24, 622, 587}, /* 02 (360x400,720x400) */
1920 {320, 24, 597, 562}, /* 03 (720x350) */
1921 {320, 24, 722, 687} /* 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001922};
1923
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001924static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1[] = {
1925 {0, 1328, 0, 1025}, /* 00 (320x200,320x400,640x200,640x400) */
1926 {0, 1328, 0, 1025}, /* 01 (320x350,640x350) */
1927 {0, 1328, 0, 1025}, /* 02 (360x400,720x400) */
1928 {0, 1328, 0, 1025}, /* 03 (720x350) */
1929 {0, 1328, 0, 1025}, /* 04 (640x480x60Hz) */
1930 {0, 1328, 0, 1025}, /* 05 (800x600x60Hz) */
1931 {0, 1328, 0, 1025}, /* 06 (1024x768x60Hz) */
1932 {0, 1328, 1065, 1024} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001933};
1934
1935 /* The Display setting for DE Mode Panel */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001936static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2[] = {
1937 {1368, 1008, 752, 711}, /* 00 (320x200,320x400,640x200,640x400) */
1938 {1368, 1008, 729, 688}, /* 01 (320x350,640x350) */
1939 {1408, 1048, 752, 711}, /* 02 (360x400,720x400) */
1940 {1408, 1048, 729, 688}, /* 03 (720x350) */
1941 {1368, 1008, 794, 753}, /* 04 (640x480x60Hz) */
1942 {1448, 1068, 854, 813}, /* 05 (800x600x60Hz) */
1943 {1560, 1200, 938, 897}, /* 06 (1024x768x60Hz) */
1944 {0000, 1328, 0, 1025} /* 07 (1280x1024x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001945};
1946
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001947static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_1[] = {
1948 {0, 1448, 0, 1051}, /* 00 (320x200,320x400,640x200,640x400) */
1949 {0, 1448, 0, 1051}, /* 01 (320x350,640x350) */
1950 {0, 1448, 0, 1051}, /* 02 (360x400,720x400) */
1951 {0, 1448, 0, 1051}, /* 03 (720x350) */
1952 {0, 1448, 0, 1051}, /* 04 (640x480x60Hz) */
1953 {0, 1448, 0, 1051}, /* 05 (800x600x60Hz) */
1954 {0, 1448, 0, 1051}, /* 06 (1024x768x60Hz) */
1955 {0, 1448, 0, 1051}, /* 07 (1280x1024x60Hz) */
1956 {0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001957};
1958
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001959static struct XGI330_LVDSDataStruct XGI_LVDS1400x1050Des_2[] = {
1960 {1308, 1068, 781, 766}, /* 00 (320x200,320x400,640x200,640x400) */
1961 {1308, 1068, 781, 766}, /* 01 (320x350,640x350) */
1962 {1308, 1068, 781, 766}, /* 02 (360x400,720x400) */
1963 {1308, 1068, 781, 766}, /* 03 (720x350) */
1964 {1308, 1068, 781, 766}, /* 04 (640x480x60Hz) */
1965 {1388, 1148, 841, 826}, /* 05 (800x600x60Hz) */
1966 {1490, 1250, 925, 910}, /* 06 (1024x768x60Hz) */
1967 {1608, 1368, 1053, 1038}, /* 07 (1280x1024x60Hz) */
1968 { 0, 1448, 0, 1051} /* 08 (1400x1050x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001969};
1970
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001971static struct XGI330_LVDSDataStruct XGI_LVDS1600x1200Des_1[] = {
1972 {0, 1664, 0, 1201}, /* 00 (320x200,320x400,640x200,640x400) */
1973 {0, 1664, 0, 1201}, /* 01 (320x350,640x350) */
1974 {0, 1664, 0, 1201}, /* 02 (360x400,720x400) */
1975 {0, 1664, 0, 1201}, /* 03 (720x350) */
1976 {0, 1664, 0, 1201}, /* 04 (640x480x60Hz) */
1977 {0, 1664, 0, 1201}, /* 05 (800x600x60Hz) */
1978 {0, 1664, 0, 1201}, /* 06 (1024x768x60Hz) */
1979 {0, 1664, 0, 1201}, /* 07 (1280x1024x60Hz) */
1980 {0, 1664, 0, 1201}, /* 08 (1400x1050x60Hz) */
1981 {0, 1664, 0, 1201} /* 09 (1600x1200x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001982};
1983
Kenji Toyama3ecf3522011-04-24 11:37:17 +08001984static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesData[] = {
1985 {0, 648, 448, 405, 96, 2}, /* 00 (320x200,320x400,
1986 640x200,640x400) */
1987 {0, 648, 448, 355, 96, 2}, /* 01 (320x350,640x350) */
1988 {0, 648, 448, 405, 96, 2}, /* 02 (360x400,720x400) */
1989 {0, 648, 448, 355, 96, 2}, /* 03 (720x350) */
1990 {0, 648, 1, 483, 96, 2}, /* 04 (640x480x60Hz) */
1991 {0, 840, 627, 600, 128, 4}, /* 05 (800x600x60Hz) */
1992 {0, 1048, 805, 770, 136, 6}, /* 06 (1024x768x60Hz) */
1993 {0, 1328, 0, 1025, 112, 3}, /* 07 (1280x1024x60Hz) */
1994 {0, 1438, 0, 1051, 112, 3}, /* 08 (1400x1050x60Hz)
1995 ;;[ycchen] 12/19/02 */
1996 {0, 1664, 0, 1201, 192, 3}, /* 09 (1600x1200x60Hz) */
1997 {0, 1328, 0, 0771, 112, 6} /* 0A (1280x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02001998};
1999
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002000/* ; 1024x768 Full-screen */
2001static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_1x75[] = {
2002 {0, 1040, 0, 769}, /* ; 00 (320x200,320x400,640x200,640x400) */
2003 {0, 1040, 0, 769}, /* ; 01 (320x350,640x350) */
2004 {0, 1040, 0, 769}, /* ; 02 (360x400,720x400) */
2005 {0, 1040, 0, 769}, /* ; 03 (720x350) */
2006 {0, 1040, 0, 769}, /* ; 04 (640x480x75Hz) */
2007 {0, 1040, 0, 769}, /* ; 05 (800x600x75Hz) */
2008 {0, 1040, 0, 769} /* ; 06 (1024x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002009};
2010
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002011/* ; 1024x768 center-screen (Enh. Mode) */
2012static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_2x75[] = {
2013 {1142, 856, 622, 587}, /* 00 (320x200,320x400,640x200,640x400) */
2014 {1142, 856, 597, 562}, /* 01 (320x350,640x350) */
2015 {1142, 856, 622, 587}, /* 02 (360x400,720x400) */
2016 {1142, 856, 597, 562}, /* 03 (720x350) */
2017 {1142, 1048, 722, 687}, /* 04 (640x480x60Hz) */
2018 {1232, 936, 722, 687}, /* 05 (800x600x60Hz) */
2019 { 0, 1048, 805, 771} /* 06 (1024x768x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002020};
2021
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002022/* ; 1024x768 center-screen (St.Mode) */
2023static struct XGI330_LVDSDataStruct XGI_LVDS1024x768Des_3x75[] = {
2024 {320, 24, 622, 587}, /* ; 00 (320x200,320x400,640x200,640x400) */
2025 {320, 24, 597, 562}, /* ; 01 (320x350,640x350) */
2026 {320, 24, 622, 587}, /* ; 02 (360x400,720x400) */
2027 {320, 24, 597, 562}, /* ; 03 (720x350) */
2028 {320, 24, 722, 687} /* ; 04 (640x480x60Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002029};
2030
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002031static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_1x75[] = {
2032 {0, 1296, 0, 1025}, /* ; 00 (320x200,320x400,640x200,640x400) */
2033 {0, 1296, 0, 1025}, /* ; 01 (320x350,640x350) */
2034 {0, 1296, 0, 1025}, /* ; 02 (360x400,720x400) */
2035 {0, 1296, 0, 1025}, /* ; 03 (720x350) */
2036 {0, 1296, 0, 1025}, /* ; 04 (640x480x75Hz) */
2037 {0, 1296, 0, 1025}, /* ; 05 (800x600x75Hz) */
2038 {0, 1296, 0, 1025}, /* ; 06 (1024x768x75Hz) */
2039 {0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002040};
2041
2042/* The Display setting for DE Mode Panel */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002043/* [ycchen] 02/18/03 Set DE as default */
2044static struct XGI330_LVDSDataStruct XGI_LVDS1280x1024Des_2x75[] = {
2045 {1368, 976, 752, 711}, /* ; 00 (320x200,320x400,640x200,640x400) */
2046 {1368, 976, 729, 688}, /* ; 01 (320x350,640x350) */
2047 {1408, 976, 752, 711}, /* ; 02 (360x400,720x400) */
2048 {1408, 976, 729, 688}, /* ; 03 (720x350) */
2049 {1368, 976, 794, 753}, /* ; 04 (640x480x75Hz) */
2050 {1448, 1036, 854, 813}, /* ; 05 (800x600x75Hz) */
2051 {1560, 1168, 938, 897}, /* ; 06 (1024x768x75Hz) */
2052 { 0, 1296, 0, 1025} /* ; 07 (1280x1024x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002053};
2054
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002055/* Scaling LCD 75Hz */
2056static struct XGI330_LCDDataDesStruct2 XGI_LVDSNoScalingDesDatax75[] = {
2057 {0, 648, 448, 405, 96, 2}, /* ; 00 (320x200,320x400,
2058 640x200,640x400) */
2059 {0, 648, 448, 355, 96, 2}, /* ; 01 (320x350,640x350) */
2060 {0, 729, 448, 405, 108, 2}, /* ; 02 (360x400,720x400) */
2061 {0, 729, 448, 355, 108, 2}, /* ; 03 (720x350) */
2062 {0, 656, 0, 481, 64, 3}, /* ; 04 (640x480x75Hz) */
2063 {0, 816, 0, 601, 80, 3}, /* ; 05 (800x600x75Hz) */
2064 {0, 1040, 0, 769, 96, 3}, /* ; 06 (1024x768x75Hz) */
2065 {0, 1296, 0, 1025, 144, 3}, /* ; 07 (1280x1024x75Hz) */
2066 {0, 1448, 0, 1051, 112, 3}, /* ; 08 (1400x1050x75Hz)
2067 ;;[ycchen] 12/19/02 */
2068 {0, 1664, 0, 1201, 192, 3}, /* ; 09 (1600x1200x75Hz) */
2069 {0, 1328, 0, 771, 112, 6} /* ; 0A (1280x768x75Hz) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002070};
2071
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002072static struct XGI330_CHTVDataStruct XGI_CHTVUNTSCData[] = {
2073 { 840, 600, 840, 600},
2074 { 840, 600, 840, 600},
2075 { 840, 600, 840, 600},
2076 { 840, 600, 840, 600},
2077 { 784, 600, 784, 600},
2078 {1064, 750, 1064, 750}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002079};
2080
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002081static struct XGI330_CHTVDataStruct XGI_CHTVONTSCData[] = {
2082 { 840, 525, 840, 525},
2083 { 840, 525, 840, 525},
2084 { 840, 525, 840, 525},
2085 { 840, 525, 840, 525},
2086 { 784, 525, 784, 525},
2087 {1040, 700, 1040, 700}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002088};
2089
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002090static struct XGI330_CHTVDataStruct XGI_CHTVUPALData[] = {
2091 {1008, 625, 1008, 625},
2092 {1008, 625, 1008, 625},
2093 {1008, 625, 1008, 625},
2094 {1008, 625, 1008, 625},
2095 { 840, 750, 840, 750},
2096 { 936, 836, 936, 836}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002097};
2098
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002099static struct XGI330_CHTVDataStruct XGI_CHTVOPALData[] = {
2100 {1008, 625, 1008, 625},
2101 {1008, 625, 1008, 625},
2102 {1008, 625, 1008, 625},
2103 {1008, 625, 1008, 625},
2104 {840, 625, 840, 625},
2105 {960, 750, 960, 750}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002106};
2107
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002108/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2109static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_H[] = {
2110 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} }, /* 00 (320x) */
2111 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} }, /* 01 (360x) */
2112 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} }, /* 02 (400x) */
2113 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2114 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2115 { {0x73, 0x4F, 0x97, 0x55, 0x86, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2116 { {0x87, 0x63, 0x8B, 0x69, 0x1A, 0x00, 0x26, 0x00} }, /* 06 (800x) */
2117 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002118};
2119
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002120/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2121static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_H[] = {
2122 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 00 (320x) */
2123 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00 } }, /* 01 (360x) */
2124 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00 } }, /* 02 (400x) */
2125 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00 } }, /* 03 (512x) */
2126 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 04 (640x) */
2127 { {0x7E, 0x4F, 0x82, 0x58, 0x06, 0x00, 0x06, 0x00 } }, /* 05 (720x) */
2128 { {0x92, 0x63, 0x96, 0x6C, 0x1A, 0x00, 0x06, 0x00 } }, /* 06 (800x) */
2129 { {0xAE, 0x7F, 0x92, 0x88, 0x96, 0x00, 0x02, 0x00 } }, /* 07 (1024x) */
2130 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00 } } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002131};
2132
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002133/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2134static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_H[] = {
2135 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2136 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2137 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2138 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2139 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2140 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2141 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2142 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002143};
2144
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002145/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2146static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_H[] = {
2147 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2148 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2149 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2150 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2151 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2152 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2153 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} }, /* 06 (800x) */
2154 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2155 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002156};
2157
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002158/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2159static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_1_H[] = {
2160 { {0x47, 0x27, 0x8B, 0x2C, 0x1A, 0x00, 0x05, 0x00} }, /* 00 (320x) */
2161 { {0x47, 0x27, 0x8B, 0x30, 0x1E, 0x00, 0x05, 0x00} }, /* 01 (360x) */
2162 { {0x51, 0x31, 0x95, 0x36, 0x04, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2163 { {0x5F, 0x3F, 0x83, 0x44, 0x92, 0x00, 0x01, 0x00} }, /* 03 (512x) */
2164 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 04 (640x) */
2165 { {0x6F, 0x4F, 0x93, 0x54, 0x82, 0x00, 0x05, 0x00} }, /* 05 (720x) */
2166 { {0x83, 0x63, 0x87, 0x68, 0x16, 0x00, 0x06, 0x00} }, /* 06 (800x) */
2167 { {0x9F, 0x7F, 0x83, 0x84, 0x92, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2168 { {0xBF, 0x9F, 0x83, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2169 { {0xCE, 0xAE, 0x92, 0xB3, 0x01, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002170};
2171
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002172/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2173static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11400x1050_2_H[] = {
2174 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 00 (320x) */
2175 { {0x76, 0x3F, 0x83, 0x45, 0x8C, 0x00, 0x41, 0x00} }, /* 01 (360x) */
2176 { {0x76, 0x31, 0x9A, 0x48, 0x9F, 0x00, 0x41, 0x00} }, /* 02 (400x) */
2177 { {0x76, 0x3F, 0x9A, 0x4F, 0x96, 0x00, 0x41, 0x00} }, /* 03 (512x) */
2178 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 04 (640x) */
2179 { {0xCE, 0x7E, 0x82, 0x87, 0x9E, 0x00, 0x02, 0x00} }, /* 05 (720x) */
2180 { {0xCE, 0x63, 0x92, 0x96, 0x04, 0x00, 0x07, 0x00} }, /* 06 (800x) */
2181 { {0xCE, 0x7F, 0x92, 0xA4, 0x12, 0x00, 0x07, 0x00} }, /* 07 (1024x) */
2182 { {0xCE, 0x9F, 0x92, 0xB4, 0x02, 0x00, 0x03, 0x00} }, /* 08 (1280x) */
2183 { {0xCE, 0xAE, 0x92, 0xBC, 0x0A, 0x00, 0x03, 0x00} } /* 09 (1400x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002184};
2185
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002186/* ;302lv channelA [ycchen] 12/05/02 LCDHT=2048 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002187/* ; CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2188static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11600x1200_1_H[] = {
2189 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 00 (320x) */
2190 { {0x5B, 0x27, 0x9F, 0x32, 0x0A, 0x00, 0x01, 0x00} }, /* 01 (360x) */
2191 { {0x65, 0x31, 0x89, 0x3C, 0x94, 0x00, 0x01, 0x00} }, /* 02 (400x) */
2192 { {0x73, 0x3F, 0x97, 0x4A, 0x82, 0x00, 0x05, 0x00} }, /* 03 (512x) */
2193 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 04 (640x) */
2194 { {0x83, 0x4F, 0x87, 0x51, 0x09, 0x00, 0x06, 0x00} }, /* 05 (720x) */
2195 { {0x97, 0x63, 0x9B, 0x65, 0x1D, 0x00, 0x06, 0xF0} }, /* 06 (800x) */
2196 { {0xB3, 0x7F, 0x97, 0x81, 0x99, 0x00, 0x02, 0x00} }, /* 07 (1024x) */
2197 { {0xD3, 0x9F, 0x97, 0xA1, 0x19, 0x00, 0x07, 0x00} }, /* 08 (1280x) */
2198 { {0xE2, 0xAE, 0x86, 0xB9, 0x91, 0x00, 0x03, 0x00} }, /* 09 (1400x) */
2199 { {0xFB, 0xC7, 0x9F, 0xC9, 0x81, 0x00, 0x07, 0x00} } /* 0A (1600x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002200};
2201
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002202/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2203static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_V[] = {
2204 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} }, /* 00 (x350) */
2205 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} }, /* 01 (x400) */
2206 { {0x04, 0x3E, 0xE2, 0x89, 0xDF, 0x05, 0x00} }, /* 02 (x480) */
2207 { {0x7C, 0xF0, 0x5A, 0x8F, 0x57, 0x7D, 0xA0} }, /* 03 (x600) */
2208 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002209};
2210
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002211/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2212static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_V[] = {
2213 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} }, /* 00 (x350) */
2214 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} }, /* 01 (x400) */
2215 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} }, /* 02 (x480) */
2216 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} }, /* 03 (x600) */
2217 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002218};
2219
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002220/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2221static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_V[] = {
2222 { {0x86, 0x1F, 0x5E, 0x82, 0x5D, 0x87, 0x00} }, /* 00 (x350) */
2223 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} }, /* 01 (x400) */
2224 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} }, /* 02 (x480) */
2225 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} }, /* 03 (x600) */
2226 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} }, /* 04 (x768) */
2227 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002228};
2229
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002230/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2231static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_V[] = {
2232 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} }, /* 00 (x350) */
2233 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} }, /* 01 (x400) */
2234 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} }, /* 02 (x480) */
2235 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} }, /* 03 (x600) */
2236 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} }, /* 04 (x768) */
2237 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002238};
2239
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002240/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2241static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_1_V[] = {
2242 { {0x6C, 0x1F, 0x60, 0x84, 0x5D, 0x6D, 0x10} }, /* 00 (x350) */
2243 { {0x9E, 0x1F, 0x93, 0x86, 0x8F, 0x9F, 0x30} }, /* 01 (x400) */
2244 { {0xEE, 0x1F, 0xE2, 0x86, 0xDF, 0xEF, 0x10} }, /* 02 (x480) */
2245 { {0x66, 0xF0, 0x5A, 0x8e, 0x57, 0x67, 0xA0} }, /* 03 (x600) */
2246 { {0x0E, 0xF5, 0x02, 0x86, 0xFF, 0x0F, 0x90} }, /* 04 (x768) */
2247 { {0x0E, 0x5A, 0x02, 0x86, 0xFF, 0x0F, 0x89} }, /* 05 (x1024) */
2248 { {0x28, 0x10, 0x1A, 0x80, 0x19, 0x29, 0x0F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002249};
2250
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002251/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2252static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11400x1050_2_V[] = {
2253 { {0x28, 0x92, 0xB6, 0x83, 0xB5, 0xCF, 0x81} }, /* 00 (x350) */
2254 { {0x28, 0x92, 0xD5, 0x82, 0xD4, 0xEE, 0x81} }, /* 01 (x400) */
2255 { {0x28, 0x92, 0xFD, 0x8A, 0xFC, 0x16, 0xB1} }, /* 02 (x480) */
2256 { {0x28, 0xD4, 0x39, 0x86, 0x57, 0x29, 0x81} }, /* 03 (x600) */
2257 { {0x28, 0xD4, 0x8D, 0x9A, 0xFF, 0x29, 0xA1} }, /* 04 (x768) */
2258 { {0x28, 0x5A, 0x0D, 0x9A, 0xFF, 0x29, 0xA9} }, /* 05 (x1024) */
2259 { {0x28, 0x10, 0x1A, 0x87, 0x19, 0x29, 0x8F} } /* 06 (x1050) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002260};
2261
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002262/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2263static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11600x1200_1_V[] = {
2264 { {0xd4, 0x1F, 0x81, 0x84, 0x5D, 0xd5, 0x10} }, /* 00 (x350) */
2265 { {0x06, 0x3e, 0xb3, 0x86, 0x8F, 0x07, 0x20} }, /* 01 (x400) */
2266 { {0x56, 0xba, 0x03, 0x86, 0xDF, 0x57, 0x00} }, /* 02 (x480) */
2267 { {0xce, 0xF0, 0x7b, 0x8e, 0x57, 0xcf, 0xa0} }, /* 03 (x600) */
2268 { {0x76, 0xF5, 0x23, 0x86, 0xFF, 0x77, 0x90} }, /* 04 (x768) */
2269 { {0x76, 0x5A, 0x23, 0x86, 0xFF, 0x77, 0x89} }, /* 05 (x1024) */
2270 { {0x90, 0x10, 0x1A, 0x8E, 0x19, 0x91, 0x2F} }, /* 06 (x1050) */
2271 { {0x26, 0x11, 0xd3, 0x86, 0xaF, 0x27, 0x3f} } /* 07 (x1200) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002272};
2273
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002274/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2275static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_1_Hx75[] = {
2276 { {0x4B, 0x27, 0x8F, 0x32, 0x1B, 0x00, 0x45, 0x00} },/* ; 00 (320x) */
2277 { {0x4B, 0x27, 0x8F, 0x2B, 0x03, 0x00, 0x44, 0x00} },/* ; 01 (360x) */
2278 { {0x55, 0x31, 0x99, 0x46, 0x1D, 0x00, 0x55, 0x00} },/* ; 02 (400x) */
2279 { {0x63, 0x3F, 0x87, 0x4A, 0x93, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2280 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 04 (640x) */
2281 { {0x6F, 0x4F, 0x93, 0x54, 0x80, 0x00, 0x05, 0x00} },/* ; 05 (720x) */
2282 { {0x83, 0x63, 0x87, 0x68, 0x14, 0x00, 0x26, 0x00} },/* ; 06 (800x) */
2283 { {0x9F, 0x7F, 0x83, 0x85, 0x91, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002284};
2285
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002286/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A+CR09(5->7) */
2287static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_1_Vx75[] = {
2288 { {0x97, 0x1F, 0x60, 0x87, 0x5D, 0x83, 0x10} },/* ; 00 (x350) */
2289 { {0xB4, 0x1F, 0x92, 0x89, 0x8F, 0xB5, 0x30} },/* ; 01 (x400) */
2290 { {0xFE, 0x1F, 0xE0, 0x84, 0xDF, 0xFF, 0x10} },/* ; 02 (x480) */
2291 { {0x76, 0xF0, 0x58, 0x8C, 0x57, 0x77, 0xA0} },/* ; 03 (x600) */
2292 { {0x1E, 0xF5, 0x00, 0x83, 0xFF, 0x1F, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002293};
2294
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002295/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2296static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11024x768_2_Hx75[] = {
2297 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2298 { {0x63, 0x27, 0x87, 0x3B, 0x8C, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2299 { {0x63, 0x31, 0x87, 0x3D, 0x8E, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2300 { {0x63, 0x3F, 0x87, 0x45, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2301 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2302 { {0xA3, 0x4F, 0x87, 0x6E, 0x9F, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2303 { {0xA3, 0x63, 0x87, 0x78, 0x89, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2304 { {0xA3, 0x7F, 0x87, 0x86, 0x97, 0x00, 0x02, 0x00} } /* ; 07 (1024x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002305};
2306
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002307/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2308static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11024x768_2_Vx75[] = {
2309 { {0x24, 0xBB, 0x31, 0x87, 0x5D, 0x25, 0x30} },/* ; 00 (x350) */
2310 { {0x24, 0xBB, 0x4A, 0x80, 0x8F, 0x25, 0x30} },/* ; 01 (x400) */
2311 { {0x24, 0xBB, 0x72, 0x88, 0xDF, 0x25, 0x30} },/* ; 02 (x480) */
2312 { {0x24, 0xF1, 0xAE, 0x84, 0x57, 0x25, 0xB0} },/* ; 03 (x600) */
2313 { {0x24, 0xF5, 0x02, 0x88, 0xFF, 0x25, 0x90} } /* ; 04 (x768) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002314};
2315
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002316/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2317static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_1_Hx75[] = {
2318 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 00 (320x) */
2319 { {0x56, 0x27, 0x9A, 0x30, 0x1E, 0x00, 0x05, 0x00} },/* ; 01 (360x) */
2320 { {0x60, 0x31, 0x84, 0x3A, 0x88, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2321 { {0x6E, 0x3F, 0x92, 0x48, 0x96, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2322 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 04 (640x) */
2323 { {0x7E, 0x4F, 0x82, 0x54, 0x06, 0x00, 0x06, 0x00} },/* ; 05 (720x) */
2324 { {0x92, 0x63, 0x96, 0x68, 0x1A, 0x00, 0x06, 0x00} },/* ; 06 (800x) */
2325 { {0xAE, 0x7F, 0x92, 0x84, 0x96, 0x00, 0x02, 0x00} },/* ; 07 (1024x) */
2326 { {0xCE, 0x9F, 0x92, 0xA5, 0x17, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002327};
2328
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002329/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2330static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_1_Vx75[] = {
2331 { {0x86, 0xD1, 0xBC, 0x80, 0xBB, 0xE5, 0x00} },/* ; 00 (x350) */
2332 { {0xB8, 0x1F, 0x90, 0x84, 0x8F, 0xB9, 0x30} },/* ; 01 (x400) */
2333 { {0x08, 0x3E, 0xE0, 0x84, 0xDF, 0x09, 0x00} },/* ; 02 (x480) */
2334 { {0x80, 0xF0, 0x58, 0x8C, 0x57, 0x81, 0xA0} },/* ; 03 (x600) */
2335 { {0x28, 0xF5, 0x00, 0x84, 0xFF, 0x29, 0x90} },/* ; 04 (x768) */
2336 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
2337};
2338/* CR00,CR02,CR03,CR04,CR05,SR0B,SR0C,SR0E */
2339static struct XGI_LVDSCRT1HDataStruct XGI_LVDSCRT11280x1024_2_Hx75[] = {
2340 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 00 (320x) */
2341 { {0x7E, 0x3B, 0x9A, 0x44, 0x12, 0x00, 0x01, 0x00} },/* ; 01 (360x) */
2342 { {0x7E, 0x40, 0x84, 0x49, 0x91, 0x00, 0x01, 0x00} },/* ; 02 (400x) */
2343 { {0x7E, 0x47, 0x93, 0x50, 0x9E, 0x00, 0x01, 0x00} },/* ; 03 (512x) */
2344 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 04 (640x) */
2345 { {0xCE, 0x77, 0x8A, 0x80, 0x8E, 0x00, 0x02, 0x00} },/* ; 05 (720x) */
2346 { {0xCE, 0x81, 0x94, 0x8A, 0x98, 0x00, 0x02, 0x00} },/* ; 06 (800x) */
2347 { {0xCE, 0x8F, 0x82, 0x98, 0x06, 0x00, 0x07, 0x00} },/* ; 07 (1024x) */
2348 { {0xCE, 0x9F, 0x92, 0xA8, 0x16, 0x00, 0x07, 0x00} } /* ; 08 (1280x) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002349};
2350
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002351/* CR06,CR07,CR10,CR11,CR15,CR16,SR0A */
2352static struct XGI_LVDSCRT1VDataStruct XGI_LVDSCRT11280x1024_2_Vx75[] = {
2353 { {0x28, 0xD2, 0xAF, 0x83, 0xAE, 0xD8, 0xA1} },/* ; 00 (x350) */
2354 { {0x28, 0xD2, 0xC8, 0x8C, 0xC7, 0xF2, 0x81} },/* ; 01 (x400) */
2355 { {0x28, 0xD2, 0xF0, 0x84, 0xEF, 0x1A, 0xB1} },/* ; 02 (x480) */
2356 { {0x28, 0xDE, 0x2C, 0x8F, 0x2B, 0x56, 0x91} },/* ; 03 (x600) */
2357 { {0x28, 0xDE, 0x80, 0x83, 0x7F, 0xAA, 0x91} },/* ; 04 (x768) */
2358 { {0x28, 0x5A, 0x13, 0x87, 0xFF, 0x29, 0xA9} } /* ; 05 (x1024) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002359};
2360
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002361/*add for new UNIVGABIOS*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002362static struct XGI330_LCDDataTablStruct XGI_LCDDataTable[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002363 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCD1024x768Data */
2364 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCD1024x768Data */
2365 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCD1024x768Data */
2366 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCD1280x1024Data */
2367 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCD1280x1024Data */
2368 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCD1280x1024Data */
2369 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCD1400x1050Data */
2370 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCD1400x1050Data */
2371 {Panel_1400x1050, 0x0018, 0x0010, 8}, /* XGI_CetLCD1400x1050Data */
2372 {Panel_1600x1200, 0x0019, 0x0001, 9}, /* XGI_ExtLCD1600x1200Data */
2373 {Panel_1600x1200, 0x0019, 0x0000, 10}, /* XGI_StLCD1600x1200Data */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002374 {PanelRef60Hz, 0x0008, 0x0008, 11}, /* XGI_NoScalingData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002375 {Panel_1024x768x75, 0x0019, 0x0001, 12}, /* XGI_ExtLCD1024x768x75Data */
2376 {Panel_1024x768x75, 0x0019, 0x0000, 13}, /* XGI_StLCD1024x768x75Data */
2377 {Panel_1024x768x75, 0x0018, 0x0010, 14}, /* XGI_CetLCD1024x768x75Data */
2378 {Panel_1280x1024x75, 0x0019, 0x0001, 15}, /* XGI_ExtLCD1280x1024x75Data*/
2379 {Panel_1280x1024x75, 0x0019, 0x0000, 16}, /* XGI_StLCD1280x1024x75Data */
2380 {Panel_1280x1024x75, 0x0018, 0x0010, 17}, /* XGI_CetLCD1280x1024x75Data*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002381 {PanelRef75Hz, 0x0008, 0x0008, 18}, /* XGI_NoScalingDatax75 */
2382 {0xFF, 0x0000, 0x0000, 0} /* End of table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002383};
2384
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002385static struct XGI330_LCDDataTablStruct XGI_LCDDesDataTable[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002386 {Panel_1024x768, 0x0019, 0x0001, 0}, /* XGI_ExtLCDDes1024x768Data */
2387 {Panel_1024x768, 0x0019, 0x0000, 1}, /* XGI_StLCDDes1024x768Data */
2388 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_CetLCDDes1024x768Data */
2389 {Panel_1280x1024, 0x0019, 0x0001, 3}, /* XGI_ExtLCDDes1280x1024Data */
2390 {Panel_1280x1024, 0x0019, 0x0000, 4}, /* XGI_StLCDDes1280x1024Data */
2391 {Panel_1280x1024, 0x0018, 0x0010, 5}, /* XGI_CetLCDDes1280x1024Data */
2392 {Panel_1400x1050, 0x0019, 0x0001, 6}, /* XGI_ExtLCDDes1400x1050Data */
2393 {Panel_1400x1050, 0x0019, 0x0000, 7}, /* XGI_StLCDDes1400x1050Data */
2394 {Panel_1400x1050, 0x0418, 0x0010, 8}, /* XGI_CetLCDDes1400x1050Data */
2395 {Panel_1400x1050, 0x0418, 0x0410, 9}, /* XGI_CetLCDDes1400x1050Data2 */
2396 {Panel_1600x1200, 0x0019, 0x0001, 10}, /* XGI_ExtLCDDes1600x1200Data */
2397 {Panel_1600x1200, 0x0019, 0x0000, 11}, /* XGI_StLCDDes1600x1200Data */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002398 {PanelRef60Hz, 0x0008, 0x0008, 12}, /* XGI_NoScalingDesData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002399 {Panel_1024x768x75, 0x0019, 0x0001, 13}, /*XGI_ExtLCDDes1024x768x75Data*/
2400 {Panel_1024x768x75, 0x0019, 0x0000, 14}, /* XGI_StLCDDes1024x768x75Data*/
2401 {Panel_1024x768x75, 0x0018, 0x0010, 15}, /*XGI_CetLCDDes1024x768x75Data*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002402 /* XGI_ExtLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002403 {Panel_1280x1024x75, 0x0019, 0x0001, 16},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002404 /* XGI_StLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002405 {Panel_1280x1024x75, 0x0019, 0x0000, 17},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002406 /* XGI_CetLCDDes1280x1024x75Data */
Peter Huewe255aabd2012-02-09 21:11:44 +01002407 {Panel_1280x1024x75, 0x0018, 0x0010, 18},
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002408 {PanelRef75Hz, 0x0008, 0x0008, 19}, /* XGI_NoScalingDesDatax75 */
2409 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002410};
2411
Aaro Koskinencc5c2ae2011-08-31 21:46:08 +03002412static struct XGI330_LCDDataTablStruct xgifb_epllcd_crt1[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002413 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDSCRT11024x768_1 */
2414 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDSCRT11024x768_2 */
2415 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDSCRT11280x1024_1 */
2416 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDSCRT11280x1024_2 */
2417 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDSCRT11400x1050_1 */
2418 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDSCRT11400x1050_2 */
2419 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDSCRT11600x1200_1 */
2420 {Panel_1024x768x75, 0x0018, 0x0000, 7}, /* XGI_LVDSCRT11024x768_1x75 */
2421 {Panel_1024x768x75, 0x0018, 0x0010, 8}, /* XGI_LVDSCRT11024x768_2x75 */
2422 {Panel_1280x1024x75, 0x0018, 0x0000, 9}, /*XGI_LVDSCRT11280x1024_1x75*/
2423 {Panel_1280x1024x75, 0x0018, 0x0010, 10},/*XGI_LVDSCRT11280x1024_2x75*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002424 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002425};
2426
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002427static struct XGI330_LCDDataTablStruct XGI_EPLLCDDataPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002428 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Data_1 */
2429 {Panel_1024x768, 0x0018, 0x0010, 1}, /* XGI_LVDS1024x768Data_2 */
2430 {Panel_1280x1024, 0x0018, 0x0000, 2}, /* XGI_LVDS1280x1024Data_1 */
2431 {Panel_1280x1024, 0x0018, 0x0010, 3}, /* XGI_LVDS1280x1024Data_2 */
2432 {Panel_1400x1050, 0x0018, 0x0000, 4}, /* XGI_LVDS1400x1050Data_1 */
2433 {Panel_1400x1050, 0x0018, 0x0010, 5}, /* XGI_LVDS1400x1050Data_2 */
2434 {Panel_1600x1200, 0x0018, 0x0000, 6}, /* XGI_LVDS1600x1200Data_1 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002435 {PanelRef60Hz, 0x0008, 0x0008, 7}, /* XGI_LVDSNoScalingData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002436 {Panel_1024x768x75, 0x0018, 0x0000, 8}, /* XGI_LVDS1024x768Data_1x75 */
2437 {Panel_1024x768x75, 0x0018, 0x0010, 9}, /* XGI_LVDS1024x768Data_2x75 */
2438 {Panel_1280x1024x75, 0x0018, 0x0000, 10}, /* XGI_LVDS1280x1024Data_1x75*/
2439 {Panel_1280x1024x75, 0x0018, 0x0010, 11}, /*XGI_LVDS1280x1024Data_2x75*/
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002440 {PanelRef75Hz, 0x0008, 0x0008, 12}, /* XGI_LVDSNoScalingDatax75 */
2441 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002442};
2443
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002444static struct XGI330_LCDDataTablStruct XGI_EPLLCDDesDataPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002445 {Panel_1024x768, 0x0018, 0x0000, 0}, /* XGI_LVDS1024x768Des_1 */
2446 {Panel_1024x768, 0x0618, 0x0410, 1}, /* XGI_LVDS1024x768Des_3 */
2447 {Panel_1024x768, 0x0018, 0x0010, 2}, /* XGI_LVDS1024x768Des_2 */
2448 {Panel_1280x1024, 0x0018, 0x0000, 3}, /* XGI_LVDS1280x1024Des_1 */
2449 {Panel_1280x1024, 0x0018, 0x0010, 4}, /* XGI_LVDS1280x1024Des_2 */
2450 {Panel_1400x1050, 0x0018, 0x0000, 5}, /* XGI_LVDS1400x1050Des_1 */
2451 {Panel_1400x1050, 0x0018, 0x0010, 6}, /* XGI_LVDS1400x1050Des_2 */
2452 {Panel_1600x1200, 0x0018, 0x0000, 7}, /* XGI_LVDS1600x1200Des_1 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002453 {PanelRef60Hz, 0x0008, 0x0008, 8}, /* XGI_LVDSNoScalingDesData */
Peter Huewe255aabd2012-02-09 21:11:44 +01002454 {Panel_1024x768x75, 0x0018, 0x0000, 9}, /* XGI_LVDS1024x768Des_1x75 */
2455 {Panel_1024x768x75, 0x0618, 0x0410, 10}, /* XGI_LVDS1024x768Des_3x75 */
2456 {Panel_1024x768x75, 0x0018, 0x0010, 11}, /* XGI_LVDS1024x768Des_2x75 */
2457 {Panel_1280x1024x75, 0x0018, 0x0000, 12}, /* XGI_LVDS1280x1024Des_1x75 */
2458 {Panel_1280x1024x75, 0x0018, 0x0010, 13}, /* XGI_LVDS1280x1024Des_2x75 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002459 {PanelRef75Hz, 0x0008, 0x0008, 14}, /* XGI_LVDSNoScalingDesDatax75 */
2460 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002461};
2462
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002463static struct XGI330_LCDDataTablStruct XGI_EPLCHLCDRegPtr[] = {
Peter Huewe255aabd2012-02-09 21:11:44 +01002464 {Panel_1024x768, 0x0000, 0x0000, 0}, /* XGI_CH7017LV1024x768 */
2465 {Panel_1400x1050, 0x0000, 0x0000, 1}, /* XGI_CH7017LV1400x1050 */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002466 {0xFF, 0x0000, 0x0000, 0}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002467};
2468
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002469static struct XGI330_TVDataTablStruct XGI_TVDataTable[] = {
2470 {0x09E1, 0x0001, 0}, /* XGI_ExtPALData */
2471 {0x09E1, 0x0000, 1}, /* XGI_ExtNTSCData */
2472 {0x09E1, 0x0801, 2}, /* XGI_StPALData */
2473 {0x09E1, 0x0800, 3}, /* XGI_StNTSCData */
2474 {0x49E0, 0x0100, 4}, /* XGI_ExtHiTVData */
2475 {0x49E0, 0x4100, 5}, /* XGI_St2HiTVData */
2476 {0x49E0, 0x4900, 13}, /* XGI_St1HiTVData */
2477 {0x09E0, 0x0020, 6}, /* XGI_ExtYPbPr525iData */
2478 {0x09E0, 0x0040, 7}, /* XGI_ExtYPbPr525pData */
2479 {0x09E0, 0x0080, 8}, /* XGI_ExtYPbPr750pData */
2480 {0x09E0, 0x0820, 9}, /* XGI_StYPbPr525iData */
2481 {0x09E0, 0x0840, 10}, /* XGI_StYPbPr525pData */
2482 {0x09E0, 0x0880, 11}, /* XGI_StYPbPr750pData */
2483 {0xffff, 0x0000, 12} /* END */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002484};
2485
Aaro Koskinen0c23b6d2011-08-31 21:46:09 +03002486/* Chrontel 7017 TV List */
2487static struct XGI330_TVDataTablStruct xgifb_chrontel_tv[] = {
2488 {0x0011, 0x0000, 0}, /* UNTSC */
2489 {0x0011, 0x0010, 1}, /* ONTSC */
2490 {0x0011, 0x0001, 2}, /* UPAL */
2491 {0x0011, 0x0011, 3}, /* OPAL */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002492 {0xFFFF, 0x0000, 4}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002493};
2494
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002495static unsigned short LCDLenList[] = {
2496 LVDSCRT1Len_H,
2497 LVDSCRT1Len_V,
2498 LVDSDataLen,
2499 LCDDesDataLen,
2500 LCDDataLen,
2501 LCDDesDataLen,
2502 0,
2503 LCDDesDataLen,
2504 LCDDesDataLen,
2505 0
2506};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002507
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002508/* Dual link only */
2509static struct XGI330_LCDCapStruct XGI_LCDDLCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002510/* LCDCap1024x768 */
Peter Huewe6896b942012-02-09 21:11:46 +01002511 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002512 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2513 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002514/* LCDCap1280x1024 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002515 {Panel_1280x1024, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002516 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002517 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2518 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002519/* LCDCap1400x1050 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002520 {Panel_1400x1050, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002521 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002522 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2523 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002524/* LCDCap1600x1200 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002525 {Panel_1600x1200, XGI_LCDDualLink+DefaultLCDCap, LCDToFull,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002526 0x012, 0xC0, 0x03, VCLK162,
2527 0x43, 0x22, 0x70, 0x24, 0x02, 0x14, 0x0A, 0x02, 0x00,
2528 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002529/* LCDCap1024x768x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002530 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002531 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2532 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002533/* LCDCap1280x1024x75 */
Peter Huewea3d675c2012-02-09 21:11:47 +01002534 {Panel_1280x1024x75, XGI_LCDDualLink+DefaultLCDCap, StLCDBToA,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002535 0x012, 0x90, 0x03, VCLK135_5,
2536 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2537 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002538/* LCDCapDefault */
Peter Huewe6896b942012-02-09 21:11:46 +01002539 {0xFF, 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};
2543
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002544static struct XGI330_LCDCapStruct XGI_LCDCapList[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002545/* LCDCap1024x768 */
Peter Huewe6896b942012-02-09 21:11:46 +01002546 {Panel_1024x768, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002547 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2548 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002549/* LCDCap1280x1024 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002550 {Panel_1280x1024, DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002551 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002552 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2553 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002554/* LCDCap1400x1050 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002555 {Panel_1400x1050, DefaultLCDCap, StLCDBToA,
Peter Huewe6896b942012-02-09 21:11:46 +01002556 0x012, 0x70, 0x03, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002557 0x70, 0x44, 0xF8, 0x2F, 0x02, 0x14, 0x0A, 0x02, 0x00,
2558 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002559/* LCDCap1600x1200 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002560 {Panel_1600x1200, DefaultLCDCap, LCDToFull,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002561 0x012, 0xC0, 0x03, VCLK162,
2562 0x5A, 0x23, 0x5A, 0x23, 0x02, 0x14, 0x0A, 0x02, 0x00,
2563 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002564/* LCDCap1024x768x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002565 {Panel_1024x768x75, DefaultLCDCap, 0, 0x012, 0x60, 0, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002566 0x2B, 0x61, 0x2B, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2567 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002568/* LCDCap1280x1024x75 */
Peter Huewe255aabd2012-02-09 21:11:44 +01002569 {Panel_1280x1024x75, DefaultLCDCap, StLCDBToA,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002570 0x012, 0x90, 0x03, VCLK135_5,
2571 0x54, 0x42, 0x4A, 0x61, 0x02, 0x14, 0x0A, 0x02, 0x00,
2572 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x30, 0x10},
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002573/* LCDCapDefault */
Peter Huewe6896b942012-02-09 21:11:46 +01002574 {0xFF, DefaultLCDCap, 0, 0x012, 0x88, 0x06, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002575 0x6C, 0xC3, 0x35, 0x62, 0x02, 0x14, 0x0A, 0x02, 0x00,
2576 0x30, 0x10, 0x5A, 0x10, 0x10, 0x0A, 0xC0, 0x28, 0x10}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002577};
2578
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002579static struct XGI_Ext2Struct XGI330_RefIndex[] = {
Peter Huewe6896b942012-02-09 21:11:46 +01002580 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002581 0x00, 0x10, 0x59, 320, 200},/* 00 */
Peter Huewe6896b942012-02-09 21:11:46 +01002582 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES320x200, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002583 0x00, 0x10, 0x00, 320, 400},/* 01 */
Peter Huewe6896b942012-02-09 21:11:46 +01002584 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES320x240, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002585 0x04, 0x20, 0x50, 320, 240},/* 02 */
Peter Huewe6896b942012-02-09 21:11:46 +01002586 {Mode32Bpp + SupportAllCRT2 + SyncPP, RES400x300, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002587 0x05, 0x32, 0x51, 400, 300},/* 03 */
Peter Huewe6896b942012-02-09 21:11:46 +01002588 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES512x384,
2589 VCLK65_315, 0x06, 0x43, 0x52, 512, 384},/* 04 */
2590 {Mode32Bpp + SupportAllCRT2 + SyncPN, RES640x400, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002591 0x00, 0x14, 0x2f, 640, 400},/* 05 */
Peter Huewe6896b942012-02-09 21:11:46 +01002592 {Mode32Bpp + SupportAllCRT2 + SyncNN, RES640x480x60, VCLK25_175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002593 0x04, 0x24, 0x2e, 640, 480},/* 06 640x480x60Hz (LCD 640x480x60z) */
Peter Huewe6896b942012-02-09 21:11:46 +01002594 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x72, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002595 0x04, 0x24, 0x2e, 640, 480},/* 07 640x480x72Hz (LCD 640x480x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002596 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES640x480x75, VCLK31_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002597 0x47, 0x24, 0x2e, 640, 480},/* 08 640x480x75Hz (LCD 640x480x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002598 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x85, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002599 0x8A, 0x24, 0x2e, 640, 480},/* 09 640x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002600 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x100, VCLK43_163,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002601 0x00, 0x24, 0x2e, 640, 480},/* 0a 640x480x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002602 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x120, VCLK52_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002603 0x00, 0x24, 0x2e, 640, 480},/* 0b 640x480x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002604 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES640x480x160, VCLK72_852,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002605 0x00, 0x24, 0x2e, 640, 480},/* 0c 640x480x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002606 {Mode32Bpp + SupportRAMDAC2 + SyncNN, RES640x480x200, VCLK86_6,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002607 0x00, 0x24, 0x2e, 640, 480},/* 0d 640x480x200Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002608 {Mode32Bpp + NoSupportLCD + SyncPP, RES800x600x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002609 0x05, 0x36, 0x6a, 800, 600},/* 0e 800x600x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002610 {Mode32Bpp + NoSupportTV + SyncPP, RES800x600x60, VCLK40,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002611 0x05, 0x36, 0x6a, 800, 600},/* 0f 800x600x60Hz (LCD 800x600x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002612 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x72, VCLK50,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002613 0x48, 0x36, 0x6a, 800, 600},/* 10 800x600x72Hz (LCD 800x600x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002614 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES800x600x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002615 0x8B, 0x36, 0x6a, 800, 600},/* 11 800x600x75Hz (LCD 800x600x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002616 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x600x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002617 0x00, 0x36, 0x6a, 800, 600},/* 12 800x600x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002618 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x100, VCLK68_179,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002619 0x00, 0x36, 0x6a, 800, 600},/* 13 800x600x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002620 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x120, VCLK83_95,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002621 0x00, 0x36, 0x6a, 800, 600},/* 14 800x600x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002622 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES800x600x160, VCLK116_406,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002623 0x00, 0x36, 0x6a, 800, 600},/* 15 800x600x160Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002624 {Mode32Bpp + InterlaceMode + SyncPP, RES1024x768x43, VCLK44_9,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002625 0x00, 0x47, 0x37, 1024, 768},/* 16 1024x768x43Hz */
2626 /* 17 1024x768x60Hz (LCD 1024x768x60Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002627 {Mode32Bpp + NoSupportTV + SyncNN + SupportTV1024, RES1024x768x60,
2628 VCLK65_315, 0x06, 0x47, 0x37, 1024, 768},
2629 {Mode32Bpp + NoSupportHiVisionTV + SyncNN, RES1024x768x70, VCLK75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002630 0x49, 0x47, 0x37, 1024, 768},/* 18 1024x768x70Hz (LCD 1024x768x70Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002631 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1024x768x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002632 0x00, 0x47, 0x37, 1024, 768},/* 19 1024x768x75Hz (LCD 1024x768x75Hz) */
Peter Huewe6896b942012-02-09 21:11:46 +01002633 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x768x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002634 0x8C, 0x47, 0x37, 1024, 768},/* 1a 1024x768x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002635 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x100, VCLK113_309,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002636 0x00, 0x47, 0x37, 1024, 768},/* 1b 1024x768x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002637 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x120, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002638 0x00, 0x47, 0x37, 1024, 768},/* 1c 1024x768x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002639 {Mode32Bpp + SupportLCD + SyncPP, RES1280x960x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002640 0x08, 0x58, 0x7b, 1280, 960},/* 1d 1280x960x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002641 {Mode32Bpp + InterlaceMode + SyncPP, RES1280x1024x43, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002642 0x00, 0x58, 0x3a, 1280, 1024},/* 1e 1280x1024x43Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002643 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002644 0x07, 0x58, 0x3a, 1280, 1024},/*1f 1280x1024x60Hz (LCD 1280x1024x60Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01002645 {Mode32Bpp + NoSupportTV + SyncPP, RES1280x1024x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002646 0x00, 0x58, 0x3a, 1280, 1024},/*20 1280x1024x75Hz (LCD 1280x1024x75Hz)*/
Peter Huewe6896b942012-02-09 21:11:46 +01002647 {Mode32Bpp + SyncPP, RES1280x1024x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002648 0x00, 0x58, 0x3a, 1280, 1024},/* 21 1280x1024x85Hz */
2649 /* 22 1600x1200x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002650 {Mode32Bpp + SupportLCD + SyncPP + SupportCRT2in301C,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002651 RES1600x1200x60, VCLK162, 0x09, 0x7A, 0x3c, 1600, 1200},
Peter Huewe6896b942012-02-09 21:11:46 +01002652 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x65, VCLK175,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002653 0x00, 0x69, 0x3c, 1600, 1200},/* 23 1600x1200x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002654 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x70, VCLK189,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002655 0x00, 0x69, 0x3c, 1600, 1200},/* 24 1600x1200x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002656 {Mode32Bpp + SyncPP + SupportCRT2in301C, RES1600x1200x75, VCLK202_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002657 0x00, 0x69, 0x3c, 1600, 1200},/* 25 1600x1200x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002658 {Mode32Bpp + SyncPP, RES1600x1200x85, VCLK229_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002659 0x00, 0x69, 0x3c, 1600, 1200},/* 26 1600x1200x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002660 {Mode32Bpp + SyncPP, RES1600x1200x100, VCLK269_655,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002661 0x00, 0x69, 0x3c, 1600, 1200},/* 27 1600x1200x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002662 {Mode32Bpp + SyncPP, RES1600x1200x120, VCLK323_586,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002663 0x00, 0x69, 0x3c, 1600, 1200},/* 28 1600x1200x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002664 {Mode32Bpp + SupportLCD + SyncNP, RES1920x1440x60, VCLK234,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002665 0x00, 0x00, 0x68, 1920, 1440},/* 29 1920x1440x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002666 {Mode32Bpp + SyncPN, RES1920x1440x65, VCLK254_817,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002667 0x00, 0x00, 0x68, 1920, 1440},/* 2a 1920x1440x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002668 {Mode32Bpp + SyncPN, RES1920x1440x70, VCLK277_015,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002669 0x00, 0x00, 0x68, 1920, 1440},/* 2b 1920x1440x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002670 {Mode32Bpp + SyncPN, RES1920x1440x75, VCLK291_132,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002671 0x00, 0x00, 0x68, 1920, 1440},/* 2c 1920x1440x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002672 {Mode32Bpp + SyncPN, RES1920x1440x85, VCLK330_615,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002673 0x00, 0x00, 0x68, 1920, 1440},/* 2d 1920x1440x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002674 {Mode16Bpp + SyncPN, RES1920x1440x100, VCLK388_631,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002675 0x00, 0x00, 0x68, 1920, 1440},/* 2e 1920x1440x100Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002676 {Mode32Bpp + SupportLCD + SyncPN, RES2048x1536x60, VCLK266_952,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002677 0x00, 0x00, 0x6c, 2048, 1536},/* 2f 2048x1536x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002678 {Mode32Bpp + SyncPN, RES2048x1536x65, VCLK291_766,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002679 0x00, 0x00, 0x6c, 2048, 1536},/* 30 2048x1536x65Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002680 {Mode32Bpp + SyncPN, RES2048x1536x70, VCLK315_195,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002681 0x00, 0x00, 0x6c, 2048, 1536},/* 31 2048x1536x70Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002682 {Mode32Bpp + SyncPN, RES2048x1536x75, VCLK340_477,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002683 0x00, 0x00, 0x6c, 2048, 1536},/* 32 2048x1536x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002684 {Mode16Bpp + SyncPN, RES2048x1536x85, VCLK375_847,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002685 0x00, 0x00, 0x6c, 2048, 1536},/* 33 2048x1536x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002686 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2687 SyncPP + SupportYPbPr750p, RES800x480x60, VCLK39_77,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002688 0x08, 0x00, 0x70, 800, 480},/* 34 800x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002689 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x75, VCLK49_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002690 0x08, 0x00, 0x70, 800, 480},/* 35 800x480x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002691 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES800x480x85, VCLK56_25,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002692 0x08, 0x00, 0x70, 800, 480},/* 36 800x480x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002693 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2694 SyncPP + SupportYPbPr750p, RES1024x576x60, VCLK65_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002695 0x09, 0x00, 0x71, 1024, 576},/* 37 1024x576x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002696 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x75, VCLK78_75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002697 0x09, 0x00, 0x71, 1024, 576},/* 38 1024x576x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002698 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1024x576x85, VCLK94_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002699 0x09, 0x00, 0x71, 1024, 576},/* 39 1024x576x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002700 {Mode32Bpp + SupportHiVision + SupportRAMDAC2 +
2701 SyncPP + SupportYPbPr750p, RES1280x720x60, VCLK108_2_315,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002702 0x0A, 0x00, 0x75, 1280, 720},/* 3a 1280x720x60Hz*/
Peter Huewe6896b942012-02-09 21:11:46 +01002703 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x75, VCLK135_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002704 0x0A, 0x00, 0x75, 1280, 720},/* 3b 1280x720x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002705 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1280x720x85, VCLK157_5,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002706 0x0A, 0x00, 0x75, 1280, 720},/* 3c 1280x720x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002707 {Mode32Bpp + SupportTV + SyncNN, RES720x480x60, VCLK28_322,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002708 0x06, 0x00, 0x31, 720, 480},/* 3d 720x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002709 {Mode32Bpp + SupportTV + SyncPP, RES720x576x56, VCLK36,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002710 0x06, 0x00, 0x32, 720, 576},/* 3e 720x576x56Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002711 {Mode32Bpp + InterlaceMode + NoSupportLCD + SyncPP, RES856x480x79I,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002712 VCLK35_2, 0x00, 0x00, 0x00, 856, 480},/* 3f 856x480x79I */
Peter Huewe6896b942012-02-09 21:11:46 +01002713 {Mode32Bpp + NoSupportLCD + SyncNN, RES856x480x60, VCLK35_2,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002714 0x00, 0x00, 0x00, 856, 480},/* 40 856x480x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002715 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1280x768x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002716 VCLK79_411, 0x08, 0x48, 0x23, 1280, 768},/* 41 1280x768x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002717 {Mode32Bpp + NoSupportHiVisionTV + SyncPP, RES1400x1050x60,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002718 VCLK122_61, 0x08, 0x69, 0x26, 1400, 1050},/* 42 1400x1050x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002719 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x60, VCLK80_350,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002720 0x37, 0x00, 0x20, 1152, 864},/* 43 1152x864x60Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002721 {Mode32Bpp + SupportRAMDAC2 + SyncPP, RES1152x864x75, VCLK107_385,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002722 0x37, 0x00, 0x20, 1152, 864},/* 44 1152x864x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002723 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x75,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002724 VCLK125_999, 0x3A, 0x88, 0x7b, 1280, 960},/* 45 1280x960x75Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002725 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x85,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002726 VCLK148_5, 0x0A, 0x88, 0x7b, 1280, 960},/* 46 1280x960x85Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002727 {Mode32Bpp + SupportLCD + SupportRAMDAC2 + SyncPP, RES1280x960x120,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002728 VCLK217_325, 0x3A, 0x88, 0x7b, 1280, 960},/* 47 1280x960x120Hz */
Peter Huewe6896b942012-02-09 21:11:46 +01002729 {Mode32Bpp + SupportRAMDAC2 + SyncPN, RES1024x768x160, VCLK139_054,
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002730 0x30, 0x47, 0x37, 1024, 768},/* 48 1024x768x160Hz */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002731};
2732
Randy Dunlap89229672010-08-10 08:46:44 -07002733static unsigned char XGI330_ScreenOffset[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002734 0x14, 0x19, 0x20, 0x28, 0x32, 0x40,
2735 0x50, 0x64, 0x78, 0x80, 0x2d, 0x35,
2736 0x57, 0x48
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002737};
2738
Peter Huewefc39dcb2012-01-15 19:22:12 +01002739static struct SiS_StResInfo_S XGI330_StResInfo[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002740 {640, 400},
2741 {640, 350},
2742 {720, 400},
2743 {720, 350},
2744 {640, 480}
2745};
2746
Peter Huewefc39dcb2012-01-15 19:22:12 +01002747static struct SiS_ModeResInfo_S XGI330_ModeResInfo[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002748 { 320, 200, 8, 8},
2749 { 320, 240, 8, 8},
2750 { 320, 400, 8, 8},
2751 { 400, 300, 8, 8},
2752 { 512, 384, 8, 8},
2753 { 640, 400, 8, 16},
2754 { 640, 480, 8, 16},
2755 { 800, 600, 8, 16},
2756 {1024, 768, 8, 16},
2757 {1280, 1024, 8, 16},
2758 {1600, 1200, 8, 16},
2759 {1920, 1440, 8, 16},
2760 {2048, 1536, 8, 16},
2761 { 720, 480, 8, 16},
2762 { 720, 576, 8, 16},
2763 {1280, 960, 8, 16},
2764 { 800, 480, 8, 16},
2765 {1024, 576, 8, 16},
2766 {1280, 720, 8, 16},
2767 { 856, 480, 8, 16},
2768 {1280, 768, 8, 16},
2769 {1400, 1050, 8, 16},
2770 {1152, 864, 8, 16}
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002771};
2772
Randy Dunlap89229672010-08-10 08:46:44 -07002773static unsigned char XGI330_OutputSelect = 0x40;
2774static unsigned char XGI330_SoftSetting = 0x30;
2775static unsigned char XGI330_SR07 = 0x18;
2776
Randy Dunlap89229672010-08-10 08:46:44 -07002777static unsigned char XGI330_CR49[] = {0xaa, 0x88};
Aaro Koskinen3825b382011-08-31 21:46:04 +03002778static unsigned char XGI330_SR1F;
Randy Dunlap89229672010-08-10 08:46:44 -07002779static unsigned char XGI330_SR21 = 0xa3;
Randy Dunlap89229672010-08-10 08:46:44 -07002780static unsigned char XGI330_SR22 = 0xfb;
2781static unsigned char XGI330_SR23 = 0xf6;
2782static unsigned char XGI330_SR24 = 0xd;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002783
Aaro Koskinen3825b382011-08-31 21:46:04 +03002784static unsigned char XGI330_CRT2Data_1_2;
2785static unsigned char XGI330_CRT2Data_4_D;
2786static unsigned char XGI330_CRT2Data_4_E;
Randy Dunlap89229672010-08-10 08:46:44 -07002787static unsigned char XGI330_CRT2Data_4_10 = 0x80;
2788static unsigned short XGI330_RGBSenseData = 0xd1;
2789static unsigned short XGI330_VideoSenseData = 0xb9;
2790static unsigned short XGI330_YCSenseData = 0xb3;
2791static unsigned short XGI330_RGBSenseData2 = 0x0190; /*301b*/
2792static unsigned short XGI330_VideoSenseData2 = 0x0110;
2793static unsigned short XGI330_YCSenseData2 = 0x016B;
Aaro Koskinen3825b382011-08-31 21:46:04 +03002794static unsigned char XG40_I2CDefinition;
Randy Dunlap89229672010-08-10 08:46:44 -07002795static unsigned char XG20_CR97 = 0x10 ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002796
Aaro Koskinen3825b382011-08-31 21:46:04 +03002797static unsigned char XG21_DVOSetting;
2798static unsigned char XG21_CR2E;
2799static unsigned char XG21_CR2F;
2800static unsigned char XG21_CR46;
2801static unsigned char XG21_CR47;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002802
Randy Dunlap89229672010-08-10 08:46:44 -07002803static unsigned char XG27_CR97 = 0xC1 ;
2804static unsigned char XG27_SR36 = 0x30 ;
2805static unsigned char XG27_CR8F = 0x0C ;
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002806static unsigned char XG27_CRD0[] = {
2807 0, 0, 0, 0, 0, 0, 0, 0x82, 0x00, 0x66, 0x01, 0x00
2808};
Aaro Koskinen3825b382011-08-31 21:46:04 +03002809static unsigned char XG27_CRDE[2];
Randy Dunlap89229672010-08-10 08:46:44 -07002810static unsigned char XG27_SR40 = 0x04 ;
2811static unsigned char XG27_SR41 = 0x00 ;
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002812
Dmitry Eremin-Solenikov64903112012-03-19 21:50:09 +04002813static unsigned char Z11m_CR97 = 0x80 ;
2814
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002815static struct XGI330_VCLKDataStruct XGI_VCLKData[] = {
2816 /* SR2B,SR2C,SR2D */
2817 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2818 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2819 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2820 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2821 {0x42, 0xE2, 40}, /* 04 (40.000MHz) */
2822 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2823 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2824 {0x52, 0xE2, 49}, /* 07 (49.500MHz) */
2825 {0x53, 0xE2, 50}, /* 08 (50.000MHz) */
2826 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2827 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2828 {0x6C, 0xC3, 65}, /* 0B (65.000MHz) */
2829 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2830 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2831 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2832 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2833 {0x6E, 0x46, 76}, /* 10 (75.800MHz) */
2834 {0x2B, 0x61, 78}, /* 11 (78.750MHz) */
2835 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2836 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2837 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2838 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2839 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2840 {0x2B, 0x41, 104}, /* 17 (104.998MHz) */
2841 {0x3A, 0x23, 105}, /* 18 (105.882MHz) */
2842 {0x70, 0x44, 108}, /* 19 (107.862MHz) */
2843 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2844 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2845 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2846 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2847 {0x54, 0x42, 135}, /* 1E (135.500MHz) */
2848 {0x9C, 0x22, 139}, /* 1F (139.275MHz) */
2849 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2850 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2851 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2852 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2853 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2854 {0x62, 0x06, 202}, /* 25 (202.500MHz) */
2855 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2856 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2857 {0x34, 0x02, 253}, /* 28 (252.699MHz) */
2858 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2859 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2860 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2861 {0x70, 0x05, 270}, /* 2C (269.65567MHz) */
2862 {0x25, 0x01, 272}, /* 2D (272.04199MHz) */
2863 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2864 {0x27, 0x01, 286}, /* 2F (286.359985MHz) */
2865 {0xB3, 0x04, 291}, /* 30 (291.13266MHz) */
2866 {0xBC, 0x05, 292}, /* 31 (291.766MHz) */
2867 {0xF6, 0x0A, 310}, /* 32 (309.789459MHz) */
2868 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2869 {0xF0, 0x09, 324}, /* 34 (323.586792MHz) */
2870 {0xFE, 0x0A, 331}, /* 35 (330.615631MHz) */
2871 {0xF3, 0x09, 332}, /* 36 (332.177612MHz) */
2872 {0x5E, 0x03, 340}, /* 37 (340.477MHz) */
2873 {0xE8, 0x07, 376}, /* 38 (375.847504MHz) */
2874 {0xDE, 0x06, 389}, /* 39 (388.631439MHz) */
2875 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2876 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2877 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2878 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2879 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2880 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2881 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2882 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2883 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2884 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2885 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2886 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2887 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2888 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2889 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2890 {0xBF, 0xC8, 35}, /* 49 (35.2MHz) */
2891 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2892 {0x2C, 0x61, 80}, /* 4B (80.350Mhz) */
2893 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002894 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2895 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2896 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2897 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2898 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2899 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2900 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2901 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2902 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2903 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2904 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2905 {0xFF, 0x00, 0} /* End mark */
2906};
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002907
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002908static struct XGI330_VCLKDataStruct XGI_VBVCLKData[] = {
2909 {0x1B, 0xE1, 25}, /* 00 (25.175MHz) */
2910 {0x4E, 0xE4, 28}, /* 01 (28.322MHz) */
2911 {0x57, 0xE4, 31}, /* 02 (31.500MHz) */
2912 {0xC3, 0xC8, 36}, /* 03 (36.000MHz) */
2913 {0x42, 0x47, 40}, /* 04 (40.000MHz) */
2914 {0xFE, 0xCD, 43}, /* 05 (43.163MHz) */
2915 {0x5D, 0xC4, 44}, /* 06 (44.900MHz) */
2916 {0x52, 0x47, 49}, /* 07 (49.500MHz) */
2917 {0x53, 0x47, 50}, /* 08 (50.000MHz) */
2918 {0x74, 0x67, 52}, /* 09 (52.406MHz) */
2919 {0x6D, 0x66, 56}, /* 0A (56.250MHz) */
2920 {0x35, 0x62, 65}, /* 0B (65.000MHz) */
2921 {0x46, 0x44, 67}, /* 0C (67.765MHz) */
2922 {0xB1, 0x46, 68}, /* 0D (68.179MHz) */
2923 {0xD3, 0x4A, 72}, /* 0E (72.852MHz) */
2924 {0x29, 0x61, 75}, /* 0F (75.000MHz) */
2925 {0x6D, 0x46, 75}, /* 10 (75.800MHz) */
2926 {0x41, 0x43, 78}, /* 11 (78.750MHz) */
2927 {0x31, 0x42, 79}, /* 12 (79.411MHz) */
2928 {0xAB, 0x44, 83}, /* 13 (83.950MHz) */
2929 {0x46, 0x25, 84}, /* 14 (84.800MHz) */
2930 {0x78, 0x29, 86}, /* 15 (86.600MHz) */
2931 {0x62, 0x44, 94}, /* 16 (94.500MHz) */
2932 {0x2B, 0x22, 104}, /* 17 (104.998MHz) */
2933 {0x49, 0x24, 105}, /* 18 (105.882MHz) */
2934 {0xF8, 0x2F, 108}, /* 19 (108.279MHz) */
2935 {0x3C, 0x23, 109}, /* 1A (109.175MHz) */
2936 {0x5E, 0x43, 113}, /* 1B (113.309MHz) */
2937 {0xBC, 0x44, 116}, /* 1C (116.406MHz) */
2938 {0xE0, 0x46, 132}, /* 1D (132.258MHz) */
2939 {0xD4, 0x28, 135}, /* 1E (135.220MHz) */
2940 {0xEA, 0x2A, 139}, /* 1F (139.275MHz) */
2941 {0x41, 0x22, 157}, /* 20 (157.500MHz) */
2942 {0x70, 0x24, 162}, /* 21 (161.793MHz) */
2943 {0x30, 0x21, 175}, /* 22 (175.000MHz) */
2944 {0x4E, 0x22, 189}, /* 23 (188.520MHz) */
2945 {0xDE, 0x26, 194}, /* 24 (194.400MHz) */
2946 {0x70, 0x07, 202}, /* 25 (202.500MHz) */
2947 {0x3F, 0x03, 229}, /* 26 (229.500MHz) */
2948 {0xB8, 0x06, 234}, /* 27 (233.178MHz) */
2949 {0x34, 0x02, 253}, /* 28 (252.699997 MHz) */
2950 {0x58, 0x04, 255}, /* 29 (254.817MHz) */
2951 {0x24, 0x01, 265}, /* 2A (265.728MHz) */
2952 {0x9B, 0x02, 267}, /* 2B (266.952MHz) */
2953 {0x70, 0x05, 270}, /* 2C (269.65567 MHz) */
2954 {0x25, 0x01, 272}, /* 2D (272.041992 MHz) */
2955 {0x9C, 0x02, 277}, /* 2E (277.015MHz) */
2956 {0x27, 0x01, 286}, /* 2F (286.359985 MHz) */
2957 {0x3C, 0x02, 291}, /* 30 (291.132660 MHz) */
2958 {0xEF, 0x0A, 292}, /* 31 (291.766MHz) */
2959 {0xF6, 0x0A, 310}, /* 32 (309.789459 MHz) */
2960 {0x95, 0x01, 315}, /* 33 (315.195MHz) */
2961 {0xF0, 0x09, 324}, /* 34 (323.586792 MHz) */
2962 {0xFE, 0x0A, 331}, /* 35 (330.615631 MHz) */
2963 {0xF3, 0x09, 332}, /* 36 (332.177612 MHz) */
2964 {0xEA, 0x08, 340}, /* 37 (340.477MHz) */
2965 {0xE8, 0x07, 376}, /* 38 (375.847504 MHz) */
2966 {0xDE, 0x06, 389}, /* 39 (388.631439 MHz) */
2967 {0x52, 0x2A, 54}, /* 3A (54.000MHz) */
2968 {0x52, 0x6A, 27}, /* 3B (27.000MHz) */
2969 {0x62, 0x24, 70}, /* 3C (70.874991MHz) */
2970 {0x62, 0x64, 70}, /* 3D (70.1048912MHz) */
2971 {0xA8, 0x4C, 30}, /* 3E (30.1048912MHz) */
2972 {0x20, 0x26, 33}, /* 3F (33.7499957MHz) */
2973 {0x31, 0xc2, 39}, /* 40 (39.77MHz) */
2974 {0x11, 0x21, 30}, /* 41 (30MHz) }// NTSC 1024X768 */
2975 {0x2E, 0x48, 25}, /* 42 (25.175MHz) }// ScaleLCD */
2976 {0x24, 0x46, 25}, /* 43 (25.175MHz) */
2977 {0x26, 0x64, 28}, /* 44 (28.322MHz) */
2978 {0x37, 0x64, 40}, /* 45 (40.000MHz) */
2979 {0xA1, 0x42, 108}, /* 46 (95.000MHz) }// QVGA */
2980 {0x37, 0x61, 100}, /* 47 (100.00MHz) */
2981 {0x78, 0x27, 108}, /* 48 (108.200MHz) */
2982 {0xBF, 0xC8, 35 }, /* 49 (35.2MHz) */
2983 {0x66, 0x43, 123}, /* 4A (122.61Mhz) */
2984 {0x2C, 0x61, 80 }, /* 4B (80.350Mhz) */
2985 {0x3B, 0x61, 108}, /* 4C (107.385Mhz) */
Kenji Toyama3ecf3522011-04-24 11:37:17 +08002986 {0x69, 0x61, 191}, /* 4D (190.96MHz ) */
2987 {0x4F, 0x22, 192}, /* 4E (192.069MHz) */
2988 {0x28, 0x26, 322}, /* 4F (322.273MHz) */
2989 {0x5C, 0x6B, 27}, /* 50 (27.74HMz) */
2990 {0x57, 0x24, 126}, /* 51 (125.999MHz) */
2991 {0x5C, 0x42, 148}, /* 52 (148.5MHz) */
2992 {0x42, 0x61, 120}, /* 53 (120.839MHz) */
2993 {0x62, 0x61, 178}, /* 54 (178.992MHz) */
2994 {0x59, 0x22, 217}, /* 55 (217.325MHz) */
2995 {0x29, 0x01, 300}, /* 56 (299.505Mhz) */
2996 {0x52, 0x63, 74}, /* 57 (74.25MHz) */
2997 {0xFF, 0x00, 0} /* End mark */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02002998};
2999
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003000static unsigned char XGI301TVDelayList[] = {
3001 0x22, /* ; 0 ExtNTSCDelay */
3002 0x22, /* ; 1 StNTSCDelay */
3003 0x22, /* ; 2 ExtPALDelay */
3004 0x22, /* ; 3 StPALDelay */
3005 0x88, /* ; 4 ExtHiTVDelay(1080i) */
3006 0xBB, /* ; 5 StHiTVDelay(1080i) */
3007 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3008 0x22, /* ; 7 StYPbPrDealy(525i) */
3009 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3010 0x22, /* ; 9 StYPbPrDealy(525p) */
3011 0x22, /* ; A ExtYPbPrDelay(750p) */
3012 0x22 /* B StYPbPrDealy(750p) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003013};
3014
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003015static unsigned char XGI301TVDelayList2[] = {
3016 0x22, /* ; 0 ExtNTSCDelay */
3017 0x22, /* ; 1 StNTSCDelay */
3018 0x22, /* ; 2 ExtPALDelay */
3019 0x22, /* ; 3 StPALDelay */
3020 0x22, /* ; 4 ExtHiTVDelay */
3021 0x22, /* ; 5 StHiTVDelay */
3022 0x22, /* ; 6 ExtYPbPrDelay(525i) */
3023 0x22, /* ; 7 StYPbPrDealy(525i) */
3024 0x22, /* ; 8 ExtYPbPrDelay(525p) */
3025 0x22, /* ; 9 StYPbPrDealy(525p) */
3026 0x22, /* ; A ExtYPbPrDelay(750p) */
3027 0x22 /* ; B StYPbPrDealy(750p) */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003028};
3029
3030
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003031static unsigned char TVAntiFlickList[] = {/* NTSCAntiFlicker */
3032 0x04, /* ; 0 Adaptive */
3033 0x00, /* ; 1 new anti-flicker ? */
3034
3035 0x04, /* ; 0 Adaptive */
3036 0x08, /* ; 1 new anti-flicker ? */
3037
3038 0x04, /* ; 0 ? */
3039 0x00 /* ; 1 new anti-flicker ? */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003040};
3041
3042
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003043static unsigned char TVEdgeList[] = {
3044 0x00, /* ; 0 NTSC No Edge enhance */
3045 0x04, /* ; 1 NTSC Adaptive Edge enhance */
3046 0x00, /* ; 0 PAL No Edge enhance */
3047 0x04, /* ; 1 PAL Adaptive Edge enhance */
3048 0x00, /* ; 0 HiTV */
3049 0x00 /* ; 1 HiTV */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003050};
3051
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003052static unsigned long TVPhaseList[] = {
3053 0x08BAED21, /* ; 0 NTSC phase */
3054 0x00E3052A, /* ; 1 PAL phase */
3055 0x9B2EE421, /* ; 2 PAL-M phase */
3056 0xBA3EF421, /* ; 3 PAL-N phase */
3057 0xA7A28B1E, /* ; 4 NTSC 1024x768 */
3058 0xE00A831E, /* ; 5 PAL-M 1024x768 */
3059 0x00000000, /* ; 6 reserved */
3060 0x00000000, /* ; 7 reserved */
3061 0xD67BF021, /* ; 8 NTSC phase */
3062 0xE986092A, /* ; 9 PAL phase */
3063 0xA4EFE621, /* ; A PAL-M phase */
3064 0x4694F621, /* ; B PAL-N phase */
3065 0x8BDE711C, /* ; C NTSC 1024x768 */
3066 0xE00A831E /* ; D PAL-M 1024x768 */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003067};
3068
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003069static unsigned char NTSCYFilter1[] = {
3070 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3071 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3072 0xEB, 0x04, 0x25, 0x18, /* 2 : 640x text mode */
3073 0xF1, 0x04, 0x1F, 0x18, /* 3 : 720x text mode */
3074 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3075 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3076 0xEB, 0x15, 0x25, 0xF6 /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003077};
3078
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003079static unsigned char PALYFilter1[] = {
3080 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3081 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3082 0xF1, 0xF7, 0x1F, 0x32, /* 2 : 640x text mode */
3083 0xF3, 0x00, 0x1D, 0x20, /* 3 : 720x text mode */
3084 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3085 0xF1, 0xF7, 0x1F, 0x32, /* 5 : 640x gra. mode */
3086 0xFC, 0xFB, 0x14, 0x2A /* 6 : 800x gra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003087};
3088
Aaro Koskinen2555e942011-08-31 21:46:06 +03003089static unsigned char xgifb_palmn_yfilter1[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003090 0x00, 0xF4, 0x10, 0x38, /* 0 : 320x text mode */
3091 0x00, 0xF4, 0x10, 0x38, /* 1 : 360x text mode */
3092 0xEB, 0x04, 0x10, 0x18, /* 2 : 640x text mode */
3093 0xF7, 0x06, 0x19, 0x14, /* 3 : 720x text mode */
3094 0x00, 0xF4, 0x10, 0x38, /* 4 : 320x gra. mode */
3095 0xEB, 0x04, 0x25, 0x18, /* 5 : 640x gra. mode */
3096 0xEB, 0x15, 0x25, 0xF6, /* 6 : 800x gra. mode */
3097 0xFF, 0xFF, 0xFF, 0xFF /* End of Table */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003098};
3099
Aaro Koskinen80f86f82011-08-31 21:46:05 +03003100static unsigned char xgifb_yfilter2[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003101 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 0 : 320x text mode */
3102 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 1 : 360x text mode */
3103 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 2 : 640x text mode */
3104 0x01, 0x02, 0xFE, 0xF7, 0x03, 0x27, 0x3C, /* 3 : 720x text mode */
3105 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 4 : 320x gra. mode */
3106 0xFF, 0x03, 0x02, 0xF6, 0xFC, 0x27, 0x46, /* 5 : 640x gra. mode */
3107 0x01, 0x01, 0xFC, 0xF8, 0x08, 0x26, 0x38, /* 6 : 800x gra. mode */
3108 0xFF, 0xFF, 0xFC, 0x00, 0x0F, 0x22, 0x28 /* 7 : 1024xgra. mode */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003109};
3110
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003111static unsigned char XGI_NTSC1024AdjTime[] = {
3112 0xa7, 0x07, 0xf2, 0x6e, 0x17, 0x8b, 0x73, 0x53,
3113 0x13, 0x40, 0x34, 0xF4, 0x63, 0xBB, 0xCC, 0x7A,
3114 0x58, 0xe4, 0x73, 0xd0, 0x13
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003115};
3116
Aaro Koskinen11fbdcd2011-08-31 21:46:10 +03003117static struct XGI301C_Tap4TimingStruct xgifb_tap4_timing[] = {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003118 {0, {
3119 0x00, 0x20, 0x00, 0x00, 0x7F, 0x20, 0x02, 0x7F, /* ; C0-C7 */
3120 0x7D, 0x20, 0x04, 0x7F, 0x7D, 0x1F, 0x06, 0x7E, /* ; C8-CF */
3121 0x7C, 0x1D, 0x09, 0x7E, 0x7C, 0x1B, 0x0B, 0x7E, /* ; D0-D7 */
3122 0x7C, 0x19, 0x0E, 0x7D, 0x7C, 0x17, 0x11, 0x7C, /* ; D8-DF */
3123 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x11, 0x17, 0x7C, /* ; E0-E7 */
3124 0x7D, 0x0E, 0x19, 0x7C, 0x7E, 0x0B, 0x1B, 0x7C, /* ; EA-EF */
3125 0x7E, 0x09, 0x1D, 0x7C, 0x7F, 0x06, 0x1F, 0x7C, /* ; F0-F7 */
3126 0x7F, 0x04, 0x20, 0x7D, 0x00, 0x02, 0x20, 0x7E /* ; F8-FF */
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003127 }
3128 }
3129};
3130
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003131static struct XGI301C_Tap4TimingStruct PALTap4Timing[] = {
3132 {600, {
3133 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3134 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3135 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3136 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3137 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3138 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3139 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3140 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* ; F8-FF */
3141 }
3142 },
3143 {768, {
3144 0x08, 0x12, 0x08, 0x7E, 0x07, 0x12, 0x09, 0x7E, /* ; C0-C7 */
3145 0x06, 0x12, 0x0A, 0x7E, 0x05, 0x11, 0x0B, 0x7F, /* ; C8-CF */
3146 0x04, 0x11, 0x0C, 0x7F, 0x03, 0x11, 0x0C, 0x00, /* ; D0-D7 */
3147 0x03, 0x10, 0x0D, 0x00, 0x02, 0x0F, 0x0E, 0x01, /* ; D8-DF */
3148 0x01, 0x0F, 0x0F, 0x01, 0x01, 0x0E, 0x0F, 0x02, /* ; E0-E7 */
3149 0x00, 0x0D, 0x10, 0x03, 0x7F, 0x0C, 0x11, 0x04, /* ; EA-EF */
3150 0x7F, 0x0C, 0x11, 0x04, 0x7F, 0x0B, 0x11, 0x05, /* ; F0-F7 */
3151 0x7E, 0x0A, 0x12, 0x06, 0x7E, 0x09, 0x12, 0x07 /* ; F8-FF */
3152 }
3153 },
3154 {0xFFFF, {
3155 0x04, 0x1A, 0x04, 0x7E, 0x02, 0x1B, 0x05, 0x7E, /* ; C0-C7 */
3156 0x01, 0x1A, 0x07, 0x7E, 0x00, 0x1A, 0x09, 0x7D, /* ; C8-CF */
3157 0x7F, 0x19, 0x0B, 0x7D, 0x7E, 0x18, 0x0D, 0x7D, /* ; D0-D7 */
3158 0x7D, 0x17, 0x10, 0x7C, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3159 0x7C, 0x14, 0x14, 0x7C, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3160 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0D, 0x18, 0x7F, /* ; EA-EF */
3161 0x7D, 0x0B, 0x19, 0x7F, 0x7D, 0x09, 0x1A, 0x00, /* ; F0-F7 */
3162 0x7D, 0x07, 0x1A, 0x02, 0x7E, 0x05, 0x1B, 0x02 /* ; F8-FF */
3163 }
3164 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003165};
3166
Aaro Koskinen11fbdcd2011-08-31 21:46:10 +03003167static struct XGI301C_Tap4TimingStruct xgifb_ntsc_525_tap4_timing[] = {
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003168 {480, {
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003169 0x04, 0x1A, 0x04, 0x7E, 0x03, 0x1A, 0x06, 0x7D, /* ; C0-C7 */
3170 0x01, 0x1A, 0x08, 0x7D, 0x00, 0x19, 0x0A, 0x7D, /* ; C8-CF */
3171 0x7F, 0x19, 0x0C, 0x7C, 0x7E, 0x18, 0x0E, 0x7C, /* ; D0-D7 */
3172 0x7E, 0x17, 0x10, 0x7B, 0x7D, 0x15, 0x12, 0x7C, /* ; D8-DF */
3173 0x7D, 0x13, 0x13, 0x7D, 0x7C, 0x12, 0x15, 0x7D, /* ; E0-E7 */
3174 0x7C, 0x10, 0x17, 0x7D, 0x7C, 0x0E, 0x18, 0x7E, /* ; EA-EF */
3175 0x7D, 0x0C, 0x19, 0x7E, 0x7D, 0x0A, 0x19, 0x00, /* ; F0-F7 */
3176 0x7D, 0x08, 0x1A, 0x01, 0x7E, 0x06, 0x1A, 0x02 /* ; F8-FF */
3177 }
3178 },
3179 {600, {
3180 0x07, 0x14, 0x07, 0x7E, 0x06, 0x14, 0x09, 0x7D, /* ; C0-C7 */
3181 0x05, 0x14, 0x0A, 0x7D, 0x04, 0x13, 0x0B, 0x7E, /* ; C8-CF */
3182 0x03, 0x13, 0x0C, 0x7E, 0x02, 0x12, 0x0D, 0x7F, /* ; D0-D7 */
3183 0x01, 0x12, 0x0E, 0x7F, 0x01, 0x11, 0x0F, 0x7F, /* ; D8-DF */
3184 0x01, 0x10, 0x10, 0x00, 0x7F, 0x0F, 0x11, 0x01, /* ; E0-E7 */
3185 0x7F, 0x0E, 0x12, 0x01, 0x7E, 0x0D, 0x12, 0x03, /* ; EA-EF */
3186 0x7E, 0x0C, 0x13, 0x03, 0x7E, 0x0B, 0x13, 0x04, /* ; F0-F7 */
3187 0x7E, 0x0A, 0x14, 0x04, 0x7D, 0x09, 0x14, 0x06 /* ; F8-FF */
3188 }
3189 },
3190 {0xFFFF, {
3191 0x09, 0x0F, 0x09, 0x7F, 0x08, 0x0F, 0x09, 0x00, /* ; C0-C7 */
3192 0x07, 0x0F, 0x0A, 0x00, 0x06, 0x0F, 0x0A, 0x01, /* ; C8-CF */
3193 0x06, 0x0E, 0x0B, 0x01, 0x05, 0x0E, 0x0B, 0x02, /* ; D0-D7 */
3194 0x04, 0x0E, 0x0C, 0x02, 0x04, 0x0D, 0x0C, 0x03, /* ; D8-DF */
3195 0x03, 0x0D, 0x0D, 0x03, 0x02, 0x0C, 0x0D, 0x05, /* ; E0-E7 */
3196 0x02, 0x0C, 0x0E, 0x04, 0x01, 0x0B, 0x0E, 0x06, /* ; EA-EF */
3197 0x01, 0x0B, 0x0E, 0x06, 0x00, 0x0A, 0x0F, 0x07, /* ; F0-F7 */
3198 0x00, 0x0A, 0x0F, 0x07, 0x00, 0x09, 0x0F, 0x08 /* ; F8-FF */
3199 }
3200 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003201};
3202
Kenji Toyama3ecf3522011-04-24 11:37:17 +08003203static struct XGI301C_Tap4TimingStruct YPbPr750pTap4Timing[] = {
3204 {0xFFFF, {
3205 0x05, 0x19, 0x05, 0x7D, 0x03, 0x19, 0x06, 0x7E, /* ; C0-C7 */
3206 0x02, 0x19, 0x08, 0x7D, 0x01, 0x18, 0x0A, 0x7D, /* ; C8-CF */
3207 0x00, 0x18, 0x0C, 0x7C, 0x7F, 0x17, 0x0E, 0x7C, /* ; D0-D7 */
3208 0x7E, 0x16, 0x0F, 0x7D, 0x7E, 0x14, 0x11, 0x7D, /* ; D8-DF */
3209 0x7D, 0x13, 0x13, 0x7D, 0x7D, 0x11, 0x14, 0x7E, /* ; E0-E7 */
3210 0x7D, 0x0F, 0x16, 0x7E, 0x7D, 0x0E, 0x17, 0x7E, /* ; EA-EF */
3211 0x7D, 0x0C, 0x18, 0x7F, 0x7D, 0x0A, 0x18, 0x01, /* ; F0-F7 */
3212 0x7D, 0x08, 0x19, 0x02, 0x7D, 0x06, 0x19, 0x04 /* F8-FF */
3213 }
3214 }
apatard@mandriva.comd7636e02010-05-19 10:44:14 +02003215};