xref: /openbmc/linux/drivers/video/fbdev/sis/vstruct.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1  /* $XFree86$ */
2  /* $XdotOrg$ */
3  /*
4   * General structure definitions for universal mode switching modules
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   *
49   * Author: 	Thomas Winischhofer <thomas@winischhofer.net>
50   *
51   */
52  
53  #ifndef _VSTRUCT_H_
54  #define _VSTRUCT_H_
55  
56  struct SiS_PanelDelayTbl {
57   	unsigned char timer[2];
58  };
59  
60  struct SiS_LCDData {
61  	unsigned short RVBHCMAX;
62  	unsigned short RVBHCFACT;
63  	unsigned short VGAHT;
64  	unsigned short VGAVT;
65  	unsigned short LCDHT;
66  	unsigned short LCDVT;
67  };
68  
69  struct SiS_TVData {
70  	unsigned short RVBHCMAX;
71  	unsigned short RVBHCFACT;
72  	unsigned short VGAHT;
73  	unsigned short VGAVT;
74  	unsigned short TVHDE;
75  	unsigned short TVVDE;
76  	unsigned short RVBHRS;
77  	unsigned char  FlickerMode;
78  	unsigned short HALFRVBHRS;
79  	unsigned short RVBHRS2;
80  	unsigned char  RY1COE;
81  	unsigned char  RY2COE;
82  	unsigned char  RY3COE;
83  	unsigned char  RY4COE;
84  };
85  
86  struct SiS_LVDSData {
87  	unsigned short VGAHT;
88  	unsigned short VGAVT;
89  	unsigned short LCDHT;
90  	unsigned short LCDVT;
91  };
92  
93  struct SiS_LVDSDes {
94  	unsigned short LCDHDES;
95  	unsigned short LCDVDES;
96  };
97  
98  struct SiS_LVDSCRT1Data {
99  	unsigned char  CR[15];
100  };
101  
102  struct SiS_CHTVRegData {
103  	unsigned char  Reg[16];
104  };
105  
106  struct SiS_St {
107  	unsigned char  St_ModeID;
108  	unsigned short St_ModeFlag;
109  	unsigned char  St_StTableIndex;
110  	unsigned char  St_CRT2CRTC;
111  	unsigned char  St_ResInfo;
112  	unsigned char  VB_StTVFlickerIndex;
113  	unsigned char  VB_StTVEdgeIndex;
114  	unsigned char  VB_StTVYFilterIndex;
115  	unsigned char  St_PDC;
116  };
117  
118  struct SiS_VBMode {
119  	unsigned char  ModeID;
120  	unsigned char  VB_TVDelayIndex;
121  	unsigned char  VB_TVFlickerIndex;
122  	unsigned char  VB_TVPhaseIndex;
123  	unsigned char  VB_TVYFilterIndex;
124  	unsigned char  VB_LCDDelayIndex;
125  	unsigned char  _VB_LCDHIndex;
126  	unsigned char  _VB_LCDVIndex;
127  };
128  
129  struct SiS_StandTable_S {
130  	unsigned char  CRT_COLS;
131  	unsigned char  ROWS;
132  	unsigned char  CHAR_HEIGHT;
133  	unsigned short CRT_LEN;
134  	unsigned char  SR[4];
135  	unsigned char  MISC;
136  	unsigned char  CRTC[0x19];
137  	unsigned char  ATTR[0x14];
138  	unsigned char  GRC[9];
139  };
140  
141  struct SiS_Ext {
142  	unsigned char  Ext_ModeID;
143  	unsigned short Ext_ModeFlag;
144  	unsigned short Ext_VESAID;
145  	unsigned char  Ext_RESINFO;
146  	unsigned char  VB_ExtTVFlickerIndex;
147  	unsigned char  VB_ExtTVEdgeIndex;
148  	unsigned char  VB_ExtTVYFilterIndex;
149  	unsigned char  VB_ExtTVYFilterIndexROM661;
150  	unsigned char  REFindex;
151  	signed char    ROMMODEIDX661;
152  };
153  
154  struct SiS_Ext2 {
155  	unsigned short Ext_InfoFlag;
156  	unsigned char  Ext_CRT1CRTC;
157  	unsigned char  Ext_CRTVCLK;
158  	unsigned char  Ext_CRT2CRTC;
159  	unsigned char  Ext_CRT2CRTC_NS;
160  	unsigned char  ModeID;
161  	unsigned short XRes;
162  	unsigned short YRes;
163  	unsigned char  Ext_PDC;
164  	unsigned char  Ext_FakeCRT2CRTC;
165  	unsigned char  Ext_FakeCRT2Clk;
166  	unsigned char  Ext_CRT1CRTC_NORM;
167  	unsigned char  Ext_CRTVCLK_NORM;
168  	unsigned char  Ext_CRT1CRTC_WIDE;
169  	unsigned char  Ext_CRTVCLK_WIDE;
170  };
171  
172  struct SiS_Part2PortTbl {
173   	unsigned char  CR[12];
174  };
175  
176  struct SiS_CRT1Table {
177  	unsigned char  CR[17];
178  };
179  
180  struct SiS_MCLKData {
181  	unsigned char  SR28,SR29,SR2A;
182  	unsigned short CLOCK;
183  };
184  
185  struct SiS_VCLKData {
186  	unsigned char  SR2B,SR2C;
187  	unsigned short CLOCK;
188  };
189  
190  struct SiS_VBVCLKData {
191  	unsigned char  Part4_A,Part4_B;
192  	unsigned short CLOCK;
193  };
194  
195  struct SiS_StResInfo_S {
196  	unsigned short HTotal;
197  	unsigned short VTotal;
198  };
199  
200  struct SiS_ModeResInfo_S {
201  	unsigned short HTotal;
202  	unsigned short VTotal;
203  	unsigned char  XChar;
204  	unsigned char  YChar;
205  };
206  
207  /* Defines for SiS_CustomT */
208  /* Never change these for sisfb compatibility */
209  #define CUT_NONE		 0
210  #define CUT_FORCENONE		 1
211  #define CUT_BARCO1366		 2
212  #define CUT_BARCO1024		 3
213  #define CUT_COMPAQ1280		 4
214  #define CUT_COMPAQ12802		 5
215  #define CUT_PANEL848		 6
216  #define CUT_CLEVO1024		 7
217  #define CUT_CLEVO10242		 8
218  #define CUT_CLEVO1400		 9
219  #define CUT_CLEVO14002		10
220  #define CUT_UNIWILL1024		11
221  #define CUT_ASUSL3000D		12
222  #define CUT_UNIWILL10242	13
223  #define CUT_ACER1280		14
224  #define CUT_COMPAL1400_1	15
225  #define CUT_COMPAL1400_2	16
226  #define CUT_ASUSA2H_1		17
227  #define CUT_ASUSA2H_2		18
228  #define CUT_UNKNOWNLCD		19
229  #define CUT_AOP8060		20
230  #define CUT_PANEL856		21
231  
232  struct SiS_Private
233  {
234  	unsigned char			ChipType;
235  	unsigned char			ChipRevision;
236  	void				*ivideo;
237  	unsigned char 			*VirtualRomBase;
238  	bool				UseROM;
239  	unsigned char SISIOMEMTYPE	*VideoMemoryAddress;
240  	unsigned int			VideoMemorySize;
241  	SISIOADDRESS			IOAddress;
242  	SISIOADDRESS			IOAddress2;  /* For dual chip XGI volari */
243  
244  	SISIOADDRESS			RelIO;
245  	SISIOADDRESS			SiS_P3c4;
246  	SISIOADDRESS			SiS_P3d4;
247  	SISIOADDRESS			SiS_P3c0;
248  	SISIOADDRESS			SiS_P3ce;
249  	SISIOADDRESS			SiS_P3c2;
250  	SISIOADDRESS			SiS_P3ca;
251  	SISIOADDRESS			SiS_P3c6;
252  	SISIOADDRESS			SiS_P3c7;
253  	SISIOADDRESS			SiS_P3c8;
254  	SISIOADDRESS			SiS_P3c9;
255  	SISIOADDRESS			SiS_P3cb;
256  	SISIOADDRESS			SiS_P3cc;
257  	SISIOADDRESS			SiS_P3cd;
258  	SISIOADDRESS			SiS_P3da;
259  	SISIOADDRESS			SiS_Part1Port;
260  	SISIOADDRESS			SiS_Part2Port;
261  	SISIOADDRESS			SiS_Part3Port;
262  	SISIOADDRESS			SiS_Part4Port;
263  	SISIOADDRESS			SiS_Part5Port;
264  	SISIOADDRESS			SiS_VidCapt;
265  	SISIOADDRESS			SiS_VidPlay;
266  	unsigned short			SiS_IF_DEF_LVDS;
267  	unsigned short			SiS_IF_DEF_CH70xx;
268  	unsigned short			SiS_IF_DEF_CONEX;
269  	unsigned short			SiS_IF_DEF_TRUMPION;
270  	unsigned short			SiS_IF_DEF_DSTN;
271  	unsigned short			SiS_IF_DEF_FSTN;
272  	unsigned short			SiS_SysFlags;
273  	unsigned char			SiS_VGAINFO;
274  	bool				SiS_UseROM;
275  	bool				SiS_ROMNew;
276  	bool				SiS_XGIROM;
277  	bool				SiS_NeedRomModeData;
278  	bool				PanelSelfDetected;
279  	bool				DDCPortMixup;
280  	int				SiS_CHOverScan;
281  	bool				SiS_CHSOverScan;
282  	bool				SiS_ChSW;
283  	bool				SiS_UseLCDA;
284  	int				SiS_UseOEM;
285  	unsigned int			SiS_CustomT;
286  	int				SiS_UseWide, SiS_UseWideCRT2;
287  	int				SiS_TVBlue;
288  	unsigned short			SiS_Backup70xx;
289  	bool				HaveEMI;
290  	bool				HaveEMILCD;
291  	bool				OverruleEMI;
292  	unsigned char			EMI_30,EMI_31,EMI_32,EMI_33;
293  	unsigned short			SiS_EMIOffset;
294  	unsigned short			SiS_PWDOffset;
295  	short				PDC, PDCA;
296  	unsigned char			SiS_MyCR63;
297  	unsigned short			SiS_CRT1Mode;
298  	unsigned short			SiS_flag_clearbuffer;
299  	int				SiS_RAMType;
300  	unsigned char			SiS_ChannelAB;
301  	unsigned char			SiS_DataBusWidth;
302  	unsigned short			SiS_ModeType;
303  	unsigned short			SiS_VBInfo;
304  	unsigned short			SiS_TVMode;
305  	unsigned short			SiS_LCDResInfo;
306  	unsigned short			SiS_LCDTypeInfo;
307  	unsigned short			SiS_LCDInfo;
308  	unsigned short			SiS_LCDInfo661;
309  	unsigned short			SiS_VBType;
310  	unsigned short			SiS_VBExtInfo;
311  	unsigned short			SiS_YPbPr;
312  	unsigned short			SiS_SelectCRT2Rate;
313  	unsigned short			SiS_SetFlag;
314  	unsigned short			SiS_RVBHCFACT;
315  	unsigned short			SiS_RVBHCMAX;
316  	unsigned short			SiS_RVBHRS;
317  	unsigned short			SiS_RVBHRS2;
318  	unsigned short			SiS_VGAVT;
319  	unsigned short			SiS_VGAHT;
320  	unsigned short			SiS_VT;
321  	unsigned short			SiS_HT;
322  	unsigned short			SiS_VGAVDE;
323  	unsigned short			SiS_VGAHDE;
324  	unsigned short			SiS_VDE;
325  	unsigned short			SiS_HDE;
326  	unsigned short			SiS_NewFlickerMode;
327  	unsigned short			SiS_RY1COE;
328  	unsigned short			SiS_RY2COE;
329  	unsigned short			SiS_RY3COE;
330  	unsigned short			SiS_RY4COE;
331  	unsigned short			SiS_LCDHDES;
332  	unsigned short			SiS_LCDVDES;
333  	SISIOADDRESS			SiS_DDC_Port;
334  	unsigned short			SiS_DDC_Index;
335  	unsigned short			SiS_DDC_Data;
336  	unsigned short			SiS_DDC_NData;
337  	unsigned short			SiS_DDC_Clk;
338  	unsigned short			SiS_DDC_NClk;
339  	unsigned short			SiS_DDC_DeviceAddr;
340  	unsigned short			SiS_DDC_ReadAddr;
341  	unsigned short			SiS_DDC_SecAddr;
342  	unsigned short			SiS_ChrontelInit;
343  	bool				SiS_SensibleSR11;
344  	unsigned short			SiS661LCD2TableSize;
345  
346  	unsigned short			SiS_PanelMinLVDS;
347  	unsigned short			SiS_PanelMin301;
348  
349  	const struct SiS_St		*SiS_SModeIDTable;
350  	const struct SiS_StandTable_S	*SiS_StandTable;
351  	const struct SiS_Ext		*SiS_EModeIDTable;
352  	const struct SiS_Ext2		*SiS_RefIndex;
353  	const struct SiS_VBMode		*SiS_VBModeIDTable;
354  	const struct SiS_CRT1Table	*SiS_CRT1Table;
355  	const struct SiS_MCLKData	*SiS_MCLKData_0;
356  	const struct SiS_MCLKData	*SiS_MCLKData_1;
357  	struct SiS_VCLKData		*SiS_VCLKData;
358  	struct SiS_VBVCLKData		*SiS_VBVCLKData;
359  	const struct SiS_StResInfo_S	*SiS_StResInfo;
360  	const struct SiS_ModeResInfo_S	*SiS_ModeResInfo;
361  
362  	const unsigned char		*pSiS_OutputSelect;
363  	const unsigned char		*pSiS_SoftSetting;
364  
365  	const unsigned char		*SiS_SR15;
366  
367  	const struct SiS_PanelDelayTbl	*SiS_PanelDelayTbl;
368  	const struct SiS_PanelDelayTbl	*SiS_PanelDelayTblLVDS;
369  
370  	/* SiS bridge */
371  
372  	const struct SiS_LCDData	*SiS_ExtLCD1024x768Data;
373  	const struct SiS_LCDData	*SiS_St2LCD1024x768Data;
374  	const struct SiS_LCDData	*SiS_LCD1280x720Data;
375  	const struct SiS_LCDData	*SiS_StLCD1280x768_2Data;
376  	const struct SiS_LCDData	*SiS_ExtLCD1280x768_2Data;
377  	const struct SiS_LCDData	*SiS_LCD1280x800Data;
378  	const struct SiS_LCDData	*SiS_LCD1280x800_2Data;
379  	const struct SiS_LCDData	*SiS_LCD1280x854Data;
380  	const struct SiS_LCDData	*SiS_LCD1280x960Data;
381  	const struct SiS_LCDData	*SiS_ExtLCD1280x1024Data;
382  	const struct SiS_LCDData	*SiS_St2LCD1280x1024Data;
383  	const struct SiS_LCDData	*SiS_StLCD1400x1050Data;
384  	const struct SiS_LCDData	*SiS_ExtLCD1400x1050Data;
385  	const struct SiS_LCDData	*SiS_StLCD1600x1200Data;
386  	const struct SiS_LCDData	*SiS_ExtLCD1600x1200Data;
387  	const struct SiS_LCDData	*SiS_LCD1680x1050Data;
388  	const struct SiS_LCDData	*SiS_NoScaleData;
389  	const struct SiS_TVData		*SiS_StPALData;
390  	const struct SiS_TVData		*SiS_ExtPALData;
391  	const struct SiS_TVData		*SiS_StNTSCData;
392  	const struct SiS_TVData		*SiS_ExtNTSCData;
393  	const struct SiS_TVData		*SiS_St1HiTVData;
394  	const struct SiS_TVData		*SiS_St2HiTVData;
395  	const struct SiS_TVData		*SiS_ExtHiTVData;
396  	const struct SiS_TVData		*SiS_St525iData;
397  	const struct SiS_TVData		*SiS_St525pData;
398  	const struct SiS_TVData		*SiS_St750pData;
399  	const struct SiS_TVData		*SiS_Ext525iData;
400  	const struct SiS_TVData		*SiS_Ext525pData;
401  	const struct SiS_TVData		*SiS_Ext750pData;
402  	const unsigned char		*SiS_NTSCTiming;
403  	const unsigned char		*SiS_PALTiming;
404  	const unsigned char		*SiS_HiTVExtTiming;
405  	const unsigned char		*SiS_HiTVSt1Timing;
406  	const unsigned char		*SiS_HiTVSt2Timing;
407  	const unsigned char		*SiS_HiTVGroup3Data;
408  	const unsigned char		*SiS_HiTVGroup3Simu;
409  #if 0
410  	const unsigned char		*SiS_HiTVTextTiming;
411  	const unsigned char		*SiS_HiTVGroup3Text;
412  #endif
413  
414  	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_1;
415  	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_2;
416  	const struct SiS_Part2PortTbl	*SiS_CRT2Part2_1024x768_3;
417  
418  	/* LVDS, Chrontel */
419  
420  	const struct SiS_LVDSData	*SiS_LVDS320x240Data_1;
421  	const struct SiS_LVDSData	*SiS_LVDS320x240Data_2;
422  	const struct SiS_LVDSData	*SiS_LVDS640x480Data_1;
423  	const struct SiS_LVDSData	*SiS_LVDS800x600Data_1;
424  	const struct SiS_LVDSData	*SiS_LVDS1024x600Data_1;
425  	const struct SiS_LVDSData	*SiS_LVDS1024x768Data_1;
426  	const struct SiS_LVDSData	*SiS_LVDSBARCO1366Data_1;
427  	const struct SiS_LVDSData	*SiS_LVDSBARCO1366Data_2;
428  	const struct SiS_LVDSData	*SiS_LVDSBARCO1024Data_1;
429  	const struct SiS_LVDSData	*SiS_LVDS848x480Data_1;
430  	const struct SiS_LVDSData	*SiS_LVDS848x480Data_2;
431  	const struct SiS_LVDSData	*SiS_CHTVUNTSCData;
432  	const struct SiS_LVDSData	*SiS_CHTVONTSCData;
433  	const struct SiS_LVDSData	*SiS_CHTVUPALData;
434  	const struct SiS_LVDSData	*SiS_CHTVOPALData;
435  	const struct SiS_LVDSData	*SiS_CHTVUPALMData;
436  	const struct SiS_LVDSData	*SiS_CHTVOPALMData;
437  	const struct SiS_LVDSData	*SiS_CHTVUPALNData;
438  	const struct SiS_LVDSData	*SiS_CHTVOPALNData;
439  	const struct SiS_LVDSData	*SiS_CHTVSOPALData;
440  
441  	const struct SiS_LVDSDes	*SiS_PanelType04_1a;
442  	const struct SiS_LVDSDes	*SiS_PanelType04_2a;
443  	const struct SiS_LVDSDes	*SiS_PanelType04_1b;
444  	const struct SiS_LVDSDes	*SiS_PanelType04_2b;
445  
446  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_1;
447  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_2;
448  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_2_H;
449  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_3;
450  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1320x240_3_H;
451  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1640x480_1;
452  	const struct SiS_LVDSCRT1Data	*SiS_LVDSCRT1640x480_1_H;
453  	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1UNTSC;
454  	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1ONTSC;
455  	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1UPAL;
456  	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1OPAL;
457  	const struct SiS_LVDSCRT1Data	*SiS_CHTVCRT1SOPAL;
458  
459  	const struct SiS_CHTVRegData	*SiS_CHTVReg_UNTSC;
460  	const struct SiS_CHTVRegData	*SiS_CHTVReg_ONTSC;
461  	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPAL;
462  	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPAL;
463  	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPALM;
464  	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPALM;
465  	const struct SiS_CHTVRegData	*SiS_CHTVReg_UPALN;
466  	const struct SiS_CHTVRegData	*SiS_CHTVReg_OPALN;
467  	const struct SiS_CHTVRegData	*SiS_CHTVReg_SOPAL;
468  
469  	const unsigned char		*SiS_CHTVVCLKUNTSC;
470  	const unsigned char		*SiS_CHTVVCLKONTSC;
471  	const unsigned char		*SiS_CHTVVCLKUPAL;
472  	const unsigned char		*SiS_CHTVVCLKOPAL;
473  	const unsigned char		*SiS_CHTVVCLKUPALM;
474  	const unsigned char		*SiS_CHTVVCLKOPALM;
475  	const unsigned char		*SiS_CHTVVCLKUPALN;
476  	const unsigned char		*SiS_CHTVVCLKOPALN;
477  	const unsigned char		*SiS_CHTVVCLKSOPAL;
478  
479  	unsigned short			PanelXRes, PanelHT;
480  	unsigned short			PanelYRes, PanelVT;
481  	unsigned short			PanelHRS,  PanelHRE;
482  	unsigned short			PanelVRS,  PanelVRE;
483  	unsigned short			PanelVCLKIdx300;
484  	unsigned short			PanelVCLKIdx315;
485  	bool				Alternate1600x1200;
486  
487  	bool				UseCustomMode;
488  	bool				CRT1UsesCustomMode;
489  	unsigned short			CHDisplay;
490  	unsigned short			CHSyncStart;
491  	unsigned short			CHSyncEnd;
492  	unsigned short			CHTotal;
493  	unsigned short			CHBlankStart;
494  	unsigned short			CHBlankEnd;
495  	unsigned short			CVDisplay;
496  	unsigned short			CVSyncStart;
497  	unsigned short			CVSyncEnd;
498  	unsigned short			CVTotal;
499  	unsigned short			CVBlankStart;
500  	unsigned short			CVBlankEnd;
501  	unsigned int			CDClock;
502  	unsigned int			CFlags;
503  	unsigned char			CCRT1CRTC[17];
504  	unsigned char			CSR2B;
505  	unsigned char			CSR2C;
506  	unsigned short			CSRClock;
507  	unsigned short			CSRClock_CRT1;
508  	unsigned short			CModeFlag;
509  	unsigned short			CModeFlag_CRT1;
510  	unsigned short			CInfoFlag;
511  
512  	int				LVDSHL;
513  
514  	bool				Backup;
515  	unsigned char			Backup_Mode;
516  	unsigned char			Backup_14;
517  	unsigned char			Backup_15;
518  	unsigned char			Backup_16;
519  	unsigned char			Backup_17;
520  	unsigned char			Backup_18;
521  	unsigned char			Backup_19;
522  	unsigned char			Backup_1a;
523  	unsigned char			Backup_1b;
524  	unsigned char			Backup_1c;
525  	unsigned char			Backup_1d;
526  
527  	unsigned char			Init_P4_0E;
528  
529  	int				UsePanelScaler;
530  	int				CenterScreen;
531  
532  	unsigned short			CP_Vendor, CP_Product;
533  	bool				CP_HaveCustomData;
534  	int				CP_PreferredX, CP_PreferredY, CP_PreferredIndex;
535  	int				CP_MaxX, CP_MaxY, CP_MaxClock;
536  	unsigned char			CP_PrefSR2B, CP_PrefSR2C;
537  	unsigned short			CP_PrefClock;
538  	bool				CP_Supports64048075;
539  	int				CP_HDisplay[7], CP_VDisplay[7];	/* For Custom LCD panel dimensions */
540  	int				CP_HTotal[7], CP_VTotal[7];
541  	int				CP_HSyncStart[7], CP_VSyncStart[7];
542  	int				CP_HSyncEnd[7], CP_VSyncEnd[7];
543  	int				CP_HBlankStart[7], CP_VBlankStart[7];
544  	int				CP_HBlankEnd[7], CP_VBlankEnd[7];
545  	int				CP_Clock[7];
546  	bool				CP_DataValid[7];
547  	bool				CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7];
548  };
549  
550  #endif
551  
552