SiS driver:
[xf86-video-sis/mirage.git] / src / vstruct.h
blob503b5a2e7dd9783c6f5d61517a1e32465472c418
1 /* $XFree86$ */
2 /* $XdotOrg$ */
3 /*
4 * General structure definitions for universal mode switching modules
6 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria
8 * If distributed as part of the Linux kernel, the following license terms
9 * apply:
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
25 * Otherwise, the following license terms apply:
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.
49 * Author: Thomas Winischhofer <thomas@winischhofer.net>
53 #ifndef _VSTRUCT_
54 #define _VSTRUCT_
56 typedef struct _SiS_PanelDelayTblStruct
58 UCHAR timer[2];
59 } SiS_PanelDelayTblStruct;
61 typedef struct _SiS_LCDDataStruct
63 USHORT RVBHCMAX;
64 USHORT RVBHCFACT;
65 USHORT VGAHT;
66 USHORT VGAVT;
67 USHORT LCDHT;
68 USHORT LCDVT;
69 } SiS_LCDDataStruct;
71 typedef struct _SiS_TVDataStruct
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 USHORT RVBHRS2;
83 UCHAR RY1COE;
84 UCHAR RY2COE;
85 UCHAR RY3COE;
86 UCHAR RY4COE;
87 } SiS_TVDataStruct;
89 typedef struct _SiS_LVDSDataStruct
91 USHORT VGAHT;
92 USHORT VGAVT;
93 USHORT LCDHT;
94 USHORT LCDVT;
95 } SiS_LVDSDataStruct;
97 typedef struct _SiS_LVDSDesStruct
99 USHORT LCDHDES;
100 USHORT LCDVDES;
101 } SiS_LVDSDesStruct;
103 typedef struct _SiS_LVDSCRT1DataStruct
105 UCHAR CR[15];
106 } SiS_LVDSCRT1DataStruct;
108 typedef struct _SiS_CHTVRegDataStruct
110 UCHAR Reg[16];
111 } SiS_CHTVRegDataStruct;
113 typedef struct _SiS_StStruct
115 UCHAR St_ModeID;
116 USHORT St_ModeFlag;
117 UCHAR St_StTableIndex;
118 UCHAR St_CRT2CRTC;
119 UCHAR St_ResInfo;
120 UCHAR VB_StTVFlickerIndex;
121 UCHAR VB_StTVEdgeIndex;
122 UCHAR VB_StTVYFilterIndex;
123 UCHAR St_PDC;
124 } SiS_StStruct;
126 typedef struct _SiS_VBModeStruct
128 UCHAR ModeID;
129 UCHAR VB_TVDelayIndex;
130 UCHAR VB_TVFlickerIndex;
131 UCHAR VB_TVPhaseIndex;
132 UCHAR VB_TVYFilterIndex;
133 UCHAR VB_LCDDelayIndex;
134 UCHAR _VB_LCDHIndex;
135 UCHAR _VB_LCDVIndex;
136 } SiS_VBModeStruct;
138 typedef struct _SiS_StandTableStruct
140 UCHAR CRT_COLS;
141 UCHAR ROWS;
142 UCHAR CHAR_HEIGHT;
143 USHORT CRT_LEN;
144 UCHAR SR[4];
145 UCHAR MISC;
146 UCHAR CRTC[0x19];
147 UCHAR ATTR[0x14];
148 UCHAR GRC[9];
149 } SiS_StandTableStruct;
151 typedef struct _SiS_ExtStruct
153 UCHAR Ext_ModeID;
154 USHORT Ext_ModeFlag;
155 USHORT Ext_VESAID;
156 UCHAR Ext_RESINFO;
157 UCHAR VB_ExtTVFlickerIndex;
158 UCHAR VB_ExtTVEdgeIndex;
159 UCHAR VB_ExtTVYFilterIndex;
160 UCHAR VB_ExtTVYFilterIndexROM661;
161 UCHAR REFindex;
162 CHAR ROMMODEIDX661;
163 } SiS_ExtStruct;
165 typedef struct _SiS_Ext2Struct
167 USHORT Ext_InfoFlag;
168 UCHAR Ext_CRT1CRTC;
169 UCHAR Ext_CRTVCLK;
170 UCHAR Ext_CRT2CRTC;
171 UCHAR Ext_CRT2CRTC_NS;
172 UCHAR ModeID;
173 USHORT XRes;
174 USHORT YRes;
175 UCHAR Ext_PDC;
176 UCHAR Ext_FakeCRT2CRTC;
177 UCHAR Ext_FakeCRT2Clk;
178 UCHAR Ext_CRT1CRTC_NORM;
179 UCHAR Ext_CRTVCLK_NORM;
180 UCHAR Ext_CRT1CRTC_WIDE;
181 UCHAR Ext_CRTVCLK_WIDE;
182 } SiS_Ext2Struct;
184 typedef struct _SiS_Part2PortTblStruct
186 UCHAR CR[12];
187 } SiS_Part2PortTblStruct;
189 typedef struct _SiS_CRT1TableStruct
191 UCHAR CR[17];
192 } SiS_CRT1TableStruct;
194 typedef struct _SiS_MCLKDataStruct
196 UCHAR SR28,SR29,SR2A;
197 USHORT CLOCK;
198 } SiS_MCLKDataStruct;
200 typedef struct _SiS_VCLKDataStruct
202 UCHAR SR2B,SR2C;
203 USHORT CLOCK;
204 } SiS_VCLKDataStruct;
206 typedef struct _SiS_VBVCLKDataStruct
208 UCHAR Part4_A,Part4_B;
209 USHORT CLOCK;
210 } SiS_VBVCLKDataStruct;
212 typedef struct _SiS_StResInfoStruct
214 USHORT HTotal;
215 USHORT VTotal;
216 } SiS_StResInfoStruct;
218 typedef struct _SiS_ModeResInfoStruct
220 USHORT HTotal;
221 USHORT VTotal;
222 UCHAR XChar;
223 UCHAR YChar;
224 } SiS_ModeResInfoStruct;
226 typedef UCHAR DRAM4Type[4];
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 #define CUT_UNKNOWNLCD 19
250 #define CUT_AOP8060 20
252 typedef struct _SiS_Private
254 #ifdef LINUX_KERNEL
255 SISIOADDRESS RelIO;
256 #endif
257 SISIOADDRESS SiS_P3c4;
258 SISIOADDRESS SiS_P3d4;
259 SISIOADDRESS SiS_P3c0;
260 SISIOADDRESS SiS_P3ce;
261 SISIOADDRESS SiS_P3c2;
262 SISIOADDRESS SiS_P3ca;
263 SISIOADDRESS SiS_P3c6;
264 SISIOADDRESS SiS_P3c7;
265 SISIOADDRESS SiS_P3c8;
266 SISIOADDRESS SiS_P3c9;
267 SISIOADDRESS SiS_P3cb;
268 SISIOADDRESS SiS_P3cd;
269 SISIOADDRESS SiS_P3da;
270 SISIOADDRESS SiS_Part1Port;
271 SISIOADDRESS SiS_Part2Port;
272 SISIOADDRESS SiS_Part3Port;
273 SISIOADDRESS SiS_Part4Port;
274 SISIOADDRESS SiS_Part5Port;
275 SISIOADDRESS SiS_VidCapt;
276 SISIOADDRESS SiS_VidPlay;
277 USHORT SiS_IF_DEF_LVDS;
278 USHORT SiS_IF_DEF_CH70xx;
279 USHORT SiS_IF_DEF_CONEX;
280 USHORT SiS_IF_DEF_TRUMPION;
281 USHORT SiS_IF_DEF_DSTN;
282 USHORT SiS_IF_DEF_FSTN;
283 USHORT SiS_SysFlags;
284 UCHAR SiS_VGAINFO;
285 #ifdef LINUX_XF86
286 USHORT SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4;
287 #endif
288 BOOLEAN SiS_UseROM;
289 BOOLEAN SiS_ROMNew;
290 BOOLEAN SiS_NeedRomModeData;
291 BOOLEAN PanelSelfDetected;
292 int SiS_CHOverScan;
293 BOOLEAN SiS_CHSOverScan;
294 BOOLEAN SiS_ChSW;
295 BOOLEAN SiS_UseLCDA;
296 int SiS_UseOEM;
297 ULONG SiS_CustomT;
298 int SiS_UseWide, SiS_UseWideCRT2;
299 USHORT SiS_Backup70xx;
300 BOOLEAN HaveEMI;
301 BOOLEAN HaveEMILCD;
302 BOOLEAN OverruleEMI;
303 UCHAR EMI_30,EMI_31,EMI_32,EMI_33;
304 USHORT SiS_EMIOffset;
305 USHORT SiS_PWDOffset;
306 SHORT PDC, PDCA;
307 UCHAR SiS_MyCR63;
308 USHORT SiS_CRT1Mode;
309 USHORT SiS_flag_clearbuffer;
310 int SiS_RAMType;
311 UCHAR SiS_ChannelAB;
312 UCHAR SiS_DataBusWidth;
313 USHORT SiS_ModeType;
314 USHORT SiS_VBInfo;
315 USHORT SiS_TVMode;
316 USHORT SiS_LCDResInfo;
317 USHORT SiS_LCDTypeInfo;
318 USHORT SiS_LCDInfo;
319 USHORT SiS_LCDInfo661;
320 USHORT SiS_VBType;
321 USHORT SiS_VBExtInfo;
322 USHORT SiS_YPbPr;
323 USHORT SiS_SelectCRT2Rate;
324 USHORT SiS_SetFlag;
325 USHORT SiS_RVBHCFACT;
326 USHORT SiS_RVBHCMAX;
327 USHORT SiS_RVBHRS;
328 USHORT SiS_RVBHRS2;
329 USHORT SiS_VGAVT;
330 USHORT SiS_VGAHT;
331 USHORT SiS_VT;
332 USHORT SiS_HT;
333 USHORT SiS_VGAVDE;
334 USHORT SiS_VGAHDE;
335 USHORT SiS_VDE;
336 USHORT SiS_HDE;
337 USHORT SiS_NewFlickerMode;
338 USHORT SiS_RY1COE;
339 USHORT SiS_RY2COE;
340 USHORT SiS_RY3COE;
341 USHORT SiS_RY4COE;
342 USHORT SiS_LCDHDES;
343 USHORT SiS_LCDVDES;
344 USHORT SiS_DDC_Port;
345 USHORT SiS_DDC_Index;
346 USHORT SiS_DDC_Data;
347 USHORT SiS_DDC_NData;
348 USHORT SiS_DDC_Clk;
349 USHORT SiS_DDC_NClk;
350 USHORT SiS_DDC_DeviceAddr;
351 USHORT SiS_DDC_ReadAddr;
352 USHORT SiS_DDC_SecAddr;
353 USHORT SiS_ChrontelInit;
354 BOOLEAN SiS_SensibleSR11;
355 USHORT SiS661LCD2TableSize;
357 USHORT SiS_PanelMinLVDS;
358 USHORT SiS_PanelMin301;
360 const SiS_StStruct *SiS_SModeIDTable;
361 const SiS_StandTableStruct *SiS_StandTable;
362 const SiS_ExtStruct *SiS_EModeIDTable;
363 const SiS_Ext2Struct *SiS_RefIndex;
364 const SiS_VBModeStruct *SiS_VBModeIDTable;
365 const SiS_CRT1TableStruct *SiS_CRT1Table;
366 const SiS_MCLKDataStruct *SiS_MCLKData_0;
367 const SiS_MCLKDataStruct *SiS_MCLKData_1;
368 SiS_VCLKDataStruct *SiS_VCLKData;
369 SiS_VBVCLKDataStruct *SiS_VBVCLKData;
370 const SiS_StResInfoStruct *SiS_StResInfo;
371 const SiS_ModeResInfoStruct *SiS_ModeResInfo;
373 const UCHAR *pSiS_OutputSelect;
374 const UCHAR *pSiS_SoftSetting;
376 const DRAM4Type *SiS_SR15; /* pointer : point to array */
377 #ifdef LINUX_KERNEL
378 UCHAR *pSiS_SR07;
379 const DRAM4Type *SiS_CR40; /* pointer : point to array */
380 UCHAR *SiS_CR49;
381 UCHAR *SiS_SR25;
382 UCHAR *pSiS_SR1F;
383 UCHAR *pSiS_SR21;
384 UCHAR *pSiS_SR22;
385 UCHAR *pSiS_SR23;
386 UCHAR *pSiS_SR24;
387 UCHAR *pSiS_SR31;
388 UCHAR *pSiS_SR32;
389 UCHAR *pSiS_SR33;
390 UCHAR *pSiS_CRT2Data_1_2;
391 UCHAR *pSiS_CRT2Data_4_D;
392 UCHAR *pSiS_CRT2Data_4_E;
393 UCHAR *pSiS_CRT2Data_4_10;
394 const USHORT *pSiS_RGBSenseData;
395 const USHORT *pSiS_VideoSenseData;
396 const USHORT *pSiS_YCSenseData;
397 const USHORT *pSiS_RGBSenseData2;
398 const USHORT *pSiS_VideoSenseData2;
399 const USHORT *pSiS_YCSenseData2;
400 #endif
402 const SiS_PanelDelayTblStruct *SiS_PanelDelayTbl;
403 const SiS_PanelDelayTblStruct *SiS_PanelDelayTblLVDS;
405 /* SiS bridge */
407 const UCHAR *SiS_NTSCPhase;
408 const UCHAR *SiS_PALPhase;
409 const UCHAR *SiS_NTSCPhase2;
410 const UCHAR *SiS_PALPhase2;
411 const UCHAR *SiS_PALMPhase;
412 const UCHAR *SiS_PALNPhase;
413 const UCHAR *SiS_PALMPhase2;
414 const UCHAR *SiS_PALNPhase2;
415 const UCHAR *SiS_SpecialPhase;
416 const UCHAR *SiS_SpecialPhaseM;
417 const UCHAR *SiS_SpecialPhaseJ;
418 const SiS_LCDDataStruct *SiS_ExtLCD1024x768Data;
419 const SiS_LCDDataStruct *SiS_St2LCD1024x768Data;
420 const SiS_LCDDataStruct *SiS_LCD1280x720Data;
421 const SiS_LCDDataStruct *SiS_StLCD1280x768_2Data;
422 const SiS_LCDDataStruct *SiS_ExtLCD1280x768_2Data;
423 const SiS_LCDDataStruct *SiS_LCD1280x800Data;
424 const SiS_LCDDataStruct *SiS_LCD1280x800_2Data;
425 const SiS_LCDDataStruct *SiS_LCD1280x960Data;
426 const SiS_LCDDataStruct *SiS_ExtLCD1280x1024Data;
427 const SiS_LCDDataStruct *SiS_St2LCD1280x1024Data;
428 const SiS_LCDDataStruct *SiS_StLCD1400x1050Data;
429 const SiS_LCDDataStruct *SiS_ExtLCD1400x1050Data;
430 const SiS_LCDDataStruct *SiS_StLCD1600x1200Data;
431 const SiS_LCDDataStruct *SiS_ExtLCD1600x1200Data;
432 const SiS_LCDDataStruct *SiS_LCD1680x1050Data;
433 const SiS_LCDDataStruct *SiS_NoScaleData;
434 const SiS_TVDataStruct *SiS_StPALData;
435 const SiS_TVDataStruct *SiS_ExtPALData;
436 const SiS_TVDataStruct *SiS_StNTSCData;
437 const SiS_TVDataStruct *SiS_ExtNTSCData;
438 const SiS_TVDataStruct *SiS_St1HiTVData;
439 const SiS_TVDataStruct *SiS_St2HiTVData;
440 const SiS_TVDataStruct *SiS_ExtHiTVData;
441 const SiS_TVDataStruct *SiS_St525iData;
442 const SiS_TVDataStruct *SiS_St525pData;
443 const SiS_TVDataStruct *SiS_St750pData;
444 const SiS_TVDataStruct *SiS_Ext525iData;
445 const SiS_TVDataStruct *SiS_Ext525pData;
446 const SiS_TVDataStruct *SiS_Ext750pData;
447 const UCHAR *SiS_NTSCTiming;
448 const UCHAR *SiS_PALTiming;
449 const UCHAR *SiS_HiTVExtTiming;
450 const UCHAR *SiS_HiTVSt1Timing;
451 const UCHAR *SiS_HiTVSt2Timing;
452 const UCHAR *SiS_HiTVGroup3Data;
453 const UCHAR *SiS_HiTVGroup3Simu;
454 #if 0
455 const UCHAR *SiS_HiTVTextTiming;
456 const UCHAR *SiS_HiTVGroup3Text;
457 #endif
459 const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_1;
460 const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_2;
461 const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_3;
463 /* LVDS, Chrontel */
465 const SiS_LVDSDataStruct *SiS_LVDS320x240Data_1;
466 const SiS_LVDSDataStruct *SiS_LVDS320x240Data_2;
467 const SiS_LVDSDataStruct *SiS_LVDS640x480Data_1;
468 const SiS_LVDSDataStruct *SiS_LVDS800x600Data_1;
469 const SiS_LVDSDataStruct *SiS_LVDS1024x600Data_1;
470 const SiS_LVDSDataStruct *SiS_LVDS1024x768Data_1;
471 const SiS_LVDSDataStruct *SiS_LVDSBARCO1366Data_1;
472 const SiS_LVDSDataStruct *SiS_LVDSBARCO1366Data_2;
473 const SiS_LVDSDataStruct *SiS_LVDSBARCO1024Data_1;
474 const SiS_LVDSDataStruct *SiS_LVDS848x480Data_1;
475 const SiS_LVDSDataStruct *SiS_LVDS848x480Data_2;
476 const SiS_LVDSDataStruct *SiS_CHTVUNTSCData;
477 const SiS_LVDSDataStruct *SiS_CHTVONTSCData;
478 const SiS_LVDSDataStruct *SiS_CHTVUPALData;
479 const SiS_LVDSDataStruct *SiS_CHTVOPALData;
480 const SiS_LVDSDataStruct *SiS_CHTVUPALMData;
481 const SiS_LVDSDataStruct *SiS_CHTVOPALMData;
482 const SiS_LVDSDataStruct *SiS_CHTVUPALNData;
483 const SiS_LVDSDataStruct *SiS_CHTVOPALNData;
484 const SiS_LVDSDataStruct *SiS_CHTVSOPALData;
486 const SiS_LVDSDesStruct *SiS_PanelType04_1a;
487 const SiS_LVDSDesStruct *SiS_PanelType04_2a;
488 const SiS_LVDSDesStruct *SiS_PanelType04_1b;
489 const SiS_LVDSDesStruct *SiS_PanelType04_2b;
491 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x240_1;
492 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x240_2;
493 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x240_2_H;
494 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x240_3;
495 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x240_3_H;
496 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_1;
497 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_1_H;
498 #if 0
499 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_1;
500 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_1_H;
501 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_2;
502 const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_2_H;
503 #endif
504 const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1UNTSC;
505 const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1ONTSC;
506 const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1UPAL;
507 const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1OPAL;
508 const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1SOPAL;
510 const SiS_CHTVRegDataStruct *SiS_CHTVReg_UNTSC;
511 const SiS_CHTVRegDataStruct *SiS_CHTVReg_ONTSC;
512 const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPAL;
513 const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPAL;
514 const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALM;
515 const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALM;
516 const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALN;
517 const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALN;
518 const SiS_CHTVRegDataStruct *SiS_CHTVReg_SOPAL;
520 const UCHAR *SiS_CHTVVCLKUNTSC;
521 const UCHAR *SiS_CHTVVCLKONTSC;
522 const UCHAR *SiS_CHTVVCLKUPAL;
523 const UCHAR *SiS_CHTVVCLKOPAL;
524 const UCHAR *SiS_CHTVVCLKUPALM;
525 const UCHAR *SiS_CHTVVCLKOPALM;
526 const UCHAR *SiS_CHTVVCLKUPALN;
527 const UCHAR *SiS_CHTVVCLKOPALN;
528 const UCHAR *SiS_CHTVVCLKSOPAL;
530 USHORT PanelXRes, PanelHT;
531 USHORT PanelYRes, PanelVT;
532 USHORT PanelHRS, PanelHRE;
533 USHORT PanelVRS, PanelVRE;
534 USHORT PanelVCLKIdx300;
535 USHORT PanelVCLKIdx315;
536 BOOLEAN Alternate1600x1200;
538 BOOLEAN UseCustomMode;
539 BOOLEAN CRT1UsesCustomMode;
540 USHORT CHDisplay;
541 USHORT CHSyncStart;
542 USHORT CHSyncEnd;
543 USHORT CHTotal;
544 USHORT CHBlankStart;
545 USHORT CHBlankEnd;
546 USHORT CVDisplay;
547 USHORT CVSyncStart;
548 USHORT CVSyncEnd;
549 USHORT CVTotal;
550 USHORT CVBlankStart;
551 USHORT CVBlankEnd;
552 ULONG CDClock;
553 ULONG CFlags;
554 UCHAR CCRT1CRTC[17];
555 UCHAR CSR2B;
556 UCHAR CSR2C;
557 USHORT CSRClock;
558 USHORT CSRClock_CRT1;
559 USHORT CModeFlag;
560 USHORT CModeFlag_CRT1;
561 USHORT CInfoFlag;
563 int LVDSHL;
565 BOOLEAN Backup;
566 UCHAR Backup_Mode;
567 UCHAR Backup_14;
568 UCHAR Backup_15;
569 UCHAR Backup_16;
570 UCHAR Backup_17;
571 UCHAR Backup_18;
572 UCHAR Backup_19;
573 UCHAR Backup_1a;
574 UCHAR Backup_1b;
575 UCHAR Backup_1c;
576 UCHAR Backup_1d;
578 UCHAR Init_P4_0E;
580 int UsePanelScaler;
581 int CenterScreen;
583 USHORT CP_Vendor, CP_Product;
584 BOOLEAN CP_HaveCustomData;
585 int CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
586 int CP_MaxX, CP_MaxY, CP_MaxClock;
587 UCHAR CP_PrefSR2B, CP_PrefSR2C;
588 USHORT CP_PrefClock;
589 BOOLEAN CP_Supports64048075;
590 int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */
591 int CP_HTotal[7], CP_VTotal[7];
592 int CP_HSyncStart[7], CP_VSyncStart[7];
593 int CP_HSyncEnd[7], CP_VSyncEnd[7];
594 int CP_HBlankStart[7], CP_VBlankStart[7];
595 int CP_HBlankEnd[7], CP_VBlankEnd[7];
596 int CP_Clock[7];
597 BOOLEAN CP_DataValid[7];
598 BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
599 } SiS_Private;
601 #endif