1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54#ifndef _SISUSB_INIT_H_
55#define _SISUSB_INIT_H_
56
57
58#define ModeText 0x00
59#define ModeCGA 0x01
60#define ModeEGA 0x02
61#define ModeVGA 0x03
62#define Mode15Bpp 0x04
63#define Mode16Bpp 0x05
64#define Mode24Bpp 0x06
65#define Mode32Bpp 0x07
66
67#define ModeTypeMask 0x07
68#define IsTextMode 0x07
69
70#define DACInfoFlag 0x0018
71#define MemoryInfoFlag 0x01E0
72#define MemorySizeShift 5
73
74
75#define Charx8Dot 0x0200
76#define LineCompareOff 0x0400
77#define CRT2Mode 0x0800
78#define HalfDCLK 0x1000
79#define NoSupportSimuTV 0x2000
80#define NoSupportLCDScale 0x4000
81#define DoubleScanMode 0x8000
82
83
84#define SupportTV 0x0008
85#define SupportTV1024 0x0800
86#define SupportCHTV 0x0800
87#define Support64048060Hz 0x0800
88#define SupportHiVision 0x0010
89#define SupportYPbPr750p 0x1000
90#define SupportLCD 0x0020
91#define SupportRAMDAC2 0x0040
92#define SupportRAMDAC2_135 0x0100
93#define SupportRAMDAC2_162 0x0200
94#define SupportRAMDAC2_202 0x0400
95#define InterlaceMode 0x0080
96#define SyncPP 0x0000
97#define SyncPN 0x4000
98#define SyncNP 0x8000
99#define SyncNN 0xc000
100
101
102#define ProgrammingCRT2 0x0001
103#define LowModeTests 0x0002
104#define LCDVESATiming 0x0008
105#define EnableLVDSDDA 0x0010
106#define SetDispDevSwitchFlag 0x0020
107#define CheckWinDos 0x0040
108#define SetDOSMode 0x0080
109
110
111#define SIS_RI_320x200 0
112#define SIS_RI_320x240 1
113#define SIS_RI_320x400 2
114#define SIS_RI_400x300 3
115#define SIS_RI_512x384 4
116#define SIS_RI_640x400 5
117#define SIS_RI_640x480 6
118#define SIS_RI_800x600 7
119#define SIS_RI_1024x768 8
120#define SIS_RI_1280x1024 9
121#define SIS_RI_1600x1200 10
122#define SIS_RI_1920x1440 11
123#define SIS_RI_2048x1536 12
124#define SIS_RI_720x480 13
125#define SIS_RI_720x576 14
126#define SIS_RI_1280x960 15
127#define SIS_RI_800x480 16
128#define SIS_RI_1024x576 17
129#define SIS_RI_1280x720 18
130#define SIS_RI_856x480 19
131#define SIS_RI_1280x768 20
132#define SIS_RI_1400x1050 21
133#define SIS_RI_1152x864 22
134#define SIS_RI_848x480 23
135#define SIS_RI_1360x768 24
136#define SIS_RI_1024x600 25
137#define SIS_RI_1152x768 26
138#define SIS_RI_768x576 27
139#define SIS_RI_1360x1024 28
140#define SIS_RI_1680x1050 29
141#define SIS_RI_1280x800 30
142#define SIS_RI_1920x1080 31
143#define SIS_RI_960x540 32
144#define SIS_RI_960x600 33
145
146#define SIS_VIDEO_CAPTURE 0x00 - 0x30
147#define SIS_VIDEO_PLAYBACK 0x02 - 0x30
148#define SIS_CRT2_PORT_04 0x04 - 0x30
149
150
151static const unsigned short ModeIndex_320x200[] = { 0x59, 0x41, 0x00, 0x4f };
152static const unsigned short ModeIndex_320x240[] = { 0x50, 0x56, 0x00, 0x53 };
153static const unsigned short ModeIndex_400x300[] = { 0x51, 0x57, 0x00, 0x54 };
154static const unsigned short ModeIndex_512x384[] = { 0x52, 0x58, 0x00, 0x5c };
155static const unsigned short ModeIndex_640x400[] = { 0x2f, 0x5d, 0x00, 0x5e };
156static const unsigned short ModeIndex_640x480[] = { 0x2e, 0x44, 0x00, 0x62 };
157static const unsigned short ModeIndex_720x480[] = { 0x31, 0x33, 0x00, 0x35 };
158static const unsigned short ModeIndex_720x576[] = { 0x32, 0x34, 0x00, 0x36 };
159static const unsigned short ModeIndex_768x576[] = { 0x5f, 0x60, 0x00, 0x61 };
160static const unsigned short ModeIndex_800x480[] = { 0x70, 0x7a, 0x00, 0x76 };
161static const unsigned short ModeIndex_800x600[] = { 0x30, 0x47, 0x00, 0x63 };
162static const unsigned short ModeIndex_848x480[] = { 0x39, 0x3b, 0x00, 0x3e };
163static const unsigned short ModeIndex_856x480[] = { 0x3f, 0x42, 0x00, 0x45 };
164static const unsigned short ModeIndex_960x540[] = { 0x1d, 0x1e, 0x00, 0x1f };
165static const unsigned short ModeIndex_960x600[] = { 0x20, 0x21, 0x00, 0x22 };
166static const unsigned short ModeIndex_1024x768[] = { 0x38, 0x4a, 0x00, 0x64 };
167static const unsigned short ModeIndex_1024x576[] = { 0x71, 0x74, 0x00, 0x77 };
168static const unsigned short ModeIndex_1152x864[] = { 0x29, 0x2a, 0x00, 0x2b };
169static const unsigned short ModeIndex_1280x720[] = { 0x79, 0x75, 0x00, 0x78 };
170static const unsigned short ModeIndex_1280x768[] = { 0x23, 0x24, 0x00, 0x25 };
171static const unsigned short ModeIndex_1280x1024[] = { 0x3a, 0x4d, 0x00, 0x65 };
172
173static const unsigned char SiS_MDA_DAC[] = {
174 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
175 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
176 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
177 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
178 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
179 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
180 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
181 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F
182};
183
184static const unsigned char SiS_CGA_DAC[] = {
185 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
186 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
187 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
188 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
189 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
190 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
191 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
192 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
193};
194
195static const unsigned char SiS_EGA_DAC[] = {
196 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x05, 0x15,
197 0x20, 0x30, 0x24, 0x34, 0x21, 0x31, 0x25, 0x35,
198 0x08, 0x18, 0x0C, 0x1C, 0x09, 0x19, 0x0D, 0x1D,
199 0x28, 0x38, 0x2C, 0x3C, 0x29, 0x39, 0x2D, 0x3D,
200 0x02, 0x12, 0x06, 0x16, 0x03, 0x13, 0x07, 0x17,
201 0x22, 0x32, 0x26, 0x36, 0x23, 0x33, 0x27, 0x37,
202 0x0A, 0x1A, 0x0E, 0x1E, 0x0B, 0x1B, 0x0F, 0x1F,
203 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
204};
205
206static const unsigned char SiS_VGA_DAC[] = {
207 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
208 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
209 0x00, 0x05, 0x08, 0x0B, 0x0E, 0x11, 0x14, 0x18,
210 0x1C, 0x20, 0x24, 0x28, 0x2D, 0x32, 0x38, 0x3F,
211 0x00, 0x10, 0x1F, 0x2F, 0x3F, 0x1F, 0x27, 0x2F,
212 0x37, 0x3F, 0x2D, 0x31, 0x36, 0x3A, 0x3F, 0x00,
213 0x07, 0x0E, 0x15, 0x1C, 0x0E, 0x11, 0x15, 0x18,
214 0x1C, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x04,
215 0x08, 0x0C, 0x10, 0x08, 0x0A, 0x0C, 0x0E, 0x10,
216 0x0B, 0x0C, 0x0D, 0x0F, 0x10
217};
218
219static const struct SiS_St SiSUSB_SModeIDTable[] = {
220 {0x03, 0x0010, 0x18, 0x02, 0x02, 0x00, 0x01, 0x03, 0x40},
221 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
222};
223
224static const struct SiS_StResInfo_S SiSUSB_StResInfo[] = {
225 {640, 400},
226 {640, 350},
227 {720, 400},
228 {720, 350},
229 {640, 480}
230};
231
232static const struct SiS_ModeResInfo SiSUSB_ModeResInfo[] = {
233 {320, 200, 8, 8},
234 {320, 240, 8, 8},
235 {320, 400, 8, 8},
236 {400, 300, 8, 8},
237 {512, 384, 8, 8},
238 {640, 400, 8, 16},
239 {640, 480, 8, 16},
240 {800, 600, 8, 16},
241 {1024, 768, 8, 16},
242 {1280, 1024, 8, 16},
243 {1600, 1200, 8, 16},
244 {1920, 1440, 8, 16},
245 {2048, 1536, 8, 16},
246 {720, 480, 8, 16},
247 {720, 576, 8, 16},
248 {1280, 960, 8, 16},
249 {800, 480, 8, 16},
250 {1024, 576, 8, 16},
251 {1280, 720, 8, 16},
252 {856, 480, 8, 16},
253 {1280, 768, 8, 16},
254 {1400, 1050, 8, 16},
255 {1152, 864, 8, 16},
256 {848, 480, 8, 16},
257 {1360, 768, 8, 16},
258 {1024, 600, 8, 16},
259 {1152, 768, 8, 16},
260 {768, 576, 8, 16},
261 {1360, 1024, 8, 16},
262 {1680, 1050, 8, 16},
263 {1280, 800, 8, 16},
264 {1920, 1080, 8, 16},
265 {960, 540, 8, 16},
266 {960, 600, 8, 16}
267};
268
269static const struct SiS_StandTable SiSUSB_StandTable[] = {
270
271 {
272 0x50, 0x18, 0x10, 0x1000,
273 {0x00, 0x03, 0x00, 0x02},
274 0x67,
275 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
276 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
277 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
278 0xff},
279 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
280 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
281 0x0c, 0x00, 0x0f, 0x08},
282 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00, 0xff}
283 },
284
285 {
286 0x00, 0x00, 0x00, 0x0000,
287 {0x01, 0x0f, 0x00, 0x0e},
288 0x23,
289 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
290 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
291 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
292 0xff},
293 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
294 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
295 0x01, 0x00, 0x00, 0x00},
296 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff}
297 }
298};
299
300static const struct SiS_Ext SiSUSB_EModeIDTable[] = {
301 {0x2e, 0x0a1b, 0x0101, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},
302 {0x2f, 0x0a1b, 0x0100, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x05, 0x10, 0},
303 {0x30, 0x2a1b, 0x0103, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},
304 {0x31, 0x4a1b, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},
305 {0x32, 0x4a1b, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},
306 {0x33, 0x4a1d, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},
307 {0x34, 0x6a1d, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},
308 {0x35, 0x4a1f, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1},
309 {0x36, 0x6a1f, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1},
310 {0x38, 0x0a1b, 0x0105, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},
311 {0x3a, 0x0e3b, 0x0107, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},
312 {0x41, 0x9a1d, 0x010e, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},
313 {0x44, 0x0a1d, 0x0111, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},
314 {0x47, 0x2a1d, 0x0114, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},
315 {0x4a, 0x0a3d, 0x0117, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},
316 {0x4d, 0x0e7d, 0x011a, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},
317 {0x50, 0x9a1b, 0x0132, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},
318 {0x51, 0xba1b, 0x0133, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},
319 {0x52, 0xba1b, 0x0134, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},
320 {0x56, 0x9a1d, 0x0135, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},
321 {0x57, 0xba1d, 0x0136, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},
322 {0x58, 0xba1d, 0x0137, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},
323 {0x59, 0x9a1b, 0x0138, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},
324 {0x5c, 0xba1f, 0x0000, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4},
325 {0x5d, 0x0a1d, 0x0139, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},
326 {0x5e, 0x0a1f, 0x0000, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0},
327 {0x62, 0x0a3f, 0x013a, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2},
328 {0x63, 0x2a3f, 0x013b, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3},
329 {0x64, 0x0a7f, 0x013c, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4},
330 {0x65, 0x0eff, 0x013d, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8},
331 {0x70, 0x6a1b, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},
332 {0x71, 0x4a1b, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},
333 {0x74, 0x4a1d, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},
334 {0x75, 0x0a3d, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},
335 {0x76, 0x6a1f, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},
336 {0x77, 0x4a1f, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1},
337 {0x78, 0x0a3f, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},
338 {0x79, 0x0a3b, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5},
339 {0x7a, 0x6a1d, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1},
340 {0x23, 0x0e3b, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},
341 {0x24, 0x0e7d, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},
342 {0x25, 0x0eff, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6},
343 {0x39, 0x6a1b, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28, -1},
344 {0x3b, 0x6a3d, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
345 -1},
346 {0x3e, 0x6a7f, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
347 -1},
348 {0x3f, 0x6a1b, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a, -1},
349 {0x42, 0x6a3d, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
350 -1},
351 {0x45, 0x6a7f, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
352 -1},
353 {0x4f, 0x9a1f, 0x0000, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0},
354 {0x53, 0x9a1f, 0x0000, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2},
355 {0x54, 0xba1f, 0x0000, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3},
356 {0x5f, 0x6a1b, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c, -1},
357 {0x60, 0x6a1d, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
358 -1},
359 {0x61, 0x6a3f, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
360 -1},
361 {0x1d, 0x6a1b, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d, -1},
362 {0x1e, 0x6a3d, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
363 -1},
364 {0x1f, 0x6a7f, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
365 -1},
366 {0x20, 0x6a1b, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e, -1},
367 {0x21, 0x6a3d, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
368 -1},
369 {0x22, 0x6a7f, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
370 -1},
371 {0x29, 0x4e1b, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33, -1},
372 {0x2a, 0x4e3d, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
373 -1},
374 {0x2b, 0x4e7f, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
375 -1},
376 {0xff, 0x0000, 0x0000, 0, 0x00, 0x00, 0x00, 0x00, 0x00, -1}
377};
378
379static const struct SiS_Ext2 SiSUSB_RefIndex[] = {
380 {0x085f, 0x0d, 0x03, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
381 {0x0067, 0x0e, 0x04, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
382 {0x0067, 0x0f, 0x08, 0x48, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
383 {0x0067, 0x10, 0x07, 0x8b, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
384 {0x0047, 0x11, 0x0a, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
385 {0x0047, 0x12, 0x0d, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00},
386 {0x0047, 0x13, 0x13, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},
387 {0x0107, 0x14, 0x1c, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00},
388 {0xc85f, 0x05, 0x00, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
389 {0xc067, 0x06, 0x02, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
390 {0xc067, 0x07, 0x02, 0x47, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
391 {0xc067, 0x08, 0x03, 0x8a, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
392 {0xc047, 0x09, 0x05, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
393 {0xc047, 0x0a, 0x09, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
394 {0xc047, 0x0b, 0x0e, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
395 {0xc047, 0x0c, 0x15, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00},
396 {0x487f, 0x04, 0x00, 0x00, 0x00, 0x2f, 640, 400, 0x30, 0x55, 0x6e},
397 {0xc06f, 0x3c, 0x01, 0x06, 0x13, 0x31, 720, 480, 0x30, 0x00, 0x00},
398 {0x006f, 0x3d, 0x6f, 0x06, 0x14, 0x32, 720, 576, 0x30, 0x00, 0x00},
399 {0x0087, 0x15, 0x06, 0x00, 0x06, 0x38, 1024, 768, 0x30, 0x00, 0x00},
400 {0xc877, 0x16, 0x0b, 0x06, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},
401 {0xc067, 0x17, 0x0f, 0x49, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},
402 {0x0067, 0x18, 0x11, 0x00, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},
403 {0x0047, 0x19, 0x16, 0x8c, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00},
404 {0x0107, 0x1a, 0x1b, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},
405 {0x0107, 0x1b, 0x1f, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00},
406 {0x407f, 0x00, 0x00, 0x00, 0x00, 0x41, 320, 200, 0x30, 0x56, 0x4e},
407 {0xc07f, 0x01, 0x00, 0x04, 0x04, 0x50, 320, 240, 0x30, 0x00, 0x00},
408 {0x007f, 0x02, 0x04, 0x05, 0x05, 0x51, 400, 300, 0x30, 0x00, 0x00},
409 {0xc077, 0x03, 0x0b, 0x06, 0x06, 0x52, 512, 384, 0x30, 0x00, 0x00},
410 {0x0077, 0x32, 0x40, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},
411 {0x0047, 0x33, 0x07, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},
412 {0x0047, 0x34, 0x0a, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00},
413 {0x0077, 0x35, 0x0b, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},
414 {0x0047, 0x36, 0x11, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},
415 {0x0047, 0x37, 0x16, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00},
416 {0x1137, 0x38, 0x19, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},
417 {0x1107, 0x39, 0x1e, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},
418 {0x1307, 0x3a, 0x20, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00},
419 {0x0077, 0x42, 0x5b, 0x08, 0x11, 0x23, 1280, 768, 0x30, 0x00, 0x00},
420 {0x0087, 0x45, 0x57, 0x00, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},
421 {0xc067, 0x46, 0x55, 0x0b, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00},
422 {0x0087, 0x47, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},
423 {0xc067, 0x48, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00},
424 {0x006f, 0x4d, 0x71, 0x06, 0x15, 0x5f, 768, 576, 0x30, 0x00, 0x00},
425 {0x0067, 0x52, 0x6a, 0x00, 0x1c, 0x1d, 960, 540, 0x30, 0x00, 0x00},
426 {0x0077, 0x53, 0x6b, 0x0b, 0x1d, 0x20, 960, 600, 0x30, 0x00, 0x00},
427 {0x0087, 0x1c, 0x11, 0x00, 0x07, 0x3a, 1280, 1024, 0x30, 0x00, 0x00},
428 {0x0137, 0x1d, 0x19, 0x07, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},
429 {0x0107, 0x1e, 0x1e, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},
430 {0x0207, 0x1f, 0x20, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00},
431 {0x0127, 0x54, 0x6d, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},
432 {0x0127, 0x44, 0x19, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},
433 {0x0127, 0x4a, 0x1e, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00},
434 {0xffff, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0x00, 0x00}
435};
436
437static const struct SiS_CRT1Table SiSUSB_CRT1Table[] = {
438 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
439 0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x00,
440 0x00}},
441 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
442 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
443 0x00}},
444 {{0x3d, 0x31, 0x31, 0x81, 0x37, 0x1f, 0x72, 0xf0,
445 0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x05,
446 0x01}},
447 {{0x4f, 0x3f, 0x3f, 0x93, 0x45, 0x0d, 0x24, 0xf5,
448 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x01,
449 0x01}},
450 {{0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
451 0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x05,
452 0x00}},
453 {{0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e,
454 0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05,
455 0x00}},
456 {{0x63, 0x4f, 0x4f, 0x87, 0x56, 0x9b, 0x06, 0x3e,
457 0xe8, 0x8a, 0xdf, 0xe7, 0x07, 0x00, 0x00, 0x01,
458 0x00}},
459 {{0x64, 0x4f, 0x4f, 0x88, 0x55, 0x9d, 0xf2, 0x1f,
460 0xe0, 0x83, 0xdf, 0xdf, 0xf3, 0x10, 0x00, 0x01,
461 0x00}},
462 {{0x63, 0x4f, 0x4f, 0x87, 0x5a, 0x81, 0xfb, 0x1f,
463 0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
464 0x00}},
465 {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0xfb, 0x1f,
466 0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
467 0x61}},
468 {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0x01, 0x3e,
469 0xe0, 0x83, 0xdf, 0xdf, 0x02, 0x00, 0x00, 0x05,
470 0x61}},
471 {{0x67, 0x4f, 0x4f, 0x8b, 0x58, 0x81, 0x0d, 0x3e,
472 0xe0, 0x83, 0xdf, 0xdf, 0x0e, 0x00, 0x00, 0x05,
473 0x61}},
474 {{0x65, 0x4f, 0x4f, 0x89, 0x57, 0x9f, 0xfb, 0x1f,
475 0xe6, 0x8a, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x01,
476 0x00}},
477 {{0x7b, 0x63, 0x63, 0x9f, 0x6a, 0x93, 0x6f, 0xf0,
478 0x58, 0x8a, 0x57, 0x57, 0x70, 0x20, 0x00, 0x05,
479 0x01}},
480 {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xf0,
481 0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x06,
482 0x01}},
483 {{0x7d, 0x63, 0x63, 0x81, 0x6e, 0x1d, 0x98, 0xf0,
484 0x7c, 0x82, 0x57, 0x57, 0x99, 0x00, 0x00, 0x06,
485 0x01}},
486 {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xf0,
487 0x58, 0x8b, 0x57, 0x57, 0x70, 0x20, 0x00, 0x06,
488 0x01}},
489 {{0x7e, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xf0,
490 0x58, 0x8b, 0x57, 0x57, 0x76, 0x20, 0x00, 0x06,
491 0x01}},
492 {{0x81, 0x63, 0x63, 0x85, 0x6d, 0x18, 0x7a, 0xf0,
493 0x58, 0x8b, 0x57, 0x57, 0x7b, 0x20, 0x00, 0x06,
494 0x61}},
495 {{0x83, 0x63, 0x63, 0x87, 0x6e, 0x19, 0x81, 0xf0,
496 0x58, 0x8b, 0x57, 0x57, 0x82, 0x20, 0x00, 0x06,
497 0x61}},
498 {{0x85, 0x63, 0x63, 0x89, 0x6f, 0x1a, 0x91, 0xf0,
499 0x58, 0x8b, 0x57, 0x57, 0x92, 0x20, 0x00, 0x06,
500 0x61}},
501 {{0x99, 0x7f, 0x7f, 0x9d, 0x84, 0x1a, 0x96, 0x1f,
502 0x7f, 0x83, 0x7f, 0x7f, 0x97, 0x10, 0x00, 0x02,
503 0x00}},
504 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
505 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
506 0x01}},
507 {{0xa1, 0x7f, 0x7f, 0x85, 0x86, 0x97, 0x24, 0xf5,
508 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
509 0x01}},
510 {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf5,
511 0x00, 0x83, 0xff, 0xff, 0x1f, 0x10, 0x00, 0x02,
512 0x01}},
513 {{0xa7, 0x7f, 0x7f, 0x8b, 0x89, 0x95, 0x26, 0xf5,
514 0x00, 0x83, 0xff, 0xff, 0x27, 0x10, 0x00, 0x02,
515 0x01}},
516 {{0xa9, 0x7f, 0x7f, 0x8d, 0x8c, 0x9a, 0x2c, 0xf5,
517 0x00, 0x83, 0xff, 0xff, 0x2d, 0x14, 0x00, 0x02,
518 0x62}},
519 {{0xab, 0x7f, 0x7f, 0x8f, 0x8d, 0x9b, 0x35, 0xf5,
520 0x00, 0x83, 0xff, 0xff, 0x36, 0x14, 0x00, 0x02,
521 0x62}},
522 {{0xcf, 0x9f, 0x9f, 0x93, 0xb2, 0x01, 0x14, 0xba,
523 0x00, 0x83, 0xff, 0xff, 0x15, 0x00, 0x00, 0x03,
524 0x00}},
525 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0x5a,
526 0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
527 0x01}},
528 {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0x5a,
529 0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
530 0x01}},
531 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0x5a,
532 0x00, 0x83, 0xff, 0xff, 0x2f, 0x09, 0x00, 0x07,
533 0x01}},
534 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
535 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
536 0x00}},
537 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
538 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
539 0x00}},
540 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
541 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
542 0x00}},
543 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
544 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
545 0x00}},
546 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
547 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
548 0x00}},
549 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
550 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
551 0x00}},
552 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
553 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
554 0x00}},
555 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
556 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
557 0x00}},
558 {{0x43, 0xef, 0xef, 0x87, 0x06, 0x00, 0xd4, 0x1f,
559 0xa0, 0x83, 0x9f, 0x9f, 0xd5, 0x1f, 0x41, 0x05,
560 0x63}},
561 {{0x45, 0xef, 0xef, 0x89, 0x07, 0x01, 0xd9, 0x1f,
562 0xa0, 0x83, 0x9f, 0x9f, 0xda, 0x1f, 0x41, 0x05,
563 0x63}},
564 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
565 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
566 0x00}},
567 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
568 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
569 0x00}},
570 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
571 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
572 0x00}},
573 {{0x59, 0xff, 0xff, 0x9d, 0x17, 0x13, 0x33, 0xba,
574 0x00, 0x83, 0xff, 0xff, 0x34, 0x0f, 0x41, 0x05,
575 0x44}},
576 {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x38, 0xba,
577 0x00, 0x83, 0xff, 0xff, 0x39, 0x0f, 0x41, 0x05,
578 0x44}},
579 {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x3d, 0xba,
580 0x00, 0x83, 0xff, 0xff, 0x3e, 0x0f, 0x41, 0x05,
581 0x44}},
582 {{0x5d, 0xff, 0xff, 0x81, 0x19, 0x95, 0x41, 0xba,
583 0x00, 0x84, 0xff, 0xff, 0x42, 0x0f, 0x41, 0x05,
584 0x44}},
585 {{0x55, 0xff, 0xff, 0x99, 0x0d, 0x0c, 0x3e, 0xba,
586 0x00, 0x84, 0xff, 0xff, 0x3f, 0x0f, 0x41, 0x05,
587 0x00}},
588 {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xba,
589 0x27, 0x8b, 0xdf, 0xdf, 0x73, 0x00, 0x00, 0x06,
590 0x01}},
591 {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xba,
592 0x26, 0x89, 0xdf, 0xdf, 0x6f, 0x00, 0x00, 0x06,
593 0x01}},
594 {{0x7f, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xba,
595 0x29, 0x8c, 0xdf, 0xdf, 0x75, 0x00, 0x00, 0x06,
596 0x01}},
597 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf1,
598 0xaf, 0x85, 0x3f, 0x3f, 0x25, 0x30, 0x00, 0x02,
599 0x01}},
600 {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf1,
601 0xad, 0x81, 0x3f, 0x3f, 0x1f, 0x30, 0x00, 0x02,
602 0x01}},
603 {{0xa7, 0x7f, 0x7f, 0x88, 0x89, 0x95, 0x26, 0xf1,
604 0xb1, 0x85, 0x3f, 0x3f, 0x27, 0x30, 0x00, 0x02,
605 0x01}},
606 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0xc4,
607 0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
608 0x01}},
609 {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0xd4,
610 0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
611 0x01}},
612 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0xd4,
613 0x7d, 0x81, 0xcf, 0xcf, 0x2f, 0x21, 0x00, 0x07,
614 0x01}},
615 {{0xdc, 0x9f, 0x9f, 0x80, 0xaf, 0x9d, 0xe6, 0xff,
616 0xc0, 0x83, 0xbf, 0xbf, 0xe7, 0x10, 0x00, 0x07,
617 0x01}},
618 {{0x6b, 0x59, 0x59, 0x8f, 0x5e, 0x8c, 0x0b, 0x3e,
619 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x05,
620 0x00}},
621 {{0x6d, 0x59, 0x59, 0x91, 0x60, 0x89, 0x53, 0xf0,
622 0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
623 0x41}},
624 {{0x86, 0x6a, 0x6a, 0x8a, 0x74, 0x06, 0x8c, 0x15,
625 0x4f, 0x83, 0xef, 0xef, 0x8d, 0x30, 0x00, 0x02,
626 0x00}},
627 {{0x81, 0x6a, 0x6a, 0x85, 0x70, 0x00, 0x0f, 0x3e,
628 0xeb, 0x8e, 0xdf, 0xdf, 0x10, 0x00, 0x00, 0x02,
629 0x00}},
630 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x1e, 0xf1,
631 0xae, 0x85, 0x57, 0x57, 0x1f, 0x30, 0x00, 0x02,
632 0x01}},
633 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
634 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
635 0x01}},
636 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x20, 0xf5,
637 0x03, 0x88, 0xff, 0xff, 0x21, 0x10, 0x00, 0x07,
638 0x01}},
639 {{0xe6, 0xae, 0xae, 0x8a, 0xbd, 0x90, 0x3d, 0x10,
640 0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x00, 0x03,
641 0x00}},
642 {{0xc3, 0x8f, 0x8f, 0x87, 0x9b, 0x0b, 0x82, 0xef,
643 0x60, 0x83, 0x5f, 0x5f, 0x83, 0x10, 0x00, 0x07,
644 0x01}},
645 {{0x86, 0x69, 0x69, 0x8A, 0x74, 0x06, 0x8C, 0x15,
646 0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
647 0x00}},
648 {{0x83, 0x69, 0x69, 0x87, 0x6f, 0x1d, 0x03, 0x3E,
649 0xE5, 0x8d, 0xDF, 0xe4, 0x04, 0x00, 0x00, 0x06,
650 0x00}},
651 {{0x86, 0x6A, 0x6A, 0x8A, 0x74, 0x06, 0x8C, 0x15,
652 0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
653 0x00}},
654 {{0x81, 0x6A, 0x6A, 0x85, 0x70, 0x00, 0x0F, 0x3E,
655 0xEB, 0x8E, 0xDF, 0xDF, 0x10, 0x00, 0x00, 0x02,
656 0x00}},
657 {{0xdd, 0xa9, 0xa9, 0x81, 0xb4, 0x97, 0x26, 0xfd,
658 0x01, 0x8d, 0xff, 0x00, 0x27, 0x10, 0x00, 0x03,
659 0x01}},
660 {{0xd9, 0x8f, 0x8f, 0x9d, 0xba, 0x0a, 0x8a, 0xff,
661 0x60, 0x8b, 0x5f, 0x5f, 0x8b, 0x10, 0x00, 0x03,
662 0x01}},
663 {{0xea, 0xae, 0xae, 0x8e, 0xba, 0x82, 0x40, 0x10,
664 0x1b, 0x87, 0x19, 0x1a, 0x41, 0x0f, 0x00, 0x03,
665 0x00}},
666 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0xf1, 0xff,
667 0xc0, 0x83, 0xbf, 0xbf, 0xf2, 0x10, 0x00, 0x07,
668 0x01}},
669 {{0x75, 0x5f, 0x5f, 0x99, 0x66, 0x90, 0x53, 0xf0,
670 0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
671 0x41}},
672 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
673 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
674 0x00}},
675 {{0xcd, 0x9f, 0x9f, 0x91, 0xab, 0x1c, 0x3a, 0xff,
676 0x20, 0x83, 0x1f, 0x1f, 0x3b, 0x10, 0x00, 0x07,
677 0x21}},
678 {{0x15, 0xd1, 0xd1, 0x99, 0xe2, 0x19, 0x3d, 0x10,
679 0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x01, 0x0c,
680 0x20}},
681 {{0x0e, 0xef, 0xef, 0x92, 0xfe, 0x03, 0x30, 0xf0,
682 0x1e, 0x83, 0x1b, 0x1c, 0x31, 0x00, 0x01, 0x00,
683 0x61}},
684 {{0x85, 0x77, 0x77, 0x89, 0x7d, 0x01, 0x31, 0xf0,
685 0x1e, 0x84, 0x1b, 0x1c, 0x32, 0x00, 0x00, 0x02,
686 0x41}},
687 {{0x87, 0x77, 0x77, 0x8b, 0x81, 0x0b, 0x68, 0xf0,
688 0x5a, 0x80, 0x57, 0x57, 0x69, 0x00, 0x00, 0x02,
689 0x01}},
690 {{0xcd, 0x8f, 0x8f, 0x91, 0x9b, 0x1b, 0x7a, 0xff,
691 0x64, 0x8c, 0x5f, 0x62, 0x7b, 0x10, 0x00, 0x07,
692 0x41}}
693};
694
695static const struct SiS_VCLKData SiSUSB_VCLKData[] = {
696 {0x1b, 0xe1, 25},
697 {0x4e, 0xe4, 28},
698 {0x57, 0xe4, 31},
699 {0xc3, 0xc8, 36},
700 {0x42, 0xe2, 40},
701 {0xfe, 0xcd, 43},
702 {0x5d, 0xc4, 44},
703 {0x52, 0xe2, 49},
704 {0x53, 0xe2, 50},
705 {0x74, 0x67, 52},
706 {0x6d, 0x66, 56},
707 {0x5a, 0x64, 65},
708 {0x46, 0x44, 67},
709 {0xb1, 0x46, 68},
710 {0xd3, 0x4a, 72},
711 {0x29, 0x61, 75},
712 {0x6e, 0x46, 76},
713 {0x2b, 0x61, 78},
714 {0x31, 0x42, 79},
715 {0xab, 0x44, 83},
716 {0x46, 0x25, 84},
717 {0x78, 0x29, 86},
718 {0x62, 0x44, 94},
719 {0x2b, 0x41, 104},
720 {0x3a, 0x23, 105},
721 {0x70, 0x44, 108},
722 {0x3c, 0x23, 109},
723 {0x5e, 0x43, 113},
724 {0xbc, 0x44, 116},
725 {0xe0, 0x46, 132},
726 {0x54, 0x42, 135},
727 {0xea, 0x2a, 139},
728 {0x41, 0x22, 157},
729 {0x70, 0x24, 162},
730 {0x30, 0x21, 175},
731 {0x4e, 0x22, 189},
732 {0xde, 0x26, 194},
733 {0x62, 0x06, 202},
734 {0x3f, 0x03, 229},
735 {0xb8, 0x06, 234},
736 {0x34, 0x02, 253},
737 {0x58, 0x04, 255},
738 {0x24, 0x01, 265},
739 {0x9b, 0x02, 267},
740 {0x70, 0x05, 270},
741 {0x25, 0x01, 272},
742 {0x9c, 0x02, 277},
743 {0x27, 0x01, 286},
744 {0x3c, 0x02, 291},
745 {0xef, 0x0a, 292},
746 {0xf6, 0x0a, 310},
747 {0x95, 0x01, 315},
748 {0xf0, 0x09, 324},
749 {0xfe, 0x0a, 331},
750 {0xf3, 0x09, 332},
751 {0xea, 0x08, 340},
752 {0xe8, 0x07, 376},
753 {0xde, 0x06, 389},
754 {0x52, 0x2a, 54},
755 {0x52, 0x6a, 27},
756 {0x62, 0x24, 70},
757 {0x62, 0x64, 70},
758 {0xa8, 0x4c, 30},
759 {0x20, 0x26, 33},
760 {0x31, 0xc2, 39},
761 {0x60, 0x36, 30},
762 {0x40, 0x4a, 28},
763 {0x9f, 0x46, 44},
764 {0x97, 0x2c, 26},
765 {0x44, 0xe4, 25},
766 {0x7e, 0x32, 47},
767 {0x8a, 0x24, 31},
768 {0x97, 0x2c, 26},
769 {0xce, 0x3c, 39},
770 {0x52, 0x4a, 36},
771 {0x34, 0x61, 95},
772 {0x78, 0x27, 108},
773 {0x66, 0x43, 123},
774 {0x41, 0x4e, 21},
775 {0xa1, 0x4a, 29},
776 {0x19, 0x42, 42},
777 {0x54, 0x46, 58},
778 {0x25, 0x42, 61},
779 {0x44, 0x44, 66},
780 {0x3a, 0x62, 70},
781 {0x62, 0xc6, 34},
782 {0x6a, 0xc6, 37},
783 {0xbf, 0xc8, 35},
784 {0x30, 0x23, 88},
785 {0x52, 0x07, 149},
786 {0x56, 0x07, 156},
787 {0x70, 0x29, 81},
788 {0x45, 0x25, 83},
789 {0x70, 0x0a, 147},
790 {0x70, 0x24, 162},
791 {0x5a, 0x64, 65},
792 {0x63, 0x46, 68},
793 {0x31, 0x42, 79},
794 {0, 0, 0},
795 {0x5a, 0x64, 65},
796 {0x70, 0x28, 90},
797 {0x41, 0xc4, 32},
798 {0x5c, 0xc6, 32},
799 {0x76, 0xe7, 27},
800 {0x5f, 0xc6, 33},
801 {0x52, 0x27, 75},
802 {0x7c, 0x6b, 38},
803 {0xe3, 0x56, 41},
804 {0x45, 0x25, 83},
805 {0x70, 0x28, 90},
806 {0x15, 0xe1, 20},
807 {0x5f, 0xc6, 33},
808 {0x37, 0x5a, 10},
809 {0x2b, 0xc2, 35}
810};
811
812int SiSUSBSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo);
813int SiSUSBSetVESAMode(struct SiS_Private *SiS_Pr, unsigned short VModeNo);
814
815extern int sisusb_setreg(struct sisusb_usb_data *sisusb, int port, u8 data);
816extern int sisusb_getreg(struct sisusb_usb_data *sisusb, int port, u8 * data);
817extern int sisusb_setidxreg(struct sisusb_usb_data *sisusb, int port,
818 u8 index, u8 data);
819extern int sisusb_getidxreg(struct sisusb_usb_data *sisusb, int port,
820 u8 index, u8 * data);
821extern int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, int port,
822 u8 idx, u8 myand, u8 myor);
823extern int sisusb_setidxregor(struct sisusb_usb_data *sisusb, int port,
824 u8 index, u8 myor);
825extern int sisusb_setidxregand(struct sisusb_usb_data *sisusb, int port,
826 u8 idx, u8 myand);
827
828void sisusb_delete(struct kref *kref);
829int sisusb_writeb(struct sisusb_usb_data *sisusb, u32 adr, u8 data);
830int sisusb_readb(struct sisusb_usb_data *sisusb, u32 adr, u8 * data);
831int sisusb_copy_memory(struct sisusb_usb_data *sisusb, char *src,
832 u32 dest, int length);
833int sisusb_reset_text_mode(struct sisusb_usb_data *sisusb, int init);
834int sisusbcon_do_font_op(struct sisusb_usb_data *sisusb, int set, int slot,
835 u8 * arg, int cmapsz, int ch512, int dorecalc,
836 struct vc_data *c, int fh, int uplock);
837void sisusb_set_cursor(struct sisusb_usb_data *sisusb, unsigned int location);
838int sisusb_console_init(struct sisusb_usb_data *sisusb, int first, int last);
839void sisusb_console_exit(struct sisusb_usb_data *sisusb);
840void sisusb_init_concode(void);
841
842#endif
843