diff options
author | Thomas Winischhofer <thomas@winischhofer.net> | 2005-09-09 13:04:45 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-09 13:58:01 -0700 |
commit | 544393fe584d333480659a4bed30f5295355df11 (patch) | |
tree | 873b30c67cdbb5cb93e6fd816692db312ed6ddd6 /drivers/video/sis/vstruct.h | |
parent | 5c06e2aa6339112befdc87b350b8bf712890d7a7 (diff) |
[PATCH] sisfb update
This lifts sisfb from version 1.7.17 to version 1.8.9. Changes include:
- Added support for XGI V3XT, V5, V8, Z7 chipsets, including POSTing of
all of these chipsets.
- Added support for latest SiS chipsets (761).
- Added support for SiS76x memory "hybrid" mode.
- Added support for new LCD resolutions (eg 1280x854, 856x480).
- Fixed support for 320x240 STN panels (for embedded devices).
- Fixed many HDTV modes (525p, 750p, 1080i).
- Fixed PCI config register reading/writing to use proper kernel
functions for this purpose.
- Fixed PCI ROM handling to use the kernel's proper functions.
- Removed lots of "typedef"s.
- Removed lots of code which was for X.org/XFree86 only.
- Fixed coding style in many places.
- Removed lots of 2.4 cruft.
- Reduced stack size by unifying two previously separate structs into
one.
- Added new hooks for memory allocation (for DRM). Now the driver can
truly handle multiple cards, including memory management.
- Fixed numerous minor bugs.
Signed-off-by: Thomas Winischhofer <thomas@winischhofer.net>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/sis/vstruct.h')
-rw-r--r-- | drivers/video/sis/vstruct.h | 1097 |
1 files changed, 492 insertions, 605 deletions
diff --git a/drivers/video/sis/vstruct.h b/drivers/video/sis/vstruct.h index d4d55c98bce..9ae32923c14 100644 --- a/drivers/video/sis/vstruct.h +++ b/drivers/video/sis/vstruct.h @@ -3,7 +3,7 @@ /* * General structure definitions for universal mode switching modules * - * Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria + * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria * * If distributed as part of the Linux kernel, the following license terms * apply: @@ -50,627 +50,514 @@ * */ -#ifndef _VSTRUCT_ -#define _VSTRUCT_ - -typedef struct _SiS_PanelDelayTblStruct -{ - UCHAR timer[2]; -} SiS_PanelDelayTblStruct; - -typedef struct _SiS_LCDDataStruct -{ - USHORT RVBHCMAX; - USHORT RVBHCFACT; - USHORT VGAHT; - USHORT VGAVT; - USHORT LCDHT; - USHORT LCDVT; -} SiS_LCDDataStruct; - -typedef struct _SiS_TVDataStruct -{ - USHORT RVBHCMAX; - USHORT RVBHCFACT; - USHORT VGAHT; - USHORT VGAVT; - USHORT TVHDE; - USHORT TVVDE; - USHORT RVBHRS; - UCHAR FlickerMode; - USHORT HALFRVBHRS; - UCHAR RY1COE; - UCHAR RY2COE; - UCHAR RY3COE; - UCHAR RY4COE; -} SiS_TVDataStruct; - -typedef struct _SiS_LVDSDataStruct -{ - USHORT VGAHT; - USHORT VGAVT; - USHORT LCDHT; - USHORT LCDVT; -} SiS_LVDSDataStruct; - -typedef struct _SiS_LVDSDesStruct -{ - USHORT LCDHDES; - USHORT LCDVDES; -} SiS_LVDSDesStruct; - -typedef struct _SiS_LVDSCRT1DataStruct -{ - UCHAR CR[15]; -} SiS_LVDSCRT1DataStruct; - -typedef struct _SiS_LCDACRT1DataStruct -{ - UCHAR CR[17]; -} SiS_LCDACRT1DataStruct; - -typedef struct _SiS_CHTVRegDataStruct -{ - UCHAR Reg[16]; -} SiS_CHTVRegDataStruct; - -typedef struct _SiS_StStruct -{ - UCHAR St_ModeID; - USHORT St_ModeFlag; - UCHAR St_StTableIndex; - UCHAR St_CRT2CRTC; - UCHAR St_ResInfo; - UCHAR VB_StTVFlickerIndex; - UCHAR VB_StTVEdgeIndex; - UCHAR VB_StTVYFilterIndex; - UCHAR St_PDC; -} SiS_StStruct; - -typedef struct _SiS_VBModeStruct -{ - UCHAR ModeID; - UCHAR VB_TVDelayIndex; - UCHAR VB_TVFlickerIndex; - UCHAR VB_TVPhaseIndex; - UCHAR VB_TVYFilterIndex; - UCHAR VB_LCDDelayIndex; - UCHAR _VB_LCDHIndex; - UCHAR _VB_LCDVIndex; -} SiS_VBModeStruct; - -typedef struct _SiS_StandTableStruct -{ - UCHAR CRT_COLS; - UCHAR ROWS; - UCHAR CHAR_HEIGHT; - USHORT CRT_LEN; - UCHAR SR[4]; - UCHAR MISC; - UCHAR CRTC[0x19]; - UCHAR ATTR[0x14]; - UCHAR GRC[9]; -} SiS_StandTableStruct; - -typedef struct _SiS_ExtStruct -{ - UCHAR Ext_ModeID; - USHORT Ext_ModeFlag; - USHORT Ext_VESAID; - UCHAR Ext_RESINFO; - UCHAR VB_ExtTVFlickerIndex; - UCHAR VB_ExtTVEdgeIndex; - UCHAR VB_ExtTVYFilterIndex; - UCHAR VB_ExtTVYFilterIndexROM661; - UCHAR REFindex; - CHAR ROMMODEIDX661; -} SiS_ExtStruct; - -typedef struct _SiS_Ext2Struct -{ - USHORT Ext_InfoFlag; - UCHAR Ext_CRT1CRTC; - UCHAR Ext_CRTVCLK; - UCHAR Ext_CRT2CRTC; - UCHAR Ext_CRT2CRTC_NS; - UCHAR ModeID; - USHORT XRes; - USHORT YRes; - UCHAR Ext_PDC; -} SiS_Ext2Struct; - -typedef struct _SiS_Part2PortTblStruct -{ - UCHAR CR[12]; -} SiS_Part2PortTblStruct; - -typedef struct _SiS_CRT1TableStruct -{ - UCHAR CR[17]; -} SiS_CRT1TableStruct; - -typedef struct _SiS_MCLKDataStruct -{ - UCHAR SR28,SR29,SR2A; - USHORT CLOCK; -} SiS_MCLKDataStruct; - -typedef struct _SiS_VCLKDataStruct -{ - UCHAR SR2B,SR2C; - USHORT CLOCK; -} SiS_VCLKDataStruct; - -typedef struct _SiS_VBVCLKDataStruct -{ - UCHAR Part4_A,Part4_B; - USHORT CLOCK; -} SiS_VBVCLKDataStruct; - -typedef struct _SiS_StResInfoStruct -{ - USHORT HTotal; - USHORT VTotal; -} SiS_StResInfoStruct; - -typedef struct _SiS_ModeResInfoStruct -{ - USHORT HTotal; - USHORT VTotal; - UCHAR XChar; - UCHAR YChar; -} SiS_ModeResInfoStruct; - - - -typedef UCHAR DRAM4Type[4]; +#ifndef _VSTRUCT_H_ +#define _VSTRUCT_H_ + +struct SiS_PanelDelayTbl { + unsigned char timer[2]; +}; + +struct SiS_LCDData { + unsigned short RVBHCMAX; + unsigned short RVBHCFACT; + unsigned short VGAHT; + unsigned short VGAVT; + unsigned short LCDHT; + unsigned short LCDVT; +}; + +struct SiS_TVData { + unsigned short RVBHCMAX; + unsigned short RVBHCFACT; + unsigned short VGAHT; + unsigned short VGAVT; + unsigned short TVHDE; + unsigned short TVVDE; + unsigned short RVBHRS; + unsigned char FlickerMode; + unsigned short HALFRVBHRS; + unsigned short RVBHRS2; + unsigned char RY1COE; + unsigned char RY2COE; + unsigned char RY3COE; + unsigned char RY4COE; +}; + +struct SiS_LVDSData { + unsigned short VGAHT; + unsigned short VGAVT; + unsigned short LCDHT; + unsigned short LCDVT; +}; + +struct SiS_LVDSDes { + unsigned short LCDHDES; + unsigned short LCDVDES; +}; + +struct SiS_LVDSCRT1Data { + unsigned char CR[15]; +}; + +struct SiS_CHTVRegData { + unsigned char Reg[16]; +}; + +struct SiS_St { + unsigned char St_ModeID; + unsigned short St_ModeFlag; + unsigned char St_StTableIndex; + unsigned char St_CRT2CRTC; + unsigned char St_ResInfo; + unsigned char VB_StTVFlickerIndex; + unsigned char VB_StTVEdgeIndex; + unsigned char VB_StTVYFilterIndex; + unsigned char St_PDC; +}; + +struct SiS_VBMode { + unsigned char ModeID; + unsigned char VB_TVDelayIndex; + unsigned char VB_TVFlickerIndex; + unsigned char VB_TVPhaseIndex; + unsigned char VB_TVYFilterIndex; + unsigned char VB_LCDDelayIndex; + unsigned char _VB_LCDHIndex; + unsigned char _VB_LCDVIndex; +}; + +struct SiS_StandTable_S { + unsigned char CRT_COLS; + unsigned char ROWS; + unsigned char CHAR_HEIGHT; + unsigned short CRT_LEN; + unsigned char SR[4]; + unsigned char MISC; + unsigned char CRTC[0x19]; + unsigned char ATTR[0x14]; + unsigned char GRC[9]; +}; + +struct SiS_Ext { + unsigned char Ext_ModeID; + unsigned short Ext_ModeFlag; + unsigned short Ext_VESAID; + unsigned char Ext_RESINFO; + unsigned char VB_ExtTVFlickerIndex; + unsigned char VB_ExtTVEdgeIndex; + unsigned char VB_ExtTVYFilterIndex; + unsigned char VB_ExtTVYFilterIndexROM661; + unsigned char REFindex; + char ROMMODEIDX661; +}; + +struct SiS_Ext2 { + unsigned short Ext_InfoFlag; + unsigned char Ext_CRT1CRTC; + unsigned char Ext_CRTVCLK; + unsigned char Ext_CRT2CRTC; + unsigned char Ext_CRT2CRTC_NS; + unsigned char ModeID; + unsigned short XRes; + unsigned short YRes; + unsigned char Ext_PDC; + unsigned char Ext_FakeCRT2CRTC; + unsigned char Ext_FakeCRT2Clk; + unsigned char Ext_CRT1CRTC_NORM; + unsigned char Ext_CRTVCLK_NORM; + unsigned char Ext_CRT1CRTC_WIDE; + unsigned char Ext_CRTVCLK_WIDE; +}; + +struct SiS_Part2PortTbl { + unsigned char CR[12]; +}; + +struct SiS_CRT1Table { + unsigned char CR[17]; +}; + +struct SiS_MCLKData { + unsigned char SR28,SR29,SR2A; + unsigned short CLOCK; +}; + +struct SiS_VCLKData { + unsigned char SR2B,SR2C; + unsigned short CLOCK; +}; + +struct SiS_VBVCLKData { + unsigned char Part4_A,Part4_B; + unsigned short CLOCK; +}; + +struct SiS_StResInfo_S { + unsigned short HTotal; + unsigned short VTotal; +}; + +struct SiS_ModeResInfo_S { + unsigned short HTotal; + unsigned short VTotal; + unsigned char XChar; + unsigned char YChar; +}; /* Defines for SiS_CustomT */ /* Never change these for sisfb compatibility */ -#define CUT_NONE 0 -#define CUT_FORCENONE 1 -#define CUT_BARCO1366 2 -#define CUT_BARCO1024 3 -#define CUT_COMPAQ1280 4 -#define CUT_COMPAQ12802 5 -#define CUT_PANEL848 6 -#define CUT_CLEVO1024 7 -#define CUT_CLEVO10242 8 -#define CUT_CLEVO1400 9 -#define CUT_CLEVO14002 10 -#define CUT_UNIWILL1024 11 -#define CUT_ASUSL3000D 12 -#define CUT_UNIWILL10242 13 -#define CUT_ACER1280 14 -#define CUT_COMPAL1400_1 15 -#define CUT_COMPAL1400_2 16 -#define CUT_ASUSA2H_1 17 -#define CUT_ASUSA2H_2 18 - -typedef struct _SiS_Private +#define CUT_NONE 0 +#define CUT_FORCENONE 1 +#define CUT_BARCO1366 2 +#define CUT_BARCO1024 3 +#define CUT_COMPAQ1280 4 +#define CUT_COMPAQ12802 5 +#define CUT_PANEL848 6 +#define CUT_CLEVO1024 7 +#define CUT_CLEVO10242 8 +#define CUT_CLEVO1400 9 +#define CUT_CLEVO14002 10 +#define CUT_UNIWILL1024 11 +#define CUT_ASUSL3000D 12 +#define CUT_UNIWILL10242 13 +#define CUT_ACER1280 14 +#define CUT_COMPAL1400_1 15 +#define CUT_COMPAL1400_2 16 +#define CUT_ASUSA2H_1 17 +#define CUT_ASUSA2H_2 18 +#define CUT_UNKNOWNLCD 19 +#define CUT_AOP8060 20 +#define CUT_PANEL856 21 + +struct SiS_Private { -#ifdef LINUX_KERNEL - SISIOADDRESS RelIO; + unsigned char ChipType; + unsigned char ChipRevision; +#ifdef SIS_XORG_XF86 + PCITAG PciTag; #endif - SISIOADDRESS SiS_P3c4; - SISIOADDRESS SiS_P3d4; - SISIOADDRESS SiS_P3c0; - SISIOADDRESS SiS_P3ce; - SISIOADDRESS SiS_P3c2; - SISIOADDRESS SiS_P3ca; - SISIOADDRESS SiS_P3c6; - SISIOADDRESS SiS_P3c7; - SISIOADDRESS SiS_P3c8; - SISIOADDRESS SiS_P3c9; - SISIOADDRESS SiS_P3cb; - SISIOADDRESS SiS_P3cd; - SISIOADDRESS SiS_P3da; - SISIOADDRESS SiS_Part1Port; - SISIOADDRESS SiS_Part2Port; - SISIOADDRESS SiS_Part3Port; - SISIOADDRESS SiS_Part4Port; - SISIOADDRESS SiS_Part5Port; - SISIOADDRESS SiS_VidCapt; - SISIOADDRESS SiS_VidPlay; - USHORT SiS_IF_DEF_LVDS; - USHORT SiS_IF_DEF_CH70xx; - USHORT SiS_IF_DEF_CONEX; - USHORT SiS_IF_DEF_TRUMPION; - USHORT SiS_IF_DEF_DSTN; - USHORT SiS_IF_DEF_FSTN; - USHORT SiS_SysFlags; - UCHAR SiS_VGAINFO; -#ifdef LINUX_XF86 - USHORT SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4; +#ifdef SIS_LINUX_KERNEL + void *ivideo; #endif - BOOLEAN SiS_UseROM; - BOOLEAN SiS_ROMNew; - BOOLEAN SiS_NeedRomModeData; - BOOLEAN PanelSelfDetected; - int SiS_CHOverScan; - BOOLEAN SiS_CHSOverScan; - BOOLEAN SiS_ChSW; - BOOLEAN SiS_UseLCDA; - int SiS_UseOEM; - ULONG SiS_CustomT; - USHORT SiS_Backup70xx; - BOOLEAN HaveEMI; - BOOLEAN HaveEMILCD; - BOOLEAN OverruleEMI; - UCHAR EMI_30,EMI_31,EMI_32,EMI_33; - USHORT SiS_EMIOffset; - SHORT PDC, PDCA; - UCHAR SiS_MyCR63; - USHORT SiS_CRT1Mode; - USHORT SiS_flag_clearbuffer; - int SiS_RAMType; - UCHAR SiS_ChannelAB; - UCHAR SiS_DataBusWidth; - USHORT SiS_ModeType; - USHORT SiS_VBInfo; - USHORT SiS_TVMode; - USHORT SiS_LCDResInfo; - USHORT SiS_LCDTypeInfo; - USHORT SiS_LCDInfo; - USHORT SiS_LCDInfo661; - USHORT SiS_VBType; - USHORT SiS_VBExtInfo; - USHORT SiS_YPbPr; - USHORT SiS_SelectCRT2Rate; - USHORT SiS_SetFlag; - USHORT SiS_RVBHCFACT; - USHORT SiS_RVBHCMAX; - USHORT SiS_RVBHRS; - USHORT SiS_VGAVT; - USHORT SiS_VGAHT; - USHORT SiS_VT; - USHORT SiS_HT; - USHORT SiS_VGAVDE; - USHORT SiS_VGAHDE; - USHORT SiS_VDE; - USHORT SiS_HDE; - USHORT SiS_NewFlickerMode; - USHORT SiS_RY1COE; - USHORT SiS_RY2COE; - USHORT SiS_RY3COE; - USHORT SiS_RY4COE; - USHORT SiS_LCDHDES; - USHORT SiS_LCDVDES; - USHORT SiS_DDC_Port; - USHORT SiS_DDC_Index; - USHORT SiS_DDC_Data; - USHORT SiS_DDC_NData; - USHORT SiS_DDC_Clk; - USHORT SiS_DDC_NClk; - USHORT SiS_DDC_DeviceAddr; - USHORT SiS_DDC_ReadAddr; - USHORT SiS_DDC_SecAddr; - USHORT SiS_ChrontelInit; - BOOLEAN SiS_SensibleSR11; - USHORT SiS661LCD2TableSize; - - USHORT SiS_PanelMinLVDS; - USHORT SiS_PanelMin301; - - const SiS_StStruct *SiS_SModeIDTable; - const SiS_StandTableStruct *SiS_StandTable; - const SiS_ExtStruct *SiS_EModeIDTable; - const SiS_Ext2Struct *SiS_RefIndex; - const SiS_VBModeStruct *SiS_VBModeIDTable; - const SiS_CRT1TableStruct *SiS_CRT1Table; - const SiS_MCLKDataStruct *SiS_MCLKData_0; - const SiS_MCLKDataStruct *SiS_MCLKData_1; - SiS_VCLKDataStruct *SiS_VCLKData; - SiS_VBVCLKDataStruct *SiS_VBVCLKData; - const SiS_StResInfoStruct *SiS_StResInfo; - const SiS_ModeResInfoStruct *SiS_ModeResInfo; - - const UCHAR *pSiS_OutputSelect; - const UCHAR *pSiS_SoftSetting; - - const DRAM4Type *SiS_SR15; /* pointer : point to array */ -#ifdef LINUX_KERNEL - UCHAR *pSiS_SR07; - const DRAM4Type *SiS_CR40; /* pointer : point to array */ - UCHAR *SiS_CR49; - UCHAR *SiS_SR25; - UCHAR *pSiS_SR1F; - UCHAR *pSiS_SR21; - UCHAR *pSiS_SR22; - UCHAR *pSiS_SR23; - UCHAR *pSiS_SR24; - UCHAR *pSiS_SR31; - UCHAR *pSiS_SR32; - UCHAR *pSiS_SR33; - UCHAR *pSiS_CRT2Data_1_2; - UCHAR *pSiS_CRT2Data_4_D; - UCHAR *pSiS_CRT2Data_4_E; - UCHAR *pSiS_CRT2Data_4_10; - const USHORT *pSiS_RGBSenseData; - const USHORT *pSiS_VideoSenseData; - const USHORT *pSiS_YCSenseData; - const USHORT *pSiS_RGBSenseData2; - const USHORT *pSiS_VideoSenseData2; - const USHORT *pSiS_YCSenseData2; + unsigned char *VirtualRomBase; + BOOLEAN UseROM; +#ifdef SIS_LINUX_KERNEL + unsigned char SISIOMEMTYPE *VideoMemoryAddress; + unsigned int VideoMemorySize; #endif + SISIOADDRESS IOAddress; + SISIOADDRESS IOAddress2; /* For dual chip XGI volari */ - const SiS_PanelDelayTblStruct *SiS_PanelDelayTbl; - const SiS_PanelDelayTblStruct *SiS_PanelDelayTblLVDS; +#ifdef SIS_LINUX_KERNEL + SISIOADDRESS RelIO; +#endif + SISIOADDRESS SiS_P3c4; + SISIOADDRESS SiS_P3d4; + SISIOADDRESS SiS_P3c0; + SISIOADDRESS SiS_P3ce; + SISIOADDRESS SiS_P3c2; + SISIOADDRESS SiS_P3ca; + SISIOADDRESS SiS_P3c6; + SISIOADDRESS SiS_P3c7; + SISIOADDRESS SiS_P3c8; + SISIOADDRESS SiS_P3c9; + SISIOADDRESS SiS_P3cb; + SISIOADDRESS SiS_P3cc; + SISIOADDRESS SiS_P3cd; + SISIOADDRESS SiS_P3da; + SISIOADDRESS SiS_Part1Port; + SISIOADDRESS SiS_Part2Port; + SISIOADDRESS SiS_Part3Port; + SISIOADDRESS SiS_Part4Port; + SISIOADDRESS SiS_Part5Port; + SISIOADDRESS SiS_VidCapt; + SISIOADDRESS SiS_VidPlay; + unsigned short SiS_IF_DEF_LVDS; + unsigned short SiS_IF_DEF_CH70xx; + unsigned short SiS_IF_DEF_CONEX; + unsigned short SiS_IF_DEF_TRUMPION; + unsigned short SiS_IF_DEF_DSTN; + unsigned short SiS_IF_DEF_FSTN; + unsigned short SiS_SysFlags; + unsigned char SiS_VGAINFO; +#ifdef SIS_XORG_XF86 + unsigned short SiS_CP1, SiS_CP2, SiS_CP3, SiS_CP4; +#endif + BOOLEAN SiS_UseROM; + BOOLEAN SiS_ROMNew; + BOOLEAN SiS_XGIROM; + BOOLEAN SiS_NeedRomModeData; + BOOLEAN PanelSelfDetected; + BOOLEAN DDCPortMixup; + int SiS_CHOverScan; + BOOLEAN SiS_CHSOverScan; + BOOLEAN SiS_ChSW; + BOOLEAN SiS_UseLCDA; + int SiS_UseOEM; + unsigned int SiS_CustomT; + int SiS_UseWide, SiS_UseWideCRT2; + int SiS_TVBlue; + unsigned short SiS_Backup70xx; + BOOLEAN HaveEMI; + BOOLEAN HaveEMILCD; + BOOLEAN OverruleEMI; + unsigned char EMI_30,EMI_31,EMI_32,EMI_33; + unsigned short SiS_EMIOffset; + unsigned short SiS_PWDOffset; + short PDC, PDCA; + unsigned char SiS_MyCR63; + unsigned short SiS_CRT1Mode; + unsigned short SiS_flag_clearbuffer; + int SiS_RAMType; + unsigned char SiS_ChannelAB; + unsigned char SiS_DataBusWidth; + unsigned short SiS_ModeType; + unsigned short SiS_VBInfo; + unsigned short SiS_TVMode; + unsigned short SiS_LCDResInfo; + unsigned short SiS_LCDTypeInfo; + unsigned short SiS_LCDInfo; + unsigned short SiS_LCDInfo661; + unsigned short SiS_VBType; + unsigned short SiS_VBExtInfo; + unsigned short SiS_YPbPr; + unsigned short SiS_SelectCRT2Rate; + unsigned short SiS_SetFlag; + unsigned short SiS_RVBHCFACT; + unsigned short SiS_RVBHCMAX; + unsigned short SiS_RVBHRS; + unsigned short SiS_RVBHRS2; + unsigned short SiS_VGAVT; + unsigned short SiS_VGAHT; + unsigned short SiS_VT; + unsigned short SiS_HT; + unsigned short SiS_VGAVDE; + unsigned short SiS_VGAHDE; + unsigned short SiS_VDE; + unsigned short SiS_HDE; + unsigned short SiS_NewFlickerMode; + unsigned short SiS_RY1COE; + unsigned short SiS_RY2COE; + unsigned short SiS_RY3COE; + unsigned short SiS_RY4COE; + unsigned short SiS_LCDHDES; + unsigned short SiS_LCDVDES; + unsigned short SiS_DDC_Port; + unsigned short SiS_DDC_Index; + unsigned short SiS_DDC_Data; + unsigned short SiS_DDC_NData; + unsigned short SiS_DDC_Clk; + unsigned short SiS_DDC_NClk; + unsigned short SiS_DDC_DeviceAddr; + unsigned short SiS_DDC_ReadAddr; + unsigned short SiS_DDC_SecAddr; + unsigned short SiS_ChrontelInit; + BOOLEAN SiS_SensibleSR11; + unsigned short SiS661LCD2TableSize; + + unsigned short SiS_PanelMinLVDS; + unsigned short SiS_PanelMin301; + + const struct SiS_St *SiS_SModeIDTable; + const struct SiS_StandTable_S *SiS_StandTable; + const struct SiS_Ext *SiS_EModeIDTable; + const struct SiS_Ext2 *SiS_RefIndex; + const struct SiS_VBMode *SiS_VBModeIDTable; + const struct SiS_CRT1Table *SiS_CRT1Table; + const struct SiS_MCLKData *SiS_MCLKData_0; + const struct SiS_MCLKData *SiS_MCLKData_1; + struct SiS_VCLKData *SiS_VCLKData; + struct SiS_VBVCLKData *SiS_VBVCLKData; + const struct SiS_StResInfo_S *SiS_StResInfo; + const struct SiS_ModeResInfo_S *SiS_ModeResInfo; + + const unsigned char *pSiS_OutputSelect; + const unsigned char *pSiS_SoftSetting; + + const unsigned char *SiS_SR15; + + const struct SiS_PanelDelayTbl *SiS_PanelDelayTbl; + const struct SiS_PanelDelayTbl *SiS_PanelDelayTblLVDS; /* SiS bridge */ - const UCHAR *SiS_NTSCPhase; - const UCHAR *SiS_PALPhase; - const UCHAR *SiS_NTSCPhase2; - const UCHAR *SiS_PALPhase2; - const UCHAR *SiS_PALMPhase; - const UCHAR *SiS_PALNPhase; - const UCHAR *SiS_PALMPhase2; - const UCHAR *SiS_PALNPhase2; - const UCHAR *SiS_SpecialPhase; - const UCHAR *SiS_SpecialPhaseM; - const UCHAR *SiS_SpecialPhaseJ; - const SiS_LCDDataStruct *SiS_ExtLCD1024x768Data; - const SiS_LCDDataStruct *SiS_St2LCD1024x768Data; - const SiS_LCDDataStruct *SiS_LCD1280x720Data; - const SiS_LCDDataStruct *SiS_StLCD1280x768_2Data; - const SiS_LCDDataStruct *SiS_ExtLCD1280x768_2Data; - const SiS_LCDDataStruct *SiS_LCD1280x800Data; - const SiS_LCDDataStruct *SiS_LCD1280x800_2Data; - const SiS_LCDDataStruct *SiS_LCD1280x960Data; - const SiS_LCDDataStruct *SiS_ExtLCD1280x1024Data; - const SiS_LCDDataStruct *SiS_St2LCD1280x1024Data; - const SiS_LCDDataStruct *SiS_StLCD1400x1050Data; - const SiS_LCDDataStruct *SiS_ExtLCD1400x1050Data; - const SiS_LCDDataStruct *SiS_StLCD1600x1200Data; - const SiS_LCDDataStruct *SiS_ExtLCD1600x1200Data; - const SiS_LCDDataStruct *SiS_LCD1680x1050Data; - const SiS_LCDDataStruct *SiS_NoScaleData; - const SiS_TVDataStruct *SiS_StPALData; - const SiS_TVDataStruct *SiS_ExtPALData; - const SiS_TVDataStruct *SiS_StNTSCData; - const SiS_TVDataStruct *SiS_ExtNTSCData; - const SiS_TVDataStruct *SiS_St1HiTVData; - const SiS_TVDataStruct *SiS_St2HiTVData; - const SiS_TVDataStruct *SiS_ExtHiTVData; - const SiS_TVDataStruct *SiS_St525iData; - const SiS_TVDataStruct *SiS_St525pData; - const SiS_TVDataStruct *SiS_St750pData; - const SiS_TVDataStruct *SiS_Ext525iData; - const SiS_TVDataStruct *SiS_Ext525pData; - const SiS_TVDataStruct *SiS_Ext750pData; - const UCHAR *SiS_NTSCTiming; - const UCHAR *SiS_PALTiming; - const UCHAR *SiS_HiTVExtTiming; - const UCHAR *SiS_HiTVSt1Timing; - const UCHAR *SiS_HiTVSt2Timing; - const UCHAR *SiS_HiTVGroup3Data; - const UCHAR *SiS_HiTVGroup3Simu; + const struct SiS_LCDData *SiS_ExtLCD1024x768Data; + const struct SiS_LCDData *SiS_St2LCD1024x768Data; + const struct SiS_LCDData *SiS_LCD1280x720Data; + const struct SiS_LCDData *SiS_StLCD1280x768_2Data; + const struct SiS_LCDData *SiS_ExtLCD1280x768_2Data; + const struct SiS_LCDData *SiS_LCD1280x800Data; + const struct SiS_LCDData *SiS_LCD1280x800_2Data; + const struct SiS_LCDData *SiS_LCD1280x854Data; + const struct SiS_LCDData *SiS_LCD1280x960Data; + const struct SiS_LCDData *SiS_ExtLCD1280x1024Data; + const struct SiS_LCDData *SiS_St2LCD1280x1024Data; + const struct SiS_LCDData *SiS_StLCD1400x1050Data; + const struct SiS_LCDData *SiS_ExtLCD1400x1050Data; + const struct SiS_LCDData *SiS_StLCD1600x1200Data; + const struct SiS_LCDData *SiS_ExtLCD1600x1200Data; + const struct SiS_LCDData *SiS_LCD1680x1050Data; + const struct SiS_LCDData *SiS_NoScaleData; + const struct SiS_TVData *SiS_StPALData; + const struct SiS_TVData *SiS_ExtPALData; + const struct SiS_TVData *SiS_StNTSCData; + const struct SiS_TVData *SiS_ExtNTSCData; + const struct SiS_TVData *SiS_St1HiTVData; + const struct SiS_TVData *SiS_St2HiTVData; + const struct SiS_TVData *SiS_ExtHiTVData; + const struct SiS_TVData *SiS_St525iData; + const struct SiS_TVData *SiS_St525pData; + const struct SiS_TVData *SiS_St750pData; + const struct SiS_TVData *SiS_Ext525iData; + const struct SiS_TVData *SiS_Ext525pData; + const struct SiS_TVData *SiS_Ext750pData; + const unsigned char *SiS_NTSCTiming; + const unsigned char *SiS_PALTiming; + const unsigned char *SiS_HiTVExtTiming; + const unsigned char *SiS_HiTVSt1Timing; + const unsigned char *SiS_HiTVSt2Timing; + const unsigned char *SiS_HiTVGroup3Data; + const unsigned char *SiS_HiTVGroup3Simu; #if 0 - const UCHAR *SiS_HiTVTextTiming; - const UCHAR *SiS_HiTVGroup3Text; + const unsigned char *SiS_HiTVTextTiming; + const unsigned char *SiS_HiTVGroup3Text; #endif - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_1; - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_1; - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_2; - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_2; - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1024x768_3; - const SiS_Part2PortTblStruct *SiS_CRT2Part2_1280x1024_3; + const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_1; + const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_2; + const struct SiS_Part2PortTbl *SiS_CRT2Part2_1024x768_3; /* LVDS, Chrontel */ - const SiS_LVDSDataStruct *SiS_LVDS800x600Data_1; - const SiS_LVDSDataStruct *SiS_LVDS800x600Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1024x768Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1024x768Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1280x1024Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1280x1024Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1280x960Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1280x960Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1400x1050Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1400x1050Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1600x1200Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1600x1200Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1280x768Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1280x768Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1024x600Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1024x600Data_2; - const SiS_LVDSDataStruct *SiS_LVDS1152x768Data_1; - const SiS_LVDSDataStruct *SiS_LVDS1152x768Data_2; - const SiS_LVDSDataStruct *SiS_LVDS640x480Data_1; - const SiS_LVDSDataStruct *SiS_LVDS640x480Data_2; - const SiS_LVDSDataStruct *SiS_LVDS320x480Data_1; - const SiS_LVDSDataStruct *SiS_LVDSXXXxXXXData_1; - const SiS_LVDSDataStruct *SiS_LVDSBARCO1366Data_1; - const SiS_LVDSDataStruct *SiS_LVDSBARCO1366Data_2; - const SiS_LVDSDataStruct *SiS_LVDSBARCO1024Data_1; - const SiS_LVDSDataStruct *SiS_LVDSBARCO1024Data_2; - const SiS_LVDSDataStruct *SiS_LVDS848x480Data_1; - const SiS_LVDSDataStruct *SiS_LVDS848x480Data_2; - const SiS_LVDSDataStruct *SiS_CHTVUNTSCData; - const SiS_LVDSDataStruct *SiS_CHTVONTSCData; - const SiS_LVDSDataStruct *SiS_CHTVUPALData; - const SiS_LVDSDataStruct *SiS_CHTVOPALData; - const SiS_LVDSDataStruct *SiS_CHTVUPALMData; - const SiS_LVDSDataStruct *SiS_CHTVOPALMData; - const SiS_LVDSDataStruct *SiS_CHTVUPALNData; - const SiS_LVDSDataStruct *SiS_CHTVOPALNData; - const SiS_LVDSDataStruct *SiS_CHTVSOPALData; - - const SiS_LVDSDesStruct *SiS_PanelType00_1; - const SiS_LVDSDesStruct *SiS_PanelType01_1; - const SiS_LVDSDesStruct *SiS_PanelType02_1; - const SiS_LVDSDesStruct *SiS_PanelType03_1; - const SiS_LVDSDesStruct *SiS_PanelType04_1; - const SiS_LVDSDesStruct *SiS_PanelType05_1; - const SiS_LVDSDesStruct *SiS_PanelType06_1; - const SiS_LVDSDesStruct *SiS_PanelType07_1; - const SiS_LVDSDesStruct *SiS_PanelType08_1; - const SiS_LVDSDesStruct *SiS_PanelType09_1; - const SiS_LVDSDesStruct *SiS_PanelType0a_1; - const SiS_LVDSDesStruct *SiS_PanelType0b_1; - const SiS_LVDSDesStruct *SiS_PanelType0c_1; - const SiS_LVDSDesStruct *SiS_PanelType0d_1; - const SiS_LVDSDesStruct *SiS_PanelType0e_1; - const SiS_LVDSDesStruct *SiS_PanelType0f_1; - const SiS_LVDSDesStruct *SiS_PanelTypeNS_1; - const SiS_LVDSDesStruct *SiS_PanelType00_2; - const SiS_LVDSDesStruct *SiS_PanelType01_2; - const SiS_LVDSDesStruct *SiS_PanelType02_2; - const SiS_LVDSDesStruct *SiS_PanelType03_2; - const SiS_LVDSDesStruct *SiS_PanelType04_2; - const SiS_LVDSDesStruct *SiS_PanelType05_2; - const SiS_LVDSDesStruct *SiS_PanelType06_2; - const SiS_LVDSDesStruct *SiS_PanelType07_2; - const SiS_LVDSDesStruct *SiS_PanelType08_2; - const SiS_LVDSDesStruct *SiS_PanelType09_2; - const SiS_LVDSDesStruct *SiS_PanelType0a_2; - const SiS_LVDSDesStruct *SiS_PanelType0b_2; - const SiS_LVDSDesStruct *SiS_PanelType0c_2; - const SiS_LVDSDesStruct *SiS_PanelType0d_2; - const SiS_LVDSDesStruct *SiS_PanelType0e_2; - const SiS_LVDSDesStruct *SiS_PanelType0f_2; - const SiS_LVDSDesStruct *SiS_PanelTypeNS_2; - const SiS_LVDSDesStruct *SiS_CHTVUNTSCDesData; - const SiS_LVDSDesStruct *SiS_CHTVONTSCDesData; - const SiS_LVDSDesStruct *SiS_CHTVUPALDesData; - const SiS_LVDSDesStruct *SiS_CHTVOPALDesData; - - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1800x600_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x768_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x1024_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11400x1050_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x768_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11152x768_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11600x1200_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1800x600_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x768_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x1024_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11400x1050_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x768_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11152x768_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11600x1200_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1800x600_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x768_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x1024_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11400x1050_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x768_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11152x768_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11600x1200_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1800x600_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x768_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x1024_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11400x1050_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11280x768_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11024x600_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11152x768_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT11600x1200_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1XXXxXXX_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1XXXxXXX_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_1; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_1_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_2; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_2_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_3; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1640x480_3_H; - const SiS_LVDSCRT1DataStruct *SiS_LVDSCRT1320x480_1; - const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1UNTSC; - const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1ONTSC; - const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1UPAL; - const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1OPAL; - const SiS_LVDSCRT1DataStruct *SiS_CHTVCRT1SOPAL; - - const SiS_CHTVRegDataStruct *SiS_CHTVReg_UNTSC; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_ONTSC; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPAL; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPAL; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALM; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALM; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_UPALN; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_OPALN; - const SiS_CHTVRegDataStruct *SiS_CHTVReg_SOPAL; - - const UCHAR *SiS_CHTVVCLKUNTSC; - const UCHAR *SiS_CHTVVCLKONTSC; - const UCHAR *SiS_CHTVVCLKUPAL; - const UCHAR *SiS_CHTVVCLKOPAL; - const UCHAR *SiS_CHTVVCLKUPALM; - const UCHAR *SiS_CHTVVCLKOPALM; - const UCHAR *SiS_CHTVVCLKUPALN; - const UCHAR *SiS_CHTVVCLKOPALN; - const UCHAR *SiS_CHTVVCLKSOPAL; - - USHORT PanelXRes, PanelHT; - USHORT PanelYRes, PanelVT; - USHORT PanelHRS, PanelHRE; - USHORT PanelVRS, PanelVRE; - USHORT PanelVCLKIdx300; - USHORT PanelVCLKIdx315; - - BOOLEAN UseCustomMode; - BOOLEAN CRT1UsesCustomMode; - USHORT CHDisplay; - USHORT CHSyncStart; - USHORT CHSyncEnd; - USHORT CHTotal; - USHORT CHBlankStart; - USHORT CHBlankEnd; - USHORT CVDisplay; - USHORT CVSyncStart; - USHORT CVSyncEnd; - USHORT CVTotal; - USHORT CVBlankStart; - USHORT CVBlankEnd; - ULONG CDClock; - ULONG CFlags; - UCHAR CCRT1CRTC[17]; - UCHAR CSR2B; - UCHAR CSR2C; - USHORT CSRClock; - USHORT CSRClock_CRT1; - USHORT CModeFlag; - USHORT CModeFlag_CRT1; - USHORT CInfoFlag; - - int LVDSHL; - - BOOLEAN Backup; - UCHAR Backup_Mode; - UCHAR Backup_14; - UCHAR Backup_15; - UCHAR Backup_16; - UCHAR Backup_17; - UCHAR Backup_18; - UCHAR Backup_19; - UCHAR Backup_1a; - UCHAR Backup_1b; - UCHAR Backup_1c; - UCHAR Backup_1d; - - int UsePanelScaler; - int CenterScreen; - - USHORT CP_Vendor, CP_Product; - BOOLEAN CP_HaveCustomData; - int CP_PreferredX, CP_PreferredY, CP_PreferredIndex; - int CP_MaxX, CP_MaxY, CP_MaxClock; - UCHAR CP_PrefSR2B, CP_PrefSR2C; - USHORT CP_PrefClock; - BOOLEAN CP_Supports64048075; - int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */ - int CP_HTotal[7], CP_VTotal[7]; - int CP_HSyncStart[7], CP_VSyncStart[7]; - int CP_HSyncEnd[7], CP_VSyncEnd[7]; - int CP_HBlankStart[7], CP_VBlankStart[7]; - int CP_HBlankEnd[7], CP_VBlankEnd[7]; - int CP_Clock[7]; - BOOLEAN CP_DataValid[7]; - BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7]; -} SiS_Private; + const struct SiS_LVDSData *SiS_LVDS320x240Data_1; + const struct SiS_LVDSData *SiS_LVDS320x240Data_2; + const struct SiS_LVDSData *SiS_LVDS640x480Data_1; + const struct SiS_LVDSData *SiS_LVDS800x600Data_1; + const struct SiS_LVDSData *SiS_LVDS1024x600Data_1; + const struct SiS_LVDSData *SiS_LVDS1024x768Data_1; + const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_1; + const struct SiS_LVDSData *SiS_LVDSBARCO1366Data_2; + const struct SiS_LVDSData *SiS_LVDSBARCO1024Data_1; + const struct SiS_LVDSData *SiS_LVDS848x480Data_1; + const struct SiS_LVDSData *SiS_LVDS848x480Data_2; + const struct SiS_LVDSData *SiS_CHTVUNTSCData; + const struct SiS_LVDSData *SiS_CHTVONTSCData; + const struct SiS_LVDSData *SiS_CHTVUPALData; + const struct SiS_LVDSData *SiS_CHTVOPALData; + const struct SiS_LVDSData *SiS_CHTVUPALMData; + const struct SiS_LVDSData *SiS_CHTVOPALMData; + const struct SiS_LVDSData *SiS_CHTVUPALNData; + const struct SiS_LVDSData *SiS_CHTVOPALNData; + const struct SiS_LVDSData *SiS_CHTVSOPALData; + + const struct SiS_LVDSDes *SiS_PanelType04_1a; + const struct SiS_LVDSDes *SiS_PanelType04_2a; + const struct SiS_LVDSDes *SiS_PanelType04_1b; + const struct SiS_LVDSDes *SiS_PanelType04_2b; + + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_1; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_2_H; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1320x240_3_H; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1; + const struct SiS_LVDSCRT1Data *SiS_LVDSCRT1640x480_1_H; + const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UNTSC; + const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1ONTSC; + const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1UPAL; + const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1OPAL; + const struct SiS_LVDSCRT1Data *SiS_CHTVCRT1SOPAL; + + const struct SiS_CHTVRegData *SiS_CHTVReg_UNTSC; + const struct SiS_CHTVRegData *SiS_CHTVReg_ONTSC; + const struct SiS_CHTVRegData *SiS_CHTVReg_UPAL; + const struct SiS_CHTVRegData *SiS_CHTVReg_OPAL; + const struct SiS_CHTVRegData *SiS_CHTVReg_UPALM; + const struct SiS_CHTVRegData *SiS_CHTVReg_OPALM; + const struct SiS_CHTVRegData *SiS_CHTVReg_UPALN; + const struct SiS_CHTVRegData *SiS_CHTVReg_OPALN; + const struct SiS_CHTVRegData *SiS_CHTVReg_SOPAL; + + const unsigned char *SiS_CHTVVCLKUNTSC; + const unsigned char *SiS_CHTVVCLKONTSC; + const unsigned char *SiS_CHTVVCLKUPAL; + const unsigned char *SiS_CHTVVCLKOPAL; + const unsigned char *SiS_CHTVVCLKUPALM; + const unsigned char *SiS_CHTVVCLKOPALM; + const unsigned char *SiS_CHTVVCLKUPALN; + const unsigned char *SiS_CHTVVCLKOPALN; + const unsigned char *SiS_CHTVVCLKSOPAL; + + unsigned short PanelXRes, PanelHT; + unsigned short PanelYRes, PanelVT; + unsigned short PanelHRS, PanelHRE; + unsigned short PanelVRS, PanelVRE; + unsigned short PanelVCLKIdx300; + unsigned short PanelVCLKIdx315; + BOOLEAN Alternate1600x1200; + + BOOLEAN UseCustomMode; + BOOLEAN CRT1UsesCustomMode; + unsigned short CHDisplay; + unsigned short CHSyncStart; + unsigned short CHSyncEnd; + unsigned short CHTotal; + unsigned short CHBlankStart; + unsigned short CHBlankEnd; + unsigned short CVDisplay; + unsigned short CVSyncStart; + unsigned short CVSyncEnd; + unsigned short CVTotal; + unsigned short CVBlankStart; + unsigned short CVBlankEnd; + unsigned int CDClock; + unsigned int CFlags; + unsigned char CCRT1CRTC[17]; + unsigned char CSR2B; + unsigned char CSR2C; + unsigned short CSRClock; + unsigned short CSRClock_CRT1; + unsigned short CModeFlag; + unsigned short CModeFlag_CRT1; + unsigned short CInfoFlag; + + int LVDSHL; + + BOOLEAN Backup; + unsigned char Backup_Mode; + unsigned char Backup_14; + unsigned char Backup_15; + unsigned char Backup_16; + unsigned char Backup_17; + unsigned char Backup_18; + unsigned char Backup_19; + unsigned char Backup_1a; + unsigned char Backup_1b; + unsigned char Backup_1c; + unsigned char Backup_1d; + + unsigned char Init_P4_0E; + + int UsePanelScaler; + int CenterScreen; + + unsigned short CP_Vendor, CP_Product; + BOOLEAN CP_HaveCustomData; + int CP_PreferredX, CP_PreferredY, CP_PreferredIndex; + int CP_MaxX, CP_MaxY, CP_MaxClock; + unsigned char CP_PrefSR2B, CP_PrefSR2C; + unsigned short CP_PrefClock; + BOOLEAN CP_Supports64048075; + int CP_HDisplay[7], CP_VDisplay[7]; /* For Custom LCD panel dimensions */ + int CP_HTotal[7], CP_VTotal[7]; + int CP_HSyncStart[7], CP_VSyncStart[7]; + int CP_HSyncEnd[7], CP_VSyncEnd[7]; + int CP_HBlankStart[7], CP_VBlankStart[7]; + int CP_HBlankEnd[7], CP_VBlankEnd[7]; + int CP_Clock[7]; + BOOLEAN CP_DataValid[7]; + BOOLEAN CP_HSync_P[7], CP_VSync_P[7], CP_SyncValid[7]; +}; #endif |