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