1/* 2 * General structure definitions for universal mode switching modules 3 * 4 * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria 5 * 6 * If distributed as part of the Linux kernel, the following license terms 7 * apply: 8 * 9 * * This program is free software; you can redistribute it and/or modify 10 * * it under the terms of the GNU General Public License as published by 11 * * the Free Software Foundation; either version 2 of the named License, 12 * * or any later version. 13 * * 14 * * This program is distributed in the hope that it will be useful, 15 * * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * * GNU General Public License for more details. 18 * * 19 * * You should have received a copy of the GNU General Public License 20 * * along with this program; if not, write to the Free Software 21 * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA 22 * 23 * Otherwise, the following license terms apply: 24 * 25 * * Redistribution and use in source and binary forms, with or without 26 * * modification, are permitted provided that the following conditions 27 * * are met: 28 * * 1) Redistributions of source code must retain the above copyright 29 * * notice, this list of conditions and the following disclaimer. 30 * * 2) Redistributions in binary form must reproduce the above copyright 31 * * notice, this list of conditions and the following disclaimer in the 32 * * documentation and/or other materials provided with the distribution. 33 * * 3) The name of the author may not be used to endorse or promote products 34 * * derived from this software without specific prior written permission. 35 * * 36 * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 37 * * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 * * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 39 * * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 40 * * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 41 * * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 42 * * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 43 * * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 44 * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 45 * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 46 * 47 * Author: Thomas Winischhofer <thomas@winischhofer.net> 48 * 49 */ 50 51#ifndef _VSTRUCT_H_ 52#define _VSTRUCT_H_ 53 54struct SiS_PanelDelayTbl { 55 unsigned char timer[2]; 56}; 57 58struct SiS_LCDData { 59 unsigned short RVBHCMAX; 60 unsigned short RVBHCFACT; 61 unsigned short VGAHT; 62 unsigned short VGAVT; 63 unsigned short LCDHT; 64 unsigned short LCDVT; 65}; 66 67struct SiS_TVData { 68 unsigned short RVBHCMAX; 69 unsigned short RVBHCFACT; 70 unsigned short VGAHT; 71 unsigned short VGAVT; 72 unsigned short TVHDE; 73 unsigned short TVVDE; 74 unsigned short RVBHRS; 75 unsigned char FlickerMode; 76 unsigned short HALFRVBHRS; 77 unsigned short RVBHRS2; 78 unsigned char RY1COE; 79 unsigned char RY2COE; 80 unsigned char RY3COE; 81 unsigned char RY4COE; 82}; 83 84struct SiS_Tap4scalerP2 { 85 unsigned short de; 86 unsigned char reg[64]; 87}; 88 89struct SiS_LVDSData { 90 unsigned short VGAHT; 91 unsigned short VGAVT; 92 unsigned short LCDHT; 93 unsigned short LCDVT; 94}; 95 96struct SiS_LVDSDes { 97 unsigned short LCDHDES; 98 unsigned short LCDVDES; 99}; 100 101struct SiS_LVDSCRT1Data { 102 unsigned char CR[15]; 103}; 104 105struct SiS_CHTVRegData { 106 unsigned char Reg[16]; 107}; 108 109struct SiS_St { 110 unsigned char St_ModeID; 111 unsigned short St_ModeFlag; 112 unsigned char St_StTableIndex; 113 unsigned char St_CRT2CRTC; 114 unsigned char St_ResInfo; 115 unsigned char VB_StTVFlickerIndex; 116 unsigned char VB_StTVEdgeIndex; 117 unsigned char VB_StTVYFilterIndex; 118 unsigned char St_PDC; 119}; 120 121struct SiS_VBMode { 122 unsigned char ModeID; 123 unsigned char VB_TVDelayIndex; 124 unsigned char VB_TVFlickerIndex; 125 unsigned char VB_TVPhaseIndex; 126 unsigned char VB_TVYFilterIndex; 127 unsigned char VB_LCDDelayIndex; 128 unsigned char _VB_LCDHIndex; 129 unsigned char _VB_LCDVIndex; 130}; 131 132struct SiS_StandTable_S { 133 unsigned char CRT_COLS; 134 unsigned char ROWS; 135 unsigned char CHAR_HEIGHT; 136 unsigned short CRT_LEN; 137 unsigned char SR[4]; 138 unsigned char MISC; 139 unsigned char CRTC[0x19]; 140 unsigned char ATTR[0x14]; 141 unsigned char GRC[9]; 142}; 143 144struct SiS_Ext { 145 unsigned char Ext_ModeID; 146 unsigned short Ext_ModeFlag; 147 unsigned short Ext_VESAID; 148 unsigned char Ext_RESINFO; 149 unsigned char VB_ExtTVFlickerIndex; 150 unsigned char VB_ExtTVEdgeIndex; 151 unsigned char VB_ExtTVYFilterIndex; 152 unsigned char VB_ExtTVYFilterIndexROM661; 153 unsigned char REFindex; 154 char ROMMODEIDX661; 155}; 156 157struct SiS_Ext2 { 158 unsigned short Ext_InfoFlag; 159 unsigned char Ext_CRT1CRTC; 160 unsigned char Ext_CRTVCLK; 161 unsigned char Ext_CRT2CRTC; 162 unsigned char Ext_CRT2CRTC_NS; 163 unsigned char ModeID; 164 unsigned short XRes; 165 unsigned short YRes; 166 unsigned char Ext_PDC; 167 unsigned char Ext_FakeCRT2CRTC; 168 unsigned char Ext_FakeCRT2Clk; 169 unsigned char Ext_CRT1CRTC_NORM; 170 unsigned char Ext_CRTVCLK_NORM; 171 unsigned char Ext_CRT1CRTC_WIDE; 172 unsigned char Ext_CRTVCLK_WIDE; 173}; 174 175struct SiS_Part2PortTbl { 176 unsigned char CR[12]; 177}; 178 179struct SiS_CRT1Table { 180 unsigned char CR[17]; 181}; 182 183struct SiS_MCLKData { 184 unsigned char SR28,SR29,SR2A; 185 unsigned short CLOCK; 186}; 187 188struct SiS_VCLKData { 189 unsigned char SR2B,SR2C; 190 unsigned short CLOCK; 191}; 192 193struct SiS_VBVCLKData { 194 unsigned char Part4_A,Part4_B; 195 unsigned short CLOCK; 196}; 197 198struct SiS_StResInfo_S { 199 unsigned short HTotal; 200 unsigned short VTotal; 201}; 202 203struct SiS_ModeResInfo_S { 204 unsigned short HTotal; 205 unsigned short VTotal; 206 unsigned char XChar; 207 unsigned char YChar; 208}; 209 210/* Defines for SiS_CustomT */ 211/* Never change these for sisfb compatibility */ 212#define CUT_NONE 0 213#define CUT_FORCENONE 1 214#define CUT_BARCO1366 2 215#define CUT_BARCO1024 3 216#define CUT_COMPAQ1280 4 217#define CUT_COMPAQ12802 5 218#define CUT_PANEL848 6 219#define CUT_CLEVO1024 7 220#define CUT_CLEVO10242 8 221#define CUT_CLEVO1400 9 222#define CUT_CLEVO14002 10 223#define CUT_UNIWILL1024 11 224#define CUT_ASUSL3000D 12 225#define CUT_UNIWILL10242 13 226#define CUT_ACER1280 14 227#define CUT_COMPAL1400_1 15 228#define CUT_COMPAL1400_2 16 229#define CUT_ASUSA2H_1 17 230#define CUT_ASUSA2H_2 18 231#define CUT_UNKNOWNLCD 19 232#define CUT_AOP8060 20 233#define CUT_PANEL856 21 234 235struct SiS_Private 236{ 237 unsigned char ChipType; 238 unsigned char ChipRevision; 239#ifdef SIS_XORG_XF86 240#ifndef XSERVER_LIBPCIACCESS 241 PCITAG PciTag; 242#endif 243#endif 244#ifdef SIS_LINUX_KERNEL 245 void *ivideo; 246#endif 247 unsigned char *VirtualRomBase; 248 BOOLEAN UseROM; 249#ifdef SIS_LINUX_KERNEL 250 unsigned char SISIOMEMTYPE *VideoMemoryAddress; 251 unsigned int VideoMemorySize; 252#endif 253 SISIOADDRESS IOAddress; 254 SISIOADDRESS IOAddress2; /* For dual chip XGI volari */ 255 256#ifdef SIS_LINUX_KERNEL 257 SISIOADDRESS RelIO; 258#endif 259 SISIOADDRESS SiS_P3c4; 260 SISIOADDRESS SiS_P3d4; 261 SISIOADDRESS SiS_P3c0; 262 SISIOADDRESS SiS_P3ce; 263 SISIOADDRESS SiS_P3c2; 264 SISIOADDRESS SiS_P3ca; 265 SISIOADDRESS SiS_P3c6; 266 SISIOADDRESS SiS_P3c7; 267 SISIOADDRESS SiS_P3c8; 268 SISIOADDRESS SiS_P3c9; 269 SISIOADDRESS SiS_P3cb; 270 SISIOADDRESS SiS_P3cc; 271 SISIOADDRESS SiS_P3cd; 272 SISIOADDRESS SiS_P3da; 273 SISIOADDRESS SiS_Part1Port; 274 SISIOADDRESS SiS_Part2Port; 275 SISIOADDRESS SiS_Part3Port; 276 SISIOADDRESS SiS_Part4Port; 277 SISIOADDRESS SiS_Part5Port; 278 SISIOADDRESS SiS_VidCapt; 279 SISIOADDRESS SiS_VidPlay; 280 unsigned short SiS_IF_DEF_LVDS; 281 unsigned short SiS_IF_DEF_CH70xx; 282 unsigned short SiS_IF_DEF_CONEX; 283 unsigned short SiS_IF_DEF_TRUMPION; 284 unsigned short SiS_IF_DEF_DSTN; 285 unsigned short SiS_IF_DEF_FSTN; 286 unsigned short SiS_SysFlags; 287 unsigned char SiS_VGAINFO; 288#ifdef SIS_XORG_XF86 289 unsigned short SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4; 290#endif 291 BOOLEAN SiS_UseROM; 292 BOOLEAN SiS_ROMNew; 293 BOOLEAN SiS_XGIROM; 294 BOOLEAN SiS_NeedRomModeData; 295 BOOLEAN PanelSelfDetected; 296 BOOLEAN DDCPortMixup; 297 int SiS_CHOverScan; 298 BOOLEAN SiS_CHSOverScan; 299 BOOLEAN SiS_ChSW; 300 BOOLEAN SiS_UseLCDA; 301 int SiS_UseOEM; 302 unsigned int SiS_CustomT; 303 int SiS_UseWide, SiS_UseWideCRT2; 304 int SiS_TVBlue; 305 unsigned short SiS_Backup70xx; 306 BOOLEAN HaveEMI; 307 BOOLEAN HaveEMILCD; 308 BOOLEAN OverruleEMI; 309 unsigned char EMI_30,EMI_31,EMI_32,EMI_33; 310 unsigned short SiS_EMIOffset; 311 unsigned short SiS_PWDOffset; 312 short PDC, PDCA; 313 unsigned char SiS_MyCR63; 314 unsigned short SiS_CRT1Mode; 315 unsigned short SiS_flag_clearbuffer; 316 int SiS_RAMType; 317 unsigned char SiS_ChannelAB; 318 unsigned char SiS_DataBusWidth; 319 unsigned short SiS_ModeType; 320 unsigned short SiS_VBInfo; 321 unsigned int SiS_TVMode; 322 unsigned short SiS_LCDResInfo; 323 unsigned short SiS_LCDTypeInfo; 324 unsigned short SiS_LCDInfo; 325 unsigned short SiS_LCDInfo661; 326 unsigned short SiS_VBType; 327 unsigned short SiS_VBExtInfo; 328 unsigned short SiS_YPbPr; 329 unsigned short SiS_SelectCRT2Rate; 330 unsigned short SiS_SetFlag; 331 unsigned short SiS_RVBHCFACT; 332 unsigned short SiS_RVBHCMAX; 333 unsigned short SiS_RVBHRS; 334 unsigned short SiS_RVBHRS2; 335 unsigned short SiS_VGAVT; 336 unsigned short SiS_VGAHT; 337 unsigned short SiS_VT; 338 unsigned short SiS_HT; 339 unsigned short SiS_VGAVDE; 340 unsigned short SiS_VGAHDE; 341 unsigned short SiS_VDE; 342 unsigned short SiS_HDE; 343 unsigned short SiS_NewFlickerMode; 344 unsigned short SiS_RY1COE; 345 unsigned short SiS_RY2COE; 346 unsigned short SiS_RY3COE; 347 unsigned short SiS_RY4COE; 348 unsigned short SiS_LCDHDES; 349 unsigned short SiS_LCDVDES; 350 unsigned short SiS_DDC_Port; 351 unsigned short SiS_DDC_Index; 352 unsigned short SiS_DDC_Data; 353 unsigned short SiS_DDC_NData; 354 unsigned short SiS_DDC_Clk; 355 unsigned short SiS_DDC_NClk; 356 unsigned short SiS_DDC_DeviceAddr; 357 unsigned short SiS_DDC_ReadAddr; 358 unsigned short SiS_DDC_SecAddr; 359 unsigned short SiS_ChrontelInit; 360 BOOLEAN SiS_SensibleSR11; 361 unsigned short SiS661LCD2TableSize; 362 363 unsigned short SiS_PanelMinLVDS; 364 unsigned short SiS_PanelMin301; 365 366 const struct SiS_St *SiS_SModeIDTable; 367 const struct SiS_StandTable_S *SiS_StandTable; 368 const struct SiS_Ext *SiS_EModeIDTable; 369 const struct SiS_Ext2 *SiS_RefIndex; 370 const struct SiS_VBMode *SiS_VBModeIDTable; 371 const struct SiS_CRT1Table *SiS_CRT1Table; 372 const struct SiS_MCLKData *SiS_MCLKData_0; 373 const struct SiS_MCLKData *SiS_MCLKData_1; 374 struct SiS_VCLKData *SiS_VCLKData; 375 struct SiS_VBVCLKData *SiS_VBVCLKData; 376 const struct SiS_StResInfo_S *SiS_StResInfo; 377 const struct SiS_ModeResInfo_S *SiS_ModeResInfo; 378 379 const unsigned char *pSiS_OutputSelect; 380 const unsigned char *pSiS_SoftSetting; 381 382 const unsigned char *SiS_SR15; 383 384 const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl; 385 const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS; 386 387 /* SiS bridge */ 388 389 const struct SiS_LCDData *SiS_ExtLCD1024x768Data; 390 const struct SiS_LCDData *SiS_St2LCD1024x768Data; 391 const struct SiS_LCDData *SiS_LCD1280x720Data; 392 const struct SiS_LCDData *SiS_StLCD1280x768_2Data; 393 const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data; 394 const struct SiS_LCDData *SiS_LCD1280x800Data; 395 const struct SiS_LCDData *SiS_LCD1280x800_2Data; 396 const struct SiS_LCDData *SiS_LCD1280x854Data; 397 const struct SiS_LCDData *SiS_LCD1280x960Data; 398 const struct SiS_LCDData *SiS_ExtLCD1280x1024Data; 399 const struct SiS_LCDData *SiS_St2LCD1280x1024Data; 400 const struct SiS_LCDData *SiS_StLCD1400x1050Data; 401 const struct SiS_LCDData *SiS_ExtLCD1400x1050Data; 402 const struct SiS_LCDData *SiS_StLCD1600x1200Data; 403 const struct SiS_LCDData *SiS_ExtLCD1600x1200Data; 404 const struct SiS_LCDData *SiS_LCD1680x1050Data; 405 const struct SiS_LCDData *SiS_NoScaleData; 406 const struct SiS_TVData *SiS_StPALData; 407 const struct SiS_TVData *SiS_ExtPALData; 408 const struct SiS_TVData *SiS_StNTSCData; 409 const struct SiS_TVData *SiS_ExtNTSCData; 410 const struct SiS_TVData *SiS_St1HiTVData; 411 const struct SiS_TVData *SiS_St2HiTVData; 412 const struct SiS_TVData *SiS_ExtHiTVData; 413 const struct SiS_TVData *SiS_St525iData; 414 const struct SiS_TVData *SiS_St525pData; 415 const struct SiS_TVData *SiS_St625iData; 416 const struct SiS_TVData *SiS_St625pData; 417 const struct SiS_TVData *SiS_St750pData; 418 const struct SiS_TVData *SiS_Ext525iData; 419 const struct SiS_TVData *SiS_Ext525pData; 420 const struct SiS_TVData *SiS_Ext625iData; 421 const struct SiS_TVData *SiS_Ext625pData; 422 const struct SiS_TVData *SiS_Ext750pData; 423 const unsigned char *SiS_NTSCTiming; 424 const unsigned char *SiS_PALTiming; 425 const unsigned char *SiS_HiTVExtTiming; 426 const unsigned char *SiS_HiTVSt1Timing; 427 const unsigned char *SiS_HiTVSt2Timing; 428 const unsigned char *SiS_HiTVGroup3Data; 429 const unsigned char *SiS_HiTVGroup3Simu; 430#if 0 431 const unsigned char *SiS_HiTVTextTiming; 432 const unsigned char *SiS_HiTVGroup3Text; 433#endif 434 435 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1; 436 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2; 437 const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3; 438 439 /* LVDS, Chrontel */ 440 441 const struct SiS_LVDSData *SiS_LVDS320x240Data_1; 442 const struct SiS_LVDSData *SiS_LVDS320x240Data_2; 443 const struct SiS_LVDSData *SiS_LVDS640x480Data_1; 444 const struct SiS_LVDSData *SiS_LVDS800x600Data_1; 445 const struct SiS_LVDSData *SiS_LVDS1024x600Data_1; 446 const struct SiS_LVDSData *SiS_LVDS1024x768Data_1; 447 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1; 448 const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2; 449 const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1; 450 const struct SiS_LVDSData *SiS_LVDS848x480Data_1; 451 const struct SiS_LVDSData *SiS_LVDS848x480Data_2; 452 const struct SiS_LVDSData *SiS_CHTVUNTSCData; 453 const struct SiS_LVDSData *SiS_CHTVONTSCData; 454 const struct SiS_LVDSData *SiS_CHTVUPALData; 455 const struct SiS_LVDSData *SiS_CHTVOPALData; 456 const struct SiS_LVDSData *SiS_CHTVUPALMData; 457 const struct SiS_LVDSData *SiS_CHTVOPALMData; 458 const struct SiS_LVDSData *SiS_CHTVUPALNData; 459 const struct SiS_LVDSData *SiS_CHTVOPALNData; 460 const struct SiS_LVDSData *SiS_CHTVSOPALData; 461 462 const struct SiS_LVDSDes *SiS_PanelType04_1a; 463 const struct SiS_LVDSDes *SiS_PanelType04_2a; 464 const struct SiS_LVDSDes *SiS_PanelType04_1b; 465 const struct SiS_LVDSDes *SiS_PanelType04_2b; 466 467 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1; 468 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2; 469 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H; 470 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3; 471 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H; 472 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1; 473 const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H; 474 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC; 475 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC; 476 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL; 477 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL; 478 const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL; 479 480 const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC; 481 const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC; 482 const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL; 483 const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL; 484 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM; 485 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM; 486 const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN; 487 const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN; 488 const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL; 489 490 const unsigned char *SiS_CHTVVCLKUNTSC; 491 const unsigned char *SiS_CHTVVCLKONTSC; 492 const unsigned char *SiS_CHTVVCLKUPAL; 493 const unsigned char *SiS_CHTVVCLKOPAL; 494 const unsigned char *SiS_CHTVVCLKUPALM; 495 const unsigned char *SiS_CHTVVCLKOPALM; 496 const unsigned char *SiS_CHTVVCLKUPALN; 497 const unsigned char *SiS_CHTVVCLKOPALN; 498 const unsigned char *SiS_CHTVVCLKSOPAL; 499 500 unsigned short PanelXRes, PanelHT; 501 unsigned short PanelYRes, PanelVT; 502 unsigned short PanelHRS, PanelHRE; 503 unsigned short PanelVRS, PanelVRE; 504 unsigned short PanelVCLKIdx300; 505 unsigned short PanelVCLKIdx315; 506 BOOLEAN Alternate1600x1200; 507 508 BOOLEAN UseCustomMode; 509 BOOLEAN CRT1UsesCustomMode; 510 unsigned short CHDisplay; 511 unsigned short CHSyncStart; 512 unsigned short CHSyncEnd; 513 unsigned short CHTotal; 514 unsigned short CHBlankStart; 515 unsigned short CHBlankEnd; 516 unsigned short CVDisplay; 517 unsigned short CVSyncStart; 518 unsigned short CVSyncEnd; 519 unsigned short CVTotal; 520 unsigned short CVBlankStart; 521 unsigned short CVBlankEnd; 522 unsigned int CDClock; 523 unsigned int CFlags; 524 unsigned char CCRT1CRTC[17]; 525 unsigned char CSR2B; 526 unsigned char CSR2C; 527 unsigned short CSRClock; 528 unsigned short CSRClock_CRT1; 529 unsigned short CModeFlag; 530 unsigned short CModeFlag_CRT1; 531 unsigned short CInfoFlag; 532 533 int LVDSHL; 534 535 BOOLEAN Backup; 536 unsigned char Backup_Mode; 537 unsigned char Backup_14; 538 unsigned char Backup_15; 539 unsigned char Backup_16; 540 unsigned char Backup_17; 541 unsigned char Backup_18; 542 unsigned char Backup_19; 543 unsigned char Backup_1a; 544 unsigned char Backup_1b; 545 unsigned char Backup_1c; 546 unsigned char Backup_1d; 547 548 unsigned char Init_P4_0E; 549 550 int UsePanelScaler; 551 int CenterScreen; 552 553 unsigned short CP_Vendor, CP_Product; 554 BOOLEAN CP_HaveCustomData; 555 int CP_PreferredX, CP_PreferredY, CP_PreferredIndex; 556 int CP_MaxX, CP_MaxY, CP_MaxClock; 557 unsigned char CP_PrefSR2B, CP_PrefSR2C; 558 unsigned short CP_PrefClock; 559 BOOLEAN CP_Supports64048075; 560 int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */ 561 int CP_HTotal[7], CP_VTotal[7]; 562 int CP_HSyncStart[7], CP_VSyncStart[7]; 563 int CP_HSyncEnd[7], CP_VSyncEnd[7]; 564 int CP_HBlankStart[7], CP_VBlankStart[7]; 565 int CP_HBlankEnd[7], CP_VBlankEnd[7]; 566 int CP_Clock[7]; 567 BOOLEAN CP_DataValid[7]; 568 BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7]; 569}; 570 571#endif 572 573