blob: c46ce42d44892cb895f5d7f3a8d49a6083aa58f2 [file] [log] [blame]
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +02001/* $XFree86$ */
2/* $XdotOrg$ */
3/*
4 * Data and prototypes for init.c
5 *
6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
7 *
8 * If distributed as part of the Linux kernel, the following license terms
9 * apply:
10 *
11 * * This program is free software; you can redistribute it and/or modify
12 * * it under the terms of the GNU General Public License as published by
13 * * the Free Software Foundation; either version 2 of the named License,
14 * * or any later version.
15 * *
16 * * This program is distributed in the hope that it will be useful,
17 * * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * * GNU General Public License for more details.
20 * *
21 * * You should have received a copy of the GNU General Public License
22 * * along with this program; if not, write to the Free Software
23 * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
24 *
25 * Otherwise, the following license terms apply:
26 *
27 * * Redistribution and use in source and binary forms, with or without
28 * * modification, are permitted provided that the following conditions
29 * * are met:
30 * * 1) Redistributions of source code must retain the above copyright
31 * * notice, this list of conditions and the following disclaimer.
32 * * 2) Redistributions in binary form must reproduce the above copyright
33 * * notice, this list of conditions and the following disclaimer in the
34 * * documentation and/or other materials provided with the distribution.
35 * * 3) The name of the author may not be used to endorse or promote products
36 * * derived from this software without specific prior written permission.
37 * *
38 * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
39 * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40 * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
41 * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
42 * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44 * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
45 * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
46 * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
47 * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48 *
Felipe Balbied86d972007-08-10 09:34:24 -040049 * Author: Thomas Winischhofer <thomas@winischhofer.net>
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +020050 *
51 */
52
53#ifndef _SISUSB_INIT_H_
54#define _SISUSB_INIT_H_
55
56/* SiS_ModeType */
57#define ModeText 0x00
58#define ModeCGA 0x01
59#define ModeEGA 0x02
60#define ModeVGA 0x03
61#define Mode15Bpp 0x04
62#define Mode16Bpp 0x05
63#define Mode24Bpp 0x06
64#define Mode32Bpp 0x07
65
66#define ModeTypeMask 0x07
67#define IsTextMode 0x07
68
69#define DACInfoFlag 0x0018
70#define MemoryInfoFlag 0x01E0
71#define MemorySizeShift 5
72
73/* modeflag */
74#define Charx8Dot 0x0200
75#define LineCompareOff 0x0400
76#define CRT2Mode 0x0800
77#define HalfDCLK 0x1000
78#define NoSupportSimuTV 0x2000
Felipe Balbi7c599012007-08-10 09:34:32 -040079#define NoSupportLCDScale 0x4000 /* SiS bridge: No scaling possible (no matter what panel) */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +020080#define DoubleScanMode 0x8000
81
82/* Infoflag */
83#define SupportTV 0x0008
84#define SupportTV1024 0x0800
Felipe Balbied86d972007-08-10 09:34:24 -040085#define SupportCHTV 0x0800
Felipe Balbi7c599012007-08-10 09:34:32 -040086#define Support64048060Hz 0x0800 /* Special for 640x480 LCD */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +020087#define SupportHiVision 0x0010
88#define SupportYPbPr750p 0x1000
89#define SupportLCD 0x0020
90#define SupportRAMDAC2 0x0040 /* All (<= 100Mhz) */
Felipe Balbi7c599012007-08-10 09:34:32 -040091#define SupportRAMDAC2_135 0x0100 /* All except DH (<= 135Mhz) */
92#define SupportRAMDAC2_162 0x0200 /* B, C (<= 162Mhz) */
93#define SupportRAMDAC2_202 0x0400 /* C (<= 202Mhz) */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +020094#define InterlaceMode 0x0080
95#define SyncPP 0x0000
96#define SyncPN 0x4000
97#define SyncNP 0x8000
98#define SyncNN 0xc000
99
100/* SetFlag */
101#define ProgrammingCRT2 0x0001
102#define LowModeTests 0x0002
103#define LCDVESATiming 0x0008
104#define EnableLVDSDDA 0x0010
105#define SetDispDevSwitchFlag 0x0020
106#define CheckWinDos 0x0040
107#define SetDOSMode 0x0080
108
109/* Index in ModeResInfo table */
110#define SIS_RI_320x200 0
111#define SIS_RI_320x240 1
112#define SIS_RI_320x400 2
113#define SIS_RI_400x300 3
114#define SIS_RI_512x384 4
115#define SIS_RI_640x400 5
116#define SIS_RI_640x480 6
117#define SIS_RI_800x600 7
118#define SIS_RI_1024x768 8
119#define SIS_RI_1280x1024 9
120#define SIS_RI_1600x1200 10
121#define SIS_RI_1920x1440 11
122#define SIS_RI_2048x1536 12
123#define SIS_RI_720x480 13
124#define SIS_RI_720x576 14
125#define SIS_RI_1280x960 15
126#define SIS_RI_800x480 16
127#define SIS_RI_1024x576 17
128#define SIS_RI_1280x720 18
129#define SIS_RI_856x480 19
130#define SIS_RI_1280x768 20
131#define SIS_RI_1400x1050 21
Felipe Balbi7c599012007-08-10 09:34:32 -0400132#define SIS_RI_1152x864 22 /* Up to here SiS conforming */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200133#define SIS_RI_848x480 23
134#define SIS_RI_1360x768 24
135#define SIS_RI_1024x600 25
136#define SIS_RI_1152x768 26
137#define SIS_RI_768x576 27
138#define SIS_RI_1360x1024 28
139#define SIS_RI_1680x1050 29
140#define SIS_RI_1280x800 30
141#define SIS_RI_1920x1080 31
142#define SIS_RI_960x540 32
143#define SIS_RI_960x600 33
144
145#define SIS_VIDEO_CAPTURE 0x00 - 0x30
146#define SIS_VIDEO_PLAYBACK 0x02 - 0x30
147#define SIS_CRT2_PORT_04 0x04 - 0x30
148
149/* Mode numbers */
Felipe Balbi7c599012007-08-10 09:34:32 -0400150static const unsigned short ModeIndex_320x200[] = { 0x59, 0x41, 0x00, 0x4f };
151static const unsigned short ModeIndex_320x240[] = { 0x50, 0x56, 0x00, 0x53 };
152static const unsigned short ModeIndex_400x300[] = { 0x51, 0x57, 0x00, 0x54 };
153static const unsigned short ModeIndex_512x384[] = { 0x52, 0x58, 0x00, 0x5c };
154static const unsigned short ModeIndex_640x400[] = { 0x2f, 0x5d, 0x00, 0x5e };
155static const unsigned short ModeIndex_640x480[] = { 0x2e, 0x44, 0x00, 0x62 };
156static const unsigned short ModeIndex_720x480[] = { 0x31, 0x33, 0x00, 0x35 };
157static const unsigned short ModeIndex_720x576[] = { 0x32, 0x34, 0x00, 0x36 };
158static const unsigned short ModeIndex_768x576[] = { 0x5f, 0x60, 0x00, 0x61 };
159static const unsigned short ModeIndex_800x480[] = { 0x70, 0x7a, 0x00, 0x76 };
160static const unsigned short ModeIndex_800x600[] = { 0x30, 0x47, 0x00, 0x63 };
161static const unsigned short ModeIndex_848x480[] = { 0x39, 0x3b, 0x00, 0x3e };
162static const unsigned short ModeIndex_856x480[] = { 0x3f, 0x42, 0x00, 0x45 };
163static const unsigned short ModeIndex_960x540[] = { 0x1d, 0x1e, 0x00, 0x1f };
164static const unsigned short ModeIndex_960x600[] = { 0x20, 0x21, 0x00, 0x22 };
165static const unsigned short ModeIndex_1024x768[] = { 0x38, 0x4a, 0x00, 0x64 };
166static const unsigned short ModeIndex_1024x576[] = { 0x71, 0x74, 0x00, 0x77 };
167static const unsigned short ModeIndex_1152x864[] = { 0x29, 0x2a, 0x00, 0x2b };
168static const unsigned short ModeIndex_1280x720[] = { 0x79, 0x75, 0x00, 0x78 };
169static const unsigned short ModeIndex_1280x768[] = { 0x23, 0x24, 0x00, 0x25 };
170static const unsigned short ModeIndex_1280x1024[] = { 0x3a, 0x4d, 0x00, 0x65 };
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200171
Felipe Balbi7c599012007-08-10 09:34:32 -0400172static const unsigned char SiS_MDA_DAC[] = {
173 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
174 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
175 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
176 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
178 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
179 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15,
180 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200181};
182
Felipe Balbi7c599012007-08-10 09:34:32 -0400183static const unsigned char SiS_CGA_DAC[] = {
184 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
185 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
186 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
187 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
188 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
189 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
190 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
191 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200192};
193
Felipe Balbi7c599012007-08-10 09:34:32 -0400194static const unsigned char SiS_EGA_DAC[] = {
195 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x05, 0x15,
196 0x20, 0x30, 0x24, 0x34, 0x21, 0x31, 0x25, 0x35,
197 0x08, 0x18, 0x0C, 0x1C, 0x09, 0x19, 0x0D, 0x1D,
198 0x28, 0x38, 0x2C, 0x3C, 0x29, 0x39, 0x2D, 0x3D,
199 0x02, 0x12, 0x06, 0x16, 0x03, 0x13, 0x07, 0x17,
200 0x22, 0x32, 0x26, 0x36, 0x23, 0x33, 0x27, 0x37,
201 0x0A, 0x1A, 0x0E, 0x1E, 0x0B, 0x1B, 0x0F, 0x1F,
202 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200203};
204
Felipe Balbi7c599012007-08-10 09:34:32 -0400205static const unsigned char SiS_VGA_DAC[] = {
206 0x00, 0x10, 0x04, 0x14, 0x01, 0x11, 0x09, 0x15,
207 0x2A, 0x3A, 0x2E, 0x3E, 0x2B, 0x3B, 0x2F, 0x3F,
208 0x00, 0x05, 0x08, 0x0B, 0x0E, 0x11, 0x14, 0x18,
209 0x1C, 0x20, 0x24, 0x28, 0x2D, 0x32, 0x38, 0x3F,
210 0x00, 0x10, 0x1F, 0x2F, 0x3F, 0x1F, 0x27, 0x2F,
211 0x37, 0x3F, 0x2D, 0x31, 0x36, 0x3A, 0x3F, 0x00,
212 0x07, 0x0E, 0x15, 0x1C, 0x0E, 0x11, 0x15, 0x18,
213 0x1C, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x04,
214 0x08, 0x0C, 0x10, 0x08, 0x0A, 0x0C, 0x0E, 0x10,
215 0x0B, 0x0C, 0x0D, 0x0F, 0x10
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200216};
217
Felipe Balbi7c599012007-08-10 09:34:32 -0400218static const struct SiS_St SiSUSB_SModeIDTable[] = {
219 {0x03, 0x0010, 0x18, 0x02, 0x02, 0x00, 0x01, 0x03, 0x40},
220 {0xff, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200221};
222
Felipe Balbi7c599012007-08-10 09:34:32 -0400223static const struct SiS_StResInfo_S SiSUSB_StResInfo[] = {
224 {640, 400},
225 {640, 350},
226 {720, 400},
227 {720, 350},
228 {640, 480}
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200229};
230
Felipe Balbi7c599012007-08-10 09:34:32 -0400231static const struct SiS_ModeResInfo SiSUSB_ModeResInfo[] = {
232 {320, 200, 8, 8}, /* 0x00 */
233 {320, 240, 8, 8}, /* 0x01 */
234 {320, 400, 8, 8}, /* 0x02 */
235 {400, 300, 8, 8}, /* 0x03 */
236 {512, 384, 8, 8}, /* 0x04 */
237 {640, 400, 8, 16}, /* 0x05 */
238 {640, 480, 8, 16}, /* 0x06 */
239 {800, 600, 8, 16}, /* 0x07 */
240 {1024, 768, 8, 16}, /* 0x08 */
241 {1280, 1024, 8, 16}, /* 0x09 */
242 {1600, 1200, 8, 16}, /* 0x0a */
243 {1920, 1440, 8, 16}, /* 0x0b */
244 {2048, 1536, 8, 16}, /* 0x0c */
245 {720, 480, 8, 16}, /* 0x0d */
246 {720, 576, 8, 16}, /* 0x0e */
247 {1280, 960, 8, 16}, /* 0x0f */
248 {800, 480, 8, 16}, /* 0x10 */
249 {1024, 576, 8, 16}, /* 0x11 */
250 {1280, 720, 8, 16}, /* 0x12 */
251 {856, 480, 8, 16}, /* 0x13 */
252 {1280, 768, 8, 16}, /* 0x14 */
253 {1400, 1050, 8, 16}, /* 0x15 */
254 {1152, 864, 8, 16}, /* 0x16 */
255 {848, 480, 8, 16}, /* 0x17 */
256 {1360, 768, 8, 16}, /* 0x18 */
257 {1024, 600, 8, 16}, /* 0x19 */
258 {1152, 768, 8, 16}, /* 0x1a */
259 {768, 576, 8, 16}, /* 0x1b */
260 {1360, 1024, 8, 16}, /* 0x1c */
261 {1680, 1050, 8, 16}, /* 0x1d */
262 {1280, 800, 8, 16}, /* 0x1e */
263 {1920, 1080, 8, 16}, /* 0x1f */
264 {960, 540, 8, 16}, /* 0x20 */
265 {960, 600, 8, 16} /* 0x21 */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200266};
267
Felipe Balbi7c599012007-08-10 09:34:32 -0400268static const struct SiS_StandTable SiSUSB_StandTable[] = {
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200269 /* MD_3_400 - mode 0x03 - 400 */
270 {
Felipe Balbi7c599012007-08-10 09:34:32 -0400271 0x50, 0x18, 0x10, 0x1000,
272 {0x00, 0x03, 0x00, 0x02},
273 0x67,
274 {0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
275 0x00, 0x4f, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00,
276 0x9c, 0x8e, 0x8f, 0x28, 0x1f, 0x96, 0xb9, 0xa3,
277 0xff},
278 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07,
279 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
280 0x0c, 0x00, 0x0f, 0x08},
281 {0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00, 0xff}
282 },
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200283 /* Generic for VGA and higher */
284 {
Felipe Balbi7c599012007-08-10 09:34:32 -0400285 0x00, 0x00, 0x00, 0x0000,
286 {0x01, 0x0f, 0x00, 0x0e},
287 0x23,
288 {0x5f, 0x4f, 0x50, 0x82, 0x54, 0x80, 0x0b, 0x3e,
289 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290 0xea, 0x8c, 0xdf, 0x28, 0x40, 0xe7, 0x04, 0xa3,
291 0xff},
292 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
293 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
294 0x01, 0x00, 0x00, 0x00},
295 {0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0f, 0xff}
296 }
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200297};
298
Felipe Balbi7c599012007-08-10 09:34:32 -0400299static const struct SiS_Ext SiSUSB_EModeIDTable[] = {
300 {0x2e, 0x0a1b, 0x0101, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2}, /* 640x480x8 */
301 {0x2f, 0x0a1b, 0x0100, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x05, 0x10, 0}, /* 640x400x8 */
302 {0x30, 0x2a1b, 0x0103, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3}, /* 800x600x8 */
303 {0x31, 0x4a1b, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1}, /* 720x480x8 */
304 {0x32, 0x4a1b, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1}, /* 720x576x8 */
305 {0x33, 0x4a1d, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1}, /* 720x480x16 */
306 {0x34, 0x6a1d, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1}, /* 720x576x16 */
307 {0x35, 0x4a1f, 0x0000, SIS_RI_720x480, 0x00, 0x00, 0x06, 0x06, 0x11, -1}, /* 720x480x32 */
308 {0x36, 0x6a1f, 0x0000, SIS_RI_720x576, 0x00, 0x00, 0x06, 0x06, 0x12, -1}, /* 720x576x32 */
309 {0x38, 0x0a1b, 0x0105, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4}, /* 1024x768x8 */
310 {0x3a, 0x0e3b, 0x0107, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8}, /* 1280x1024x8 */
311 {0x41, 0x9a1d, 0x010e, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0}, /* 320x200x16 */
312 {0x44, 0x0a1d, 0x0111, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2}, /* 640x480x16 */
313 {0x47, 0x2a1d, 0x0114, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3}, /* 800x600x16 */
314 {0x4a, 0x0a3d, 0x0117, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4}, /* 1024x768x16 */
315 {0x4d, 0x0e7d, 0x011a, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8}, /* 1280x1024x16 */
316 {0x50, 0x9a1b, 0x0132, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2}, /* 320x240x8 */
317 {0x51, 0xba1b, 0x0133, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3}, /* 400x300x8 */
318 {0x52, 0xba1b, 0x0134, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4}, /* 512x384x8 */
319 {0x56, 0x9a1d, 0x0135, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2}, /* 320x240x16 */
320 {0x57, 0xba1d, 0x0136, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3}, /* 400x300x16 */
321 {0x58, 0xba1d, 0x0137, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4}, /* 512x384x16 */
322 {0x59, 0x9a1b, 0x0138, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0}, /* 320x200x8 */
323 {0x5c, 0xba1f, 0x0000, SIS_RI_512x384, 0x00, 0x00, 0x00, 0x00, 0x1d, 4}, /* 512x384x32 */
324 {0x5d, 0x0a1d, 0x0139, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0}, /* 640x400x16 */
325 {0x5e, 0x0a1f, 0x0000, SIS_RI_640x400, 0x00, 0x00, 0x05, 0x07, 0x10, 0}, /* 640x400x32 */
326 {0x62, 0x0a3f, 0x013a, SIS_RI_640x480, 0x00, 0x00, 0x05, 0x05, 0x08, 2}, /* 640x480x32 */
327 {0x63, 0x2a3f, 0x013b, SIS_RI_800x600, 0x00, 0x00, 0x07, 0x06, 0x00, 3}, /* 800x600x32 */
328 {0x64, 0x0a7f, 0x013c, SIS_RI_1024x768, 0x00, 0x00, 0x08, 0x07, 0x13, 4}, /* 1024x768x32 */
329 {0x65, 0x0eff, 0x013d, SIS_RI_1280x1024, 0x00, 0x00, 0x00, 0x00, 0x2f, 8}, /* 1280x1024x32 */
330 {0x70, 0x6a1b, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1}, /* 800x480x8 */
331 {0x71, 0x4a1b, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1}, /* 1024x576x8 */
332 {0x74, 0x4a1d, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1}, /* 1024x576x16 */
333 {0x75, 0x0a3d, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5}, /* 1280x720x16 */
334 {0x76, 0x6a1f, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1}, /* 800x480x32 */
335 {0x77, 0x4a1f, 0x0000, SIS_RI_1024x576, 0x00, 0x00, 0x00, 0x00, 0x21, -1}, /* 1024x576x32 */
336 {0x78, 0x0a3f, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5}, /* 1280x720x32 */
337 {0x79, 0x0a3b, 0x0000, SIS_RI_1280x720, 0x00, 0x00, 0x00, 0x00, 0x24, 5}, /* 1280x720x8 */
338 {0x7a, 0x6a1d, 0x0000, SIS_RI_800x480, 0x00, 0x00, 0x07, 0x07, 0x1e, -1}, /* 800x480x16 */
339 {0x23, 0x0e3b, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6}, /* 1280x768x8 */
340 {0x24, 0x0e7d, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6}, /* 1280x768x16 */
341 {0x25, 0x0eff, 0x0000, SIS_RI_1280x768, 0x00, 0x00, 0x00, 0x00, 0x27, 6}, /* 1280x768x32 */
342 {0x39, 0x6a1b, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28, -1}, /* 848x480 */
343 {0x3b, 0x6a3d, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
344 -1},
345 {0x3e, 0x6a7f, 0x0000, SIS_RI_848x480, 0x00, 0x00, 0x00, 0x00, 0x28,
346 -1},
347 {0x3f, 0x6a1b, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a, -1}, /* 856x480 */
348 {0x42, 0x6a3d, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
349 -1},
350 {0x45, 0x6a7f, 0x0000, SIS_RI_856x480, 0x00, 0x00, 0x00, 0x00, 0x2a,
351 -1},
352 {0x4f, 0x9a1f, 0x0000, SIS_RI_320x200, 0x00, 0x00, 0x04, 0x04, 0x1a, 0}, /* 320x200x32 */
353 {0x53, 0x9a1f, 0x0000, SIS_RI_320x240, 0x00, 0x00, 0x04, 0x04, 0x1b, 2}, /* 320x240x32 */
354 {0x54, 0xba1f, 0x0000, SIS_RI_400x300, 0x00, 0x00, 0x07, 0x07, 0x1c, 3}, /* 400x300x32 */
355 {0x5f, 0x6a1b, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c, -1}, /* 768x576 */
356 {0x60, 0x6a1d, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
357 -1},
358 {0x61, 0x6a3f, 0x0000, SIS_RI_768x576, 0x00, 0x00, 0x06, 0x06, 0x2c,
359 -1},
360 {0x1d, 0x6a1b, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d, -1}, /* 960x540 */
361 {0x1e, 0x6a3d, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
362 -1},
363 {0x1f, 0x6a7f, 0x0000, SIS_RI_960x540, 0x00, 0x00, 0x00, 0x00, 0x2d,
364 -1},
365 {0x20, 0x6a1b, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e, -1}, /* 960x600 */
366 {0x21, 0x6a3d, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
367 -1},
368 {0x22, 0x6a7f, 0x0000, SIS_RI_960x600, 0x00, 0x00, 0x00, 0x00, 0x2e,
369 -1},
370 {0x29, 0x4e1b, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33, -1}, /* 1152x864 */
371 {0x2a, 0x4e3d, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
372 -1},
373 {0x2b, 0x4e7f, 0x0000, SIS_RI_1152x864, 0x00, 0x00, 0x00, 0x00, 0x33,
374 -1},
375 {0xff, 0x0000, 0x0000, 0, 0x00, 0x00, 0x00, 0x00, 0x00, -1}
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200376};
377
Felipe Balbi7c599012007-08-10 09:34:32 -0400378static const struct SiS_Ext2 SiSUSB_RefIndex[] = {
379 {0x085f, 0x0d, 0x03, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x0 */
380 {0x0067, 0x0e, 0x04, 0x05, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x1 */
381 {0x0067, 0x0f, 0x08, 0x48, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x2 */
382 {0x0067, 0x10, 0x07, 0x8b, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x3 */
383 {0x0047, 0x11, 0x0a, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x4 */
384 {0x0047, 0x12, 0x0d, 0x00, 0x05, 0x30, 800, 600, 0x40, 0x00, 0x00}, /* 0x5 */
385 {0x0047, 0x13, 0x13, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00}, /* 0x6 */
386 {0x0107, 0x14, 0x1c, 0x00, 0x05, 0x30, 800, 600, 0x20, 0x00, 0x00}, /* 0x7 */
387 {0xc85f, 0x05, 0x00, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0x8 */
388 {0xc067, 0x06, 0x02, 0x04, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0x9 */
389 {0xc067, 0x07, 0x02, 0x47, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xa */
390 {0xc067, 0x08, 0x03, 0x8a, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xb */
391 {0xc047, 0x09, 0x05, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xc */
392 {0xc047, 0x0a, 0x09, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xd */
393 {0xc047, 0x0b, 0x0e, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xe */
394 {0xc047, 0x0c, 0x15, 0x00, 0x04, 0x2e, 640, 480, 0x40, 0x00, 0x00}, /* 0xf */
395 {0x487f, 0x04, 0x00, 0x00, 0x00, 0x2f, 640, 400, 0x30, 0x55, 0x6e}, /* 0x10 */
396 {0xc06f, 0x3c, 0x01, 0x06, 0x13, 0x31, 720, 480, 0x30, 0x00, 0x00}, /* 0x11 */
397 {0x006f, 0x3d, 0x6f, 0x06, 0x14, 0x32, 720, 576, 0x30, 0x00, 0x00}, /* 0x12 (6f was 03) */
398 {0x0087, 0x15, 0x06, 0x00, 0x06, 0x38, 1024, 768, 0x30, 0x00, 0x00}, /* 0x13 */
399 {0xc877, 0x16, 0x0b, 0x06, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00}, /* 0x14 */
400 {0xc067, 0x17, 0x0f, 0x49, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00}, /* 0x15 */
401 {0x0067, 0x18, 0x11, 0x00, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00}, /* 0x16 */
402 {0x0047, 0x19, 0x16, 0x8c, 0x06, 0x38, 1024, 768, 0x20, 0x00, 0x00}, /* 0x17 */
403 {0x0107, 0x1a, 0x1b, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00}, /* 0x18 */
404 {0x0107, 0x1b, 0x1f, 0x00, 0x06, 0x38, 1024, 768, 0x10, 0x00, 0x00}, /* 0x19 */
405 {0x407f, 0x00, 0x00, 0x00, 0x00, 0x41, 320, 200, 0x30, 0x56, 0x4e}, /* 0x1a */
406 {0xc07f, 0x01, 0x00, 0x04, 0x04, 0x50, 320, 240, 0x30, 0x00, 0x00}, /* 0x1b */
407 {0x007f, 0x02, 0x04, 0x05, 0x05, 0x51, 400, 300, 0x30, 0x00, 0x00}, /* 0x1c */
408 {0xc077, 0x03, 0x0b, 0x06, 0x06, 0x52, 512, 384, 0x30, 0x00, 0x00}, /* 0x1d */
409 {0x0077, 0x32, 0x40, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00}, /* 0x1e */
410 {0x0047, 0x33, 0x07, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00}, /* 0x1f */
411 {0x0047, 0x34, 0x0a, 0x08, 0x18, 0x70, 800, 480, 0x30, 0x00, 0x00}, /* 0x20 */
412 {0x0077, 0x35, 0x0b, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00}, /* 0x21 */
413 {0x0047, 0x36, 0x11, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00}, /* 0x22 */
414 {0x0047, 0x37, 0x16, 0x09, 0x19, 0x71, 1024, 576, 0x30, 0x00, 0x00}, /* 0x23 */
415 {0x1137, 0x38, 0x19, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00}, /* 0x24 */
416 {0x1107, 0x39, 0x1e, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00}, /* 0x25 */
417 {0x1307, 0x3a, 0x20, 0x0a, 0x0c, 0x75, 1280, 720, 0x30, 0x00, 0x00}, /* 0x26 */
418 {0x0077, 0x42, 0x5b, 0x08, 0x11, 0x23, 1280, 768, 0x30, 0x00, 0x00}, /* 0x27 */
419 {0x0087, 0x45, 0x57, 0x00, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00}, /* 0x28 38Hzi */
420 {0xc067, 0x46, 0x55, 0x0b, 0x16, 0x39, 848, 480, 0x30, 0x00, 0x00}, /* 0x29 848x480-60Hz */
421 {0x0087, 0x47, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00}, /* 0x2a 856x480-38Hzi */
422 {0xc067, 0x48, 0x57, 0x00, 0x17, 0x3f, 856, 480, 0x30, 0x00, 0x00}, /* 0x2b 856x480-60Hz */
423 {0x006f, 0x4d, 0x71, 0x06, 0x15, 0x5f, 768, 576, 0x30, 0x00, 0x00}, /* 0x2c 768x576-56Hz */
424 {0x0067, 0x52, 0x6a, 0x00, 0x1c, 0x1d, 960, 540, 0x30, 0x00, 0x00}, /* 0x2d 960x540 60Hz */
425 {0x0077, 0x53, 0x6b, 0x0b, 0x1d, 0x20, 960, 600, 0x30, 0x00, 0x00}, /* 0x2e 960x600 60Hz */
426 {0x0087, 0x1c, 0x11, 0x00, 0x07, 0x3a, 1280, 1024, 0x30, 0x00, 0x00}, /* 0x2f */
427 {0x0137, 0x1d, 0x19, 0x07, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00}, /* 0x30 */
428 {0x0107, 0x1e, 0x1e, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00}, /* 0x31 */
429 {0x0207, 0x1f, 0x20, 0x00, 0x07, 0x3a, 1280, 1024, 0x00, 0x00, 0x00}, /* 0x32 */
430 {0x0127, 0x54, 0x6d, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00}, /* 0x33 1152x864-60Hz */
431 {0x0127, 0x44, 0x19, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00}, /* 0x34 1152x864-75Hz */
432 {0x0127, 0x4a, 0x1e, 0x00, 0x1a, 0x29, 1152, 864, 0x30, 0x00, 0x00}, /* 0x35 1152x864-85Hz */
433 {0xffff, 0x00, 0x00, 0x00, 0x00, 0x00, 0, 0, 0, 0x00, 0x00}
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200434};
435
Felipe Balbi7c599012007-08-10 09:34:32 -0400436static const struct SiS_CRT1Table SiSUSB_CRT1Table[] = {
437 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0xbf, 0x1f,
438 0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x00,
439 0x00}}, /* 0x0 */
440 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
441 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
442 0x00}}, /* 0x1 */
443 {{0x3d, 0x31, 0x31, 0x81, 0x37, 0x1f, 0x72, 0xf0,
444 0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x05,
445 0x01}}, /* 0x2 */
446 {{0x4f, 0x3f, 0x3f, 0x93, 0x45, 0x0d, 0x24, 0xf5,
447 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x01,
448 0x01}}, /* 0x3 */
449 {{0x5f, 0x4f, 0x50, 0x82, 0x55, 0x81, 0xbf, 0x1f,
450 0x9c, 0x8e, 0x8f, 0x96, 0xb9, 0x30, 0x00, 0x05,
451 0x00}}, /* 0x4 */
452 {{0x5f, 0x4f, 0x4f, 0x83, 0x55, 0x81, 0x0b, 0x3e,
453 0xe9, 0x8b, 0xdf, 0xe8, 0x0c, 0x00, 0x00, 0x05,
454 0x00}}, /* 0x5 */
455 {{0x63, 0x4f, 0x4f, 0x87, 0x56, 0x9b, 0x06, 0x3e,
456 0xe8, 0x8a, 0xdf, 0xe7, 0x07, 0x00, 0x00, 0x01,
457 0x00}}, /* 0x6 */
458 {{0x64, 0x4f, 0x4f, 0x88, 0x55, 0x9d, 0xf2, 0x1f,
459 0xe0, 0x83, 0xdf, 0xdf, 0xf3, 0x10, 0x00, 0x01,
460 0x00}}, /* 0x7 */
461 {{0x63, 0x4f, 0x4f, 0x87, 0x5a, 0x81, 0xfb, 0x1f,
462 0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
463 0x00}}, /* 0x8 */
464 {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0xfb, 0x1f,
465 0xe0, 0x83, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x05,
466 0x61}}, /* 0x9 */
467 {{0x65, 0x4f, 0x4f, 0x89, 0x58, 0x80, 0x01, 0x3e,
468 0xe0, 0x83, 0xdf, 0xdf, 0x02, 0x00, 0x00, 0x05,
469 0x61}}, /* 0xa */
470 {{0x67, 0x4f, 0x4f, 0x8b, 0x58, 0x81, 0x0d, 0x3e,
471 0xe0, 0x83, 0xdf, 0xdf, 0x0e, 0x00, 0x00, 0x05,
472 0x61}}, /* 0xb */
473 {{0x65, 0x4f, 0x4f, 0x89, 0x57, 0x9f, 0xfb, 0x1f,
474 0xe6, 0x8a, 0xdf, 0xdf, 0xfc, 0x10, 0x00, 0x01,
475 0x00}}, /* 0xc */
476 {{0x7b, 0x63, 0x63, 0x9f, 0x6a, 0x93, 0x6f, 0xf0,
477 0x58, 0x8a, 0x57, 0x57, 0x70, 0x20, 0x00, 0x05,
478 0x01}}, /* 0xd */
479 {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xf0,
480 0x58, 0x8c, 0x57, 0x57, 0x73, 0x20, 0x00, 0x06,
481 0x01}}, /* 0xe */
482 {{0x7d, 0x63, 0x63, 0x81, 0x6e, 0x1d, 0x98, 0xf0,
483 0x7c, 0x82, 0x57, 0x57, 0x99, 0x00, 0x00, 0x06,
484 0x01}}, /* 0xf */
485 {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xf0,
486 0x58, 0x8b, 0x57, 0x57, 0x70, 0x20, 0x00, 0x06,
487 0x01}}, /* 0x10 */
488 {{0x7e, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xf0,
489 0x58, 0x8b, 0x57, 0x57, 0x76, 0x20, 0x00, 0x06,
490 0x01}}, /* 0x11 */
491 {{0x81, 0x63, 0x63, 0x85, 0x6d, 0x18, 0x7a, 0xf0,
492 0x58, 0x8b, 0x57, 0x57, 0x7b, 0x20, 0x00, 0x06,
493 0x61}}, /* 0x12 */
494 {{0x83, 0x63, 0x63, 0x87, 0x6e, 0x19, 0x81, 0xf0,
495 0x58, 0x8b, 0x57, 0x57, 0x82, 0x20, 0x00, 0x06,
496 0x61}}, /* 0x13 */
497 {{0x85, 0x63, 0x63, 0x89, 0x6f, 0x1a, 0x91, 0xf0,
498 0x58, 0x8b, 0x57, 0x57, 0x92, 0x20, 0x00, 0x06,
499 0x61}}, /* 0x14 */
500 {{0x99, 0x7f, 0x7f, 0x9d, 0x84, 0x1a, 0x96, 0x1f,
501 0x7f, 0x83, 0x7f, 0x7f, 0x97, 0x10, 0x00, 0x02,
502 0x00}}, /* 0x15 */
503 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
504 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
505 0x01}}, /* 0x16 */
506 {{0xa1, 0x7f, 0x7f, 0x85, 0x86, 0x97, 0x24, 0xf5,
507 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
508 0x01}}, /* 0x17 */
509 {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf5,
510 0x00, 0x83, 0xff, 0xff, 0x1f, 0x10, 0x00, 0x02,
511 0x01}}, /* 0x18 */
512 {{0xa7, 0x7f, 0x7f, 0x8b, 0x89, 0x95, 0x26, 0xf5,
513 0x00, 0x83, 0xff, 0xff, 0x27, 0x10, 0x00, 0x02,
514 0x01}}, /* 0x19 */
515 {{0xa9, 0x7f, 0x7f, 0x8d, 0x8c, 0x9a, 0x2c, 0xf5,
516 0x00, 0x83, 0xff, 0xff, 0x2d, 0x14, 0x00, 0x02,
517 0x62}}, /* 0x1a */
518 {{0xab, 0x7f, 0x7f, 0x8f, 0x8d, 0x9b, 0x35, 0xf5,
519 0x00, 0x83, 0xff, 0xff, 0x36, 0x14, 0x00, 0x02,
520 0x62}}, /* 0x1b */
521 {{0xcf, 0x9f, 0x9f, 0x93, 0xb2, 0x01, 0x14, 0xba,
522 0x00, 0x83, 0xff, 0xff, 0x15, 0x00, 0x00, 0x03,
523 0x00}}, /* 0x1c */
524 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0x5a,
525 0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
526 0x01}}, /* 0x1d */
527 {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0x5a,
528 0x00, 0x83, 0xff, 0xff, 0x29, 0x09, 0x00, 0x07,
529 0x01}}, /* 0x1e */
530 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0x5a,
531 0x00, 0x83, 0xff, 0xff, 0x2f, 0x09, 0x00, 0x07,
532 0x01}}, /* 0x1f */
533 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
534 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
535 0x00}}, /* 0x20 */
536 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
537 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
538 0x00}}, /* 0x21 */
539 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
540 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
541 0x00}}, /* 0x22 */
542 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
543 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
544 0x00}}, /* 0x23 */
545 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
546 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
547 0x00}}, /* 0x24 */
548 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
549 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
550 0x00}}, /* 0x25 */
551 {{0x09, 0xc7, 0xc7, 0x8d, 0xd3, 0x0b, 0xe0, 0x10,
552 0xb0, 0x83, 0xaf, 0xaf, 0xe1, 0x2f, 0x01, 0x04,
553 0x00}}, /* 0x26 */
554 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
555 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
556 0x00}}, /* 0x27 */
557 {{0x43, 0xef, 0xef, 0x87, 0x06, 0x00, 0xd4, 0x1f,
558 0xa0, 0x83, 0x9f, 0x9f, 0xd5, 0x1f, 0x41, 0x05,
559 0x63}}, /* 0x28 */
560 {{0x45, 0xef, 0xef, 0x89, 0x07, 0x01, 0xd9, 0x1f,
561 0xa0, 0x83, 0x9f, 0x9f, 0xda, 0x1f, 0x41, 0x05,
562 0x63}}, /* 0x29 */
563 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
564 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
565 0x00}}, /* 0x2a */
566 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
567 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
568 0x00}}, /* 0x2b */
569 {{0x40, 0xef, 0xef, 0x84, 0x03, 0x1d, 0xda, 0x1f,
570 0xa0, 0x83, 0x9f, 0x9f, 0xdb, 0x1f, 0x41, 0x01,
571 0x00}}, /* 0x2c */
572 {{0x59, 0xff, 0xff, 0x9d, 0x17, 0x13, 0x33, 0xba,
573 0x00, 0x83, 0xff, 0xff, 0x34, 0x0f, 0x41, 0x05,
574 0x44}}, /* 0x2d */
575 {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x38, 0xba,
576 0x00, 0x83, 0xff, 0xff, 0x39, 0x0f, 0x41, 0x05,
577 0x44}}, /* 0x2e */
578 {{0x5b, 0xff, 0xff, 0x9f, 0x18, 0x14, 0x3d, 0xba,
579 0x00, 0x83, 0xff, 0xff, 0x3e, 0x0f, 0x41, 0x05,
580 0x44}}, /* 0x2f */
581 {{0x5d, 0xff, 0xff, 0x81, 0x19, 0x95, 0x41, 0xba,
582 0x00, 0x84, 0xff, 0xff, 0x42, 0x0f, 0x41, 0x05,
583 0x44}}, /* 0x30 */
584 {{0x55, 0xff, 0xff, 0x99, 0x0d, 0x0c, 0x3e, 0xba,
585 0x00, 0x84, 0xff, 0xff, 0x3f, 0x0f, 0x41, 0x05,
586 0x00}}, /* 0x31 */
587 {{0x7f, 0x63, 0x63, 0x83, 0x6c, 0x1c, 0x72, 0xba,
588 0x27, 0x8b, 0xdf, 0xdf, 0x73, 0x00, 0x00, 0x06,
589 0x01}}, /* 0x32 */
590 {{0x7f, 0x63, 0x63, 0x83, 0x69, 0x13, 0x6f, 0xba,
591 0x26, 0x89, 0xdf, 0xdf, 0x6f, 0x00, 0x00, 0x06,
592 0x01}}, /* 0x33 */
593 {{0x7f, 0x63, 0x63, 0x82, 0x6b, 0x13, 0x75, 0xba,
594 0x29, 0x8c, 0xdf, 0xdf, 0x75, 0x00, 0x00, 0x06,
595 0x01}}, /* 0x34 */
596 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf1,
597 0xaf, 0x85, 0x3f, 0x3f, 0x25, 0x30, 0x00, 0x02,
598 0x01}}, /* 0x35 */
599 {{0x9f, 0x7f, 0x7f, 0x83, 0x85, 0x91, 0x1e, 0xf1,
600 0xad, 0x81, 0x3f, 0x3f, 0x1f, 0x30, 0x00, 0x02,
601 0x01}}, /* 0x36 */
602 {{0xa7, 0x7f, 0x7f, 0x88, 0x89, 0x95, 0x26, 0xf1,
603 0xb1, 0x85, 0x3f, 0x3f, 0x27, 0x30, 0x00, 0x02,
604 0x01}}, /* 0x37 */
605 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x28, 0xc4,
606 0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
607 0x01}}, /* 0x38 */
608 {{0xce, 0x9f, 0x9f, 0x92, 0xa5, 0x17, 0x28, 0xd4,
609 0x7a, 0x8e, 0xcf, 0xcf, 0x29, 0x21, 0x00, 0x07,
610 0x01}}, /* 0x39 */
611 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0x2e, 0xd4,
612 0x7d, 0x81, 0xcf, 0xcf, 0x2f, 0x21, 0x00, 0x07,
613 0x01}}, /* 0x3a */
614 {{0xdc, 0x9f, 0x9f, 0x80, 0xaf, 0x9d, 0xe6, 0xff,
615 0xc0, 0x83, 0xbf, 0xbf, 0xe7, 0x10, 0x00, 0x07,
616 0x01}}, /* 0x3b */
617 {{0x6b, 0x59, 0x59, 0x8f, 0x5e, 0x8c, 0x0b, 0x3e,
618 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x05,
619 0x00}}, /* 0x3c */
620 {{0x6d, 0x59, 0x59, 0x91, 0x60, 0x89, 0x53, 0xf0,
621 0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
622 0x41}}, /* 0x3d */
623 {{0x86, 0x6a, 0x6a, 0x8a, 0x74, 0x06, 0x8c, 0x15,
624 0x4f, 0x83, 0xef, 0xef, 0x8d, 0x30, 0x00, 0x02,
625 0x00}}, /* 0x3e */
626 {{0x81, 0x6a, 0x6a, 0x85, 0x70, 0x00, 0x0f, 0x3e,
627 0xeb, 0x8e, 0xdf, 0xdf, 0x10, 0x00, 0x00, 0x02,
628 0x00}}, /* 0x3f */
629 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x1e, 0xf1,
630 0xae, 0x85, 0x57, 0x57, 0x1f, 0x30, 0x00, 0x02,
631 0x01}}, /* 0x40 */
632 {{0xa3, 0x7f, 0x7f, 0x87, 0x86, 0x97, 0x24, 0xf5,
633 0x02, 0x88, 0xff, 0xff, 0x25, 0x10, 0x00, 0x02,
634 0x01}}, /* 0x41 */
635 {{0xce, 0x9f, 0x9f, 0x92, 0xa9, 0x17, 0x20, 0xf5,
636 0x03, 0x88, 0xff, 0xff, 0x21, 0x10, 0x00, 0x07,
637 0x01}}, /* 0x42 */
638 {{0xe6, 0xae, 0xae, 0x8a, 0xbd, 0x90, 0x3d, 0x10,
639 0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x00, 0x03,
640 0x00}}, /* 0x43 */
641 {{0xc3, 0x8f, 0x8f, 0x87, 0x9b, 0x0b, 0x82, 0xef,
642 0x60, 0x83, 0x5f, 0x5f, 0x83, 0x10, 0x00, 0x07,
643 0x01}}, /* 0x44 */
644 {{0x86, 0x69, 0x69, 0x8A, 0x74, 0x06, 0x8C, 0x15,
645 0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
646 0x00}}, /* 0x45 */
647 {{0x83, 0x69, 0x69, 0x87, 0x6f, 0x1d, 0x03, 0x3E,
648 0xE5, 0x8d, 0xDF, 0xe4, 0x04, 0x00, 0x00, 0x06,
649 0x00}}, /* 0x46 */
650 {{0x86, 0x6A, 0x6A, 0x8A, 0x74, 0x06, 0x8C, 0x15,
651 0x4F, 0x83, 0xEF, 0xEF, 0x8D, 0x30, 0x00, 0x02,
652 0x00}}, /* 0x47 */
653 {{0x81, 0x6A, 0x6A, 0x85, 0x70, 0x00, 0x0F, 0x3E,
654 0xEB, 0x8E, 0xDF, 0xDF, 0x10, 0x00, 0x00, 0x02,
655 0x00}}, /* 0x48 */
656 {{0xdd, 0xa9, 0xa9, 0x81, 0xb4, 0x97, 0x26, 0xfd,
657 0x01, 0x8d, 0xff, 0x00, 0x27, 0x10, 0x00, 0x03,
658 0x01}}, /* 0x49 */
659 {{0xd9, 0x8f, 0x8f, 0x9d, 0xba, 0x0a, 0x8a, 0xff,
660 0x60, 0x8b, 0x5f, 0x5f, 0x8b, 0x10, 0x00, 0x03,
661 0x01}}, /* 0x4a */
662 {{0xea, 0xae, 0xae, 0x8e, 0xba, 0x82, 0x40, 0x10,
663 0x1b, 0x87, 0x19, 0x1a, 0x41, 0x0f, 0x00, 0x03,
664 0x00}}, /* 0x4b */
665 {{0xd3, 0x9f, 0x9f, 0x97, 0xab, 0x1f, 0xf1, 0xff,
666 0xc0, 0x83, 0xbf, 0xbf, 0xf2, 0x10, 0x00, 0x07,
667 0x01}}, /* 0x4c */
668 {{0x75, 0x5f, 0x5f, 0x99, 0x66, 0x90, 0x53, 0xf0,
669 0x41, 0x84, 0x3f, 0x3f, 0x54, 0x00, 0x00, 0x05,
670 0x41}},
671 {{0x2d, 0x27, 0x28, 0x90, 0x2c, 0x80, 0x0b, 0x3e,
672 0xe9, 0x8b, 0xdf, 0xe7, 0x04, 0x00, 0x00, 0x00,
673 0x00}}, /* 0x4e */
674 {{0xcd, 0x9f, 0x9f, 0x91, 0xab, 0x1c, 0x3a, 0xff,
675 0x20, 0x83, 0x1f, 0x1f, 0x3b, 0x10, 0x00, 0x07,
676 0x21}}, /* 0x4f */
677 {{0x15, 0xd1, 0xd1, 0x99, 0xe2, 0x19, 0x3d, 0x10,
678 0x1a, 0x8d, 0x19, 0x19, 0x3e, 0x2f, 0x01, 0x0c,
679 0x20}}, /* 0x50 */
680 {{0x0e, 0xef, 0xef, 0x92, 0xfe, 0x03, 0x30, 0xf0,
681 0x1e, 0x83, 0x1b, 0x1c, 0x31, 0x00, 0x01, 0x00,
682 0x61}}, /* 0x51 */
683 {{0x85, 0x77, 0x77, 0x89, 0x7d, 0x01, 0x31, 0xf0,
684 0x1e, 0x84, 0x1b, 0x1c, 0x32, 0x00, 0x00, 0x02,
685 0x41}}, /* 0x52 */
686 {{0x87, 0x77, 0x77, 0x8b, 0x81, 0x0b, 0x68, 0xf0,
687 0x5a, 0x80, 0x57, 0x57, 0x69, 0x00, 0x00, 0x02,
688 0x01}}, /* 0x53 */
689 {{0xcd, 0x8f, 0x8f, 0x91, 0x9b, 0x1b, 0x7a, 0xff,
690 0x64, 0x8c, 0x5f, 0x62, 0x7b, 0x10, 0x00, 0x07,
691 0x41}} /* 0x54 */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200692};
693
Felipe Balbi7c599012007-08-10 09:34:32 -0400694static const struct SiS_VCLKData SiSUSB_VCLKData[] = {
695 {0x1b, 0xe1, 25}, /* 0x00 */
696 {0x4e, 0xe4, 28}, /* 0x01 */
697 {0x57, 0xe4, 31}, /* 0x02 */
698 {0xc3, 0xc8, 36}, /* 0x03 */
699 {0x42, 0xe2, 40}, /* 0x04 */
700 {0xfe, 0xcd, 43}, /* 0x05 */
701 {0x5d, 0xc4, 44}, /* 0x06 */
702 {0x52, 0xe2, 49}, /* 0x07 */
703 {0x53, 0xe2, 50}, /* 0x08 */
704 {0x74, 0x67, 52}, /* 0x09 */
705 {0x6d, 0x66, 56}, /* 0x0a */
706 {0x5a, 0x64, 65}, /* 0x0b */
707 {0x46, 0x44, 67}, /* 0x0c */
708 {0xb1, 0x46, 68}, /* 0x0d */
709 {0xd3, 0x4a, 72}, /* 0x0e */
710 {0x29, 0x61, 75}, /* 0x0f */
711 {0x6e, 0x46, 76}, /* 0x10 */
712 {0x2b, 0x61, 78}, /* 0x11 */
713 {0x31, 0x42, 79}, /* 0x12 */
714 {0xab, 0x44, 83}, /* 0x13 */
715 {0x46, 0x25, 84}, /* 0x14 */
716 {0x78, 0x29, 86}, /* 0x15 */
717 {0x62, 0x44, 94}, /* 0x16 */
718 {0x2b, 0x41, 104}, /* 0x17 */
719 {0x3a, 0x23, 105}, /* 0x18 */
720 {0x70, 0x44, 108}, /* 0x19 */
721 {0x3c, 0x23, 109}, /* 0x1a */
722 {0x5e, 0x43, 113}, /* 0x1b */
723 {0xbc, 0x44, 116}, /* 0x1c */
724 {0xe0, 0x46, 132}, /* 0x1d */
725 {0x54, 0x42, 135}, /* 0x1e */
726 {0xea, 0x2a, 139}, /* 0x1f */
727 {0x41, 0x22, 157}, /* 0x20 */
728 {0x70, 0x24, 162}, /* 0x21 */
729 {0x30, 0x21, 175}, /* 0x22 */
730 {0x4e, 0x22, 189}, /* 0x23 */
731 {0xde, 0x26, 194}, /* 0x24 */
732 {0x62, 0x06, 202}, /* 0x25 */
733 {0x3f, 0x03, 229}, /* 0x26 */
734 {0xb8, 0x06, 234}, /* 0x27 */
735 {0x34, 0x02, 253}, /* 0x28 */
736 {0x58, 0x04, 255}, /* 0x29 */
737 {0x24, 0x01, 265}, /* 0x2a */
738 {0x9b, 0x02, 267}, /* 0x2b */
739 {0x70, 0x05, 270}, /* 0x2c */
740 {0x25, 0x01, 272}, /* 0x2d */
741 {0x9c, 0x02, 277}, /* 0x2e */
742 {0x27, 0x01, 286}, /* 0x2f */
743 {0x3c, 0x02, 291}, /* 0x30 */
744 {0xef, 0x0a, 292}, /* 0x31 */
745 {0xf6, 0x0a, 310}, /* 0x32 */
746 {0x95, 0x01, 315}, /* 0x33 */
747 {0xf0, 0x09, 324}, /* 0x34 */
748 {0xfe, 0x0a, 331}, /* 0x35 */
749 {0xf3, 0x09, 332}, /* 0x36 */
750 {0xea, 0x08, 340}, /* 0x37 */
751 {0xe8, 0x07, 376}, /* 0x38 */
752 {0xde, 0x06, 389}, /* 0x39 */
753 {0x52, 0x2a, 54}, /* 0x3a 301 TV */
754 {0x52, 0x6a, 27}, /* 0x3b 301 TV */
755 {0x62, 0x24, 70}, /* 0x3c 301 TV */
756 {0x62, 0x64, 70}, /* 0x3d 301 TV */
757 {0xa8, 0x4c, 30}, /* 0x3e 301 TV */
758 {0x20, 0x26, 33}, /* 0x3f 301 TV */
759 {0x31, 0xc2, 39}, /* 0x40 */
760 {0x60, 0x36, 30}, /* 0x41 Chrontel */
761 {0x40, 0x4a, 28}, /* 0x42 Chrontel */
762 {0x9f, 0x46, 44}, /* 0x43 Chrontel */
763 {0x97, 0x2c, 26}, /* 0x44 */
764 {0x44, 0xe4, 25}, /* 0x45 Chrontel */
765 {0x7e, 0x32, 47}, /* 0x46 Chrontel */
766 {0x8a, 0x24, 31}, /* 0x47 Chrontel */
767 {0x97, 0x2c, 26}, /* 0x48 Chrontel */
768 {0xce, 0x3c, 39}, /* 0x49 */
769 {0x52, 0x4a, 36}, /* 0x4a Chrontel */
770 {0x34, 0x61, 95}, /* 0x4b */
771 {0x78, 0x27, 108}, /* 0x4c - was 102 */
772 {0x66, 0x43, 123}, /* 0x4d Modes 0x26-0x28 (1400x1050) */
773 {0x41, 0x4e, 21}, /* 0x4e */
774 {0xa1, 0x4a, 29}, /* 0x4f Chrontel */
775 {0x19, 0x42, 42}, /* 0x50 */
776 {0x54, 0x46, 58}, /* 0x51 Chrontel */
777 {0x25, 0x42, 61}, /* 0x52 */
778 {0x44, 0x44, 66}, /* 0x53 Chrontel */
779 {0x3a, 0x62, 70}, /* 0x54 Chrontel */
780 {0x62, 0xc6, 34}, /* 0x55 848x480-60 */
781 {0x6a, 0xc6, 37}, /* 0x56 848x480-75 - TEMP */
782 {0xbf, 0xc8, 35}, /* 0x57 856x480-38i,60 */
783 {0x30, 0x23, 88}, /* 0x58 1360x768-62 (is 60Hz!) */
784 {0x52, 0x07, 149}, /* 0x59 1280x960-85 */
785 {0x56, 0x07, 156}, /* 0x5a 1400x1050-75 */
786 {0x70, 0x29, 81}, /* 0x5b 1280x768 LCD */
787 {0x45, 0x25, 83}, /* 0x5c 1280x800 */
788 {0x70, 0x0a, 147}, /* 0x5d 1680x1050 */
789 {0x70, 0x24, 162}, /* 0x5e 1600x1200 */
790 {0x5a, 0x64, 65}, /* 0x5f 1280x720 - temp */
791 {0x63, 0x46, 68}, /* 0x60 1280x768_2 */
792 {0x31, 0x42, 79}, /* 0x61 1280x768_3 - temp */
793 {0, 0, 0}, /* 0x62 - custom (will be filled out at run-time) */
794 {0x5a, 0x64, 65}, /* 0x63 1280x720 (LCD LVDS) */
795 {0x70, 0x28, 90}, /* 0x64 1152x864@60 */
796 {0x41, 0xc4, 32}, /* 0x65 848x480@60 */
797 {0x5c, 0xc6, 32}, /* 0x66 856x480@60 */
798 {0x76, 0xe7, 27}, /* 0x67 720x480@60 */
799 {0x5f, 0xc6, 33}, /* 0x68 720/768x576@60 */
800 {0x52, 0x27, 75}, /* 0x69 1920x1080i 60Hz interlaced */
801 {0x7c, 0x6b, 38}, /* 0x6a 960x540@60 */
802 {0xe3, 0x56, 41}, /* 0x6b 960x600@60 */
803 {0x45, 0x25, 83}, /* 0x6c 1280x800 */
804 {0x70, 0x28, 90}, /* 0x6d 1152x864@60 */
805 {0x15, 0xe1, 20}, /* 0x6e 640x400@60 (fake, not actually used) */
806 {0x5f, 0xc6, 33}, /* 0x6f 720x576@60 */
807 {0x37, 0x5a, 10}, /* 0x70 320x200@60 (fake, not actually used) */
808 {0x2b, 0xc2, 35} /* 0x71 768@576@60 */
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200809};
810
Felipe Balbi7c599012007-08-10 09:34:32 -0400811int SiSUSBSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo);
812int SiSUSBSetVESAMode(struct SiS_Private *SiS_Pr, unsigned short VModeNo);
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200813
Felipe Balbi7c599012007-08-10 09:34:32 -0400814extern int sisusb_setreg(struct sisusb_usb_data *sisusb, int port, u8 data);
815extern int sisusb_getreg(struct sisusb_usb_data *sisusb, int port, u8 * data);
816extern int sisusb_setidxreg(struct sisusb_usb_data *sisusb, int port,
817 u8 index, u8 data);
818extern int sisusb_getidxreg(struct sisusb_usb_data *sisusb, int port,
819 u8 index, u8 * data);
820extern int sisusb_setidxregandor(struct sisusb_usb_data *sisusb, int port,
821 u8 idx, u8 myand, u8 myor);
822extern int sisusb_setidxregor(struct sisusb_usb_data *sisusb, int port,
823 u8 index, u8 myor);
824extern int sisusb_setidxregand(struct sisusb_usb_data *sisusb, int port,
825 u8 idx, u8 myand);
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200826
Adrian Bunkdf47e532006-04-15 11:17:27 +0200827void sisusb_delete(struct kref *kref);
828int sisusb_writeb(struct sisusb_usb_data *sisusb, u32 adr, u8 data);
Felipe Balbi7c599012007-08-10 09:34:32 -0400829int sisusb_readb(struct sisusb_usb_data *sisusb, u32 adr, u8 * data);
Adrian Bunkdf47e532006-04-15 11:17:27 +0200830int sisusb_copy_memory(struct sisusb_usb_data *sisusb, char *src,
Felipe Balbi7c599012007-08-10 09:34:32 -0400831 u32 dest, int length, size_t * bytes_written);
Adrian Bunkdf47e532006-04-15 11:17:27 +0200832int sisusb_reset_text_mode(struct sisusb_usb_data *sisusb, int init);
833int sisusbcon_do_font_op(struct sisusb_usb_data *sisusb, int set, int slot,
Felipe Balbi7c599012007-08-10 09:34:32 -0400834 u8 * arg, int cmapsz, int ch512, int dorecalc,
Adrian Bunkdf47e532006-04-15 11:17:27 +0200835 struct vc_data *c, int fh, int uplock);
836void sisusb_set_cursor(struct sisusb_usb_data *sisusb, unsigned int location);
837int sisusb_console_init(struct sisusb_usb_data *sisusb, int first, int last);
838void sisusb_console_exit(struct sisusb_usb_data *sisusb);
839void sisusb_init_concode(void);
840
Thomas Winischhofer1bbb4f22005-08-29 17:01:16 +0200841#endif