📄 init.h
字号:
{ 1, 1,1664, 798,1664, 798 }, /* 0x10: 1280x768_3 (NetVista SiS 301) - TODO */ { 1, 1,1688, 802,1688, 802 }, /* 0x11: 1280x768 (TMDS Fujitsu) */ { 1, 1,1408, 806,1408, 806 }, /* 0x12: 1280x720 (LVDS) */ { 1, 1, 896, 497, 896, 497 }, /* 0x13: 720x480 */ { 1, 1, 912, 597, 912, 597 }, /* 0x14: 720x576 */ { 1, 1, 912, 597, 912, 597 }, /* 0x15: 768x576 */ { 1, 1,1056, 497,1056, 497 }, /* 0x16: 848x480 */ { 1, 1,1064, 497,1064, 497 }, /* 0x17: 856x480 */ { 1, 1,1056, 497,1056, 497 }, /* 0x18: 800x480 */ { 1, 1,1328, 739,1328, 739 }, /* 0x19: 1024x576 */ { 1, 1,1680, 892,1680, 892 }, /* 0x1a: 1152x864 */ { 1, 1,1808, 808,1808, 808 }, /* 0x1b: 1360x768 */ { 1, 1,1104, 563,1104, 563 }, /* 0x1c: 960x540 */ { 1, 1,1120, 618,1120, 618 }, /* 0x1d: 960x600 */ { 1, 1,1408, 816,1408, 816 }, /* 0x1f: 1280x800 (TMDS special) */ { 1, 1,1760,1235,1760,1235 }, /* 0x20: 1600x1200 for LCDA */ { 1, 1,2048,1320,2048,1320 }, /* 0x21: 1600x1200 for non-SiS LVDS */ { 1, 1,1664, 861,1664, 861 } /* 0x22: 1280x854 */};/**************************************************************//* LVDS ----------------------------------------------------- *//**************************************************************//* FSTN/DSTN 320x240, 2 variants */static const struct SiS_LVDSData SiS_LVDS320x240Data_1[]={ { 848, 433, 400, 525}, { 848, 389, 400, 525}, { 848, 433, 400, 525}, { 848, 389, 400, 525}, { 848, 518, 400, 525}, {1056, 628, 400, 525}, { 400, 525, 400, 525} /* xSTN */};static const struct SiS_LVDSData SiS_LVDS320x240Data_2[]={ { 800, 445, 800, 525}, { 800, 395, 800, 525}, { 800, 445, 800, 525}, { 800, 395, 800, 525}, { 800, 525, 800, 525}, {1056, 628,1056, 628}, { 480, 525, 480, 525} /* xSTN */};static const struct SiS_LVDSData SiS_LVDS640x480Data_1[]={ { 800, 445, 800, 525}, /* 800, 449, 800, 449 */ { 800, 395, 800, 525}, { 800, 445, 800, 525}, { 800, 395, 800, 525}, { 800, 525, 800, 525}};static const struct SiS_LVDSData SiS_LVDS800x600Data_1[]={ { 848, 433,1060, 629}, { 848, 389,1060, 629}, { 848, 433,1060, 629}, { 848, 389,1060, 629}, { 848, 518,1060, 629}, {1056, 628,1056, 628}};static const struct SiS_LVDSData SiS_LVDS1024x600Data_1[] ={ { 840, 604,1344, 800}, { 840, 560,1344, 800}, { 840, 604,1344, 800}, { 840, 560,1344, 800}, { 840, 689,1344, 800}, {1050, 800,1344, 800}, {1344, 800,1344, 800}};static const struct SiS_LVDSData SiS_LVDS1024x768Data_1[]={ { 840, 438,1344, 806}, { 840, 409,1344, 806}, { 840, 438,1344, 806}, { 840, 409,1344, 806}, { 840, 518,1344, 806}, /* 640x480 */ {1050, 638,1344, 806}, /* 800x600 */ {1344, 806,1344, 806}, /* 1024x768 */};static const struct SiS_LVDSData SiS_CHTVUNTSCData[]={ { 840, 600, 840, 600}, { 840, 600, 840, 600}, { 840, 600, 840, 600}, { 840, 600, 840, 600}, { 784, 600, 784, 600}, {1064, 750,1064, 750}, {1160, 945,1160, 945}};static const struct SiS_LVDSData SiS_CHTVONTSCData[]={ { 840, 525, 840, 525}, { 840, 525, 840, 525}, { 840, 525, 840, 525}, { 840, 525, 840, 525}, { 784, 525, 784, 525}, {1040, 700,1040, 700}, {1160, 840,1160, 840}};/* CRT1 CRTC data for slave modes */static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_1[] ={ {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f, 0x90,0x85,0x8f,0xab,0x30,0x00,0x05, 0x00 }}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00 }}, {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f, 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 0x00 }}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00 }}, {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e, 0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05, 0x00 }}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01 }}, {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00 }}};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2[] ={ {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01}},#if 0 {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00}}#endif {{0x5f,0x4f,0x83,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xe8,0x0c,0x00,0x00,0x05, 0x00}},};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_2_H[] ={ {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f, 0x90,0x85,0x8f,0xab,0x30,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f, 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e, 0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05, 0x00}}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01}}, {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00}}};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3[] ={ {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x00,0x00,0x05, 0x00}}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01}}, {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00}}};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1320x240_3_H[] ={ {{0x65,0x4f,0x89,0x56,0x83,0xaa,0x1f, 0x90,0x85,0x8f,0xab,0x30,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x54,0x9f,0xc4,0x1f, 0x92,0x89,0x8f,0xb5,0x30,0x00,0x01, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x83,0x1f, 0x5e,0x83,0x5d,0x79,0x10,0x00,0x05, 0x00}}, {{0x65,0x4f,0x89,0x56,0x83,0x04,0x3e, 0xe0,0x85,0xdf,0xfb,0x10,0x00,0x05, 0x00}}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01}}, {{0x2d,0x27,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00}}};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1[] ={ {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x5f,0x4f,0x82,0x55,0x81,0x0b,0x3e, 0xe9,0x8b,0xdf,0x04,0x30,0x00,0x05, 0x00}}, {{0x7f,0x63,0x83,0x6c,0x1c,0x72,0xf0, 0x58,0x8c,0x57,0x73,0x20,0x00,0x06, 0x01}}};static const struct SiS_LVDSCRT1Data SiS_LVDSCRT1640x480_1_H[] ={ {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 0x9c,0x8e,0x96,0xb9,0x00,0x00,0x00, 0x00}}, {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 0x83,0x85,0x63,0xba,0x00,0x00,0x00, 0x00}}, {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 0x9c,0x8e,0x96,0xb9,0x00,0x00,0x00, 0x00}}, {{0x2d,0x28,0x90,0x2b,0xa0,0xbf,0x1f, 0x83,0x85,0x63,0xba,0x00,0x00,0x00, 0x00}}, {{0x2d,0x28,0x90,0x2c,0x80,0x0b,0x3e, 0xe9,0x8b,0xe7,0x04,0x00,0x00,0x00, 0x00}}};BOOLEAN SiSInitPtr(struct SiS_Private *SiS_Pr);#ifdef SIS_XORG_XF86unsigned short SiS_GetModeID(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, int Depth, BOOLEAN FSTN, int LCDwith, int LCDheight);#endifunsigned short SiS_GetModeID_LCD(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, int Depth, BOOLEAN FSTN, unsigned short CustomT, int LCDwith, int LCDheight, unsigned int VBFlags2);unsigned short SiS_GetModeID_TV(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, int Depth, unsigned int VBFlags2);unsigned short SiS_GetModeID_VGA2(int VGAEngine, unsigned int VBFlags, int HDisplay, int VDisplay, int Depth, unsigned int VBFlags2);void SiS_SetReg(SISIOADDRESS port, unsigned short index, unsigned short data);void SiS_SetRegByte(SISIOADDRESS port, unsigned short data);void SiS_SetRegShort(SISIOADDRESS port, unsigned short data);void SiS_SetRegLong(SISIOADDRESS port, unsigned int data);unsigned char SiS_GetReg(SISIOADDRESS port, unsigned short index);unsigned char SiS_GetRegByte(SISIOADDRESS port);unsigned short SiS_GetRegShort(SISIOADDRESS port);unsigned int SiS_GetRegLong(SISIOADDRESS port);void SiS_SetRegANDOR(SISIOADDRESS Port, unsigned short Index, unsigned short DataAND, unsigned short DataOR);void SiS_SetRegAND(SISIOADDRESS Port,unsigned short Index, unsigned short DataAND);void SiS_SetRegOR(SISIOADDRESS Port,unsigned short Index, unsigned short DataOR);void SiS_DisplayOn(struct SiS_Private *SiS_Pr);void SiS_DisplayOff(struct SiS_Private *SiS_Pr);void SiSRegInit(struct SiS_Private *SiS_Pr, SISIOADDRESS BaseAddr);#ifndef SIS_LINUX_KERNELvoid SiSSetLVDSetc(struct SiS_Private *SiS_Pr);#endifvoid SiS_SetEnableDstn(struct SiS_Private *SiS_Pr, int enable);void SiS_SetEnableFstn(struct SiS_Private *SiS_Pr, int enable);unsigned short SiS_GetModeFlag(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);BOOLEAN SiSDetermineROMLayout661(struct SiS_Private *SiS_Pr);#ifndef SIS_LINUX_KERNELvoid SiS_GetVBType(struct SiS_Private *SiS_Pr);#endifBOOLEAN SiS_SearchModeID(struct SiS_Private *SiS_Pr, unsigned short *ModeNo, unsigned short *ModeIdIndex);unsigned short SiS_GetModePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);unsigned short SiS_GetRefCRTVCLK(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide);unsigned short SiS_GetRefCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide);unsigned short SiS_GetColorDepth(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);unsigned short SiS_GetOffset(struct SiS_Private *SiS_Pr,unsigned short ModeNo, unsigned short ModeIdIndex, unsigned short RRTI);#ifdef SIS300void SiS_GetFIFOThresholdIndex300(struct SiS_Private *SiS_Pr, unsigned short *idx1, unsigned short *idx2);unsigned short SiS_GetFIFOThresholdB300(unsigned short idx1, unsigned short idx2);unsigned short SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index);#endifvoid SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);#ifdef SIS_XORG_XF86BOOLEAN SiSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, unsigned short ModeNo, BOOLEAN dosetpitch);BOOLEAN SiSBIOSSetMode(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, DisplayModePtr mode, BOOLEAN IsCustom);BOOLEAN SiSBIOSSetModeCRT2(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, DisplayModePtr mode, BOOLEAN IsCustom);BOOLEAN SiSBIOSSetModeCRT1(struct SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, DisplayModePtr mode, BOOLEAN IsCustom);#endif#ifdef SIS_LINUX_KERNELBOOLEAN SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo);#endifvoid SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth);void SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);#ifdef SIS_XORG_XF86void SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, int xres, int yres, DisplayModePtr current);#endif#ifdef SIS_LINUX_KERNELvoid SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, int xres, int yres, struct fb_var_screeninfo *var, BOOLEAN writeres);#endif/* From init301.c: */extern void SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, int chkcrt2mode);extern void SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);extern void SiS_SetYPbPr(struct SiS_Private *SiS_Pr);extern void SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);extern void SiS_UnLockCRT2(struct SiS_Private *SiS_Pr);extern void SiS_DisableBridge(struct SiS_Private *);extern BOOLEAN SiS_SetCRT2Group(struct SiS_Private *, unsigned short);extern unsigned short SiS_GetRatePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);extern void SiS_WaitRetrace1(struct SiS_Private *SiS_Pr);extern unsigned short SiS_GetResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex);extern unsigned short SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short tempax);extern unsigned short SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, unsigned short RRTI);extern BOOLEAN SiS_IsVAMode(struct SiS_Private *);extern BOOLEAN SiS_IsDualEdge(struct SiS_Private *);#ifdef SIS_XORG_XF86/* From other modules: */extern unsigned short SiS_CheckBuildCustomMode(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags);extern unsigned char SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, unsigned short offset, unsigned char value);extern unsigned char SiS_GetSetModeID(ScrnInfoPtr pScrn, unsigned char id);extern unsigned short SiS_GetModeNumber(ScrnInfoPtr pScrn, DisplayModePtr mode, unsigned int VBFlags);#endif#ifdef SIS_LINUX_KERNEL#ifdef SIS300extern unsigned int sisfb_read_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg);extern void sisfb_write_nbridge_pci_dword(struct SiS_Private *SiS_Pr, int reg, unsigned int val);#endif#ifdef SIS315Hextern void sisfb_write_nbridge_pci_byte(struct SiS_Private *SiS_Pr, int reg, unsigned char val);extern unsigned int sisfb_read_mio_pci_word(struct SiS_Private *SiS_Pr, int reg);#endif#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -