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