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