vserver 1.9.5.x5
[linux-2.6.git] / drivers / video / sis / vstruct.h
1 /* $XFree86$ */
2 /* $XdotOrg$ */
3 /*
4  * General structure definitions for universal mode switching modules
5  *
6  * Copyright (C) 2001-2004 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  *
49  * Author:      Thomas Winischhofer <thomas@winischhofer.net>
50  *
51  */
52
53 #ifndef _VSTRUCT_
54 #define _VSTRUCT_
55
56 typedef struct _SiS_PanelDelayTblStruct
57 {
58         UCHAR timer[2];
59 } SiS_PanelDelayTblStruct;
60
61 typedef struct _SiS_LCDDataStruct
62 {
63         USHORT RVBHCMAX;
64         USHORT RVBHCFACT;
65         USHORT VGAHT;
66         USHORT VGAVT;
67         USHORT LCDHT;
68         USHORT LCDVT;
69 } SiS_LCDDataStruct;
70
71 typedef struct _SiS_TVDataStruct
72 {
73         USHORT RVBHCMAX;
74         USHORT RVBHCFACT;
75         USHORT VGAHT;
76         USHORT VGAVT;
77         USHORT TVHDE;
78         USHORT TVVDE;
79         USHORT RVBHRS;
80         UCHAR  FlickerMode;
81         USHORT HALFRVBHRS;
82         UCHAR  RY1COE;
83         UCHAR  RY2COE;
84         UCHAR  RY3COE;
85         UCHAR  RY4COE;
86 } SiS_TVDataStruct;
87
88 typedef struct _SiS_LVDSDataStruct
89 {
90         USHORT VGAHT;
91         USHORT VGAVT;
92         USHORT LCDHT;
93         USHORT LCDVT;
94 } SiS_LVDSDataStruct;
95
96 typedef struct _SiS_LVDSDesStruct
97 {
98         USHORT LCDHDES;
99         USHORT LCDVDES;
100 } SiS_LVDSDesStruct;
101
102 typedef struct _SiS_LVDSCRT1DataStruct
103 {
104         UCHAR  CR[15];
105 } SiS_LVDSCRT1DataStruct;
106
107 typedef struct _SiS_LCDACRT1DataStruct
108 {
109         UCHAR  CR[17];
110 } SiS_LCDACRT1DataStruct;
111
112 typedef struct _SiS_CHTVRegDataStruct
113 {
114         UCHAR  Reg[16];
115 } SiS_CHTVRegDataStruct;
116
117 typedef struct _SiS_StStruct
118 {
119         UCHAR  St_ModeID;
120         USHORT St_ModeFlag;
121         UCHAR  St_StTableIndex;
122         UCHAR  St_CRT2CRTC;
123         UCHAR  St_ResInfo;
124         UCHAR  VB_StTVFlickerIndex;
125         UCHAR  VB_StTVEdgeIndex;
126         UCHAR  VB_StTVYFilterIndex;
127         UCHAR  St_PDC;
128 } SiS_StStruct;
129
130 typedef struct _SiS_VBModeStruct
131 {
132         UCHAR  ModeID;
133         UCHAR  VB_TVDelayIndex;
134         UCHAR  VB_TVFlickerIndex;
135         UCHAR  VB_TVPhaseIndex;
136         UCHAR  VB_TVYFilterIndex;
137         UCHAR  VB_LCDDelayIndex;
138         UCHAR  _VB_LCDHIndex;
139         UCHAR  _VB_LCDVIndex;
140 } SiS_VBModeStruct;
141
142 typedef struct _SiS_StandTableStruct
143 {
144         UCHAR  CRT_COLS;
145         UCHAR  ROWS;
146         UCHAR  CHAR_HEIGHT;
147         USHORT CRT_LEN;
148         UCHAR  SR[4];
149         UCHAR  MISC;
150         UCHAR  CRTC[0x19];
151         UCHAR  ATTR[0x14];
152         UCHAR  GRC[9];
153 } SiS_StandTableStruct;
154
155 typedef struct _SiS_ExtStruct
156 {
157         UCHAR  Ext_ModeID;
158         USHORT Ext_ModeFlag;
159         USHORT Ext_VESAID;
160         UCHAR  Ext_RESINFO;
161         UCHAR  VB_ExtTVFlickerIndex;
162         UCHAR  VB_ExtTVEdgeIndex;
163         UCHAR  VB_ExtTVYFilterIndex;
164         UCHAR  VB_ExtTVYFilterIndexROM661;
165         UCHAR  REFindex;
166         CHAR   ROMMODEIDX661;
167 } SiS_ExtStruct;
168
169 typedef struct _SiS_Ext2Struct
170 {
171         USHORT Ext_InfoFlag;
172         UCHAR  Ext_CRT1CRTC;
173         UCHAR  Ext_CRTVCLK;
174         UCHAR  Ext_CRT2CRTC;
175         UCHAR  Ext_CRT2CRTC_NS;
176         UCHAR  ModeID;
177         USHORT XRes;
178         USHORT YRes;
179         UCHAR  Ext_PDC;
180 } SiS_Ext2Struct;
181
182 typedef struct _SiS_Part2PortTblStruct
183 {
184         UCHAR  CR[12];
185 } SiS_Part2PortTblStruct;
186
187 typedef struct _SiS_CRT1TableStruct
188 {
189         UCHAR  CR[17];
190 } SiS_CRT1TableStruct;
191
192 typedef struct _SiS_MCLKDataStruct
193 {
194         UCHAR  SR28,SR29,SR2A;
195         USHORT CLOCK;
196 } SiS_MCLKDataStruct;
197
198 typedef struct _SiS_VCLKDataStruct
199 {
200         UCHAR  SR2B,SR2C;
201         USHORT CLOCK;
202 } SiS_VCLKDataStruct;
203
204 typedef struct _SiS_VBVCLKDataStruct
205 {
206         UCHAR  Part4_A,Part4_B;
207         USHORT CLOCK;
208 } SiS_VBVCLKDataStruct;
209
210 typedef struct _SiS_StResInfoStruct
211 {
212         USHORT HTotal;
213         USHORT VTotal;
214 } SiS_StResInfoStruct;
215
216 typedef struct _SiS_ModeResInfoStruct
217 {
218         USHORT HTotal;
219         USHORT VTotal;
220         UCHAR  XChar;
221         UCHAR  YChar;
222 } SiS_ModeResInfoStruct;
223
224
225
226 typedef UCHAR DRAM4Type[4];
227
228 /* Defines for SiS_CustomT */
229 /* Never change these for sisfb compatibility */
230 #define CUT_NONE          0
231 #define CUT_FORCENONE     1
232 #define CUT_BARCO1366     2
233 #define CUT_BARCO1024     3
234 #define CUT_COMPAQ1280    4
235 #define CUT_COMPAQ12802   5
236 #define CUT_PANEL848      6
237 #define CUT_CLEVO1024     7
238 #define CUT_CLEVO10242    8
239 #define CUT_CLEVO1400     9
240 #define CUT_CLEVO14002    10
241 #define CUT_UNIWILL1024   11
242 #define CUT_ASUSL3000D    12
243 #define CUT_UNIWILL10242  13
244 #define CUT_ACER1280      14
245 #define CUT_COMPAL1400_1  15
246 #define CUT_COMPAL1400_2  16
247 #define CUT_ASUSA2H_1     17
248 #define CUT_ASUSA2H_2     18
249
250 typedef struct _SiS_Private
251 {
252 #ifdef LINUX_KERNEL
253         SISIOADDRESS RelIO;
254 #endif
255         SISIOADDRESS SiS_P3c4;
256         SISIOADDRESS SiS_P3d4;
257         SISIOADDRESS SiS_P3c0;
258         SISIOADDRESS SiS_P3ce;
259         SISIOADDRESS SiS_P3c2;
260         SISIOADDRESS SiS_P3ca;
261         SISIOADDRESS SiS_P3c6;
262         SISIOADDRESS SiS_P3c7;
263         SISIOADDRESS SiS_P3c8;
264         SISIOADDRESS SiS_P3c9;
265         SISIOADDRESS SiS_P3cb;
266         SISIOADDRESS SiS_P3cd;
267         SISIOADDRESS SiS_P3da;
268         SISIOADDRESS SiS_Part1Port;
269         SISIOADDRESS SiS_Part2Port;
270         SISIOADDRESS SiS_Part3Port;
271         SISIOADDRESS SiS_Part4Port;
272         SISIOADDRESS SiS_Part5Port;
273         SISIOADDRESS SiS_VidCapt;
274         SISIOADDRESS SiS_VidPlay;
275         USHORT SiS_IF_DEF_LVDS;
276         USHORT SiS_IF_DEF_CH70xx;
277         USHORT SiS_IF_DEF_CONEX;
278         USHORT SiS_IF_DEF_TRUMPION;
279         USHORT SiS_IF_DEF_DSTN;
280         USHORT SiS_IF_DEF_FSTN;
281         USHORT SiS_SysFlags;
282         UCHAR  SiS_VGAINFO;
283 #ifdef LINUX_XF86
284         USHORT SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4;
285 #endif
286         BOOLEAN SiS_UseROM;
287         BOOLEAN SiS_ROMNew;
288         BOOLEAN SiS_NeedRomModeData;
289         BOOLEAN PanelSelfDetected;
290         int     SiS_CHOverScan;
291         BOOLEAN SiS_CHSOverScan;
292         BOOLEAN SiS_ChSW;
293         BOOLEAN SiS_UseLCDA;
294         int     SiS_UseOEM;
295         ULONG   SiS_CustomT;
296         USHORT  SiS_Backup70xx;
297         BOOLEAN HaveEMI;
298         BOOLEAN HaveEMILCD;
299         BOOLEAN OverruleEMI;
300         UCHAR  EMI_30,EMI_31,EMI_32,EMI_33;
301         USHORT SiS_EMIOffset;
302         SHORT  PDC, PDCA;
303         UCHAR  SiS_MyCR63;
304         USHORT SiS_CRT1Mode;
305         USHORT SiS_flag_clearbuffer;
306         int    SiS_RAMType;
307         UCHAR  SiS_ChannelAB;
308         UCHAR  SiS_DataBusWidth;
309         USHORT SiS_ModeType;
310         USHORT SiS_VBInfo;
311         USHORT SiS_TVMode;
312         USHORT SiS_LCDResInfo;
313         USHORT SiS_LCDTypeInfo;
314         USHORT SiS_LCDInfo;
315         USHORT SiS_LCDInfo661;
316         USHORT SiS_VBType;
317         USHORT SiS_VBExtInfo;
318         USHORT SiS_YPbPr;
319         USHORT SiS_SelectCRT2Rate;
320         USHORT SiS_SetFlag;
321         USHORT SiS_RVBHCFACT;
322         USHORT SiS_RVBHCMAX;
323         USHORT SiS_RVBHRS;
324         USHORT SiS_VGAVT;
325         USHORT SiS_VGAHT;
326         USHORT SiS_VT;
327         USHORT SiS_HT;
328         USHORT SiS_VGAVDE;
329         USHORT SiS_VGAHDE;
330         USHORT SiS_VDE;
331         USHORT SiS_HDE;
332         USHORT SiS_NewFlickerMode;
333         USHORT SiS_RY1COE;
334         USHORT SiS_RY2COE;
335         USHORT SiS_RY3COE;
336         USHORT SiS_RY4COE;
337         USHORT SiS_LCDHDES;
338         USHORT SiS_LCDVDES;
339         USHORT SiS_DDC_Port;
340         USHORT SiS_DDC_Index;
341         USHORT SiS_DDC_Data;
342         USHORT SiS_DDC_NData;
343         USHORT SiS_DDC_Clk;
344         USHORT SiS_DDC_NClk;
345         USHORT SiS_DDC_DeviceAddr;
346         USHORT SiS_DDC_ReadAddr;
347         USHORT SiS_DDC_SecAddr;
348         USHORT SiS_ChrontelInit;
349         BOOLEAN SiS_SensibleSR11;
350         USHORT SiS661LCD2TableSize;
351
352         USHORT SiS_PanelMinLVDS;
353         USHORT SiS_PanelMin301;
354
355         const SiS_StStruct          *SiS_SModeIDTable;
356         const SiS_StandTableStruct  *SiS_StandTable;
357         const SiS_ExtStruct         *SiS_EModeIDTable;
358         const SiS_Ext2Struct        *SiS_RefIndex;
359         const SiS_VBModeStruct      *SiS_VBModeIDTable;
360         const SiS_CRT1TableStruct   *SiS_CRT1Table;
361         const SiS_MCLKDataStruct    *SiS_MCLKData_0;
362         const SiS_MCLKDataStruct    *SiS_MCLKData_1;
363         SiS_VCLKDataStruct          *SiS_VCLKData;
364         SiS_VBVCLKDataStruct        *SiS_VBVCLKData;
365         const SiS_StResInfoStruct   *SiS_StResInfo;
366         const SiS_ModeResInfoStruct *SiS_ModeResInfo;
367
368         const UCHAR                 *pSiS_OutputSelect;
369         const UCHAR                 *pSiS_SoftSetting;
370
371         const DRAM4Type *SiS_SR15; /* pointer : point to array */
372 #ifdef LINUX_KERNEL
373         UCHAR *pSiS_SR07;
374         const DRAM4Type *SiS_CR40; /* pointer : point to array */
375         UCHAR *SiS_CR49;
376         UCHAR *SiS_SR25;
377         UCHAR *pSiS_SR1F;
378         UCHAR *pSiS_SR21;
379         UCHAR *pSiS_SR22;
380         UCHAR *pSiS_SR23;
381         UCHAR *pSiS_SR24;
382         UCHAR *pSiS_SR31;
383         UCHAR *pSiS_SR32;
384         UCHAR *pSiS_SR33;
385         UCHAR *pSiS_CRT2Data_1_2;
386         UCHAR *pSiS_CRT2Data_4_D;
387         UCHAR *pSiS_CRT2Data_4_E;
388         UCHAR *pSiS_CRT2Data_4_10;
389         const USHORT *pSiS_RGBSenseData;
390         const USHORT *pSiS_VideoSenseData;
391         const USHORT *pSiS_YCSenseData;
392         const USHORT *pSiS_RGBSenseData2;
393         const USHORT *pSiS_VideoSenseData2;
394         const USHORT *pSiS_YCSenseData2;
395 #endif
396
397         const SiS_PanelDelayTblStruct *SiS_PanelDelayTbl;
398         const SiS_PanelDelayTblStruct *SiS_PanelDelayTblLVDS;
399
400         /* SiS bridge */
401
402         const UCHAR *SiS_NTSCPhase;
403         const UCHAR *SiS_PALPhase;
404         const UCHAR *SiS_NTSCPhase2;
405         const UCHAR *SiS_PALPhase2;
406         const UCHAR *SiS_PALMPhase;
407         const UCHAR *SiS_PALNPhase;
408         const UCHAR *SiS_PALMPhase2;
409         const UCHAR *SiS_PALNPhase2;
410         const UCHAR *SiS_SpecialPhase;
411         const UCHAR *SiS_SpecialPhaseM;
412         const UCHAR *SiS_SpecialPhaseJ;
413         const SiS_LCDDataStruct  *SiS_ExtLCD1024x768Data;
414         const SiS_LCDDataStruct  *SiS_St2LCD1024x768Data;
415         const SiS_LCDDataStruct  *SiS_LCD1280x720Data;
416         const SiS_LCDDataStruct  *SiS_StLCD1280x768_2Data;
417         const SiS_LCDDataStruct  *SiS_ExtLCD1280x768_2Data;
418         const SiS_LCDDataStruct  *SiS_LCD1280x800Data;
419         const SiS_LCDDataStruct  *SiS_LCD1280x800_2Data;
420         const SiS_LCDDataStruct  *SiS_LCD1280x960Data;
421         const SiS_LCDDataStruct  *SiS_ExtLCD1280x1024Data;
422         const SiS_LCDDataStruct  *SiS_St2LCD1280x1024Data;
423         const SiS_LCDDataStruct  *SiS_StLCD1400x1050Data;
424         const SiS_LCDDataStruct  *SiS_ExtLCD1400x1050Data;
425         const SiS_LCDDataStruct  *SiS_StLCD1600x1200Data;
426         const SiS_LCDDataStruct  *SiS_ExtLCD1600x1200Data;
427         const SiS_LCDDataStruct  *SiS_LCD1680x1050Data;
428         const SiS_LCDDataStruct  *SiS_NoScaleData;
429         const SiS_TVDataStruct   *SiS_StPALData;
430         const SiS_TVDataStruct   *SiS_ExtPALData;
431         const SiS_TVDataStruct   *SiS_StNTSCData;
432         const SiS_TVDataStruct   *SiS_ExtNTSCData;
433         const SiS_TVDataStruct   *SiS_St1HiTVData;
434         const SiS_TVDataStruct   *SiS_St2HiTVData;
435         const SiS_TVDataStruct   *SiS_ExtHiTVData;
436         const SiS_TVDataStruct   *SiS_St525iData;
437         const SiS_TVDataStruct   *SiS_St525pData;
438         const SiS_TVDataStruct   *SiS_St750pData;
439         const SiS_TVDataStruct   *SiS_Ext525iData;
440         const SiS_TVDataStruct   *SiS_Ext525pData;
441         const SiS_TVDataStruct   *SiS_Ext750pData;
442         const UCHAR *SiS_NTSCTiming;
443         const UCHAR *SiS_PALTiming;
444         const UCHAR *SiS_HiTVExtTiming;
445         const UCHAR *SiS_HiTVSt1Timing;
446         const UCHAR *SiS_HiTVSt2Timing;
447         const UCHAR *SiS_HiTVGroup3Data;
448         const UCHAR *SiS_HiTVGroup3Simu;
449 #if 0
450         const UCHAR *SiS_HiTVTextTiming;
451         const UCHAR *SiS_HiTVGroup3Text;
452 #endif
453
454         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_1;
455         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_1;
456         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_2;
457         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_2;
458         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_3;
459         const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_3;
460
461         /* LVDS, Chrontel */
462
463         const SiS_LVDSDataStruct  *SiS_LVDS800x600Data_1;
464         const SiS_LVDSDataStruct  *SiS_LVDS800x600Data_2;
465         const SiS_LVDSDataStruct  *SiS_LVDS1024x768Data_1;
466         const SiS_LVDSDataStruct  *SiS_LVDS1024x768Data_2;
467         const SiS_LVDSDataStruct  *SiS_LVDS1280x1024Data_1;
468         const SiS_LVDSDataStruct  *SiS_LVDS1280x1024Data_2;
469         const SiS_LVDSDataStruct  *SiS_LVDS1280x960Data_1;
470         const SiS_LVDSDataStruct  *SiS_LVDS1280x960Data_2;
471         const SiS_LVDSDataStruct  *SiS_LVDS1400x1050Data_1;
472         const SiS_LVDSDataStruct  *SiS_LVDS1400x1050Data_2;
473         const SiS_LVDSDataStruct  *SiS_LVDS1600x1200Data_1;
474         const SiS_LVDSDataStruct  *SiS_LVDS1600x1200Data_2;
475         const SiS_LVDSDataStruct  *SiS_LVDS1280x768Data_1;
476         const SiS_LVDSDataStruct  *SiS_LVDS1280x768Data_2;
477         const SiS_LVDSDataStruct  *SiS_LVDS1024x600Data_1;
478         const SiS_LVDSDataStruct  *SiS_LVDS1024x600Data_2;
479         const SiS_LVDSDataStruct  *SiS_LVDS1152x768Data_1;
480         const SiS_LVDSDataStruct  *SiS_LVDS1152x768Data_2;
481         const SiS_LVDSDataStruct  *SiS_LVDS640x480Data_1;
482         const SiS_LVDSDataStruct  *SiS_LVDS640x480Data_2;
483         const SiS_LVDSDataStruct  *SiS_LVDS320x480Data_1;
484         const SiS_LVDSDataStruct  *SiS_LVDSXXXxXXXData_1;
485         const SiS_LVDSDataStruct  *SiS_LVDSBARCO1366Data_1;
486         const SiS_LVDSDataStruct  *SiS_LVDSBARCO1366Data_2;
487         const SiS_LVDSDataStruct  *SiS_LVDSBARCO1024Data_1;
488         const SiS_LVDSDataStruct  *SiS_LVDSBARCO1024Data_2;
489         const SiS_LVDSDataStruct  *SiS_LVDS848x480Data_1;
490         const SiS_LVDSDataStruct  *SiS_LVDS848x480Data_2;
491         const SiS_LVDSDataStruct  *SiS_CHTVUNTSCData;
492         const SiS_LVDSDataStruct  *SiS_CHTVONTSCData;
493         const SiS_LVDSDataStruct  *SiS_CHTVUPALData;
494         const SiS_LVDSDataStruct  *SiS_CHTVOPALData;
495         const SiS_LVDSDataStruct  *SiS_CHTVUPALMData;
496         const SiS_LVDSDataStruct  *SiS_CHTVOPALMData;
497         const SiS_LVDSDataStruct  *SiS_CHTVUPALNData;
498         const SiS_LVDSDataStruct  *SiS_CHTVOPALNData;
499         const SiS_LVDSDataStruct  *SiS_CHTVSOPALData;
500
501         const SiS_LVDSDesStruct  *SiS_PanelType00_1;
502         const SiS_LVDSDesStruct  *SiS_PanelType01_1;
503         const SiS_LVDSDesStruct  *SiS_PanelType02_1;
504         const SiS_LVDSDesStruct  *SiS_PanelType03_1;
505         const SiS_LVDSDesStruct  *SiS_PanelType04_1;
506         const SiS_LVDSDesStruct  *SiS_PanelType05_1;
507         const SiS_LVDSDesStruct  *SiS_PanelType06_1;
508         const SiS_LVDSDesStruct  *SiS_PanelType07_1;
509         const SiS_LVDSDesStruct  *SiS_PanelType08_1;
510         const SiS_LVDSDesStruct  *SiS_PanelType09_1;
511         const SiS_LVDSDesStruct  *SiS_PanelType0a_1;
512         const SiS_LVDSDesStruct  *SiS_PanelType0b_1;
513         const SiS_LVDSDesStruct  *SiS_PanelType0c_1;
514         const SiS_LVDSDesStruct  *SiS_PanelType0d_1;
515         const SiS_LVDSDesStruct  *SiS_PanelType0e_1;
516         const SiS_LVDSDesStruct  *SiS_PanelType0f_1;
517         const SiS_LVDSDesStruct  *SiS_PanelTypeNS_1;
518         const SiS_LVDSDesStruct  *SiS_PanelType00_2;
519         const SiS_LVDSDesStruct  *SiS_PanelType01_2;
520         const SiS_LVDSDesStruct  *SiS_PanelType02_2;
521         const SiS_LVDSDesStruct  *SiS_PanelType03_2;
522         const SiS_LVDSDesStruct  *SiS_PanelType04_2;
523         const SiS_LVDSDesStruct  *SiS_PanelType05_2;
524         const SiS_LVDSDesStruct  *SiS_PanelType06_2;
525         const SiS_LVDSDesStruct  *SiS_PanelType07_2;
526         const SiS_LVDSDesStruct  *SiS_PanelType08_2;
527         const SiS_LVDSDesStruct  *SiS_PanelType09_2;
528         const SiS_LVDSDesStruct  *SiS_PanelType0a_2;
529         const SiS_LVDSDesStruct  *SiS_PanelType0b_2;
530         const SiS_LVDSDesStruct  *SiS_PanelType0c_2;
531         const SiS_LVDSDesStruct  *SiS_PanelType0d_2;
532         const SiS_LVDSDesStruct  *SiS_PanelType0e_2;
533         const SiS_LVDSDesStruct  *SiS_PanelType0f_2;
534         const SiS_LVDSDesStruct  *SiS_PanelTypeNS_2;
535         const SiS_LVDSDesStruct  *SiS_CHTVUNTSCDesData;
536         const SiS_LVDSDesStruct  *SiS_CHTVONTSCDesData;
537         const SiS_LVDSDesStruct  *SiS_CHTVUPALDesData;
538         const SiS_LVDSDesStruct  *SiS_CHTVOPALDesData;
539
540         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1800x600_1;
541         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x768_1;
542         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x1024_1;
543         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11400x1050_1;
544         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x768_1;
545         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x600_1;
546         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11152x768_1;
547         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11600x1200_1;
548         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1800x600_1_H;
549         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x768_1_H;
550         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x1024_1_H;
551         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11400x1050_1_H;
552         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x768_1_H;
553         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x600_1_H;
554         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11152x768_1_H;
555         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11600x1200_1_H;
556         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1800x600_2;
557         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x768_2;
558         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x1024_2;
559         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11400x1050_2;
560         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x768_2;
561         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x600_2;
562         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11152x768_2;
563         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11600x1200_2;
564         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1800x600_2_H;
565         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x768_2_H;
566         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x1024_2_H;
567         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11400x1050_2_H;
568         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11280x768_2_H;
569         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11024x600_2_H;
570         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11152x768_2_H;
571         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT11600x1200_2_H;
572         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1XXXxXXX_1;
573         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1XXXxXXX_1_H;
574         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_1;
575         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_1_H;
576         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_2;
577         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_2_H;
578         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_3;
579         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1640x480_3_H;
580         const SiS_LVDSCRT1DataStruct  *SiS_LVDSCRT1320x480_1;
581         const SiS_LVDSCRT1DataStruct  *SiS_CHTVCRT1UNTSC;
582         const SiS_LVDSCRT1DataStruct  *SiS_CHTVCRT1ONTSC;
583         const SiS_LVDSCRT1DataStruct  *SiS_CHTVCRT1UPAL;
584         const SiS_LVDSCRT1DataStruct  *SiS_CHTVCRT1OPAL;
585         const SiS_LVDSCRT1DataStruct  *SiS_CHTVCRT1SOPAL;
586
587         const SiS_CHTVRegDataStruct *SiS_CHTVReg_UNTSC;
588         const SiS_CHTVRegDataStruct *SiS_CHTVReg_ONTSC;
589         const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPAL;
590         const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPAL;
591         const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALM;
592         const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALM;
593         const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALN;
594         const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALN;
595         const SiS_CHTVRegDataStruct *SiS_CHTVReg_SOPAL;
596
597         const UCHAR *SiS_CHTVVCLKUNTSC;
598         const UCHAR *SiS_CHTVVCLKONTSC;
599         const UCHAR *SiS_CHTVVCLKUPAL;
600         const UCHAR *SiS_CHTVVCLKOPAL;
601         const UCHAR *SiS_CHTVVCLKUPALM;
602         const UCHAR *SiS_CHTVVCLKOPALM;
603         const UCHAR *SiS_CHTVVCLKUPALN;
604         const UCHAR *SiS_CHTVVCLKOPALN;
605         const UCHAR *SiS_CHTVVCLKSOPAL;
606
607         USHORT  PanelXRes, PanelHT;
608         USHORT  PanelYRes, PanelVT;
609         USHORT  PanelHRS,  PanelHRE;
610         USHORT  PanelVRS,  PanelVRE;
611         USHORT  PanelVCLKIdx300;
612         USHORT  PanelVCLKIdx315;
613
614         BOOLEAN UseCustomMode;
615         BOOLEAN CRT1UsesCustomMode;
616         USHORT  CHDisplay;
617         USHORT  CHSyncStart;
618         USHORT  CHSyncEnd;
619         USHORT  CHTotal;
620         USHORT  CHBlankStart;
621         USHORT  CHBlankEnd;
622         USHORT  CVDisplay;
623         USHORT  CVSyncStart;
624         USHORT  CVSyncEnd;
625         USHORT  CVTotal;
626         USHORT  CVBlankStart;
627         USHORT  CVBlankEnd;
628         ULONG   CDClock;
629         ULONG   CFlags;   
630         UCHAR   CCRT1CRTC[17];
631         UCHAR   CSR2B;
632         UCHAR   CSR2C;
633         USHORT  CSRClock;
634         USHORT  CSRClock_CRT1;
635         USHORT  CModeFlag;
636         USHORT  CModeFlag_CRT1;
637         USHORT  CInfoFlag;
638
639         int     LVDSHL;
640         
641         BOOLEAN Backup;
642         UCHAR Backup_Mode;
643         UCHAR Backup_14;
644         UCHAR Backup_15;
645         UCHAR Backup_16;
646         UCHAR Backup_17;
647         UCHAR Backup_18;
648         UCHAR Backup_19;
649         UCHAR Backup_1a;
650         UCHAR Backup_1b;
651         UCHAR Backup_1c;
652         UCHAR Backup_1d;
653         
654         int     UsePanelScaler;
655         int     CenterScreen;
656
657         USHORT  CP_Vendor, CP_Product;
658         BOOLEAN CP_HaveCustomData;
659         int     CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
660         int     CP_MaxX, CP_MaxY, CP_MaxClock;
661         UCHAR   CP_PrefSR2B, CP_PrefSR2C;
662         USHORT  CP_PrefClock;
663         BOOLEAN CP_Supports64048075;
664         int     CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
665         int     CP_HTotal[7], CP_VTotal[7];
666         int     CP_HSyncStart[7], CP_VSyncStart[7];
667         int     CP_HSyncEnd[7], CP_VSyncEnd[7];
668         int     CP_HBlankStart[7], CP_VBlankStart[7];
669         int     CP_HBlankEnd[7], CP_VBlankEnd[7];
670         int     CP_Clock[7];
671         BOOLEAN CP_DataValid[7];
672         BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
673 } SiS_Private;
674
675 #endif
676