/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.h,v 1.4 2000/12/02 01:16:17 dawes Exp $ */ #ifndef _INIT301_ #define _INIT301_ #include "osdef.h" #include "initdef.h" #include "vgatypes.h" #include "vstruct.h" #ifdef TC #include #include #include #include #include #endif #ifdef LINUX_XF86 #include "xf86.h" #include "xf86PciInfo.h" #include "sis.h" #include "sis_regs.h" #endif #ifdef LINUX_KERNEL #include #include #include #endif #ifdef WIN2000 #include #include #include #include "dderror.h" #include "devioctl.h" #include "miniport.h" #include "ntddvdeo.h" #include "video.h" #include "sisv.h" #endif USHORT SiS_SetFlag; USHORT SiS_RVBHCFACT,SiS_RVBHCMAX,SiS_RVBHRS; USHORT SiS_VGAVT,SiS_VGAHT; USHORT SiS_VT,SiS_HT; USHORT SiS_VGAVDE,SiS_VGAHDE; USHORT SiS_VDE,SiS_HDE; USHORT SiS_NewFlickerMode,SiS_RY1COE,SiS_RY2COE,SiS_RY3COE,SiS_RY4COE; USHORT SiS_LCDHDES,SiS_LCDVDES; USHORT SiS_DDC_Port; USHORT SiS_DDC_Index; USHORT SiS_DDC_DataShift; USHORT SiS_DDC_DeviceAddr; USHORT SiS_DDC_Flag; USHORT SiS_DDC_ReadAddr; USHORT SiS_DDC_Buffer; extern USHORT SiS_CRT1Mode; extern USHORT SiS_P3c4,SiS_P3d4; /*extern USHORT SiS_P3c0,SiS_P3ce,SiS_P3c2;*/ extern USHORT SiS_P3ca; /*extern USHORT SiS_P3c6,SiS_P3c7,SiS_P3c8;*/ extern USHORT SiS_P3c9; extern USHORT SiS_P3da; extern USHORT SiS_Part1Port,SiS_Part2Port; extern USHORT SiS_Part3Port,SiS_Part4Port,SiS_Part5Port; extern USHORT SiS_MDA_DAC[]; extern USHORT SiS_CGA_DAC[]; extern USHORT SiS_EGA_DAC[]; extern USHORT SiS_VGA_DAC[]; extern USHORT SiS_ModeType; extern USHORT SiS_SelectCRT2Rate; extern USHORT SiS_IF_DEF_LVDS; extern USHORT SiS_IF_DEF_TRUMPION; extern USHORT SiS_IF_DEF_CH7005; extern USHORT SiS_IF_DEF_HiVision; extern USHORT SiS_IF_DEF_DSTN; /*add for dstn*/ extern USHORT SiS_IF_DEF_FSTN; /*add for fstn*/ extern USHORT SiS_VBInfo; extern USHORT SiS_VBType; /*301b*/ extern USHORT SiS_VBExtInfo; /*301lv*/ extern USHORT SiS_LCDResInfo; extern USHORT SiS_LCDTypeInfo; extern USHORT SiS_LCDInfo; extern BOOLEAN SiS_SearchVBModeID(ULONG, USHORT); extern BOOLEAN SiS_Is301B(USHORT BaseAddr);/*301b*/ extern BOOLEAN SiS_IsDisableCRT2(USHORT BaseAddr); extern BOOLEAN SiS_IsVAMode(USHORT BaseAddr); extern BOOLEAN SiS_IsDualEdge(USHORT BaseAddr); /*end 301b*/ void SiS_SetDefCRT2ExtRegs(USHORT BaseAddr); USHORT SiS_GetRatePtrCRT2(ULONG ROMAddr, USHORT ModeNo,USHORT ModeIdIndex); BOOLEAN SiS_AdjustCRT2Rate(ULONG ROMAddr,USHORT ModeNo,USHORT MODEIdIndex,USHORT RefreshRateTableIndex,USHORT *i); void SiS_SaveCRT2Info(USHORT ModeNo); void SiS_GetCRT2Data(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_GetCRT2DataLVDS(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_GetCRT2PtrA(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex, USHORT *CRT2Index,USHORT *ResIndex);/*301b*/ void SiS_GetCRT2Data301(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); USHORT SiS_GetResInfo(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SiS_GetCRT2ResInfo(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SiS_GetRAMDAC2DATA(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_GetCRT2Ptr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex, USHORT *CRT2Index,USHORT *ResIndex); void SiS_SetCRT2ModeRegs(USHORT BaseAddr,USHORT ModeNo,PSIS_HW_DEVICE_INFO ); void SiS_GetLVDSDesData(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_SetCRT2Offset(USHORT Part1Port,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); USHORT SiS_GetOffset(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); USHORT SiS_GetColorDepth(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); USHORT SiS_GetVCLK(ULONG ROMAddr,USHORT ModeNo); USHORT SiS_GetVCLKPtr(ULONG ROMAddr,USHORT ModeNo); USHORT SiS_GetColorTh(ULONG ROMAddr); USHORT SiS_GetMCLK(ULONG ROMAddr); USHORT SiS_GetMCLKPtr(ULONG ROMAddr); USHORT SiS_GetDRAMType(ULONG ROMAddr); USHORT SiS_CalcDelayVB(void); extern USHORT SiS_GetVCLK2Ptr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetCRT2Sync(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT RefreshRateTableIndex); void SiS_SetRegANDOR(USHORT Port,USHORT Index,USHORT DataAND,USHORT DataOR); void SiS_SetRegOR(USHORT Port,USHORT Index,USHORT DataOR); void SiS_SetRegAND(USHORT Port,USHORT Index,USHORT DataAND); USHORT SiS_GetVGAHT2(void); void SiS_SetGroup2(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetGroup3(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetGroup4(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetGroup5(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SiS_SetCRT2VCLK(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_EnableCRT2(void); void SiS_LoadDAC2(ULONG ROMAddr,USHORT Part5Port,USHORT ModeNo,USHORT ModeIdIndex); void SiS_WriteDAC2(USHORT Pdata,USHORT dl, USHORT ah, USHORT al, USHORT dh); void SiS_GetVBInfo301(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); BOOLEAN SiS_GetLCDResInfo(ULONG ROMAddr,USHORT P3d4,USHORT ModeNo,USHORT ModeIdIndex); BOOLEAN SiS_BridgeIsOn(USHORT BaseAddr); BOOLEAN SiS_BridgeIsEnable(USHORT BaseAddr,PSIS_HW_DEVICE_INFO ); BOOLEAN SiS_BridgeInSlave(void); /*void SiS_PresetScratchregister(USHORT P3d4);*/ void SiS_PresetScratchregister(USHORT SiS_P3d4,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetTVSystem(VOID); void SiS_LongWait(VOID); USHORT SiS_GetQueueConfig(VOID); void SiS_VBLongWait(VOID); USHORT SiS_GetVCLKLen(ULONG ROMAddr); BOOLEAN SiS_WaitVBRetrace(USHORT BaseAddr); void SiS_SetCRT2ECLK(ULONG ROMAddr, USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_GetLVDSDesPtr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,USHORT *PanelIndex,USHORT *ResIndex); void SiS_GetLVDSDesPtrA(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex,USHORT *PanelIndex,USHORT *ResIndex);/*301b*/ void SiS_SetTPData(VOID); void SiS_ModCRT1CRTC(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); extern BOOLEAN SiS_GetLVDSCRT1Ptr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex, USHORT *ResInfo,USHORT *DisplayType); void SiS_SetCHTVReg(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_SetCHTVRegANDOR(USHORT tempax,USHORT tempbh); void SiS_GetCHTVRegPtr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,USHORT RefreshRateTableIndex); void SiS_SetCH7005(USHORT tempax); USHORT SiS_GetCH7005(USHORT tempax); void SiS_SetSwitchDDC2(void); void SiS_SetStart(void); void SiS_SetStop(void); void SiS_DDC2Delay(void); void SiS_SetSCLKLow(void); void SiS_SetSCLKHigh(void); USHORT SiS_ReadDDC2Data(USHORT tempax); USHORT SiS_WriteDDC2Data(USHORT tempax); USHORT SiS_CheckACK(void); void SiS_OEM310Setting(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SiS_OEM300Setting(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo); USHORT GetRevisionID(PSIS_HW_DEVICE_INFO HwDeviceExtension); BOOLEAN SiS_GetLCDResInfo301(ULONG ROMAddr,USHORT SiS_P3d4, USHORT ModeNo,USHORT ModeIdIndex); void SiS_CHACRT1CRTC(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex, USHORT RefreshRateTableIndex); BOOLEAN SiS_GetLCDACRT1Ptr(ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex, USHORT RefreshRateTableIndex,USHORT *ResInfo, USHORT *DisplayType); USHORT GetTVPtrIndex(void); USHORT GetLCDPtrIndex (void); void SetDelayComp(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); void SetAntiFlicker(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SetEdgeEnhance (PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SetYFilter(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex); void SetPhaseIncr(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); USHORT GetOEMLCDPtr(PSIS_HW_DEVICE_INFO HwDeviceExtension); USHORT GetOEMTVPtr(void); void SetOEMTVDelay(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); void SetOEMLCDDelay(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); void SetOEMAntiFlicker(PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo); void SetOEMPhaseIncr(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); void SetOEMYFilter(PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT BaseAddr, ULONG ROMAddr,USHORT ModeNo); extern void SiS_SetReg1(USHORT, USHORT, USHORT); extern void SiS_SetReg3(USHORT, USHORT); extern UCHAR SiS_GetReg1(USHORT, USHORT); extern UCHAR SiS_GetReg2(USHORT); extern BOOLEAN SiS_SearchModeID(ULONG ROMAddr, USHORT ModeNo,USHORT *ModeIdIndex); extern BOOLEAN SiS_GetRatePtr(ULONG, USHORT); extern void SiS_SetReg4(USHORT, ULONG); extern ULONG SiS_GetReg3(USHORT); extern void SiS_DisplayOff(void); extern void SiS_CRT2AutoThreshold(USHORT BaseAddr); extern void SiS_DisplayOn(void); extern UCHAR SiS_GetModePtr(ULONG ROMAddr, USHORT ModeNo,USHORT ModeIdIndex); extern UCHAR SiS_Get310DRAMType(ULONG ROMAddr); BOOLEAN SiS_SetCRT2Group301(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo, PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetGroup1(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex, PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex); void SiS_SetGroup1_LVDS(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex, PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex); void SiS_SetGroup1_LCDA(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex);/*301b*/ void SiS_SetGroup1_301(USHORT BaseAddr,ULONG ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex); void SiS_SetCRT2FIFO(USHORT Part1Port,ULONG ROMAddr,USHORT ModeNo, PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_SetCRT2FIFO2(USHORT Part1Port,ULONG ROMAddr,USHORT ModeNo, PSIS_HW_DEVICE_INFO HwDeviceExtension); BOOLEAN SiS_GetLCDDDCInfo(PSIS_HW_DEVICE_INFO HwDeviceExtension); void SiS_UnLockCRT2(PSIS_HW_DEVICE_INFO,USHORT BaseAddr); void SiS_LockCRT2(PSIS_HW_DEVICE_INFO,USHORT BaseAddr); void SiS_DisableBridge(PSIS_HW_DEVICE_INFO,USHORT BaseAddr); void SiS_EnableBridge(PSIS_HW_DEVICE_INFO,USHORT BaseAddr); void SiS_SetPanelDelay(USHORT DelayTime); void SiS_LCD_Wait_Time(UCHAR DelayTime); #endif