Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / video / fbdev / sis / vstruct.h
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         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