linux/drivers/video/fbdev/sis/vstruct.h
<<
>>
Prefs
   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
  56struct SiS_PanelDelayTbl {
  57        unsigned char timer[2];
  58};
  59
  60struct 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
  69struct 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
  86struct SiS_LVDSData {
  87        unsigned short VGAHT;
  88        unsigned short VGAVT;
  89        unsigned short LCDHT;
  90        unsigned short LCDVT;
  91};
  92
  93struct SiS_LVDSDes {
  94        unsigned short LCDHDES;
  95        unsigned short LCDVDES;
  96};
  97
  98struct SiS_LVDSCRT1Data {
  99        unsigned char  CR[15];
 100};
 101
 102struct SiS_CHTVRegData {
 103        unsigned char  Reg[16];
 104};
 105
 106struct 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
 118struct 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
 129struct 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
 141struct 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
 154struct 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
 172struct SiS_Part2PortTbl {
 173        unsigned char  CR[12];
 174};
 175
 176struct SiS_CRT1Table {
 177        unsigned char  CR[17];
 178};
 179
 180struct SiS_MCLKData {
 181        unsigned char  SR28,SR29,SR2A;
 182        unsigned short CLOCK;
 183};
 184
 185struct SiS_VCLKData {
 186        unsigned char  SR2B,SR2C;
 187        unsigned short CLOCK;
 188};
 189
 190struct SiS_VBVCLKData {
 191        unsigned char  Part4_A,Part4_B;
 192        unsigned short CLOCK;
 193};
 194
 195struct SiS_StResInfo_S {
 196        unsigned short HTotal;
 197        unsigned short VTotal;
 198};
 199
 200struct 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
 232struct 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