H A D | init301.c | 85 static unsigned short SiS_GetBIOSLCDResInfo(struct SiS_Private *SiS_Pr); 86 static void SiS_SetCH70xx(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val); 93 SiS_UnLockCRT2(struct SiS_Private *SiS_Pr) SiS_UnLockCRT2() argument 95 if(SiS_Pr->ChipType == XGI_20) SiS_UnLockCRT2() 97 else if(SiS_Pr->ChipType >= SIS_315H) SiS_UnLockCRT2() 98 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2f,0x01); SiS_UnLockCRT2() 100 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x24,0x01); SiS_UnLockCRT2() 105 SiS_LockCRT2(struct SiS_Private *SiS_Pr) SiS_LockCRT2() argument 107 if(SiS_Pr->ChipType == XGI_20) SiS_LockCRT2() 109 else if(SiS_Pr->ChipType >= SIS_315H) SiS_LockCRT2() 110 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2F,0xFE); SiS_LockCRT2() 112 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x24,0xFE); SiS_LockCRT2() 120 SiS_SetRegSR11ANDOR(struct SiS_Private *SiS_Pr, unsigned short DataAND, unsigned short DataOR) SiS_SetRegSR11ANDOR() argument 122 if(SiS_Pr->ChipType >= SIS_661) { SiS_SetRegSR11ANDOR() 126 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x11,DataAND,DataOR); SiS_SetRegSR11ANDOR() 135 GetLCDStructPtr661(struct SiS_Private *SiS_Pr) GetLCDStructPtr661() argument 137 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetLCDStructPtr661() 148 if((SiS_Pr->SiS_ROMNew) && GetLCDStructPtr661() 149 ((SiS_Pr->SiS_VBType & VB_SISLVDS) || (!SiS_Pr->PanelSelfDetected))) { GetLCDStructPtr661() 151 if(SiS_Pr->ChipType < SIS_661) reg = 0x3c; GetLCDStructPtr661() 154 idx = (SiS_GetReg(SiS_Pr->SiS_P3d4,reg) & 0x1f) * 26; GetLCDStructPtr661() 169 GetLCDStructPtr661_2(struct SiS_Private *SiS_Pr) GetLCDStructPtr661_2() argument 171 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetLCDStructPtr661_2() 181 if((SiS_Pr->SiS_ROMNew) && GetLCDStructPtr661_2() 182 ((SiS_Pr->SiS_VBType & VB_SISLVDS) || (!SiS_Pr->PanelSelfDetected))) { GetLCDStructPtr661_2() 184 romptr += ((SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4) * SiS_Pr->SiS661LCD2TableSize); GetLCDStructPtr661_2() 196 SiS_AdjustCRT2Rate(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_AdjustCRT2Rate() argument 201 modeid = SiS_Pr->SiS_RefIndex[RRTI + (*i)].ModeID; SiS_AdjustCRT2Rate() 203 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_AdjustCRT2Rate() 205 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) { SiS_AdjustCRT2Rate() 208 if(SiS_Pr->ChipType >= SIS_315H) { SiS_AdjustCRT2Rate() 210 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_AdjustCRT2Rate() 212 if(SiS_Pr->SiS_VBType & VB_SISRAMDAC202) { SiS_AdjustCRT2Rate() 218 } else if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_AdjustCRT2Rate() 221 if(SiS_Pr->ChipType >= SIS_315H) { SiS_AdjustCRT2Rate() 222 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_AdjustCRT2Rate() 223 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_AdjustCRT2Rate() 229 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_AdjustCRT2Rate() 233 } else if(SiS_Pr->SiS_VBInfo & (SetCRT2ToYPbPr525750|SetCRT2ToAVIDEO|SetCRT2ToSVIDEO|SetCRT2ToSCART)) { SiS_AdjustCRT2Rate() 236 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_AdjustCRT2Rate() 238 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_AdjustCRT2Rate() 239 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) { SiS_AdjustCRT2Rate() 249 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_AdjustCRT2Rate() 250 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_AdjustCRT2Rate() 255 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_AdjustCRT2Rate() 262 for(; SiS_Pr->SiS_RefIndex[RRTI + (*i)].ModeID == modeid; (*i)--) { SiS_AdjustCRT2Rate() 263 infoflag = SiS_Pr->SiS_RefIndex[RRTI + (*i)].Ext_InfoFlag; SiS_AdjustCRT2Rate() 272 if(SiS_Pr->SiS_RefIndex[RRTI + (*i)].ModeID != modeid) break; SiS_AdjustCRT2Rate() 273 infoflag = SiS_Pr->SiS_RefIndex[RRTI + (*i)].Ext_InfoFlag; SiS_AdjustCRT2Rate() 284 SiS_GetRatePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_GetRatePtr() argument 300 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetRatePtr() 302 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetRatePtr() 305 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetRatePtr() 306 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_GetRatePtr() 313 index = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x33) >> SiS_Pr->SiS_SelectCRT2Rate) & 0x0F; SiS_GetRatePtr() 318 if(SiS_Pr->SiS_SetFlag & ProgrammingCRT2) { SiS_GetRatePtr() 319 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetRatePtr() 320 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetRatePtr() 321 if(SiS_Pr->SiS_VBType & VB_NoLCD) index = 0; SiS_GetRatePtr() 322 else if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) index = backupindex = 0; SiS_GetRatePtr() 324 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_GetRatePtr() 325 if(!(SiS_Pr->SiS_VBType & VB_NoLCD)) { SiS_GetRatePtr() 326 temp = LCDRefreshIndex[SiS_GetBIOSLCDResInfo(SiS_Pr)]; SiS_GetRatePtr() 331 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) index = 0; SiS_GetRatePtr() 332 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetRatePtr() 333 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) index = 0; SiS_GetRatePtr() 338 RRTI = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].REFindex; SiS_GetRatePtr() 339 ModeNo = SiS_Pr->SiS_RefIndex[RRTI].ModeID; SiS_GetRatePtr() 341 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetRatePtr() 342 if(!(SiS_Pr->SiS_VBInfo & DriverMode)) { SiS_GetRatePtr() 343 if( (SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_VESAID == 0x105) || SiS_GetRatePtr() 344 (SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_VESAID == 0x107) ) { SiS_GetRatePtr() 352 if(SiS_Pr->SiS_RefIndex[RRTI + i].ModeID != ModeNo) break; SiS_GetRatePtr() 353 temp = SiS_Pr->SiS_RefIndex[RRTI + i].Ext_InfoFlag; SiS_GetRatePtr() 355 if(temp < SiS_Pr->SiS_ModeType) break; SiS_GetRatePtr() 360 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC)) { SiS_GetRatePtr() 361 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_GetRatePtr() 362 temp = SiS_Pr->SiS_RefIndex[RRTI + i - 1].Ext_InfoFlag; SiS_GetRatePtr() 369 if((SiS_Pr->SiS_SetFlag & ProgrammingCRT2) && (!(SiS_Pr->SiS_VBInfo & DisableCRT2Display))) { SiS_GetRatePtr() 371 if(!(SiS_AdjustCRT2Rate(SiS_Pr, ModeNo, ModeIdIndex, RRTI, &i))) { SiS_GetRatePtr() 384 SiS_SaveCRT2Info(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_SaveCRT2Info() argument 389 SiS_SetReg(SiS_Pr->SiS_P3d4,0x34,ModeNo); SiS_SaveCRT2Info() 390 temp1 = (SiS_Pr->SiS_VBInfo & SetInSlaveMode) >> 8; SiS_SaveCRT2Info() 392 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x31,temp2,temp1); SiS_SaveCRT2Info() 401 SiS_CR36BIOSWord23b(struct SiS_Private *SiS_Pr) SiS_CR36BIOSWord23b() argument 403 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_CR36BIOSWord23b() 406 if(SiS_Pr->SiS_UseROM) { SiS_CR36BIOSWord23b() 408 temp = 1 << ((SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4) & 0x0f); SiS_CR36BIOSWord23b() 417 SiS_CR36BIOSWord23d(struct SiS_Private *SiS_Pr) SiS_CR36BIOSWord23d() argument 419 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_CR36BIOSWord23d() 422 if(SiS_Pr->SiS_UseROM) { SiS_CR36BIOSWord23d() 424 temp = 1 << ((SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4) & 0x0f); SiS_CR36BIOSWord23d() 438 SiS_DDC2Delay(struct SiS_Private *SiS_Pr, unsigned int delaytime) SiS_DDC2Delay() argument 441 SiS_GetReg(SiS_Pr->SiS_P3c4, 0x05); SiS_DDC2Delay() 446 SiS_GenericDelay(struct SiS_Private *SiS_Pr, unsigned short delay) SiS_GenericDelay() argument 448 SiS_DDC2Delay(SiS_Pr, delay * 36); SiS_GenericDelay() 454 SiS_LongDelay(struct SiS_Private *SiS_Pr, unsigned short delay) SiS_LongDelay() argument 457 SiS_GenericDelay(SiS_Pr, 6623); SiS_LongDelay() 464 SiS_ShortDelay(struct SiS_Private *SiS_Pr, unsigned short delay) SiS_ShortDelay() argument 467 SiS_GenericDelay(SiS_Pr, 66); SiS_ShortDelay() 473 SiS_PanelDelay(struct SiS_Private *SiS_Pr, unsigned short DelayTime) SiS_PanelDelay() argument 476 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_PanelDelay() 480 if(SiS_Pr->ChipType < SIS_315H) { SiS_PanelDelay() 484 PanelID = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36); SiS_PanelDelay() 485 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_PanelDelay() 486 if(SiS_Pr->SiS_VBType & VB_SIS301) PanelID &= 0xf7; SiS_PanelDelay() 487 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x18) & 0x10)) PanelID = 0x12; SiS_PanelDelay() 495 Delay = SiS_Pr->SiS_PanelDelayTbl[DelayIndex].timer[0]; SiS_PanelDelay() 497 Delay = SiS_Pr->SiS_PanelDelayTbl[DelayIndex].timer[1]; SiS_PanelDelay() 499 if(SiS_Pr->SiS_UseROM) { SiS_PanelDelay() 506 SiS_ShortDelay(SiS_Pr, Delay); SiS_PanelDelay() 514 if((SiS_Pr->ChipType >= SIS_661) || SiS_PanelDelay() 515 (SiS_Pr->ChipType <= SIS_315PRO) || SiS_PanelDelay() 516 (SiS_Pr->ChipType == SIS_330) || SiS_PanelDelay() 517 (SiS_Pr->SiS_ROMNew)) { SiS_PanelDelay() 520 SiS_DDC2Delay(SiS_Pr, 0x1000); SiS_PanelDelay() 522 SiS_DDC2Delay(SiS_Pr, 0x4000); SiS_PanelDelay() 525 } else if((SiS_Pr->SiS_IF_DEF_LVDS == 1) /* || SiS_PanelDelay() 526 (SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) || SiS_PanelDelay() 527 (SiS_Pr->SiS_CustomT == CUT_CLEVO1400) */ ) { /* 315 series, LVDS; Special */ SiS_PanelDelay() 529 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_PanelDelay() 530 PanelID = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36); SiS_PanelDelay() 531 if(SiS_Pr->SiS_CustomT == CUT_CLEVO1400) { SiS_PanelDelay() 532 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x1b) & 0x10)) PanelID = 0x12; SiS_PanelDelay() 534 if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) { SiS_PanelDelay() 544 Delay = SiS_Pr->SiS_PanelDelayTblLVDS[DelayIndex].timer[0]; SiS_PanelDelay() 546 Delay = SiS_Pr->SiS_PanelDelayTblLVDS[DelayIndex].timer[1]; SiS_PanelDelay() 548 if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SiS_PanelDelay() 558 SiS_ShortDelay(SiS_Pr, Delay); SiS_PanelDelay() 561 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { /* 315 series, all bridges */ SiS_PanelDelay() 563 DelayIndex = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4; SiS_PanelDelay() 565 Delay = SiS_Pr->SiS_PanelDelayTbl[DelayIndex].timer[0]; SiS_PanelDelay() 567 Delay = SiS_Pr->SiS_PanelDelayTbl[DelayIndex].timer[1]; SiS_PanelDelay() 570 SiS_DDC2Delay(SiS_Pr, Delay); SiS_PanelDelay() 581 SiS_PanelDelayLoop(struct SiS_Private *SiS_Pr, unsigned short DelayTime, unsigned short DelayLoop) SiS_PanelDelayLoop() argument 585 SiS_PanelDelay(SiS_Pr, DelayTime); SiS_PanelDelayLoop() 595 SiS_WaitRetrace1(struct SiS_Private *SiS_Pr) SiS_WaitRetrace1() argument 599 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x1f) & 0xc0) return; SiS_WaitRetrace1() 600 if(!(SiS_GetReg(SiS_Pr->SiS_P3d4,0x17) & 0x80)) return; SiS_WaitRetrace1() 603 while((SiS_GetRegByte(SiS_Pr->SiS_P3da) & 0x08) && --watchdog); SiS_WaitRetrace1() 605 while((!(SiS_GetRegByte(SiS_Pr->SiS_P3da) & 0x08)) && --watchdog); SiS_WaitRetrace1() 610 SiS_WaitRetrace2(struct SiS_Private *SiS_Pr, unsigned short reg) SiS_WaitRetrace2() argument 615 while((SiS_GetReg(SiS_Pr->SiS_Part1Port,reg) & 0x02) && --watchdog); SiS_WaitRetrace2() 617 while((!(SiS_GetReg(SiS_Pr->SiS_Part1Port,reg) & 0x02)) && --watchdog); SiS_WaitRetrace2() 622 SiS_WaitVBRetrace(struct SiS_Private *SiS_Pr) SiS_WaitVBRetrace() argument 624 if(SiS_Pr->ChipType < SIS_315H) { SiS_WaitVBRetrace() 626 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_WaitVBRetrace() 627 if(!(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x20)) return; SiS_WaitVBRetrace() 629 if(!(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x80)) { SiS_WaitVBRetrace() 630 SiS_WaitRetrace1(SiS_Pr); SiS_WaitVBRetrace() 632 SiS_WaitRetrace2(SiS_Pr, 0x25); SiS_WaitVBRetrace() 637 if(!(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x40)) { SiS_WaitVBRetrace() 638 SiS_WaitRetrace1(SiS_Pr); SiS_WaitVBRetrace() 640 SiS_WaitRetrace2(SiS_Pr, 0x30); SiS_WaitVBRetrace() 647 SiS_VBWait(struct SiS_Private *SiS_Pr) SiS_VBWait() argument 654 tempal = SiS_GetRegByte(SiS_Pr->SiS_P3da); SiS_VBWait() 668 SiS_VBLongWait(struct SiS_Private *SiS_Pr) SiS_VBLongWait() argument 670 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_VBLongWait() 671 SiS_VBWait(SiS_Pr); SiS_VBLongWait() 673 SiS_WaitRetrace1(SiS_Pr); SiS_VBLongWait() 683 SiS_Is301B(struct SiS_Private *SiS_Pr) SiS_Is301B() argument 685 if(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x01) >= 0xb0) return true; SiS_Is301B() 691 SiS_CRT2IsLCD(struct SiS_Private *SiS_Pr) SiS_CRT2IsLCD() argument 693 if(SiS_Pr->ChipType == SIS_730) { SiS_CRT2IsLCD() 694 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x20) return true; SiS_CRT2IsLCD() 696 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x30) & 0x20) return true; SiS_CRT2IsLCD() 701 SiS_IsDualEdge(struct SiS_Private *SiS_Pr) SiS_IsDualEdge() argument 704 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsDualEdge() 705 if((SiS_Pr->ChipType != SIS_650) || (SiS_GetReg(SiS_Pr->SiS_P3d4,0x5f) & 0xf0)) { SiS_IsDualEdge() 706 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x38) & EnableDualEdge) return true; SiS_IsDualEdge() 714 SiS_IsVAMode(struct SiS_Private *SiS_Pr) SiS_IsVAMode() argument 719 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsVAMode() 720 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_IsVAMode() 729 SiS_IsVAorLCD(struct SiS_Private *SiS_Pr) SiS_IsVAorLCD() argument 731 if(SiS_IsVAMode(SiS_Pr)) return true; SiS_IsVAorLCD() 732 if(SiS_CRT2IsLCD(SiS_Pr)) return true; SiS_IsVAorLCD() 738 SiS_IsDualLink(struct SiS_Private *SiS_Pr) SiS_IsDualLink() argument 741 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsDualLink() 742 if((SiS_CRT2IsLCD(SiS_Pr)) || SiS_IsDualLink() 743 (SiS_IsVAMode(SiS_Pr))) { SiS_IsDualLink() 744 if(SiS_Pr->SiS_LCDInfo & LCDDualLink) return true; SiS_IsDualLink() 753 SiS_TVEnabled(struct SiS_Private *SiS_Pr) SiS_TVEnabled() argument 755 if((SiS_GetReg(SiS_Pr->SiS_Part2Port,0x00) & 0x0f) != 0x0c) return true; SiS_TVEnabled() 756 if(SiS_Pr->SiS_VBType & VB_SISYPBPR) { SiS_TVEnabled() 757 if(SiS_GetReg(SiS_Pr->SiS_Part2Port,0x4d) & 0x10) return true; SiS_TVEnabled() 765 SiS_LCDAEnabled(struct SiS_Private *SiS_Pr) SiS_LCDAEnabled() argument 767 if(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x13) & 0x04) return true; SiS_LCDAEnabled() 774 SiS_WeHaveBacklightCtrl(struct SiS_Private *SiS_Pr) SiS_WeHaveBacklightCtrl() argument 776 if((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->ChipType < SIS_661)) { SiS_WeHaveBacklightCtrl() 777 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x79) & 0x10) return true; SiS_WeHaveBacklightCtrl() 785 SiS_IsNotM650orLater(struct SiS_Private *SiS_Pr) SiS_IsNotM650orLater() argument 789 if(SiS_Pr->ChipType == SIS_650) { SiS_IsNotM650orLater() 790 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x5f) & 0xf0; SiS_IsNotM650orLater() 794 } else if(SiS_Pr->ChipType >= SIS_661) return false; SiS_IsNotM650orLater() 801 SiS_IsYPbPr(struct SiS_Private *SiS_Pr) SiS_IsYPbPr() argument 803 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsYPbPr() 805 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x38) & EnableCHYPbPr) return true; SiS_IsYPbPr() 813 SiS_IsChScart(struct SiS_Private *SiS_Pr) SiS_IsChScart() argument 815 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsChScart() 817 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x38) & EnableCHScart) return true; SiS_IsChScart() 825 SiS_IsTVOrYPbPrOrScart(struct SiS_Private *SiS_Pr) SiS_IsTVOrYPbPrOrScart() argument 829 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsTVOrYPbPrOrScart() 830 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_IsTVOrYPbPrOrScart() 832 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_IsTVOrYPbPrOrScart() 836 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_IsTVOrYPbPrOrScart() 845 SiS_IsLCDOrLCDA(struct SiS_Private *SiS_Pr) SiS_IsLCDOrLCDA() argument 849 if(SiS_Pr->ChipType >= SIS_315H) { SiS_IsLCDOrLCDA() 850 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_IsLCDOrLCDA() 852 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_IsLCDOrLCDA() 855 flag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_IsLCDOrLCDA() 863 SiS_HaveBridge(struct SiS_Private *SiS_Pr) SiS_HaveBridge() argument 867 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_HaveBridge() 869 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_HaveBridge() 870 flag = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x00); SiS_HaveBridge() 877 SiS_BridgeIsEnabled(struct SiS_Private *SiS_Pr) SiS_BridgeIsEnabled() argument 881 if(SiS_HaveBridge(SiS_Pr)) { SiS_BridgeIsEnabled() 882 flag = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00); SiS_BridgeIsEnabled() 883 if(SiS_Pr->ChipType < SIS_315H) { SiS_BridgeIsEnabled() 895 SiS_BridgeInSlavemode(struct SiS_Private *SiS_Pr) SiS_BridgeInSlavemode() argument 899 flag1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x31); SiS_BridgeInSlavemode() 911 SiS_SetChrontelGPIO(struct SiS_Private *SiS_Pr, unsigned short myvbinfo) SiS_SetChrontelGPIO() argument 916 if(!(SiS_Pr->SiS_ChSW)) return; SiS_SetChrontelGPIO() 918 acpibase = sisfb_read_lpc_pci_dword(SiS_Pr, 0x74); SiS_SetChrontelGPIO() 934 SiS_GetVBInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_GetVBInfo() argument 940 SiS_Pr->SiS_SetFlag = 0; SiS_GetVBInfo() 942 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_GetVBInfo() 944 SiS_Pr->SiS_ModeType = modeflag & ModeTypeMask; SiS_GetVBInfo() 946 if((ModeNo > 0x13) && (!SiS_Pr->UseCustomMode)) { SiS_GetVBInfo() 947 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_GetVBInfo() 952 if(SiS_HaveBridge(SiS_Pr)) { SiS_GetVBInfo() 954 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_GetVBInfo() 956 tempax = SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) << 8; SiS_GetVBInfo() 961 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetVBInfo() 962 if(SiS_Pr->SiS_VBType & VB_SISLCDA) { SiS_GetVBInfo() 965 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x31,0xbf); SiS_GetVBInfo() 967 if(!(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & (DriverMode >> 8))) { SiS_GetVBInfo() 969 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x38,0xfc); SiS_GetVBInfo() 972 if(SiS_Pr->SiS_UseLCDA) { SiS_GetVBInfo() 973 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x5f) & 0xF0) { SiS_GetVBInfo() 974 if((ModeNo <= 0x13) || (!(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & (DriverMode >> 8)))) { SiS_GetVBInfo() 975 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x38,(EnableDualEdge | SetToLCDA)); SiS_GetVBInfo() 980 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_GetVBInfo() 986 if(SiS_Pr->ChipType >= SIS_661) { /* New CR layout */ SiS_GetVBInfo() 988 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x38) & 0x04) { SiS_GetVBInfo() 989 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35) & 0xe0; SiS_GetVBInfo() 991 else if(SiS_Pr->SiS_VBType & VB_SISYPBPR) { SiS_GetVBInfo() 997 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_GetVBInfo() 998 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_GetVBInfo() 1002 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetVBInfo() 1012 if(!(SiS_Pr->SiS_VBType & VB_SISVGA2)) { SiS_GetVBInfo() 1016 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetVBInfo() 1026 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetVBInfo() 1027 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetVBInfo() 1039 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetVBInfo() 1052 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetVBInfo() 1072 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetVBInfo() 1077 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_GetVBInfo() 1085 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetVBInfo() 1102 if(SiS_Pr->SiS_ModeType <= ModeVGA) { SiS_GetVBInfo() 1103 if( (SiS_Pr->SiS_IF_DEF_LVDS == 1) || SiS_GetVBInfo() 1104 ((SiS_Pr->SiS_VBType & VB_NoLCD) && (tempbx & SetCRT2ToLCD)) ) { SiS_GetVBInfo() 1117 if(SiS_BridgeIsEnabled(SiS_Pr)) { SiS_GetVBInfo() 1119 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_GetVBInfo() 1143 SiS_Pr->SiS_VBInfo = tempbx; SiS_GetVBInfo() 1146 if(SiS_Pr->ChipType == SIS_630) { SiS_GetVBInfo() 1147 SiS_SetChrontelGPIO(SiS_Pr, SiS_Pr->SiS_VBInfo); SiS_GetVBInfo() 1153 SiS_Pr->SiS_VBInfo, SiS_Pr->SiS_SetFlag); SiS_GetVBInfo() 1162 SiS_SetYPbPr(struct SiS_Private *SiS_Pr) SiS_SetYPbPr() argument 1175 SiS_Pr->SiS_YPbPr = 0; SiS_SetYPbPr() 1176 if(SiS_Pr->ChipType >= SIS_661) return; SiS_SetYPbPr() 1178 if(SiS_Pr->SiS_VBType) { SiS_SetYPbPr() 1179 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetYPbPr() 1180 SiS_Pr->SiS_YPbPr = YPbPrHiVision; SiS_SetYPbPr() 1184 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetYPbPr() 1185 if(SiS_Pr->SiS_VBType & VB_SISYPBPR) { SiS_SetYPbPr() 1186 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_SetYPbPr() 1189 case 0x00: SiS_Pr->SiS_YPbPr = YPbPr525i; break; SiS_SetYPbPr() 1190 case 0x01: SiS_Pr->SiS_YPbPr = YPbPr525p; break; SiS_SetYPbPr() 1191 case 0x02: SiS_Pr->SiS_YPbPr = YPbPr750p; break; SiS_SetYPbPr() 1192 case 0x03: SiS_Pr->SiS_YPbPr = YPbPrHiVision; break; SiS_SetYPbPr() 1205 SiS_SetTVMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetTVMode() argument 1207 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetTVMode() 1209 unsigned char OutputSelect = *SiS_Pr->pSiS_OutputSelect; SiS_SetTVMode() 1211 SiS_Pr->SiS_TVMode = 0; SiS_SetTVMode() 1213 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) return; SiS_SetTVMode() 1214 if(SiS_Pr->UseCustomMode) return; SiS_SetTVMode() 1217 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_SetTVMode() 1220 if(SiS_Pr->ChipType < SIS_661) { SiS_SetTVMode() 1222 if(SiS_Pr->SiS_VBInfo & SetPALTV) SiS_Pr->SiS_TVMode |= TVSetPAL; SiS_SetTVMode() 1224 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetTVMode() 1226 if((SiS_Pr->ChipType == SIS_630) || SiS_SetTVMode() 1227 (SiS_Pr->ChipType == SIS_730)) { SiS_SetTVMode() 1230 } else if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetTVMode() 1232 if(SiS_Pr->ChipType < XGI_20) { SiS_SetTVMode() 1234 if(SiS_Pr->ChipType >= SIS_330) romindex = 0x11b; SiS_SetTVMode() 1238 if(romindex && SiS_Pr->SiS_UseROM && (!(SiS_Pr->SiS_ROMNew))) { SiS_SetTVMode() 1241 SiS_SetRegAND(SiS_Pr->SiS_P3d4,temp,0x3F); SiS_SetTVMode() 1244 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,temp); SiS_SetTVMode() 1245 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetTVMode() 1247 SiS_Pr->SiS_TVMode |= TVSetPALM; SiS_SetTVMode() 1248 SiS_Pr->SiS_TVMode &= ~TVSetPAL; SiS_SetTVMode() 1250 SiS_Pr->SiS_TVMode |= TVSetPALN; SiS_SetTVMode() 1254 SiS_Pr->SiS_TVMode |= TVSetNTSCJ; SiS_SetTVMode() 1259 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetTVMode() 1260 if(SiS_Pr->SiS_YPbPr == YPbPr750p) SiS_Pr->SiS_TVMode |= TVSetYPbPr750p; SiS_SetTVMode() 1261 else if(SiS_Pr->SiS_YPbPr == YPbPr525p) SiS_Pr->SiS_TVMode |= TVSetYPbPr525p; SiS_SetTVMode() 1262 else if(SiS_Pr->SiS_YPbPr == YPbPrHiVision) SiS_Pr->SiS_TVMode |= TVSetHiVision; SiS_SetTVMode() 1263 else SiS_Pr->SiS_TVMode |= TVSetYPbPr525i; SiS_SetTVMode() 1264 if(SiS_Pr->SiS_TVMode & (TVSetYPbPr750p | TVSetYPbPr525p | TVSetYPbPr525i)) { SiS_SetTVMode() 1265 SiS_Pr->SiS_VBInfo &= ~SetCRT2ToHiVision; SiS_SetTVMode() 1266 SiS_Pr->SiS_VBInfo |= SetCRT2ToYPbPr525750; SiS_SetTVMode() 1267 } else if(SiS_Pr->SiS_TVMode & TVSetHiVision) { SiS_SetTVMode() 1268 SiS_Pr->SiS_TVMode |= TVSetPAL; SiS_SetTVMode() 1271 } else if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetTVMode() 1272 if(SiS_Pr->SiS_CHOverScan) { SiS_SetTVMode() 1273 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) { SiS_SetTVMode() 1274 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); SiS_SetTVMode() 1275 if((temp & TVOverScan) || (SiS_Pr->SiS_CHOverScan == 1)) { SiS_SetTVMode() 1276 SiS_Pr->SiS_TVMode |= TVSetCHOverScan; SiS_SetTVMode() 1278 } else if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_SetTVMode() 1279 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x79); SiS_SetTVMode() 1280 if((temp & 0x80) || (SiS_Pr->SiS_CHOverScan == 1)) { SiS_SetTVMode() 1281 SiS_Pr->SiS_TVMode |= TVSetCHOverScan; SiS_SetTVMode() 1284 if(SiS_Pr->SiS_CHSOverScan) { SiS_SetTVMode() 1285 SiS_Pr->SiS_TVMode |= TVSetCHOverScan; SiS_SetTVMode() 1288 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_SetTVMode() 1289 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiS_SetTVMode() 1290 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetTVMode() 1291 if(temp & EnablePALM) SiS_Pr->SiS_TVMode |= TVSetPALM; SiS_SetTVMode() 1292 else if(temp & EnablePALN) SiS_Pr->SiS_TVMode |= TVSetPALN; SiS_SetTVMode() 1295 SiS_Pr->SiS_TVMode |= TVSetNTSCJ; SiS_SetTVMode() 1303 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); SiS_SetTVMode() 1305 SiS_Pr->SiS_TVMode |= TVSetPAL; SiS_SetTVMode() 1307 SiS_Pr->SiS_TVMode |= TVSetPALN; SiS_SetTVMode() 1309 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetTVMode() 1310 SiS_Pr->SiS_TVMode &= ~TVSetPAL; SiS_SetTVMode() 1312 SiS_Pr->SiS_TVMode |= TVSetPALM; SiS_SetTVMode() 1316 SiS_Pr->SiS_TVMode |= TVSetNTSCJ; SiS_SetTVMode() 1319 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_SetTVMode() 1320 if(SiS_Pr->SiS_CHOverScan) { SiS_SetTVMode() 1321 if((temp1 & 0x10) || (SiS_Pr->SiS_CHOverScan == 1)) { SiS_SetTVMode() 1322 SiS_Pr->SiS_TVMode |= TVSetCHOverScan; SiS_SetTVMode() 1326 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetTVMode() 1327 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_SetTVMode() 1329 if(temp1 == 0x00) SiS_Pr->SiS_TVMode |= TVSetYPbPr525i; SiS_SetTVMode() 1330 else if(temp1 == 0x20) SiS_Pr->SiS_TVMode |= TVSetYPbPr525p; SiS_SetTVMode() 1331 else if(temp1 == 0x40) SiS_Pr->SiS_TVMode |= TVSetYPbPr750p; SiS_SetTVMode() 1332 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetTVMode() 1333 SiS_Pr->SiS_TVMode |= (TVSetHiVision | TVSetPAL); SiS_SetTVMode() 1335 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToYPbPr525750 | SetCRT2ToHiVision)) { SiS_SetTVMode() 1337 SiS_Pr->SiS_TVMode |= TVAspect169; SiS_SetTVMode() 1339 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x39); SiS_SetTVMode() 1341 if(SiS_Pr->SiS_TVMode & (TVSetYPbPr750p | TVSetHiVision)) { SiS_SetTVMode() 1342 SiS_Pr->SiS_TVMode |= TVAspect169; SiS_SetTVMode() 1344 SiS_Pr->SiS_TVMode |= TVAspect43LB; SiS_SetTVMode() 1347 SiS_Pr->SiS_TVMode |= TVAspect43; SiS_SetTVMode() 1354 if(SiS_Pr->SiS_VBInfo & SetCRT2ToSCART) SiS_Pr->SiS_TVMode |= TVSetPAL; SiS_SetTVMode() 1356 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetTVMode() 1358 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetTVMode() 1359 SiS_Pr->SiS_TVMode |= TVSetPAL; SiS_SetTVMode() 1360 SiS_Pr->SiS_TVMode &= ~(TVSetPALM | TVSetPALN | TVSetNTSCJ); SiS_SetTVMode() 1361 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_SetTVMode() 1362 if(SiS_Pr->SiS_TVMode & (TVSetYPbPr525i | TVSetYPbPr525p | TVSetYPbPr750p)) { SiS_SetTVMode() 1363 SiS_Pr->SiS_TVMode &= ~(TVSetPAL | TVSetNTSCJ | TVSetPALM | TVSetPALN); SiS_SetTVMode() 1367 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetTVMode() 1368 if(!(SiS_Pr->SiS_VBInfo & SetNotSimuMode)) { SiS_SetTVMode() 1369 SiS_Pr->SiS_TVMode |= TVSetTVSimuMode; SiS_SetTVMode() 1373 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) { SiS_SetTVMode() 1375 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) { SiS_SetTVMode() 1376 SiS_Pr->SiS_TVMode |= TVSet525p1024; SiS_SetTVMode() 1377 } else if(!(SiS_Pr->SiS_TVMode & (TVSetHiVision | TVSetYPbPr750p))) { SiS_SetTVMode() 1378 SiS_Pr->SiS_TVMode |= TVSetNTSC1024; SiS_SetTVMode() 1383 SiS_Pr->SiS_TVMode |= TVRPLLDIV2XO; SiS_SetTVMode() 1384 if((SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) && SiS_SetTVMode() 1385 (SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetTVMode() 1386 SiS_Pr->SiS_TVMode &= ~TVRPLLDIV2XO; SiS_SetTVMode() 1387 } else if(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p | TVSetYPbPr750p)) { SiS_SetTVMode() 1388 SiS_Pr->SiS_TVMode &= ~TVRPLLDIV2XO; SiS_SetTVMode() 1389 } else if(!(SiS_Pr->SiS_VBType & VB_SIS30xBLV)) { SiS_SetTVMode() 1390 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) { SiS_SetTVMode() 1391 SiS_Pr->SiS_TVMode &= ~TVRPLLDIV2XO; SiS_SetTVMode() 1397 SiS_Pr->SiS_VBInfo &= ~SetPALTV; SiS_SetTVMode() 1405 SiS_GetBIOSLCDResInfo(struct SiS_Private *SiS_Pr) SiS_GetBIOSLCDResInfo() argument 1407 unsigned short temp = SiS_Pr->SiS_LCDResInfo; SiS_GetBIOSLCDResInfo() 1418 SiS_GetLCDInfoBIOS(struct SiS_Private *SiS_Pr) SiS_GetLCDInfoBIOS() argument 1424 if((ROMAddr = GetLCDStructPtr661(SiS_Pr))) { SiS_GetLCDInfoBIOS() 1425 if((temp = SISGETROMW(6)) != SiS_Pr->PanelHT) { SiS_GetLCDInfoBIOS() 1426 SiS_Pr->SiS_NeedRomModeData = true; SiS_GetLCDInfoBIOS() 1427 SiS_Pr->PanelHT = temp; SiS_GetLCDInfoBIOS() 1429 if((temp = SISGETROMW(8)) != SiS_Pr->PanelVT) { SiS_GetLCDInfoBIOS() 1430 SiS_Pr->SiS_NeedRomModeData = true; SiS_GetLCDInfoBIOS() 1431 SiS_Pr->PanelVT = temp; SiS_GetLCDInfoBIOS() 1433 SiS_Pr->PanelHRS = SISGETROMW(10); SiS_GetLCDInfoBIOS() 1434 SiS_Pr->PanelHRE = SISGETROMW(12); SiS_GetLCDInfoBIOS() 1435 SiS_Pr->PanelVRS = SISGETROMW(14); SiS_GetLCDInfoBIOS() 1436 SiS_Pr->PanelVRE = SISGETROMW(16); SiS_GetLCDInfoBIOS() 1437 SiS_Pr->PanelVCLKIdx315 = VCLK_CUSTOM_315; SiS_GetLCDInfoBIOS() 1438 SiS_Pr->SiS_VCLKData[VCLK_CUSTOM_315].CLOCK = SiS_GetLCDInfoBIOS() 1439 SiS_Pr->SiS_VBVCLKData[VCLK_CUSTOM_315].CLOCK = (unsigned short)((unsigned char)ROMAddr[18]); SiS_GetLCDInfoBIOS() 1440 SiS_Pr->SiS_VCLKData[VCLK_CUSTOM_315].SR2B = SiS_GetLCDInfoBIOS() 1441 SiS_Pr->SiS_VBVCLKData[VCLK_CUSTOM_315].Part4_A = ROMAddr[19]; SiS_GetLCDInfoBIOS() 1442 SiS_Pr->SiS_VCLKData[VCLK_CUSTOM_315].SR2C = SiS_GetLCDInfoBIOS() 1443 SiS_Pr->SiS_VBVCLKData[VCLK_CUSTOM_315].Part4_B = ROMAddr[20]; SiS_GetLCDInfoBIOS() 1450 SiS_CheckScaling(struct SiS_Private *SiS_Pr, unsigned short resinfo, SiS_CheckScaling() argument 1456 if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) || SiS_CheckScaling() 1457 (SiS_Pr->UsePanelScaler == -1)) { SiS_CheckScaling() 1458 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_CheckScaling() 1466 SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_GetLCDResInfo() argument 1471 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_GetLCDResInfo() 1480 SiS_Pr->SiS_LCDResInfo = 0; SiS_GetLCDResInfo() 1481 SiS_Pr->SiS_LCDTypeInfo = 0; SiS_GetLCDResInfo() 1482 SiS_Pr->SiS_LCDInfo = 0; SiS_GetLCDResInfo() 1483 SiS_Pr->PanelHRS = 999; /* HSync start */ SiS_GetLCDResInfo() 1484 SiS_Pr->PanelHRE = 999; /* HSync end */ SiS_GetLCDResInfo() 1485 SiS_Pr->PanelVRS = 999; /* VSync start */ SiS_GetLCDResInfo() 1486 SiS_Pr->PanelVRE = 999; /* VSync end */ SiS_GetLCDResInfo() 1487 SiS_Pr->SiS_NeedRomModeData = false; SiS_GetLCDResInfo() 1490 SiS_Pr->Alternate1600x1200 = false; SiS_GetLCDResInfo() 1492 if(!(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA))) return; SiS_GetLCDResInfo() 1494 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_GetLCDResInfo() 1496 if((ModeNo > 0x13) && (!SiS_Pr->UseCustomMode)) { SiS_GetLCDResInfo() 1497 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_GetLCDResInfo() 1498 modexres = SiS_Pr->SiS_ModeResInfo[resinfo].HTotal; SiS_GetLCDResInfo() 1499 modeyres = SiS_Pr->SiS_ModeResInfo[resinfo].VTotal; SiS_GetLCDResInfo() 1502 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36); SiS_GetLCDResInfo() 1507 if((SiS_Pr->ChipType >= SIS_661) || (SiS_Pr->SiS_ROMNew)) { SiS_GetLCDResInfo() 1508 SiS_Pr->SiS_LCDTypeInfo = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x39) & 0x7c) >> 2; SiS_GetLCDResInfo() 1509 } else if((SiS_Pr->ChipType < SIS_315H) || (SiS_Pr->ChipType >= SIS_661)) { SiS_GetLCDResInfo() 1510 SiS_Pr->SiS_LCDTypeInfo = temp >> 4; SiS_GetLCDResInfo() 1512 SiS_Pr->SiS_LCDTypeInfo = (temp & 0x0F) - 1; SiS_GetLCDResInfo() 1516 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLCDResInfo() 1518 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_GetLCDResInfo() 1528 if(SiS_Pr->ChipType == SIS_550) { SiS_GetLCDResInfo() 1532 } else if(SiS_Pr->ChipType >= SIS_661) { SiS_GetLCDResInfo() 1537 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { /* SiS LVDS */ SiS_GetLCDResInfo() 1541 if(SiS_Pr->SiS_ROMNew) { SiS_GetLCDResInfo() 1548 SiS_Pr->SiS_LCDResInfo = temp; SiS_GetLCDResInfo() 1551 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_GetLCDResInfo() 1552 if(SiS_Pr->SiS_CustomT == CUT_BARCO1366) { SiS_GetLCDResInfo() 1553 SiS_Pr->SiS_LCDResInfo = Panel_Barco1366; SiS_GetLCDResInfo() 1554 } else if(SiS_Pr->SiS_CustomT == CUT_PANEL848) { SiS_GetLCDResInfo() 1555 SiS_Pr->SiS_LCDResInfo = Panel_848x480; SiS_GetLCDResInfo() 1556 } else if(SiS_Pr->SiS_CustomT == CUT_PANEL856) { SiS_GetLCDResInfo() 1557 SiS_Pr->SiS_LCDResInfo = Panel_856x480; SiS_GetLCDResInfo() 1562 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetLCDResInfo() 1563 if(SiS_Pr->SiS_LCDResInfo < SiS_Pr->SiS_PanelMin301) SiS_GetLCDResInfo() 1564 SiS_Pr->SiS_LCDResInfo = SiS_Pr->SiS_PanelMin301; SiS_GetLCDResInfo() 1566 if(SiS_Pr->SiS_LCDResInfo < SiS_Pr->SiS_PanelMinLVDS) SiS_GetLCDResInfo() 1567 SiS_Pr->SiS_LCDResInfo = SiS_Pr->SiS_PanelMinLVDS; SiS_GetLCDResInfo() 1570 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x37); SiS_GetLCDResInfo() 1571 SiS_Pr->SiS_LCDInfo = temp & ~0x000e; SiS_GetLCDResInfo() 1575 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLCDResInfo() 1580 SiS_Pr->SiS_LCDInfo &= ~DontExpandLCD; SiS_GetLCDResInfo() 1583 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1586 panelcanscale = (bool)(SiS_Pr->SiS_LCDInfo & DontExpandLCD); SiS_GetLCDResInfo() 1588 if(!SiS_Pr->UsePanelScaler) SiS_Pr->SiS_LCDInfo &= ~DontExpandLCD; SiS_GetLCDResInfo() 1589 else if(SiS_Pr->UsePanelScaler == 1) SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1593 if(SiS_Pr->ChipType >= SIS_661) { SiS_GetLCDResInfo() 1594 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLCDResInfo() 1595 if(temp & 0x08) SiS_Pr->SiS_LCDInfo |= LCDPass11; SiS_GetLCDResInfo() 1597 if(SiS_Pr->SiS_VBType & VB_SISDUALLINK) { SiS_GetLCDResInfo() 1598 if(SiS_Pr->SiS_ROMNew) { SiS_GetLCDResInfo() 1599 if(temp & 0x02) SiS_Pr->SiS_LCDInfo |= LCDDualLink; SiS_GetLCDResInfo() 1600 } else if((myptr = GetLCDStructPtr661(SiS_Pr))) { SiS_GetLCDResInfo() 1601 if(myptr[2] & 0x01) SiS_Pr->SiS_LCDInfo |= LCDDualLink; SiS_GetLCDResInfo() 1604 } else if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetLCDResInfo() 1605 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLCDResInfo() 1606 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x39) & 0x01) SiS_Pr->SiS_LCDInfo |= LCDPass11; SiS_GetLCDResInfo() 1608 if((SiS_Pr->SiS_ROMNew) && (!(SiS_Pr->PanelSelfDetected))) { SiS_GetLCDResInfo() 1609 SiS_Pr->SiS_LCDInfo &= ~(LCDRGB18Bit); SiS_GetLCDResInfo() 1610 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); SiS_GetLCDResInfo() 1611 if(temp & 0x01) SiS_Pr->SiS_LCDInfo |= LCDRGB18Bit; SiS_GetLCDResInfo() 1612 if(SiS_Pr->SiS_VBType & VB_SISDUALLINK) { SiS_GetLCDResInfo() 1613 if(temp & 0x02) SiS_Pr->SiS_LCDInfo |= LCDDualLink; SiS_GetLCDResInfo() 1615 } else if(!(SiS_Pr->SiS_ROMNew)) { SiS_GetLCDResInfo() 1616 if(SiS_Pr->SiS_VBType & VB_SISDUALLINK) { SiS_GetLCDResInfo() 1617 if((SiS_Pr->SiS_CustomT == CUT_CLEVO1024) && SiS_GetLCDResInfo() 1618 (SiS_Pr->SiS_LCDResInfo == Panel_1024x768)) { SiS_GetLCDResInfo() 1619 SiS_Pr->SiS_LCDInfo |= LCDDualLink; SiS_GetLCDResInfo() 1621 if((SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) || SiS_GetLCDResInfo() 1622 (SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) || SiS_GetLCDResInfo() 1623 (SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) || SiS_GetLCDResInfo() 1624 (SiS_Pr->SiS_LCDResInfo == Panel_1680x1050)) { SiS_GetLCDResInfo() 1625 SiS_Pr->SiS_LCDInfo |= LCDDualLink; SiS_GetLCDResInfo() 1633 if((SiS_Pr->SiS_IF_DEF_LVDS == 1) || (SiS_Pr->SiS_VBType & VB_NoLCD)) { SiS_GetLCDResInfo() 1635 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 1636 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetLCDResInfo() 1637 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_GetLCDResInfo() 1639 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 1642 if(panelcanscale) SiS_Pr->SiS_LCDInfo |= LCDPass11; SiS_GetLCDResInfo() 1643 if(SiS_Pr->CenterScreen == 1) SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 1647 SiS_Pr->PanelVCLKIdx300 = VCLK65_300; SiS_GetLCDResInfo() 1648 SiS_Pr->PanelVCLKIdx315 = VCLK108_2_315; SiS_GetLCDResInfo() 1650 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLCDResInfo() 1653 case Panel_320x240_3: SiS_Pr->PanelXRes = 640; SiS_Pr->PanelYRes = 480; SiS_GetLCDResInfo() 1654 SiS_Pr->PanelVRS = 24; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1655 SiS_Pr->PanelVCLKIdx300 = VCLK28; SiS_GetLCDResInfo() 1656 SiS_Pr->PanelVCLKIdx315 = VCLK28; SiS_GetLCDResInfo() 1658 case Panel_640x480: SiS_Pr->PanelXRes = 640; SiS_Pr->PanelYRes = 480; SiS_GetLCDResInfo() 1659 SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1660 SiS_Pr->PanelVCLKIdx300 = VCLK28; SiS_GetLCDResInfo() 1661 SiS_Pr->PanelVCLKIdx315 = VCLK28; SiS_GetLCDResInfo() 1663 case Panel_800x600: SiS_Pr->PanelXRes = 800; SiS_Pr->PanelYRes = 600; SiS_GetLCDResInfo() 1664 SiS_Pr->PanelHT = 1056; SiS_Pr->PanelVT = 628; SiS_GetLCDResInfo() 1665 SiS_Pr->PanelHRS = 40; SiS_Pr->PanelHRE = 128; SiS_GetLCDResInfo() 1666 SiS_Pr->PanelVRS = 1; SiS_Pr->PanelVRE = 4; SiS_GetLCDResInfo() 1667 SiS_Pr->PanelVCLKIdx300 = VCLK40; SiS_GetLCDResInfo() 1668 SiS_Pr->PanelVCLKIdx315 = VCLK40; SiS_GetLCDResInfo() 1670 case Panel_1024x600: SiS_Pr->PanelXRes = 1024; SiS_Pr->PanelYRes = 600; SiS_GetLCDResInfo() 1671 SiS_Pr->PanelHT = 1344; SiS_Pr->PanelVT = 800; SiS_GetLCDResInfo() 1672 SiS_Pr->PanelHRS = 24; SiS_Pr->PanelHRE = 136; SiS_GetLCDResInfo() 1673 SiS_Pr->PanelVRS = 2 /* 88 */ ; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1674 SiS_Pr->PanelVCLKIdx300 = VCLK65_300; SiS_GetLCDResInfo() 1675 SiS_Pr->PanelVCLKIdx315 = VCLK65_315; SiS_GetLCDResInfo() 1677 case Panel_1024x768: SiS_Pr->PanelXRes = 1024; SiS_Pr->PanelYRes = 768; SiS_GetLCDResInfo() 1678 SiS_Pr->PanelHT = 1344; SiS_Pr->PanelVT = 806; SiS_GetLCDResInfo() 1679 SiS_Pr->PanelHRS = 24; SiS_Pr->PanelHRE = 136; SiS_GetLCDResInfo() 1680 SiS_Pr->PanelVRS = 3; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1681 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLCDResInfo() 1682 SiS_Pr->PanelHRS = 23; SiS_GetLCDResInfo() 1683 SiS_Pr->PanelVRE = 5; SiS_GetLCDResInfo() 1685 SiS_Pr->PanelVCLKIdx300 = VCLK65_300; SiS_GetLCDResInfo() 1686 SiS_Pr->PanelVCLKIdx315 = VCLK65_315; SiS_GetLCDResInfo() 1687 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1689 case Panel_1152x768: SiS_Pr->PanelXRes = 1152; SiS_Pr->PanelYRes = 768; SiS_GetLCDResInfo() 1690 SiS_Pr->PanelHT = 1344; SiS_Pr->PanelVT = 806; SiS_GetLCDResInfo() 1691 SiS_Pr->PanelHRS = 24; SiS_Pr->PanelHRE = 136; SiS_GetLCDResInfo() 1692 SiS_Pr->PanelVRS = 3; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1693 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLCDResInfo() 1694 SiS_Pr->PanelHRS = 23; SiS_GetLCDResInfo() 1695 SiS_Pr->PanelVRE = 5; SiS_GetLCDResInfo() 1697 SiS_Pr->PanelVCLKIdx300 = VCLK65_300; SiS_GetLCDResInfo() 1698 SiS_Pr->PanelVCLKIdx315 = VCLK65_315; SiS_GetLCDResInfo() 1700 case Panel_1152x864: SiS_Pr->PanelXRes = 1152; SiS_Pr->PanelYRes = 864; SiS_GetLCDResInfo() 1702 case Panel_1280x720: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 720; SiS_GetLCDResInfo() 1703 SiS_Pr->PanelHT = 1650; SiS_Pr->PanelVT = 750; SiS_GetLCDResInfo() 1704 SiS_Pr->PanelHRS = 110; SiS_Pr->PanelHRE = 40; SiS_GetLCDResInfo() 1705 SiS_Pr->PanelVRS = 5; SiS_Pr->PanelVRE = 5; SiS_GetLCDResInfo() 1706 SiS_Pr->PanelVCLKIdx315 = VCLK_1280x720; SiS_GetLCDResInfo() 1708 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1710 case Panel_1280x768: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 768; SiS_GetLCDResInfo() 1711 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_GetLCDResInfo() 1712 SiS_Pr->PanelHT = 1408; SiS_Pr->PanelVT = 806; SiS_GetLCDResInfo() 1713 SiS_Pr->PanelVCLKIdx300 = VCLK81_300; /* ? */ SiS_GetLCDResInfo() 1714 SiS_Pr->PanelVCLKIdx315 = VCLK81_315; /* ? */ SiS_GetLCDResInfo() 1716 SiS_Pr->PanelHT = 1688; SiS_Pr->PanelVT = 802; SiS_GetLCDResInfo() 1717 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1718 SiS_Pr->PanelVRS = 3; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1719 SiS_Pr->PanelVCLKIdx300 = VCLK81_300; SiS_GetLCDResInfo() 1720 SiS_Pr->PanelVCLKIdx315 = VCLK81_315; SiS_GetLCDResInfo() 1723 case Panel_1280x768_2: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 768; SiS_GetLCDResInfo() 1724 SiS_Pr->PanelHT = 1660; SiS_Pr->PanelVT = 806; SiS_GetLCDResInfo() 1725 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1726 SiS_Pr->PanelVRS = 3; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1727 SiS_Pr->PanelVCLKIdx315 = VCLK_1280x768_2; SiS_GetLCDResInfo() 1728 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1730 case Panel_1280x800: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 800; SiS_GetLCDResInfo() 1731 SiS_Pr->PanelHT = 1408; SiS_Pr->PanelVT = 816; SiS_GetLCDResInfo() 1732 SiS_Pr->PanelHRS = 21; SiS_Pr->PanelHRE = 24; SiS_GetLCDResInfo() 1733 SiS_Pr->PanelVRS = 4; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1734 SiS_Pr->PanelVCLKIdx315 = VCLK_1280x800_315; SiS_GetLCDResInfo() 1735 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1737 case Panel_1280x800_2: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 800; SiS_GetLCDResInfo() 1738 SiS_Pr->PanelHT = 1552; SiS_Pr->PanelVT = 812; SiS_GetLCDResInfo() 1739 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1740 SiS_Pr->PanelVRS = 4; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1741 SiS_Pr->PanelVCLKIdx315 = VCLK_1280x800_315_2; SiS_GetLCDResInfo() 1742 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1744 case Panel_1280x854: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 854; SiS_GetLCDResInfo() 1745 SiS_Pr->PanelHT = 1664; SiS_Pr->PanelVT = 861; SiS_GetLCDResInfo() 1746 SiS_Pr->PanelHRS = 16; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1747 SiS_Pr->PanelVRS = 1; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1748 SiS_Pr->PanelVCLKIdx315 = VCLK_1280x854; SiS_GetLCDResInfo() 1749 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1751 case Panel_1280x960: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 960; SiS_GetLCDResInfo() 1752 SiS_Pr->PanelHT = 1800; SiS_Pr->PanelVT = 1000; SiS_GetLCDResInfo() 1753 SiS_Pr->PanelVCLKIdx300 = VCLK108_3_300; SiS_GetLCDResInfo() 1754 SiS_Pr->PanelVCLKIdx315 = VCLK108_3_315; SiS_GetLCDResInfo() 1756 SiS_Pr->PanelVCLKIdx300 = VCLK100_300; SiS_GetLCDResInfo() 1757 SiS_Pr->PanelVCLKIdx315 = VCLK100_315; SiS_GetLCDResInfo() 1760 case Panel_1280x1024: SiS_Pr->PanelXRes = 1280; SiS_Pr->PanelYRes = 1024; SiS_GetLCDResInfo() 1761 SiS_Pr->PanelHT = 1688; SiS_Pr->PanelVT = 1066; SiS_GetLCDResInfo() 1762 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1763 SiS_Pr->PanelVRS = 1; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1764 SiS_Pr->PanelVCLKIdx300 = VCLK108_3_300; SiS_GetLCDResInfo() 1765 SiS_Pr->PanelVCLKIdx315 = VCLK108_2_315; SiS_GetLCDResInfo() 1766 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1768 case Panel_1400x1050: SiS_Pr->PanelXRes = 1400; SiS_Pr->PanelYRes = 1050; SiS_GetLCDResInfo() 1769 SiS_Pr->PanelHT = 1688; SiS_Pr->PanelVT = 1066; SiS_GetLCDResInfo() 1770 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 112; SiS_GetLCDResInfo() 1771 SiS_Pr->PanelVRS = 1; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1772 SiS_Pr->PanelVCLKIdx315 = VCLK108_2_315; SiS_GetLCDResInfo() 1773 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1775 case Panel_1600x1200: SiS_Pr->PanelXRes = 1600; SiS_Pr->PanelYRes = 1200; SiS_GetLCDResInfo() 1776 SiS_Pr->PanelHT = 2160; SiS_Pr->PanelVT = 1250; SiS_GetLCDResInfo() 1777 SiS_Pr->PanelHRS = 64; SiS_Pr->PanelHRE = 192; SiS_GetLCDResInfo() 1778 SiS_Pr->PanelVRS = 1; SiS_Pr->PanelVRE = 3; SiS_GetLCDResInfo() 1779 SiS_Pr->PanelVCLKIdx315 = VCLK162_315; SiS_GetLCDResInfo() 1780 if(SiS_Pr->SiS_VBType & VB_SISTMDSLCDA) { SiS_GetLCDResInfo() 1781 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_GetLCDResInfo() 1782 SiS_Pr->PanelHT = 1760; SiS_Pr->PanelVT = 1235; SiS_GetLCDResInfo() 1783 SiS_Pr->PanelHRS = 48; SiS_Pr->PanelHRE = 32; SiS_GetLCDResInfo() 1784 SiS_Pr->PanelVRS = 2; SiS_Pr->PanelVRE = 4; SiS_GetLCDResInfo() 1785 SiS_Pr->PanelVCLKIdx315 = VCLK130_315; SiS_GetLCDResInfo() 1786 SiS_Pr->Alternate1600x1200 = true; SiS_GetLCDResInfo() 1788 } else if(SiS_Pr->SiS_IF_DEF_LVDS) { SiS_GetLCDResInfo() 1789 SiS_Pr->PanelHT = 2048; SiS_Pr->PanelVT = 1320; SiS_GetLCDResInfo() 1790 SiS_Pr->PanelHRS = SiS_Pr->PanelHRE = 999; SiS_GetLCDResInfo() 1791 SiS_Pr->PanelVRS = SiS_Pr->PanelVRE = 999; SiS_GetLCDResInfo() 1793 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1795 case Panel_1680x1050: SiS_Pr->PanelXRes = 1680; SiS_Pr->PanelYRes = 1050; SiS_GetLCDResInfo() 1796 SiS_Pr->PanelHT = 1900; SiS_Pr->PanelVT = 1066; SiS_GetLCDResInfo() 1797 SiS_Pr->PanelHRS = 26; SiS_Pr->PanelHRE = 76; SiS_GetLCDResInfo() 1798 SiS_Pr->PanelVRS = 3; SiS_Pr->PanelVRE = 6; SiS_GetLCDResInfo() 1799 SiS_Pr->PanelVCLKIdx315 = VCLK121_315; SiS_GetLCDResInfo() 1800 SiS_GetLCDInfoBIOS(SiS_Pr); SiS_GetLCDResInfo() 1802 case Panel_Barco1366: SiS_Pr->PanelXRes = 1360; SiS_Pr->PanelYRes = 1024; SiS_GetLCDResInfo() 1803 SiS_Pr->PanelHT = 1688; SiS_Pr->PanelVT = 1066; SiS_GetLCDResInfo() 1805 case Panel_848x480: SiS_Pr->PanelXRes = 848; SiS_Pr->PanelYRes = 480; SiS_GetLCDResInfo() 1806 SiS_Pr->PanelHT = 1088; SiS_Pr->PanelVT = 525; SiS_GetLCDResInfo() 1808 case Panel_856x480: SiS_Pr->PanelXRes = 856; SiS_Pr->PanelYRes = 480; SiS_GetLCDResInfo() 1809 SiS_Pr->PanelHT = 1088; SiS_Pr->PanelVT = 525; SiS_GetLCDResInfo() 1811 case Panel_Custom: SiS_Pr->PanelXRes = SiS_Pr->CP_MaxX; SiS_GetLCDResInfo() 1812 SiS_Pr->PanelYRes = SiS_Pr->CP_MaxY; SiS_GetLCDResInfo() 1813 SiS_Pr->PanelHT = SiS_Pr->CHTotal; SiS_GetLCDResInfo() 1814 SiS_Pr->PanelVT = SiS_Pr->CVTotal; SiS_GetLCDResInfo() 1815 if(SiS_Pr->CP_PreferredIndex != -1) { SiS_GetLCDResInfo() 1816 SiS_Pr->PanelXRes = SiS_Pr->CP_HDisplay[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1817 SiS_Pr->PanelYRes = SiS_Pr->CP_VDisplay[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1818 SiS_Pr->PanelHT = SiS_Pr->CP_HTotal[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1819 SiS_Pr->PanelVT = SiS_Pr->CP_VTotal[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1820 SiS_Pr->PanelHRS = SiS_Pr->CP_HSyncStart[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1821 SiS_Pr->PanelHRE = SiS_Pr->CP_HSyncEnd[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1822 SiS_Pr->PanelVRS = SiS_Pr->CP_VSyncStart[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1823 SiS_Pr->PanelVRE = SiS_Pr->CP_VSyncEnd[SiS_Pr->CP_PreferredIndex]; SiS_GetLCDResInfo() 1824 SiS_Pr->PanelHRS -= SiS_Pr->PanelXRes; SiS_GetLCDResInfo() 1825 SiS_Pr->PanelHRE -= SiS_Pr->PanelHRS; SiS_GetLCDResInfo() 1826 SiS_Pr->PanelVRS -= SiS_Pr->PanelYRes; SiS_GetLCDResInfo() 1827 SiS_Pr->PanelVRE -= SiS_Pr->PanelVRS; SiS_GetLCDResInfo() 1828 if(SiS_Pr->CP_PrefClock) { SiS_GetLCDResInfo() 1830 SiS_Pr->PanelVCLKIdx315 = VCLK_CUSTOM_315; SiS_GetLCDResInfo() 1831 SiS_Pr->PanelVCLKIdx300 = VCLK_CUSTOM_300; SiS_GetLCDResInfo() 1832 if(SiS_Pr->ChipType < SIS_315H) idx = VCLK_CUSTOM_300; SiS_GetLCDResInfo() 1834 SiS_Pr->SiS_VCLKData[idx].CLOCK = SiS_GetLCDResInfo() 1835 SiS_Pr->SiS_VBVCLKData[idx].CLOCK = SiS_Pr->CP_PrefClock; SiS_GetLCDResInfo() 1836 SiS_Pr->SiS_VCLKData[idx].SR2B = SiS_GetLCDResInfo() 1837 SiS_Pr->SiS_VBVCLKData[idx].Part4_A = SiS_Pr->CP_PrefSR2B; SiS_GetLCDResInfo() 1838 SiS_Pr->SiS_VCLKData[idx].SR2C = SiS_GetLCDResInfo() 1839 SiS_Pr->SiS_VBVCLKData[idx].Part4_B = SiS_Pr->CP_PrefSR2C; SiS_GetLCDResInfo() 1843 default: SiS_Pr->PanelXRes = 1024; SiS_Pr->PanelYRes = 768; SiS_GetLCDResInfo() 1844 SiS_Pr->PanelHT = 1344; SiS_Pr->PanelVT = 806; SiS_GetLCDResInfo() 1849 if( (SiS_Pr->SiS_IF_DEF_FSTN) || SiS_GetLCDResInfo() 1850 (SiS_Pr->SiS_IF_DEF_DSTN) || SiS_GetLCDResInfo() 1851 (SiS_Pr->SiS_CustomT == CUT_BARCO1366) || SiS_GetLCDResInfo() 1852 (SiS_Pr->SiS_CustomT == CUT_BARCO1024) || SiS_GetLCDResInfo() 1853 (SiS_Pr->SiS_CustomT == CUT_PANEL848) || SiS_GetLCDResInfo() 1854 (SiS_Pr->SiS_CustomT == CUT_PANEL856) ) { SiS_GetLCDResInfo() 1855 SiS_Pr->PanelHRS = 999; SiS_GetLCDResInfo() 1856 SiS_Pr->PanelHRE = 999; SiS_GetLCDResInfo() 1859 if( (SiS_Pr->SiS_CustomT == CUT_BARCO1366) || SiS_GetLCDResInfo() 1860 (SiS_Pr->SiS_CustomT == CUT_BARCO1024) || SiS_GetLCDResInfo() 1861 (SiS_Pr->SiS_CustomT == CUT_PANEL848) || SiS_GetLCDResInfo() 1862 (SiS_Pr->SiS_CustomT == CUT_PANEL856) ) { SiS_GetLCDResInfo() 1863 SiS_Pr->PanelVRS = 999; SiS_GetLCDResInfo() 1864 SiS_Pr->PanelVRE = 999; SiS_GetLCDResInfo() 1868 if((SiS_Pr->SiS_VBType & VB_SISVB) && (!(SiS_Pr->SiS_VBType & VB_NoLCD))) { SiS_GetLCDResInfo() 1870 if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && (modeflag & NoSupportLCDScale)) { SiS_GetLCDResInfo() 1872 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1875 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLCDResInfo() 1880 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1887 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1896 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1905 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1906 if(SiS_Pr->PanelHT == 1650) { SiS_GetLCDResInfo() 1907 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1917 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1919 case SIS_RI_1280x720: if(SiS_Pr->UsePanelScaler == -1) { SiS_GetLCDResInfo() 1920 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1932 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1941 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1944 case SIS_RI_1280x768: if(SiS_Pr->UsePanelScaler == -1) { SiS_GetLCDResInfo() 1945 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1957 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1961 case SIS_RI_1280x800: if(SiS_Pr->UsePanelScaler == -1) { SiS_GetLCDResInfo() 1962 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 1975 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1985 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1995 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 1997 case SIS_RI_1280x720: if(SiS_Pr->UsePanelScaler == -1) { SiS_GetLCDResInfo() 1998 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 2001 case SIS_RI_1280x1024: SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetLCDResInfo() 2013 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 2023 SiS_CheckScaling(SiS_Pr, resinfo, nonscalingmodes); SiS_GetLCDResInfo() 2030 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_GetLCDResInfo() 2031 if(SiS_Pr->SiS_CustomT == CUT_PANEL848 || SiS_Pr->SiS_CustomT == CUT_PANEL856) { SiS_GetLCDResInfo() 2032 SiS_Pr->SiS_LCDInfo = 0x80 | 0x40 | 0x20; /* neg h/v sync, RGB24(D0 = 0) */ SiS_GetLCDResInfo() 2036 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLCDResInfo() 2037 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_GetLCDResInfo() 2038 if(SiS_Pr->SiS_UseROM) { SiS_GetLCDResInfo() 2041 SiS_Pr->SiS_LCDInfo &= (~DontExpandLCD); SiS_GetLCDResInfo() 2045 } else if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_GetLCDResInfo() 2046 if((SiS_Pr->SiS_SetFlag & SetDOSMode) && ((ModeNo == 0x03) || (ModeNo == 0x10))) { SiS_GetLCDResInfo() 2047 SiS_Pr->SiS_LCDInfo &= (~DontExpandLCD); SiS_GetLCDResInfo() 2055 if(modexres == SiS_Pr->PanelXRes && modeyres == SiS_Pr->PanelYRes) { SiS_GetLCDResInfo() 2056 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 2059 if(SiS_Pr->SiS_IF_DEF_TRUMPION) { SiS_GetLCDResInfo() 2060 SiS_Pr->SiS_LCDInfo |= (DontExpandLCD | LCDPass11); SiS_GetLCDResInfo() 2063 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLCDResInfo() 2065 SiS_Pr->SiS_LCDInfo |= (DontExpandLCD | LCDPass11); SiS_GetLCDResInfo() 2069 if(SiS_Pr->CenterScreen == -1) SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 2072 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 2075 if((!SiS_Pr->CP_PrefClock) || SiS_GetLCDResInfo() 2076 (modexres > SiS_Pr->PanelXRes) || (modeyres > SiS_Pr->PanelYRes)) { SiS_GetLCDResInfo() 2077 SiS_Pr->SiS_LCDInfo |= LCDPass11; SiS_GetLCDResInfo() 2082 if((SiS_Pr->UseCustomMode) || (SiS_Pr->SiS_CustomT == CUT_UNKNOWNLCD)) { SiS_GetLCDResInfo() 2083 SiS_Pr->SiS_LCDInfo |= (DontExpandLCD | LCDPass11); SiS_GetLCDResInfo() 2087 if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetLCDResInfo() 2088 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetLCDResInfo() 2092 if(!((SiS_Pr->ChipType < SIS_315H) && (SiS_Pr->SiS_SetFlag & SetDOSMode))) { SiS_GetLCDResInfo() 2094 if((SiS_Pr->SiS_IF_DEF_LVDS == 1) || (SiS_Pr->SiS_VBType & VB_NoLCD)) { SiS_GetLCDResInfo() 2095 if(SiS_Pr->SiS_IF_DEF_TRUMPION == 0) { SiS_GetLCDResInfo() 2097 if(SiS_Pr->SiS_LCDInfo & LCDPass11) { SiS_GetLCDResInfo() 2098 SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2101 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x600) { SiS_GetLCDResInfo() 2102 if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetLCDResInfo() 2104 SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2113 if(SiS_Pr->SiS_IF_DEF_TRUMPION == 1) { SiS_GetLCDResInfo() 2114 SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2115 } else if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLCDResInfo() 2116 SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2117 } else if(SiS_Pr->SiS_LCDResInfo == Panel_640x480) { SiS_GetLCDResInfo() 2118 SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2120 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_GetLCDResInfo() 2121 if(resinfo == SIS_RI_512x384) SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2122 } else if(SiS_Pr->SiS_LCDResInfo == Panel_800x600) { SiS_GetLCDResInfo() 2123 if(resinfo == SIS_RI_400x300) SiS_Pr->SiS_SetFlag |= EnableLVDSDDA; SiS_GetLCDResInfo() 2131 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_GetLCDResInfo() 2132 if(SiS_Pr->SiS_VBInfo & SetNotSimuMode) { SiS_GetLCDResInfo() 2133 SiS_Pr->SiS_SetFlag |= LCDVESATiming; SiS_GetLCDResInfo() 2136 SiS_Pr->SiS_SetFlag |= LCDVESATiming; SiS_GetLCDResInfo() 2141 SiS_Pr->SiS_LCDInfo, SiS_Pr->SiS_LCDResInfo, SiS_Pr->SiS_LCDTypeInfo); SiS_GetLCDResInfo() 2150 SiS_GetVCLK2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetVCLK2Ptr() argument 2158 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetVCLK2Ptr() 2159 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SiS_GetVCLK2Ptr() 2160 CRT2Index = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_GetVCLK2Ptr() 2161 VCLKIndexGEN = (SiS_GetRegByte((SiS_Pr->SiS_P3ca+0x02)) >> 2) & 0x03; SiS_GetVCLK2Ptr() 2164 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetVCLK2Ptr() 2165 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_GetVCLK2Ptr() 2166 CRT2Index = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_GetVCLK2Ptr() 2167 VCLKIndexGEN = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRTVCLK; SiS_GetVCLK2Ptr() 2168 VCLKIndexGENCRT = SiS_GetRefCRTVCLK(SiS_Pr, RefreshRateTableIndex, SiS_GetVCLK2Ptr() 2169 (SiS_Pr->SiS_SetFlag & ProgrammingCRT2) ? SiS_Pr->SiS_UseWideCRT2 : SiS_Pr->SiS_UseWide); SiS_GetVCLK2Ptr() 2172 if(SiS_Pr->SiS_VBType & VB_SISVB) { /* 30x/B/LV */ SiS_GetVCLK2Ptr() 2174 if(SiS_Pr->SiS_SetFlag & ProgrammingCRT2) { SiS_GetVCLK2Ptr() 2177 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { /* LCD */ SiS_GetVCLK2Ptr() 2179 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2180 VCLKIndex = SiS_Pr->PanelVCLKIdx300; SiS_GetVCLK2Ptr() 2181 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_GetVCLK2Ptr() 2185 VCLKIndex = SiS_Pr->PanelVCLKIdx315; SiS_GetVCLK2Ptr() 2186 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_GetVCLK2Ptr() 2203 if(SiS_Pr->ChipType <= SIS_315PRO) { SiS_GetVCLK2Ptr() 2204 if(SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC == 1) VCLKIndex = 0x42; SiS_GetVCLK2Ptr() 2206 if(SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC == 1) VCLKIndex = 0x00; SiS_GetVCLK2Ptr() 2209 if(SiS_Pr->ChipType <= SIS_315PRO) { SiS_GetVCLK2Ptr() 2217 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { /* TV */ SiS_GetVCLK2Ptr() 2219 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_GetVCLK2Ptr() 2220 if(SiS_Pr->SiS_TVMode & TVRPLLDIV2XO) VCLKIndex = HiTVVCLKDIV2; SiS_GetVCLK2Ptr() 2222 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) VCLKIndex = HiTVSimuVCLK; SiS_GetVCLK2Ptr() 2223 } else if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) VCLKIndex = YPbPr750pVCLK; SiS_GetVCLK2Ptr() 2224 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) VCLKIndex = TVVCLKDIV2; SiS_GetVCLK2Ptr() 2225 else if(SiS_Pr->SiS_TVMode & TVRPLLDIV2XO) VCLKIndex = TVVCLKDIV2; SiS_GetVCLK2Ptr() 2228 if(SiS_Pr->ChipType < SIS_315H) VCLKIndex += TVCLKBASE_300; SiS_GetVCLK2Ptr() 2234 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2236 if( (SiS_Pr->ChipType == SIS_630) && SiS_GetVCLK2Ptr() 2237 (SiS_Pr->ChipRevision >= 0x30)) { SiS_GetVCLK2Ptr() 2249 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2251 if( (SiS_Pr->ChipType != SIS_630) && SiS_GetVCLK2Ptr() 2252 (SiS_Pr->ChipType != SIS_300) ) { SiS_GetVCLK2Ptr() 2263 if(SiS_Pr->SiS_SetFlag & ProgrammingCRT2) { SiS_GetVCLK2Ptr() 2265 if( (SiS_Pr->SiS_IF_DEF_CH70xx != 0) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV) ) { SiS_GetVCLK2Ptr() 2269 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) tempbx += 1; SiS_GetVCLK2Ptr() 2270 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_GetVCLK2Ptr() 2272 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_GetVCLK2Ptr() 2273 if(SiS_Pr->SiS_CHSOverScan) tempbx = 8; SiS_GetVCLK2Ptr() 2275 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_GetVCLK2Ptr() 2277 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) tempbx += 1; SiS_GetVCLK2Ptr() 2278 } else if(SiS_Pr->SiS_TVMode & TVSetPALN) { SiS_GetVCLK2Ptr() 2280 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) tempbx += 1; SiS_GetVCLK2Ptr() 2284 case 0: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKUNTSC; break; SiS_GetVCLK2Ptr() 2285 case 1: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKONTSC; break; SiS_GetVCLK2Ptr() 2286 case 2: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKUPAL; break; SiS_GetVCLK2Ptr() 2287 case 3: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKOPAL; break; SiS_GetVCLK2Ptr() 2288 case 4: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKUPALM; break; SiS_GetVCLK2Ptr() 2289 case 5: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKOPALM; break; SiS_GetVCLK2Ptr() 2290 case 6: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKUPALN; break; SiS_GetVCLK2Ptr() 2291 case 7: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKOPALN; break; SiS_GetVCLK2Ptr() 2292 case 8: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKSOPAL; break; SiS_GetVCLK2Ptr() 2293 default: CHTVVCLKPtr = SiS_Pr->SiS_CHTVVCLKOPAL; break; SiS_GetVCLK2Ptr() 2297 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetVCLK2Ptr() 2299 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2300 VCLKIndex = SiS_Pr->PanelVCLKIdx300; SiS_GetVCLK2Ptr() 2302 VCLKIndex = SiS_Pr->PanelVCLKIdx315; SiS_GetVCLK2Ptr() 2307 if(SiS_Pr->SiS_CustomT == CUT_BARCO1366) VCLKIndex = 0x44; SiS_GetVCLK2Ptr() 2310 if(SiS_Pr->SiS_CustomT == CUT_PANEL848 || SiS_Pr->SiS_CustomT == CUT_PANEL856) { SiS_GetVCLK2Ptr() 2311 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2324 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2326 if( (SiS_Pr->ChipType == SIS_630) && SiS_GetVCLK2Ptr() 2327 (SiS_Pr->ChipRevision >= 0x30) ) { SiS_GetVCLK2Ptr() 2337 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetVCLK2Ptr() 2339 if( (SiS_Pr->ChipType != SIS_630) && SiS_GetVCLK2Ptr() 2340 (SiS_Pr->ChipType != SIS_300) ) { SiS_GetVCLK2Ptr() 2344 if(SiS_Pr->ChipType == SIS_730) { SiS_GetVCLK2Ptr() 2364 SiS_SetCRT2ModeRegs(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetCRT2ModeRegs() argument 2372 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetCRT2ModeRegs() 2376 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2ModeRegs() 2378 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetCRT2ModeRegs() 2380 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x00,0xAF,0x40); SiS_SetCRT2ModeRegs() 2381 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2E,0xF7); SiS_SetCRT2ModeRegs() 2385 for(i=0,j=4; i<3; i++,j++) SiS_SetReg(SiS_Pr->SiS_Part1Port,j,0); SiS_SetCRT2ModeRegs() 2386 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2ModeRegs() 2387 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x02,0x7F); SiS_SetCRT2ModeRegs() 2390 tempcl = SiS_Pr->SiS_ModeType; SiS_SetCRT2ModeRegs() 2392 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetCRT2ModeRegs() 2397 if(SiS_Pr->SiS_VBType & VB_NoLCD) { SiS_SetCRT2ModeRegs() 2398 tempbl = SiS_GetReg(SiS_Pr->SiS_P3c4,0x32); SiS_SetCRT2ModeRegs() 2401 if((SiS_Pr->SiS_VBInfo & SetCRT2ToTV) || (SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC)) { SiS_SetCRT2ModeRegs() 2405 SiS_SetReg(SiS_Pr->SiS_P3c4,0x32,tempbl); SiS_SetCRT2ModeRegs() 2415 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) tempah ^= 0xA0; SiS_SetCRT2ModeRegs() 2432 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) tempah ^= 0x50; SiS_SetCRT2ModeRegs() 2438 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 0; SiS_SetCRT2ModeRegs() 2440 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetCRT2ModeRegs() 2441 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,tempah); SiS_SetCRT2ModeRegs() 2444 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_SetCRT2ModeRegs() 2445 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x00,0xa0,tempah); SiS_SetCRT2ModeRegs() 2446 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetCRT2ModeRegs() 2448 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,tempah); SiS_SetCRT2ModeRegs() 2450 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x00,0xa0,tempah); SiS_SetCRT2ModeRegs() 2456 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetCRT2ModeRegs() 2459 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetCRT2ModeRegs() 2462 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC)) { SiS_SetCRT2ModeRegs() 2464 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) { SiS_SetCRT2ModeRegs() 2469 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetCRT2ModeRegs() 2471 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 0; SiS_SetCRT2ModeRegs() 2474 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x01,tempah); SiS_SetCRT2ModeRegs() 2479 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 0x08; SiS_SetCRT2ModeRegs() 2480 else if(!(SiS_IsDualEdge(SiS_Pr))) tempah |= 0x08; SiS_SetCRT2ModeRegs() 2481 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2E,0xF0,tempah); SiS_SetCRT2ModeRegs() 2486 if((SiS_Pr->SiS_ModeType == ModeVGA) && (!(SiS_Pr->SiS_VBInfo & SetInSlaveMode))) { SiS_SetCRT2ModeRegs() 2491 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_SetCRT2ModeRegs() 2492 if(SiS_Pr->PanelXRes < 1280 && SiS_Pr->PanelYRes < 960) tempah &= ~0x80; SiS_SetCRT2ModeRegs() 2495 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2ModeRegs() 2496 if(!(SiS_Pr->SiS_TVMode & (TVSetYPbPr750p | TVSetYPbPr525p))) { SiS_SetCRT2ModeRegs() 2497 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetCRT2ModeRegs() 2503 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x0D,0x40,tempah); SiS_SetCRT2ModeRegs() 2506 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_SetCRT2ModeRegs() 2507 if(SiS_Pr->PanelXRes < 1280 && SiS_Pr->PanelYRes < 960) tempah = 0; SiS_SetCRT2ModeRegs() 2510 if(SiS_IsDualLink(SiS_Pr)) tempah |= 0x40; SiS_SetCRT2ModeRegs() 2512 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2ModeRegs() 2513 if(SiS_Pr->SiS_TVMode & TVRPLLDIV2XO) { SiS_SetCRT2ModeRegs() 2518 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0C,tempah); SiS_SetCRT2ModeRegs() 2522 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2ModeRegs() 2527 if((modeflag & CRT2Mode) && (SiS_Pr->SiS_ModeType > ModeVGA)) { SiS_SetCRT2ModeRegs() 2528 if(SiS_Pr->SiS_VBInfo & DriverMode) { SiS_SetCRT2ModeRegs() 2533 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) tempah |= 0x02; SiS_SetCRT2ModeRegs() 2535 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) tempah ^= 0x01; SiS_SetCRT2ModeRegs() 2537 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 1; SiS_SetCRT2ModeRegs() 2539 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2e,0xF0,tempah); SiS_SetCRT2ModeRegs() 2546 if( (!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) && (SiS_Pr->SiS_ModeType > ModeVGA) ) { SiS_SetCRT2ModeRegs() 2551 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 0; SiS_SetCRT2ModeRegs() 2553 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x01,tempah); SiS_SetCRT2ModeRegs() 2562 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetCRT2ModeRegs() 2564 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2ModeRegs() 2567 /* unsigned char bridgerev = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x01); */ SiS_SetCRT2ModeRegs() 2583 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT2ModeRegs() 2585 if(SiS_IsDualEdge(SiS_Pr)) { SiS_SetCRT2ModeRegs() 2589 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,tempbl,tempah); SiS_SetCRT2ModeRegs() 2601 if((IS_SIS740) || (SiS_Pr->ChipType >= SIS_661) || (SiS_Pr->SiS_ROMNew)) { SiS_SetCRT2ModeRegs() 2604 if((SiS_Pr->SiS_VBInfo & DisableCRT2Display) || SiS_SetCRT2ModeRegs() 2605 ((SiS_Pr->SiS_ROMNew) && (!(ROMAddr[0x5b] & 0x04)))) { SiS_SetCRT2ModeRegs() 2609 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2c,0xcf,tempah); SiS_SetCRT2ModeRegs() 2610 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x21,0x3f,tempbl); SiS_SetCRT2ModeRegs() 2611 } else if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_SetCRT2ModeRegs() 2613 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2c,0xcf); /* For 301 */ SiS_SetCRT2ModeRegs() 2614 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x21,0x3f); SiS_SetCRT2ModeRegs() 2615 } else if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_SetCRT2ModeRegs() 2616 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2c,0x30); /* For 30xLV */ SiS_SetCRT2ModeRegs() 2617 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x21,0xc0); SiS_SetCRT2ModeRegs() 2618 } else if(SiS_Pr->SiS_VBType & VB_NoLCD) { /* For 301B-DH */ SiS_SetCRT2ModeRegs() 2621 if(SiS_Pr->SiS_TVBlue == 0) { SiS_SetCRT2ModeRegs() 2623 } else if(SiS_Pr->SiS_TVBlue == -1) { SiS_SetCRT2ModeRegs() 2629 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2c,tempbl,tempah); SiS_SetCRT2ModeRegs() 2630 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x21,tempbl2,tempah2); SiS_SetCRT2ModeRegs() 2634 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT2ModeRegs() 2636 if(SiS_IsDualEdge(SiS_Pr)) { SiS_SetCRT2ModeRegs() 2640 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2c,tempbl,tempah); SiS_SetCRT2ModeRegs() 2641 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x21,tempbl2,tempah2); SiS_SetCRT2ModeRegs() 2646 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) tempah = 0x00; SiS_SetCRT2ModeRegs() 2647 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x23,0x7f,tempah); SiS_SetCRT2ModeRegs() 2651 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT2ModeRegs() 2653 if(!(SiS_IsDualEdge(SiS_Pr))) tempah = 0x80; SiS_SetCRT2ModeRegs() 2655 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x23,tempbl,tempah); SiS_SetCRT2ModeRegs() 2660 } else if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetCRT2ModeRegs() 2663 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x21,0x3f); SiS_SetCRT2ModeRegs() 2665 if((SiS_Pr->SiS_VBInfo & DisableCRT2Display) || SiS_SetCRT2ModeRegs() 2666 ((SiS_Pr->SiS_VBType & VB_NoLCD) && SiS_SetCRT2ModeRegs() 2667 (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD))) { SiS_SetCRT2ModeRegs() 2668 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x23,0x7F); SiS_SetCRT2ModeRegs() 2670 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x23,0x80); SiS_SetCRT2ModeRegs() 2676 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetCRT2ModeRegs() 2677 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x0D,0x80); SiS_SetCRT2ModeRegs() 2678 if(SiS_Pr->SiS_VBType & VB_SIS30xCLV) { SiS_SetCRT2ModeRegs() 2679 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x3A,0xC0); SiS_SetCRT2ModeRegs() 2686 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2ModeRegs() 2688 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetCRT2ModeRegs() 2692 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT2ModeRegs() 2694 if(SiS_IsDualEdge(SiS_Pr)) tempbl = 0xff; SiS_SetCRT2ModeRegs() 2696 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,tempbl,tempah); SiS_SetCRT2ModeRegs() 2698 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) { SiS_SetCRT2ModeRegs() 2699 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb); SiS_SetCRT2ModeRegs() 2702 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2c,0x30); SiS_SetCRT2ModeRegs() 2704 } else if(SiS_Pr->ChipType == SIS_550) { SiS_SetCRT2ModeRegs() 2706 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb); SiS_SetCRT2ModeRegs() 2707 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2c,0x30); SiS_SetCRT2ModeRegs() 2723 SiS_GetResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_GetResInfo() argument 2726 return ((unsigned short)SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo); SiS_GetResInfo() 2728 return ((unsigned short)SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO); SiS_GetResInfo() 2732 SiS_GetCRT2ResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_GetCRT2ResInfo() argument 2736 if(SiS_Pr->UseCustomMode) { SiS_GetCRT2ResInfo() 2737 xres = SiS_Pr->CHDisplay; SiS_GetCRT2ResInfo() 2738 if(SiS_Pr->CModeFlag & HalfDCLK) xres <<= 1; SiS_GetCRT2ResInfo() 2739 SiS_Pr->SiS_VGAHDE = SiS_Pr->SiS_HDE = xres; SiS_GetCRT2ResInfo() 2741 SiS_Pr->SiS_VGAVDE = SiS_Pr->SiS_VDE = SiS_Pr->CVDisplay; SiS_GetCRT2ResInfo() 2745 resindex = SiS_GetResInfo(SiS_Pr,ModeNo,ModeIdIndex); SiS_GetCRT2ResInfo() 2748 xres = SiS_Pr->SiS_StResInfo[resindex].HTotal; SiS_GetCRT2ResInfo() 2749 yres = SiS_Pr->SiS_StResInfo[resindex].VTotal; SiS_GetCRT2ResInfo() 2751 xres = SiS_Pr->SiS_ModeResInfo[resindex].HTotal; SiS_GetCRT2ResInfo() 2752 yres = SiS_Pr->SiS_ModeResInfo[resindex].VTotal; SiS_GetCRT2ResInfo() 2753 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetCRT2ResInfo() 2756 if(!SiS_Pr->SiS_IF_DEF_DSTN && !SiS_Pr->SiS_IF_DEF_FSTN) { SiS_GetCRT2ResInfo() 2758 if((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->SiS_IF_DEF_LVDS == 1)) { SiS_GetCRT2ResInfo() 2759 if((ModeNo != 0x03) && (SiS_Pr->SiS_SetFlag & SetDOSMode)) { SiS_GetCRT2ResInfo() 2762 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x3a) & 0x01) { SiS_GetCRT2ResInfo() 2772 if((SiS_Pr->SiS_VBType & VB_SISVB) && (!(SiS_Pr->SiS_VBType & VB_NoLCD))) { SiS_GetCRT2ResInfo() 2774 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetCRT2ResInfo() 2775 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetCRT2ResInfo() 2777 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) { SiS_GetCRT2ResInfo() 2778 if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetCRT2ResInfo() 2786 if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetCRT2ResInfo() 2791 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) { SiS_GetCRT2ResInfo() 2796 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) { SiS_GetCRT2ResInfo() 2805 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetCRT2ResInfo() 2806 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToHiVision)) { SiS_GetCRT2ResInfo() 2811 if(SiS_Pr->SiS_SetFlag & SetDOSMode) { SiS_GetCRT2ResInfo() 2813 if(SiS_Pr->ChipType >= SIS_315H) { SiS_GetCRT2ResInfo() 2814 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x17) & 0x80) yres = 480; SiS_GetCRT2ResInfo() 2816 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x80) yres = 480; SiS_GetCRT2ResInfo() 2818 if(SiS_Pr->SiS_IF_DEF_DSTN || SiS_Pr->SiS_IF_DEF_FSTN) yres = 480; SiS_GetCRT2ResInfo() 2822 SiS_Pr->SiS_VGAHDE = SiS_Pr->SiS_HDE = xres; SiS_GetCRT2ResInfo() 2823 SiS_Pr->SiS_VGAVDE = SiS_Pr->SiS_VDE = yres; SiS_GetCRT2ResInfo() 2831 SiS_GetCRT2Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetCRT2Ptr() argument 2838 tempal = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_GetCRT2Ptr() 2840 tempal = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_GetCRT2Ptr() 2841 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_GetCRT2Ptr() 2844 if((SiS_Pr->SiS_VBType & VB_SISVB) && (SiS_Pr->SiS_IF_DEF_LVDS == 0)) { SiS_GetCRT2Ptr() 2846 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { /* LCD */ SiS_GetCRT2Ptr() 2848 tempbx = SiS_Pr->SiS_LCDResInfo; SiS_GetCRT2Ptr() 2849 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) tempbx += 32; SiS_GetCRT2Ptr() 2852 if(SiS_Pr->SiS_LCDResInfo == Panel_1680x1050) { SiS_GetCRT2Ptr() 2855 } else if((SiS_Pr->SiS_LCDResInfo == Panel_1280x800) || SiS_GetCRT2Ptr() 2856 (SiS_Pr->SiS_LCDResInfo == Panel_1280x800_2) || SiS_GetCRT2Ptr() 2857 (SiS_Pr->SiS_LCDResInfo == Panel_1280x854)) { SiS_GetCRT2Ptr() 2861 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetCRT2Ptr() 2867 tempal = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC_NS; SiS_GetCRT2Ptr() 2872 if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) { SiS_GetCRT2Ptr() 2873 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) { SiS_GetCRT2Ptr() 2874 if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetCRT2Ptr() 2876 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) tempbx++; SiS_GetCRT2Ptr() 2884 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_GetCRT2Ptr() 2885 /* if(SiS_Pr->SiS_VGAVDE > 480) SiS_Pr->SiS_TVMode &= (~TVSetTVSimuMode); */ SiS_GetCRT2Ptr() 2887 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_GetCRT2Ptr() 2889 if(!(SiS_Pr->SiS_TVMode & TVSetTVSimuMode)) tempbx = 14; SiS_GetCRT2Ptr() 2891 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetCRT2Ptr() 2892 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) tempbx = 7; SiS_GetCRT2Ptr() 2893 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) tempbx = 6; SiS_GetCRT2Ptr() 2895 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) tempbx += 5; SiS_GetCRT2Ptr() 2897 if(SiS_Pr->SiS_TVMode & TVSetPAL) tempbx = 3; SiS_GetCRT2Ptr() 2899 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) tempbx += 5; SiS_GetCRT2Ptr() 2907 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTVNoHiVision) { SiS_GetCRT2Ptr() 2911 if(SiS_Pr->SiS_TVMode & (TVSetPAL | TVSetPALN)) tempal = 9; SiS_GetCRT2Ptr() 2917 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetCRT2Ptr() 2918 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) tempal = 8; SiS_GetCRT2Ptr() 2927 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetCRT2Ptr() 2928 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) tempal = 8; SiS_GetCRT2Ptr() 2932 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetCRT2Ptr() 2933 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) tempal = 9; SiS_GetCRT2Ptr() 2946 if((SiS_Pr->SiS_IF_DEF_CH70xx) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_GetCRT2Ptr() 2949 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_GetCRT2Ptr() 2951 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_GetCRT2Ptr() 2952 if(SiS_Pr->SiS_CHSOverScan) tempbx = 99; SiS_GetCRT2Ptr() 2954 if(SiS_Pr->SiS_TVMode & TVSetPALM) tempbx = 94; SiS_GetCRT2Ptr() 2955 else if(SiS_Pr->SiS_TVMode & TVSetPALN) tempbx = 96; SiS_GetCRT2Ptr() 2958 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) tempbx++; SiS_GetCRT2Ptr() 2963 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetCRT2Ptr() 2981 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetCRT2Ptr() 2988 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; SiS_GetCRT2Ptr() 2991 if(SiS_Pr->SiS_LCDInfo & LCDPass11) tempbx = 30; SiS_GetCRT2Ptr() 2994 if(SiS_Pr->SiS_CustomT == CUT_BARCO1024) { SiS_GetCRT2Ptr() 2996 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; SiS_GetCRT2Ptr() 2997 } else if(SiS_Pr->SiS_CustomT == CUT_PANEL848 || SiS_Pr->SiS_CustomT == CUT_PANEL856) { SiS_GetCRT2Ptr() 2999 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; SiS_GetCRT2Ptr() 3011 SiS_GetRAMDAC2DATA(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetRAMDAC2DATA() argument 3017 SiS_Pr->SiS_RVBHCMAX = 1; SiS_GetRAMDAC2DATA() 3018 SiS_Pr->SiS_RVBHCFACT = 1; SiS_GetRAMDAC2DATA() 3022 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetRAMDAC2DATA() 3023 index = SiS_GetModePtr(SiS_Pr,ModeNo,ModeIdIndex); SiS_GetRAMDAC2DATA() 3025 tempax = SiS_Pr->SiS_StandTable[index].CRTC[0]; SiS_GetRAMDAC2DATA() 3026 tempbx = SiS_Pr->SiS_StandTable[index].CRTC[6]; SiS_GetRAMDAC2DATA() 3027 temp1 = SiS_Pr->SiS_StandTable[index].CRTC[7]; SiS_GetRAMDAC2DATA() 3033 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetRAMDAC2DATA() 3034 index = SiS_GetRefCRT1CRTC(SiS_Pr, RefreshRateTableIndex, SiS_Pr->SiS_UseWideCRT2); SiS_GetRAMDAC2DATA() 3036 tempax = SiS_Pr->SiS_CRT1Table[index].CR[0]; SiS_GetRAMDAC2DATA() 3037 tempax |= (SiS_Pr->SiS_CRT1Table[index].CR[14] << 8); SiS_GetRAMDAC2DATA() 3039 tempbx = SiS_Pr->SiS_CRT1Table[index].CR[6]; SiS_GetRAMDAC2DATA() 3040 tempcx = SiS_Pr->SiS_CRT1Table[index].CR[13] << 8; SiS_GetRAMDAC2DATA() 3044 temp1 = SiS_Pr->SiS_CRT1Table[index].CR[7]; SiS_GetRAMDAC2DATA() 3059 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_HT = tempax; SiS_GetRAMDAC2DATA() 3060 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_VT = tempbx; SiS_GetRAMDAC2DATA() 3064 SiS_CalcPanelLinkTiming(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_CalcPanelLinkTiming() argument 3069 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcPanelLinkTiming() 3070 if(SiS_Pr->SiS_LCDInfo & LCDPass11) { SiS_CalcPanelLinkTiming() 3071 if(SiS_Pr->UseCustomMode) { SiS_CalcPanelLinkTiming() 3072 ResIndex = SiS_Pr->CHTotal; SiS_CalcPanelLinkTiming() 3073 if(SiS_Pr->CModeFlag & HalfDCLK) ResIndex <<= 1; SiS_CalcPanelLinkTiming() 3074 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_HT = ResIndex; SiS_CalcPanelLinkTiming() 3075 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_VT = SiS_Pr->CVTotal; SiS_CalcPanelLinkTiming() 3078 ResIndex = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_CalcPanelLinkTiming() 3080 ResIndex = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC_NS; SiS_CalcPanelLinkTiming() 3083 if(SiS_Pr->Alternate1600x1200) ResIndex = 0x20; /* 1600x1200 LCDA */ SiS_CalcPanelLinkTiming() 3084 else if(SiS_Pr->SiS_IF_DEF_LVDS == 1) ResIndex = 0x21; /* 1600x1200 LVDS */ SiS_CalcPanelLinkTiming() 3086 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_NoScaleData[ResIndex].VGAHT; SiS_CalcPanelLinkTiming() 3087 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_NoScaleData[ResIndex].VGAVT; SiS_CalcPanelLinkTiming() 3088 SiS_Pr->SiS_HT = SiS_Pr->SiS_NoScaleData[ResIndex].LCDHT; SiS_CalcPanelLinkTiming() 3089 SiS_Pr->SiS_VT = SiS_Pr->SiS_NoScaleData[ResIndex].LCDVT; SiS_CalcPanelLinkTiming() 3092 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_HT = SiS_Pr->PanelHT; SiS_CalcPanelLinkTiming() 3093 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_VT = SiS_Pr->PanelVT; SiS_CalcPanelLinkTiming() 3097 SiS_Pr->SiS_HDE = SiS_Pr->PanelXRes; SiS_CalcPanelLinkTiming() 3098 SiS_Pr->SiS_VDE = SiS_Pr->PanelYRes; SiS_CalcPanelLinkTiming() 3099 SiS_Pr->SiS_HT = SiS_Pr->PanelHT; SiS_CalcPanelLinkTiming() 3100 SiS_Pr->SiS_VT = SiS_Pr->PanelVT; SiS_CalcPanelLinkTiming() 3101 SiS_Pr->SiS_VGAHT = SiS_Pr->PanelHT - (SiS_Pr->PanelXRes - SiS_Pr->SiS_VGAHDE); SiS_CalcPanelLinkTiming() 3102 SiS_Pr->SiS_VGAVT = SiS_Pr->PanelVT - (SiS_Pr->PanelYRes - SiS_Pr->SiS_VGAVDE); SiS_CalcPanelLinkTiming() 3107 SiS_GetCRT2DataLVDS(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetCRT2DataLVDS() argument 3113 SiS_GetCRT2ResInfo(SiS_Pr, ModeNo, ModeIdIndex); SiS_GetCRT2DataLVDS() 3115 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetCRT2DataLVDS() 3116 SiS_Pr->SiS_RVBHCMAX = 1; SiS_GetCRT2DataLVDS() 3117 SiS_Pr->SiS_RVBHCFACT = 1; SiS_GetCRT2DataLVDS() 3118 SiS_Pr->SiS_NewFlickerMode = 0; SiS_GetCRT2DataLVDS() 3119 SiS_Pr->SiS_RVBHRS = 50; SiS_GetCRT2DataLVDS() 3120 SiS_Pr->SiS_RY1COE = 0; SiS_GetCRT2DataLVDS() 3121 SiS_Pr->SiS_RY2COE = 0; SiS_GetCRT2DataLVDS() 3122 SiS_Pr->SiS_RY3COE = 0; SiS_GetCRT2DataLVDS() 3123 SiS_Pr->SiS_RY4COE = 0; SiS_GetCRT2DataLVDS() 3124 SiS_Pr->SiS_RVBHRS2 = 0; SiS_GetCRT2DataLVDS() 3127 if((SiS_Pr->SiS_VBType & VB_SISVB) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_GetCRT2DataLVDS() 3130 SiS_CalcPanelLinkTiming(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2DataLVDS() 3131 SiS_CalcLCDACRT1Timing(SiS_Pr, ModeNo, ModeIdIndex); SiS_GetCRT2DataLVDS() 3137 backup = SiS_Pr->SiS_IF_DEF_LVDS; SiS_GetCRT2DataLVDS() 3138 if((SiS_Pr->SiS_VBType & VB_NoLCD) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) { SiS_GetCRT2DataLVDS() 3139 SiS_Pr->SiS_IF_DEF_LVDS = 1; SiS_GetCRT2DataLVDS() 3142 SiS_GetCRT2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex, SiS_GetCRT2DataLVDS() 3145 SiS_Pr->SiS_IF_DEF_LVDS = backup; SiS_GetCRT2DataLVDS() 3148 case 10: LVDSData = SiS_Pr->SiS_LVDS320x240Data_1; break; SiS_GetCRT2DataLVDS() 3149 case 14: LVDSData = SiS_Pr->SiS_LVDS320x240Data_2; break; SiS_GetCRT2DataLVDS() 3150 case 12: LVDSData = SiS_Pr->SiS_LVDS640x480Data_1; break; SiS_GetCRT2DataLVDS() 3151 case 16: LVDSData = SiS_Pr->SiS_LVDS800x600Data_1; break; SiS_GetCRT2DataLVDS() 3152 case 18: LVDSData = SiS_Pr->SiS_LVDS1024x600Data_1; break; SiS_GetCRT2DataLVDS() 3153 case 20: LVDSData = SiS_Pr->SiS_LVDS1024x768Data_1; break; SiS_GetCRT2DataLVDS() 3155 case 80: LVDSData = SiS_Pr->SiS_LVDSBARCO1366Data_1; break; SiS_GetCRT2DataLVDS() 3156 case 81: LVDSData = SiS_Pr->SiS_LVDSBARCO1366Data_2; break; SiS_GetCRT2DataLVDS() 3157 case 82: LVDSData = SiS_Pr->SiS_LVDSBARCO1024Data_1; break; SiS_GetCRT2DataLVDS() 3158 case 84: LVDSData = SiS_Pr->SiS_LVDS848x480Data_1; break; SiS_GetCRT2DataLVDS() 3159 case 85: LVDSData = SiS_Pr->SiS_LVDS848x480Data_2; break; SiS_GetCRT2DataLVDS() 3161 case 90: LVDSData = SiS_Pr->SiS_CHTVUNTSCData; break; SiS_GetCRT2DataLVDS() 3162 case 91: LVDSData = SiS_Pr->SiS_CHTVONTSCData; break; SiS_GetCRT2DataLVDS() 3163 case 92: LVDSData = SiS_Pr->SiS_CHTVUPALData; break; SiS_GetCRT2DataLVDS() 3164 case 93: LVDSData = SiS_Pr->SiS_CHTVOPALData; break; SiS_GetCRT2DataLVDS() 3165 case 94: LVDSData = SiS_Pr->SiS_CHTVUPALMData; break; SiS_GetCRT2DataLVDS() 3166 case 95: LVDSData = SiS_Pr->SiS_CHTVOPALMData; break; SiS_GetCRT2DataLVDS() 3167 case 96: LVDSData = SiS_Pr->SiS_CHTVUPALNData; break; SiS_GetCRT2DataLVDS() 3168 case 97: LVDSData = SiS_Pr->SiS_CHTVOPALNData; break; SiS_GetCRT2DataLVDS() 3169 case 99: LVDSData = SiS_Pr->SiS_CHTVSOPALData; break; SiS_GetCRT2DataLVDS() 3173 SiS_Pr->SiS_VGAHT = (LVDSData+ResIndex)->VGAHT; SiS_GetCRT2DataLVDS() 3174 SiS_Pr->SiS_VGAVT = (LVDSData+ResIndex)->VGAVT; SiS_GetCRT2DataLVDS() 3175 SiS_Pr->SiS_HT = (LVDSData+ResIndex)->LCDHT; SiS_GetCRT2DataLVDS() 3176 SiS_Pr->SiS_VT = (LVDSData+ResIndex)->LCDVT; SiS_GetCRT2DataLVDS() 3178 SiS_CalcPanelLinkTiming(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2DataLVDS() 3181 if( (!(SiS_Pr->SiS_VBType & VB_SISVB)) && SiS_GetCRT2DataLVDS() 3182 (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && SiS_GetCRT2DataLVDS() 3183 (!(SiS_Pr->SiS_LCDInfo & LCDPass11)) ) { SiS_GetCRT2DataLVDS() 3184 if( (!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) || SiS_GetCRT2DataLVDS() 3185 (SiS_Pr->SiS_SetFlag & SetDOSMode) ) { SiS_GetCRT2DataLVDS() 3186 SiS_Pr->SiS_HDE = SiS_Pr->PanelXRes; SiS_GetCRT2DataLVDS() 3187 SiS_Pr->SiS_VDE = SiS_Pr->PanelYRes; SiS_GetCRT2DataLVDS() 3189 if(SiS_Pr->SiS_CustomT == CUT_BARCO1366) { SiS_GetCRT2DataLVDS() 3191 SiS_Pr->SiS_HDE = 1280; SiS_GetCRT2DataLVDS() 3192 SiS_Pr->SiS_VDE = 1024; SiS_GetCRT2DataLVDS() 3202 SiS_GetCRT2Data301(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetCRT2Data301() argument 3215 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetCRT2Data301() 3216 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SiS_GetCRT2Data301() 3217 } else if(SiS_Pr->UseCustomMode) { SiS_GetCRT2Data301() 3218 modeflag = SiS_Pr->CModeFlag; SiS_GetCRT2Data301() 3221 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetCRT2Data301() 3222 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_GetCRT2Data301() 3224 resinfo661 = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].ROMMODEIDX661; SiS_GetCRT2Data301() 3225 if( (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && SiS_GetCRT2Data301() 3226 (SiS_Pr->SiS_SetFlag & LCDVESATiming) && SiS_GetCRT2Data301() 3228 (SiS_Pr->SiS_NeedRomModeData) ) { SiS_GetCRT2Data301() 3229 if((ROMAddr = GetLCDStructPtr661(SiS_Pr))) { SiS_GetCRT2Data301() 3232 ROMAddr = SiS_Pr->VirtualRomBase; SiS_GetCRT2Data301() 3239 SiS_Pr->SiS_NewFlickerMode = 0; SiS_GetCRT2Data301() 3240 SiS_Pr->SiS_RVBHRS = 50; SiS_GetCRT2Data301() 3241 SiS_Pr->SiS_RY1COE = 0; SiS_GetCRT2Data301() 3242 SiS_Pr->SiS_RY2COE = 0; SiS_GetCRT2Data301() 3243 SiS_Pr->SiS_RY3COE = 0; SiS_GetCRT2Data301() 3244 SiS_Pr->SiS_RY4COE = 0; SiS_GetCRT2Data301() 3245 SiS_Pr->SiS_RVBHRS2 = 0; SiS_GetCRT2Data301() 3247 SiS_GetCRT2ResInfo(SiS_Pr,ModeNo,ModeIdIndex); SiS_GetCRT2Data301() 3249 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) { SiS_GetCRT2Data301() 3251 if(SiS_Pr->UseCustomMode) { SiS_GetCRT2Data301() 3253 SiS_Pr->SiS_RVBHCMAX = 1; SiS_GetCRT2Data301() 3254 SiS_Pr->SiS_RVBHCFACT = 1; SiS_GetCRT2Data301() 3255 SiS_Pr->SiS_HDE = SiS_Pr->SiS_VGAHDE; SiS_GetCRT2Data301() 3256 SiS_Pr->SiS_VDE = SiS_Pr->SiS_VGAVDE; SiS_GetCRT2Data301() 3258 tempax = SiS_Pr->CHTotal; SiS_GetCRT2Data301() 3260 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_HT = tempax; SiS_GetCRT2Data301() 3261 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_VT = SiS_Pr->CVTotal; SiS_GetCRT2Data301() 3265 SiS_GetRAMDAC2DATA(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2Data301() 3269 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_GetCRT2Data301() 3271 SiS_GetCRT2Ptr(SiS_Pr,ModeNo,ModeIdIndex,RefreshRateTableIndex, SiS_GetCRT2Data301() 3275 case 2: TVPtr = SiS_Pr->SiS_ExtHiTVData; break; SiS_GetCRT2Data301() 3276 case 3: TVPtr = SiS_Pr->SiS_ExtPALData; break; SiS_GetCRT2Data301() 3277 case 4: TVPtr = SiS_Pr->SiS_ExtNTSCData; break; SiS_GetCRT2Data301() 3278 case 5: TVPtr = SiS_Pr->SiS_Ext525iData; break; SiS_GetCRT2Data301() 3279 case 6: TVPtr = SiS_Pr->SiS_Ext525pData; break; SiS_GetCRT2Data301() 3280 case 7: TVPtr = SiS_Pr->SiS_Ext750pData; break; SiS_GetCRT2Data301() 3281 case 8: TVPtr = SiS_Pr->SiS_StPALData; break; SiS_GetCRT2Data301() 3282 case 9: TVPtr = SiS_Pr->SiS_StNTSCData; break; SiS_GetCRT2Data301() 3283 case 10: TVPtr = SiS_Pr->SiS_St525iData; break; SiS_GetCRT2Data301() 3284 case 11: TVPtr = SiS_Pr->SiS_St525pData; break; SiS_GetCRT2Data301() 3285 case 12: TVPtr = SiS_Pr->SiS_St750pData; break; SiS_GetCRT2Data301() 3286 case 13: TVPtr = SiS_Pr->SiS_St1HiTVData; break; SiS_GetCRT2Data301() 3287 case 14: TVPtr = SiS_Pr->SiS_St2HiTVData; break; SiS_GetCRT2Data301() 3288 default: TVPtr = SiS_Pr->SiS_StPALData; break; SiS_GetCRT2Data301() 3291 SiS_Pr->SiS_RVBHCMAX = (TVPtr+ResIndex)->RVBHCMAX; SiS_GetCRT2Data301() 3292 SiS_Pr->SiS_RVBHCFACT = (TVPtr+ResIndex)->RVBHCFACT; SiS_GetCRT2Data301() 3293 SiS_Pr->SiS_VGAHT = (TVPtr+ResIndex)->VGAHT; SiS_GetCRT2Data301() 3294 SiS_Pr->SiS_VGAVT = (TVPtr+ResIndex)->VGAVT; SiS_GetCRT2Data301() 3295 SiS_Pr->SiS_HDE = (TVPtr+ResIndex)->TVHDE; SiS_GetCRT2Data301() 3296 SiS_Pr->SiS_VDE = (TVPtr+ResIndex)->TVVDE; SiS_GetCRT2Data301() 3297 SiS_Pr->SiS_RVBHRS2 = (TVPtr+ResIndex)->RVBHRS2 & 0x0fff; SiS_GetCRT2Data301() 3299 SiS_Pr->SiS_RVBHRS = (TVPtr+ResIndex)->HALFRVBHRS; SiS_GetCRT2Data301() 3300 if(SiS_Pr->SiS_RVBHRS2) { SiS_GetCRT2Data301() 3301 SiS_Pr->SiS_RVBHRS2 = ((SiS_Pr->SiS_RVBHRS2 + 3) >> 1) - 3; SiS_GetCRT2Data301() 3303 if((TVPtr+ResIndex)->RVBHRS2 & 0x8000) SiS_Pr->SiS_RVBHRS2 -= tempax; SiS_GetCRT2Data301() 3304 else SiS_Pr->SiS_RVBHRS2 += tempax; SiS_GetCRT2Data301() 3307 SiS_Pr->SiS_RVBHRS = (TVPtr+ResIndex)->RVBHRS; SiS_GetCRT2Data301() 3309 SiS_Pr->SiS_NewFlickerMode = ((TVPtr+ResIndex)->FlickerMode) << 7; SiS_GetCRT2Data301() 3311 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_GetCRT2Data301() 3317 SiS_Pr->SiS_NewFlickerMode = 0x40; SiS_GetCRT2Data301() 3320 if(SiS_Pr->SiS_VGAVDE == 350) SiS_Pr->SiS_TVMode |= TVSetTVSimuMode; SiS_GetCRT2Data301() 3322 SiS_Pr->SiS_HT = ExtHiTVHT; SiS_GetCRT2Data301() 3323 SiS_Pr->SiS_VT = ExtHiTVVT; SiS_GetCRT2Data301() 3324 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_GetCRT2Data301() 3325 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) { SiS_GetCRT2Data301() 3326 SiS_Pr->SiS_HT = StHiTVHT; SiS_GetCRT2Data301() 3327 SiS_Pr->SiS_VT = StHiTVVT; SiS_GetCRT2Data301() 3331 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetCRT2Data301() 3333 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) { SiS_GetCRT2Data301() 3334 SiS_Pr->SiS_HT = 1650; SiS_GetCRT2Data301() 3335 SiS_Pr->SiS_VT = 750; SiS_GetCRT2Data301() 3336 } else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) { SiS_GetCRT2Data301() 3337 SiS_Pr->SiS_HT = NTSCHT; SiS_GetCRT2Data301() 3338 if(SiS_Pr->SiS_TVMode & TVSet525p1024) SiS_Pr->SiS_HT = NTSC2HT; SiS_GetCRT2Data301() 3339 SiS_Pr->SiS_VT = NTSCVT; SiS_GetCRT2Data301() 3341 SiS_Pr->SiS_HT = NTSCHT; SiS_GetCRT2Data301() 3342 if(SiS_Pr->SiS_TVMode & TVSetNTSC1024) SiS_Pr->SiS_HT = NTSC2HT; SiS_GetCRT2Data301() 3343 SiS_Pr->SiS_VT = NTSCVT; SiS_GetCRT2Data301() 3348 SiS_Pr->SiS_RY1COE = (TVPtr+ResIndex)->RY1COE; SiS_GetCRT2Data301() 3349 SiS_Pr->SiS_RY2COE = (TVPtr+ResIndex)->RY2COE; SiS_GetCRT2Data301() 3350 SiS_Pr->SiS_RY3COE = (TVPtr+ResIndex)->RY3COE; SiS_GetCRT2Data301() 3351 SiS_Pr->SiS_RY4COE = (TVPtr+ResIndex)->RY4COE; SiS_GetCRT2Data301() 3354 SiS_Pr->SiS_RY1COE = 0x00; SiS_GetCRT2Data301() 3355 SiS_Pr->SiS_RY2COE = 0xf4; SiS_GetCRT2Data301() 3356 SiS_Pr->SiS_RY3COE = 0x10; SiS_GetCRT2Data301() 3357 SiS_Pr->SiS_RY4COE = 0x38; SiS_GetCRT2Data301() 3360 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) { SiS_GetCRT2Data301() 3361 SiS_Pr->SiS_HT = NTSCHT; SiS_GetCRT2Data301() 3362 if(SiS_Pr->SiS_TVMode & TVSetNTSC1024) SiS_Pr->SiS_HT = NTSC2HT; SiS_GetCRT2Data301() 3363 SiS_Pr->SiS_VT = NTSCVT; SiS_GetCRT2Data301() 3365 SiS_Pr->SiS_HT = PALHT; SiS_GetCRT2Data301() 3366 SiS_Pr->SiS_VT = PALVT; SiS_GetCRT2Data301() 3371 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetCRT2Data301() 3373 SiS_Pr->SiS_RVBHCMAX = 1; SiS_GetCRT2Data301() 3374 SiS_Pr->SiS_RVBHCFACT = 1; SiS_GetCRT2Data301() 3376 if(SiS_Pr->UseCustomMode) { SiS_GetCRT2Data301() 3378 SiS_Pr->SiS_HDE = SiS_Pr->SiS_VGAHDE; SiS_GetCRT2Data301() 3379 SiS_Pr->SiS_VDE = SiS_Pr->SiS_VGAVDE; SiS_GetCRT2Data301() 3381 tempax = SiS_Pr->CHTotal; SiS_GetCRT2Data301() 3383 SiS_Pr->SiS_VGAHT = SiS_Pr->SiS_HT = tempax; SiS_GetCRT2Data301() 3384 SiS_Pr->SiS_VGAVT = SiS_Pr->SiS_VT = SiS_Pr->CVTotal; SiS_GetCRT2Data301() 3390 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_GetCRT2Data301() 3392 SiS_Pr->SiS_VGAHT = SiS_Pr->PanelHT; SiS_GetCRT2Data301() 3393 SiS_Pr->SiS_VGAVT = SiS_Pr->PanelVT; SiS_GetCRT2Data301() 3394 SiS_Pr->SiS_HT = SiS_Pr->PanelHT; SiS_GetCRT2Data301() 3395 SiS_Pr->SiS_VT = SiS_Pr->PanelVT; SiS_GetCRT2Data301() 3398 } else if( (!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) && (romptr) && (ROMAddr) ) { SiS_GetCRT2Data301() 3401 SiS_Pr->SiS_RVBHCMAX = ROMAddr[romptr]; SiS_GetCRT2Data301() 3402 SiS_Pr->SiS_RVBHCFACT = ROMAddr[romptr+1]; SiS_GetCRT2Data301() 3403 SiS_Pr->SiS_VGAHT = ROMAddr[romptr+2] | ((ROMAddr[romptr+3] & 0x0f) << 8); SiS_GetCRT2Data301() 3404 SiS_Pr->SiS_VGAVT = (ROMAddr[romptr+4] << 4) | ((ROMAddr[romptr+3] & 0xf0) >> 4); SiS_GetCRT2Data301() 3405 SiS_Pr->SiS_HT = ROMAddr[romptr+5] | ((ROMAddr[romptr+6] & 0x0f) << 8); SiS_GetCRT2Data301() 3406 SiS_Pr->SiS_VT = (ROMAddr[romptr+7] << 4) | ((ROMAddr[romptr+6] & 0xf0) >> 4); SiS_GetCRT2Data301() 3407 SiS_Pr->SiS_RVBHRS2 = ROMAddr[romptr+8] | ((ROMAddr[romptr+9] & 0x0f) << 8); SiS_GetCRT2Data301() 3408 if((SiS_Pr->SiS_RVBHRS2) && (modeflag & HalfDCLK)) { SiS_GetCRT2Data301() 3409 SiS_Pr->SiS_RVBHRS2 = ((SiS_Pr->SiS_RVBHRS2 + 3) >> 1) - 3; SiS_GetCRT2Data301() 3411 if(ROMAddr[romptr+9] & 0x80) SiS_Pr->SiS_RVBHRS2 -= tempax; SiS_GetCRT2Data301() 3412 else SiS_Pr->SiS_RVBHRS2 += tempax; SiS_GetCRT2Data301() 3414 if(SiS_Pr->SiS_VGAHT) gotit = true; SiS_GetCRT2Data301() 3416 SiS_Pr->SiS_LCDInfo |= DontExpandLCD; SiS_GetCRT2Data301() 3417 SiS_Pr->SiS_LCDInfo &= ~LCDPass11; SiS_GetCRT2Data301() 3418 SiS_Pr->SiS_RVBHCMAX = 1; SiS_GetCRT2Data301() 3419 SiS_Pr->SiS_RVBHCFACT = 1; SiS_GetCRT2Data301() 3420 SiS_Pr->SiS_VGAHT = SiS_Pr->PanelHT; SiS_GetCRT2Data301() 3421 SiS_Pr->SiS_VGAVT = SiS_Pr->PanelVT; SiS_GetCRT2Data301() 3422 SiS_Pr->SiS_HT = SiS_Pr->PanelHT; SiS_GetCRT2Data301() 3423 SiS_Pr->SiS_VT = SiS_Pr->PanelVT; SiS_GetCRT2Data301() 3424 SiS_Pr->SiS_RVBHRS2 = 0; SiS_GetCRT2Data301() 3433 SiS_GetCRT2Ptr(SiS_Pr,ModeNo,ModeIdIndex,RefreshRateTableIndex, SiS_GetCRT2Data301() 3437 case Panel_1024x768 : LCDPtr = SiS_Pr->SiS_ExtLCD1024x768Data; break; SiS_GetCRT2Data301() 3438 case Panel_1024x768 + 32: LCDPtr = SiS_Pr->SiS_St2LCD1024x768Data; break; SiS_GetCRT2Data301() 3440 case Panel_1280x720 + 32: LCDPtr = SiS_Pr->SiS_LCD1280x720Data; break; SiS_GetCRT2Data301() 3441 case Panel_1280x768_2 : LCDPtr = SiS_Pr->SiS_ExtLCD1280x768_2Data; break; SiS_GetCRT2Data301() 3442 case Panel_1280x768_2+ 32: LCDPtr = SiS_Pr->SiS_StLCD1280x768_2Data; break; SiS_GetCRT2Data301() 3444 case Panel_1280x800 + 32: LCDPtr = SiS_Pr->SiS_LCD1280x800Data; break; SiS_GetCRT2Data301() 3446 case Panel_1280x800_2+ 32: LCDPtr = SiS_Pr->SiS_LCD1280x800_2Data; break; SiS_GetCRT2Data301() 3448 case Panel_1280x854 + 32: LCDPtr = SiS_Pr->SiS_LCD1280x854Data; break; SiS_GetCRT2Data301() 3450 case Panel_1280x960 + 32: LCDPtr = SiS_Pr->SiS_LCD1280x960Data; break; SiS_GetCRT2Data301() 3451 case Panel_1280x1024 : LCDPtr = SiS_Pr->SiS_ExtLCD1280x1024Data; break; SiS_GetCRT2Data301() 3452 case Panel_1280x1024 + 32: LCDPtr = SiS_Pr->SiS_St2LCD1280x1024Data; break; SiS_GetCRT2Data301() 3453 case Panel_1400x1050 : LCDPtr = SiS_Pr->SiS_ExtLCD1400x1050Data; break; SiS_GetCRT2Data301() 3454 case Panel_1400x1050 + 32: LCDPtr = SiS_Pr->SiS_StLCD1400x1050Data; break; SiS_GetCRT2Data301() 3455 case Panel_1600x1200 : LCDPtr = SiS_Pr->SiS_ExtLCD1600x1200Data; break; SiS_GetCRT2Data301() 3456 case Panel_1600x1200 + 32: LCDPtr = SiS_Pr->SiS_StLCD1600x1200Data; break; SiS_GetCRT2Data301() 3458 case Panel_1680x1050 + 32: LCDPtr = SiS_Pr->SiS_LCD1680x1050Data; break; SiS_GetCRT2Data301() 3459 case 100 : LCDPtr = SiS_Pr->SiS_NoScaleData; break; SiS_GetCRT2Data301() 3462 case 201 : LCDPtr = SiS_Pr->SiS_St2LCD1280x1024Data; break; SiS_GetCRT2Data301() 3464 default : LCDPtr = SiS_Pr->SiS_ExtLCD1024x768Data; break; SiS_GetCRT2Data301() 3467 SiS_Pr->SiS_RVBHCMAX = (LCDPtr+ResIndex)->RVBHCMAX; SiS_GetCRT2Data301() 3468 SiS_Pr->SiS_RVBHCFACT = (LCDPtr+ResIndex)->RVBHCFACT; SiS_GetCRT2Data301() 3469 SiS_Pr->SiS_VGAHT = (LCDPtr+ResIndex)->VGAHT; SiS_GetCRT2Data301() 3470 SiS_Pr->SiS_VGAVT = (LCDPtr+ResIndex)->VGAVT; SiS_GetCRT2Data301() 3471 SiS_Pr->SiS_HT = (LCDPtr+ResIndex)->LCDHT; SiS_GetCRT2Data301() 3472 SiS_Pr->SiS_VT = (LCDPtr+ResIndex)->LCDVT; SiS_GetCRT2Data301() 3476 tempax = SiS_Pr->PanelXRes; SiS_GetCRT2Data301() 3477 tempbx = SiS_Pr->PanelYRes; SiS_GetCRT2Data301() 3479 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetCRT2Data301() 3481 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) { SiS_GetCRT2Data301() 3482 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetCRT2Data301() 3483 if (SiS_Pr->SiS_VGAVDE == 350) tempbx = 560; SiS_GetCRT2Data301() 3484 else if(SiS_Pr->SiS_VGAVDE == 400) tempbx = 640; SiS_GetCRT2Data301() 3487 if (SiS_Pr->SiS_VGAVDE == 357) tempbx = 527; SiS_GetCRT2Data301() 3488 else if(SiS_Pr->SiS_VGAVDE == 420) tempbx = 620; SiS_GetCRT2Data301() 3489 else if(SiS_Pr->SiS_VGAVDE == 525) tempbx = 775; SiS_GetCRT2Data301() 3490 else if(SiS_Pr->SiS_VGAVDE == 600) tempbx = 775; SiS_GetCRT2Data301() 3491 else if(SiS_Pr->SiS_VGAVDE == 350) tempbx = 560; SiS_GetCRT2Data301() 3492 else if(SiS_Pr->SiS_VGAVDE == 400) tempbx = 640; SiS_GetCRT2Data301() 3496 if (SiS_Pr->SiS_VGAVDE == 350) tempbx = 700; SiS_GetCRT2Data301() 3497 else if(SiS_Pr->SiS_VGAVDE == 400) tempbx = 800; SiS_GetCRT2Data301() 3498 else if(SiS_Pr->SiS_VGAVDE == 1024) tempbx = 960; SiS_GetCRT2Data301() 3501 if (SiS_Pr->SiS_VGAVDE == 360) tempbx = 768; SiS_GetCRT2Data301() 3502 else if(SiS_Pr->SiS_VGAVDE == 375) tempbx = 800; SiS_GetCRT2Data301() 3503 else if(SiS_Pr->SiS_VGAVDE == 405) tempbx = 864; SiS_GetCRT2Data301() 3506 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) { SiS_GetCRT2Data301() 3507 if (SiS_Pr->SiS_VGAVDE == 350) tempbx = 875; SiS_GetCRT2Data301() 3508 else if(SiS_Pr->SiS_VGAVDE == 400) tempbx = 1000; SiS_GetCRT2Data301() 3513 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetCRT2Data301() 3514 tempax = SiS_Pr->SiS_VGAHDE; SiS_GetCRT2Data301() 3515 tempbx = SiS_Pr->SiS_VGAVDE; SiS_GetCRT2Data301() 3518 SiS_Pr->SiS_HDE = tempax; SiS_GetCRT2Data301() 3519 SiS_Pr->SiS_VDE = tempbx; SiS_GetCRT2Data301() 3525 SiS_GetCRT2Data(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetCRT2Data() argument 3529 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_GetCRT2Data() 3531 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_GetCRT2Data() 3532 SiS_GetCRT2DataLVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2Data() 3534 if((SiS_Pr->SiS_VBType & VB_NoLCD) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) { SiS_GetCRT2Data() 3536 SiS_GetCRT2DataLVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2Data() 3538 SiS_GetCRT2Data301(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2Data() 3544 SiS_GetCRT2DataLVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_GetCRT2Data() 3554 SiS_GetLVDSDesPtr(struct SiS_Private *SiS_Pr) SiS_GetLVDSDesPtr() argument 3559 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetLVDSDesPtr() 3561 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLVDSDesPtr() 3562 if(SiS_Pr->SiS_LCDTypeInfo == 4) { SiS_GetLVDSDesPtr() 3563 if(SiS_Pr->SiS_CustomT == CUT_BARCO1366) { SiS_GetLVDSDesPtr() 3564 PanelDesPtr = SiS_Pr->SiS_PanelType04_1a; SiS_GetLVDSDesPtr() 3565 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLVDSDesPtr() 3566 PanelDesPtr = SiS_Pr->SiS_PanelType04_2a; SiS_GetLVDSDesPtr() 3568 } else if(SiS_Pr->SiS_CustomT == CUT_BARCO1024) { SiS_GetLVDSDesPtr() 3569 PanelDesPtr = SiS_Pr->SiS_PanelType04_1b; SiS_GetLVDSDesPtr() 3570 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLVDSDesPtr() 3571 PanelDesPtr = SiS_Pr->SiS_PanelType04_2b; SiS_GetLVDSDesPtr() 3582 SiS_GetLVDSDesData(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetLVDSDesData() argument 3588 SiS_Pr->SiS_LCDHDES = 0; SiS_GetLVDSDesData() 3589 SiS_Pr->SiS_LCDVDES = 0; SiS_GetLVDSDesData() 3592 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_GetLVDSDesData() 3595 if(SiS_Pr->SiS_IF_DEF_TRUMPION) { SiS_GetLVDSDesData() 3596 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_GetLVDSDesData() 3597 if(SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3598 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3605 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLVDSDesData() 3606 if(SiS_Pr->SiS_LCDResInfo == Panel_640x480 && SiS_Pr->SiS_LCDTypeInfo == 3) { SiS_GetLVDSDesData() 3607 SiS_Pr->SiS_LCDHDES = 8; SiS_GetLVDSDesData() 3608 if (SiS_Pr->SiS_VGAVDE >= 480) SiS_Pr->SiS_LCDVDES = 512; SiS_GetLVDSDesData() 3609 else if(SiS_Pr->SiS_VGAVDE >= 400) SiS_Pr->SiS_LCDVDES = 436; SiS_GetLVDSDesData() 3610 else if(SiS_Pr->SiS_VGAVDE >= 350) SiS_Pr->SiS_LCDVDES = 440; SiS_GetLVDSDesData() 3617 if( (SiS_Pr->UseCustomMode) || SiS_GetLVDSDesData() 3618 (SiS_Pr->SiS_LCDResInfo == Panel_Custom) || SiS_GetLVDSDesData() 3619 (SiS_Pr->SiS_CustomT == CUT_PANEL848) || SiS_GetLVDSDesData() 3620 (SiS_Pr->SiS_CustomT == CUT_PANEL856) || SiS_GetLVDSDesData() 3621 (SiS_Pr->SiS_LCDInfo & LCDPass11) ) { SiS_GetLVDSDesData() 3625 if(ModeNo <= 0x13) ResIndex = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_GetLVDSDesData() 3626 else ResIndex = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_GetLVDSDesData() 3628 if((SiS_Pr->SiS_VBType & VB_SIS30xBLV) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_GetLVDSDesData() 3631 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLVDSDesData() 3633 if(SiS_Pr->SiS_VGAHDE != SiS_Pr->PanelXRes) { SiS_GetLVDSDesData() 3634 SiS_Pr->SiS_LCDHDES = SiS_Pr->SiS_HT - ((SiS_Pr->PanelXRes - SiS_Pr->SiS_VGAHDE) / 2); SiS_GetLVDSDesData() 3636 if(SiS_Pr->SiS_VGAVDE != SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3637 SiS_Pr->SiS_LCDVDES = SiS_Pr->SiS_VT - ((SiS_Pr->PanelYRes - SiS_Pr->SiS_VGAVDE) / 2); SiS_GetLVDSDesData() 3640 if(SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3641 switch(SiS_Pr->SiS_CustomT) { SiS_GetLVDSDesData() 3645 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_GetLVDSDesData() 3646 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3650 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLVDSDesData() 3652 if(SiS_Pr->SiS_CustomT != CUT_COMPAQ1280) { SiS_GetLVDSDesData() 3653 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3659 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3667 if((SiS_Pr->SiS_IF_DEF_CH70xx != 0) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_GetLVDSDesData() 3669 if((SiS_Pr->SiS_TVMode & TVSetPAL) && (!(SiS_Pr->SiS_TVMode & TVSetPALM))) { SiS_GetLVDSDesData() 3670 if(ResIndex <= 3) SiS_Pr->SiS_LCDHDES = 256; SiS_GetLVDSDesData() 3673 } else if((PanelDesPtr = SiS_GetLVDSDesPtr(SiS_Pr))) { SiS_GetLVDSDesData() 3675 SiS_Pr->SiS_LCDHDES = (PanelDesPtr+ResIndex)->LCDHDES; SiS_GetLVDSDesData() 3676 SiS_Pr->SiS_LCDVDES = (PanelDesPtr+ResIndex)->LCDVDES; SiS_GetLVDSDesData() 3678 } else if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_GetLVDSDesData() 3680 if(SiS_Pr->SiS_VGAHDE != SiS_Pr->PanelXRes) { SiS_GetLVDSDesData() 3681 SiS_Pr->SiS_LCDHDES = SiS_Pr->SiS_HT - ((SiS_Pr->PanelXRes - SiS_Pr->SiS_VGAHDE) / 2); SiS_GetLVDSDesData() 3683 if(SiS_Pr->SiS_VGAVDE != SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3684 SiS_Pr->SiS_LCDVDES = SiS_Pr->SiS_VT - ((SiS_Pr->PanelYRes - SiS_Pr->SiS_VGAVDE) / 2); SiS_GetLVDSDesData() 3686 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLVDSDesData() 3687 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3689 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLVDSDesData() 3693 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT; SiS_GetLVDSDesData() 3696 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3704 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLVDSDesData() 3706 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLVDSDesData() 3708 if(SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3709 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3711 SiS_Pr->SiS_LCDHDES = SiS_Pr->PanelHT + 3; SiS_GetLVDSDesData() 3712 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT; SiS_GetLVDSDesData() 3713 if(SiS_Pr->SiS_VGAVDE == 400) SiS_Pr->SiS_LCDVDES -= 2; SiS_GetLVDSDesData() 3714 else SiS_Pr->SiS_LCDVDES -= 4; SiS_GetLVDSDesData() 3718 if(SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3719 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3721 SiS_Pr->SiS_LCDHDES = SiS_Pr->PanelHT - 1; SiS_GetLVDSDesData() 3722 if(SiS_Pr->SiS_VGAVDE <= 400) SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 8; SiS_GetLVDSDesData() 3723 if(SiS_Pr->SiS_VGAVDE <= 350) SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 12; SiS_GetLVDSDesData() 3728 if( (SiS_Pr->SiS_VGAHDE == SiS_Pr->PanelXRes) && SiS_GetLVDSDesData() 3729 (SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) ) { SiS_GetLVDSDesData() 3730 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3732 SiS_Pr->SiS_LCDHDES = SiS_Pr->PanelHT - 1; SiS_GetLVDSDesData() 3737 switch(SiS_Pr->SiS_LCDTypeInfo) { SiS_GetLVDSDesData() 3739 SiS_Pr->SiS_LCDHDES = SiS_Pr->SiS_LCDVDES = 0; SiS_GetLVDSDesData() 3742 SiS_Pr->SiS_LCDHDES = 8; SiS_GetLVDSDesData() 3743 if (SiS_Pr->SiS_VGAVDE >= 480) SiS_Pr->SiS_LCDVDES = 512; SiS_GetLVDSDesData() 3744 else if(SiS_Pr->SiS_VGAVDE >= 400) SiS_Pr->SiS_LCDVDES = 436; SiS_GetLVDSDesData() 3745 else if(SiS_Pr->SiS_VGAVDE >= 350) SiS_Pr->SiS_LCDVDES = 440; SiS_GetLVDSDesData() 3751 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLVDSDesData() 3754 if(SiS_Pr->SiS_VGAVDE == SiS_Pr->PanelYRes) { SiS_GetLVDSDesData() 3755 SiS_Pr->SiS_LCDVDES = SiS_Pr->PanelVT - 1; SiS_GetLVDSDesData() 3761 SiS_Pr->SiS_LCDVDES = 524; SiS_GetLVDSDesData() 3768 if((ModeNo <= 0x13) && (SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { SiS_GetLVDSDesData() 3769 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetLVDSDesData() 3770 if((SiS_Pr->SiS_VBType & VB_SIS30xBLV) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_GetLVDSDesData() 3771 if(!(modeflag & HalfDCLK)) SiS_Pr->SiS_LCDHDES = 632; SiS_GetLVDSDesData() 3772 } else if(!(SiS_Pr->SiS_SetFlag & SetDOSMode)) { SiS_GetLVDSDesData() 3773 if(SiS_Pr->SiS_LCDResInfo != Panel_1280x1024) { SiS_GetLVDSDesData() 3774 if(SiS_Pr->SiS_LCDResInfo >= Panel_1024x768) { SiS_GetLVDSDesData() 3775 if(SiS_Pr->ChipType < SIS_315H) { SiS_GetLVDSDesData() 3776 if(!(modeflag & HalfDCLK)) SiS_Pr->SiS_LCDHDES = 320; SiS_GetLVDSDesData() 3779 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) SiS_Pr->SiS_LCDHDES = 480; SiS_GetLVDSDesData() 3780 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) SiS_Pr->SiS_LCDHDES = 804; SiS_GetLVDSDesData() 3781 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) SiS_Pr->SiS_LCDHDES = 704; SiS_GetLVDSDesData() 3783 SiS_Pr->SiS_LCDHDES = 320; SiS_GetLVDSDesData() 3784 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) SiS_Pr->SiS_LCDHDES = 632; SiS_GetLVDSDesData() 3785 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) SiS_Pr->SiS_LCDHDES = 542; SiS_GetLVDSDesData() 3802 SiS_HandlePWD(struct SiS_Private *SiS_Pr) SiS_HandlePWD() argument 3806 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_HandlePWD() 3807 unsigned short romptr = GetLCDStructPtr661_2(SiS_Pr); SiS_HandlePWD() 3808 unsigned char drivermode = SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & 0x40; SiS_HandlePWD() 3811 if( (SiS_Pr->SiS_VBType & VB_SISPWD) && SiS_HandlePWD() 3813 (SiS_Pr->SiS_PWDOffset) ) { SiS_HandlePWD() 3814 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2b,ROMAddr[romptr + SiS_Pr->SiS_PWDOffset + 0]); SiS_HandlePWD() 3815 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2c,ROMAddr[romptr + SiS_Pr->SiS_PWDOffset + 1]); SiS_HandlePWD() 3816 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2d,ROMAddr[romptr + SiS_Pr->SiS_PWDOffset + 2]); SiS_HandlePWD() 3817 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2e,ROMAddr[romptr + SiS_Pr->SiS_PWDOffset + 3]); SiS_HandlePWD() 3818 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2f,ROMAddr[romptr + SiS_Pr->SiS_PWDOffset + 4]); SiS_HandlePWD() 3824 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x27,0x7f,temp); SiS_HandlePWD() 3836 SiS_DisableBridge(struct SiS_Private *SiS_Pr) SiS_DisableBridge() argument 3843 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_DisableBridge() 3845 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { /* ===== For 30xB/C/LV ===== */ SiS_DisableBridge() 3847 if(SiS_Pr->ChipType < SIS_315H) { SiS_DisableBridge() 3851 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_DisableBridge() 3852 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3853 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFE); SiS_DisableBridge() 3855 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x08); SiS_DisableBridge() 3857 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 3859 if(SiS_Is301B(SiS_Pr)) { SiS_DisableBridge() 3860 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1f,0x3f); SiS_DisableBridge() 3861 SiS_ShortDelay(SiS_Pr,1); SiS_DisableBridge() 3863 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xDF); SiS_DisableBridge() 3864 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 3865 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); SiS_DisableBridge() 3866 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF); SiS_DisableBridge() 3867 SiS_UnLockCRT2(SiS_Pr); SiS_DisableBridge() 3868 if(!(SiS_Pr->SiS_VBType & VB_SISLVDS)) { SiS_DisableBridge() 3869 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80); SiS_DisableBridge() 3870 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40); SiS_DisableBridge() 3872 if( (!(SiS_CRT2IsLCD(SiS_Pr))) || SiS_DisableBridge() 3873 (!(SiS_CR36BIOSWord23d(SiS_Pr))) ) { SiS_DisableBridge() 3874 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 3875 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3876 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFD); SiS_DisableBridge() 3878 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x04); SiS_DisableBridge() 3889 bool custom1 = (SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) || SiS_DisableBridge() 3890 (SiS_Pr->SiS_CustomT == CUT_CLEVO1400); SiS_DisableBridge() 3892 modenum = SiS_GetReg(SiS_Pr->SiS_P3d4,0x34) & 0x7f; SiS_DisableBridge() 3894 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3897 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_DisableBridge() 3898 if(SiS_Pr->SiS_CustomT != CUT_CLEVO1400) { SiS_DisableBridge() 3899 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c); SiS_DisableBridge() 3904 didpwd = SiS_HandlePWD(SiS_Pr); SiS_DisableBridge() 3907 (SiS_IsVAMode(SiS_Pr)) || SiS_DisableBridge() 3908 (!(SiS_IsDualEdge(SiS_Pr))) ) { SiS_DisableBridge() 3910 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xfe); SiS_DisableBridge() 3911 if(custom1) SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 3913 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xfc); SiS_DisableBridge() 3918 SiS_DDC2Delay(SiS_Pr,0xff00); SiS_DisableBridge() 3919 SiS_DDC2Delay(SiS_Pr,0xe000); SiS_DisableBridge() 3920 SiS_SetRegByte(SiS_Pr->SiS_P3c6,0x00); SiS_DisableBridge() 3921 pushax = SiS_GetReg(SiS_Pr->SiS_P3c4,0x06); SiS_DisableBridge() 3923 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x06,0xE3); SiS_DisableBridge() 3925 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 3930 if(!(SiS_IsNotM650orLater(SiS_Pr))) { SiS_DisableBridge() 3931 /* if(SiS_Pr->ChipType < SIS_340) {*/ SiS_DisableBridge() 3933 if(SiS_IsVAMode(SiS_Pr)) tempah = 0xf7; SiS_DisableBridge() 3934 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x4c,tempah); SiS_DisableBridge() 3938 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3939 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1F,~0x10); SiS_DisableBridge() 3943 if(SiS_IsDualEdge(SiS_Pr)) { SiS_DisableBridge() 3945 if(!(SiS_IsVAMode(SiS_Pr))) tempah = 0xbf; SiS_DisableBridge() 3947 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1F,tempah); SiS_DisableBridge() 3949 if((SiS_IsVAMode(SiS_Pr)) || SiS_DisableBridge() 3950 ((SiS_Pr->SiS_VBType & VB_SISLVDS) && (modenum <= 0x13))) { SiS_DisableBridge() 3952 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 3953 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3954 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 3956 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); SiS_DisableBridge() 3957 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1E,0xDF); SiS_DisableBridge() 3961 if((!(SiS_IsVAMode(SiS_Pr))) || SiS_DisableBridge() 3962 ((SiS_Pr->SiS_VBType & VB_SISLVDS) && (modenum <= 0x13))) { SiS_DisableBridge() 3964 if(!(SiS_IsDualEdge(SiS_Pr))) { SiS_DisableBridge() 3965 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xdf); SiS_DisableBridge() 3966 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 3968 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80); SiS_DisableBridge() 3970 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3971 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 3974 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); SiS_DisableBridge() 3975 temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00); SiS_DisableBridge() 3976 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x10); SiS_DisableBridge() 3977 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF); SiS_DisableBridge() 3978 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,temp); SiS_DisableBridge() 3982 if(SiS_IsNotM650orLater(SiS_Pr)) { SiS_DisableBridge() 3983 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f); SiS_DisableBridge() 3986 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_DisableBridge() 3988 if( (!(SiS_IsVAMode(SiS_Pr))) && SiS_DisableBridge() 3989 (!(SiS_CRT2IsLCD(SiS_Pr))) && SiS_DisableBridge() 3990 (!(SiS_IsDualEdge(SiS_Pr))) ) { SiS_DisableBridge() 3992 if(custom1) SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 3994 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFD); SiS_DisableBridge() 3996 if(custom1) SiS_PanelDelay(SiS_Pr, 4); SiS_DisableBridge() 4000 SiS_SetReg(SiS_Pr->SiS_P3c4,0x06,pushax); SiS_DisableBridge() 4001 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_DisableBridge() 4002 if(SiS_IsVAorLCD(SiS_Pr)) { SiS_DisableBridge() 4003 SiS_PanelDelayLoop(SiS_Pr, 3, 20); SiS_DisableBridge() 4016 if(SiS_Pr->ChipType < SIS_315H) { SiS_DisableBridge() 4018 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_DisableBridge() 4019 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x08); SiS_DisableBridge() 4020 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 4025 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xDF); /* disable VB */ SiS_DisableBridge() 4026 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 4028 if(SiS_Pr->ChipType >= SIS_315H) { SiS_DisableBridge() 4029 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80); SiS_DisableBridge() 4032 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); /* disable lock mode */ SiS_DisableBridge() 4034 if(SiS_Pr->ChipType >= SIS_315H) { SiS_DisableBridge() 4035 temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00); SiS_DisableBridge() 4036 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x10); SiS_DisableBridge() 4037 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); SiS_DisableBridge() 4038 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,temp); SiS_DisableBridge() 4041 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF); /* disable CRT2 */ SiS_DisableBridge() 4042 if( (!(SiS_CRT2IsLCD(SiS_Pr))) || SiS_DisableBridge() 4043 (!(SiS_CR36BIOSWord23d(SiS_Pr))) ) { SiS_DisableBridge() 4044 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 4045 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x04); SiS_DisableBridge() 4054 if(SiS_Pr->ChipType < SIS_315H) { SiS_DisableBridge() 4058 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) { SiS_DisableBridge() 4059 SiS_SetCH700x(SiS_Pr,0x0E,0x09); SiS_DisableBridge() 4062 if(SiS_Pr->ChipType == SIS_730) { SiS_DisableBridge() 4063 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x11) & 0x08)) { SiS_DisableBridge() 4064 SiS_WaitVBRetrace(SiS_Pr); SiS_DisableBridge() 4066 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_DisableBridge() 4067 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x08); SiS_DisableBridge() 4068 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 4071 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x11) & 0x08)) { SiS_DisableBridge() 4072 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x40)) { SiS_DisableBridge() 4073 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_DisableBridge() 4074 SiS_WaitVBRetrace(SiS_Pr); SiS_DisableBridge() 4075 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x06) & 0x1c)) { SiS_DisableBridge() 4076 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 4078 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x08); SiS_DisableBridge() 4079 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 4085 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 4087 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); SiS_DisableBridge() 4089 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF); SiS_DisableBridge() 4090 SiS_UnLockCRT2(SiS_Pr); SiS_DisableBridge() 4091 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80); SiS_DisableBridge() 4092 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40); SiS_DisableBridge() 4094 if( (!(SiS_CRT2IsLCD(SiS_Pr))) || SiS_DisableBridge() 4095 (!(SiS_CR36BIOSWord23d(SiS_Pr))) ) { SiS_DisableBridge() 4096 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 4097 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x04); SiS_DisableBridge() 4106 if(!(SiS_IsNotM650orLater(SiS_Pr))) { SiS_DisableBridge() 4107 /*if(SiS_Pr->ChipType < SIS_340) { */ /* XGI needs this */ SiS_DisableBridge() 4108 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x4c,~0x18); SiS_DisableBridge() 4112 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_DisableBridge() 4114 if(SiS_Pr->ChipType == SIS_740) { SiS_DisableBridge() 4115 temp = SiS_GetCH701x(SiS_Pr,0x61); SiS_DisableBridge() 4117 SiS_SetCH701x(SiS_Pr,0x76,0xac); SiS_DisableBridge() 4118 SiS_SetCH701x(SiS_Pr,0x66,0x00); SiS_DisableBridge() 4121 if( (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4122 (SiS_IsTVOrYPbPrOrScart(SiS_Pr)) ) { SiS_DisableBridge() 4123 SiS_SetCH701x(SiS_Pr,0x49,0x3e); SiS_DisableBridge() 4127 if( (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4128 (SiS_IsVAMode(SiS_Pr)) ) { SiS_DisableBridge() 4129 SiS_Chrontel701xBLOff(SiS_Pr); SiS_DisableBridge() 4130 SiS_Chrontel701xOff(SiS_Pr); SiS_DisableBridge() 4133 if(SiS_Pr->ChipType != SIS_740) { SiS_DisableBridge() 4134 if( (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4135 (SiS_IsTVOrYPbPrOrScart(SiS_Pr)) ) { SiS_DisableBridge() 4136 SiS_SetCH701x(SiS_Pr,0x49,0x01); SiS_DisableBridge() 4142 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_DisableBridge() 4143 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x08); SiS_DisableBridge() 4144 SiS_PanelDelay(SiS_Pr, 3); SiS_DisableBridge() 4147 if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0) || SiS_DisableBridge() 4148 (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4149 (!(SiS_IsTVOrYPbPrOrScart(SiS_Pr))) ) { SiS_DisableBridge() 4150 SiS_DisplayOff(SiS_Pr); SiS_DisableBridge() 4153 if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0) || SiS_DisableBridge() 4154 (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4155 (!(SiS_IsVAMode(SiS_Pr))) ) { SiS_DisableBridge() 4156 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80); SiS_DisableBridge() 4159 if(SiS_Pr->ChipType == SIS_740) { SiS_DisableBridge() 4160 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f); SiS_DisableBridge() 4163 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF); SiS_DisableBridge() 4165 if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0) || SiS_DisableBridge() 4166 (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4167 (!(SiS_IsVAMode(SiS_Pr))) ) { SiS_DisableBridge() 4168 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF); SiS_DisableBridge() 4171 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_DisableBridge() 4172 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_DisableBridge() 4173 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf); SiS_DisableBridge() 4174 if(SiS_Pr->ChipType == SIS_550) { SiS_DisableBridge() 4175 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xbf); SiS_DisableBridge() 4176 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xef); SiS_DisableBridge() 4180 if(SiS_Pr->ChipType == SIS_740) { SiS_DisableBridge() 4181 if(SiS_IsLCDOrLCDA(SiS_Pr)) { SiS_DisableBridge() 4182 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf); SiS_DisableBridge() 4184 } else if(SiS_IsVAMode(SiS_Pr)) { SiS_DisableBridge() 4185 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf); SiS_DisableBridge() 4189 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_DisableBridge() 4190 if(SiS_IsDualEdge(SiS_Pr)) { SiS_DisableBridge() 4191 /* SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xff); */ SiS_DisableBridge() 4193 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb); SiS_DisableBridge() 4197 SiS_UnLockCRT2(SiS_Pr); SiS_DisableBridge() 4199 if(SiS_Pr->ChipType == SIS_550) { SiS_DisableBridge() 4200 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80); /* DirectDVD PAL?*/ SiS_DisableBridge() 4201 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40); /* VB clock / 4 ? */ SiS_DisableBridge() 4202 } else if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0) || SiS_DisableBridge() 4203 (!(SiS_IsDualEdge(SiS_Pr))) || SiS_DisableBridge() 4204 (!(SiS_IsVAMode(SiS_Pr))) ) { SiS_DisableBridge() 4205 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0xf7); SiS_DisableBridge() 4208 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_DisableBridge() 4209 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_DisableBridge() 4210 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_DisableBridge() 4211 SiS_PanelDelay(SiS_Pr, 2); SiS_DisableBridge() 4212 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x04); SiS_DisableBridge() 4235 SiS_EnableBridge(struct SiS_Private *SiS_Pr) SiS_EnableBridge() argument 4243 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_EnableBridge() 4245 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { /* ====== For 301B et al ====== */ SiS_EnableBridge() 4247 if(SiS_Pr->ChipType < SIS_315H) { SiS_EnableBridge() 4251 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4252 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4253 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x02); SiS_EnableBridge() 4254 } else if(SiS_Pr->SiS_VBType & VB_NoLCD) { SiS_EnableBridge() 4255 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x00); SiS_EnableBridge() 4257 if(SiS_Pr->SiS_VBType & (VB_SISLVDS | VB_NoLCD)) { SiS_EnableBridge() 4258 if(!(SiS_CR36BIOSWord23d(SiS_Pr))) { SiS_EnableBridge() 4259 SiS_PanelDelay(SiS_Pr, 0); SiS_EnableBridge() 4264 if((SiS_Pr->SiS_VBType & VB_NoLCD) && SiS_EnableBridge() 4265 (SiS_CRT2IsLCD(SiS_Pr))) { SiS_EnableBridge() 4267 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); /* Enable CRT2 */ SiS_EnableBridge() 4268 SiS_DisplayOn(SiS_Pr); SiS_EnableBridge() 4269 SiS_UnLockCRT2(SiS_Pr); SiS_EnableBridge() 4270 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x02,0xBF); SiS_EnableBridge() 4271 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_EnableBridge() 4272 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x01,0x1F); SiS_EnableBridge() 4274 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x01,0x1F,0x40); SiS_EnableBridge() 4276 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x40)) { SiS_EnableBridge() 4277 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) & 0x10)) { SiS_EnableBridge() 4278 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_EnableBridge() 4279 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4281 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4282 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x00); SiS_EnableBridge() 4288 temp = SiS_GetReg(SiS_Pr->SiS_P3c4,0x32) & 0xDF; /* lock mode */ SiS_EnableBridge() 4289 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_EnableBridge() 4290 tempah = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_EnableBridge() 4293 SiS_SetReg(SiS_Pr->SiS_P3c4,0x32,temp); SiS_EnableBridge() 4294 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); SiS_EnableBridge() 4295 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x00,0x1F,0x20); /* enable VB processor */ SiS_EnableBridge() 4296 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x1F,0xC0); SiS_EnableBridge() 4297 SiS_DisplayOn(SiS_Pr); SiS_EnableBridge() 4298 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4299 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4300 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) & 0x10)) { SiS_EnableBridge() 4301 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_EnableBridge() 4302 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4304 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x01); SiS_EnableBridge() 4324 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4325 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1f,0xef); SiS_EnableBridge() 4327 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4328 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c); SiS_EnableBridge() 4333 if(!(SiS_IsNotM650orLater(SiS_Pr))) { SiS_EnableBridge() 4334 /*if(SiS_Pr->ChipType < SIS_340) { */ SiS_EnableBridge() 4336 if(SiS_LCDAEnabled(SiS_Pr)) { SiS_EnableBridge() 4337 if(SiS_TVEnabled(SiS_Pr)) tempah = 0x18; SiS_EnableBridge() 4340 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x4c,tempah); SiS_EnableBridge() 4344 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4346 SiS_SetRegByte(SiS_Pr->SiS_P3c6,0x00); SiS_EnableBridge() 4347 SiS_DisplayOff(SiS_Pr); SiS_EnableBridge() 4348 pushax = SiS_GetReg(SiS_Pr->SiS_P3c4,0x06); SiS_EnableBridge() 4350 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x06,0xE3); SiS_EnableBridge() 4353 didpwd = SiS_HandlePWD(SiS_Pr); SiS_EnableBridge() 4355 if(SiS_IsVAorLCD(SiS_Pr)) { SiS_EnableBridge() 4357 if(!(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x26) & 0x02)) { SiS_EnableBridge() 4358 SiS_PanelDelayLoop(SiS_Pr, 3, 2); SiS_EnableBridge() 4359 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x02); SiS_EnableBridge() 4360 SiS_PanelDelayLoop(SiS_Pr, 3, 2); SiS_EnableBridge() 4361 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4362 SiS_GenericDelay(SiS_Pr, 17664); SiS_EnableBridge() 4366 SiS_PanelDelayLoop(SiS_Pr, 3, 2); SiS_EnableBridge() 4367 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4368 SiS_GenericDelay(SiS_Pr, 17664); SiS_EnableBridge() 4373 if(!(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & 0x40)) { SiS_EnableBridge() 4374 SiS_PanelDelayLoop(SiS_Pr, 3, 10); SiS_EnableBridge() 4380 if(!(SiS_IsVAMode(SiS_Pr))) { SiS_EnableBridge() 4382 temp = SiS_GetReg(SiS_Pr->SiS_P3c4,0x32) & 0xDF; SiS_EnableBridge() 4383 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_EnableBridge() 4384 tempah = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_EnableBridge() 4386 if(!(SiS_LCDAEnabled(SiS_Pr))) temp |= 0x20; SiS_EnableBridge() 4389 SiS_SetReg(SiS_Pr->SiS_P3c4,0x32,temp); SiS_EnableBridge() 4391 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); /* enable CRT2 */ SiS_EnableBridge() 4393 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f); SiS_EnableBridge() 4394 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2e,0x80); SiS_EnableBridge() 4396 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4397 SiS_PanelDelay(SiS_Pr, 2); SiS_EnableBridge() 4402 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1e,0x20); SiS_EnableBridge() 4406 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x00,0x1f,0x20); SiS_EnableBridge() 4407 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2e,0x80); SiS_EnableBridge() 4409 if(SiS_Pr->SiS_VBType & VB_SISPOWER) { SiS_EnableBridge() 4410 if( (SiS_LCDAEnabled(SiS_Pr)) || SiS_EnableBridge() 4411 (SiS_CRT2IsLCD(SiS_Pr)) ) { SiS_EnableBridge() 4413 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x2a,0x7f); SiS_EnableBridge() 4415 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x7f); SiS_EnableBridge() 4420 if(SiS_IsDualEdge(SiS_Pr)) { SiS_EnableBridge() 4422 if(!(SiS_IsVAMode(SiS_Pr))) tempah = 0x40; SiS_EnableBridge() 4424 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x1F,tempah); SiS_EnableBridge() 4426 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_EnableBridge() 4428 SiS_PanelDelay(SiS_Pr, 2); SiS_EnableBridge() 4430 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x1f,0x10); SiS_EnableBridge() 4431 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2e,0x80); SiS_EnableBridge() 4433 if(SiS_Pr->SiS_CustomT != CUT_CLEVO1400) { SiS_EnableBridge() 4435 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4436 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c); SiS_EnableBridge() 4437 SiS_GenericDelay(SiS_Pr, 2048); SiS_EnableBridge() 4440 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x27,0x0c); SiS_EnableBridge() 4442 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4444 cr36 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36); SiS_EnableBridge() 4446 if(SiS_Pr->SiS_ROMNew) { SiS_EnableBridge() 4447 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_EnableBridge() 4448 unsigned short romptr = GetLCDStructPtr661_2(SiS_Pr); SiS_EnableBridge() 4450 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x20); /* Reset */ SiS_EnableBridge() 4451 SiS_Pr->EMI_30 = 0; SiS_EnableBridge() 4452 SiS_Pr->EMI_31 = ROMAddr[romptr + SiS_Pr->SiS_EMIOffset + 0]; SiS_EnableBridge() 4453 SiS_Pr->EMI_32 = ROMAddr[romptr + SiS_Pr->SiS_EMIOffset + 1]; SiS_EnableBridge() 4454 SiS_Pr->EMI_33 = ROMAddr[romptr + SiS_Pr->SiS_EMIOffset + 2]; SiS_EnableBridge() 4455 if(ROMAddr[romptr + 1] & 0x10) SiS_Pr->EMI_30 = 0x40; SiS_EnableBridge() 4457 SiS_Pr->HaveEMI = SiS_Pr->HaveEMILCD = SiS_Pr->OverruleEMI = true; SiS_EnableBridge() 4472 if(SiS_Pr->HaveEMI) { SiS_EnableBridge() 4473 r30 = SiS_Pr->EMI_30; r31 = SiS_Pr->EMI_31; SiS_EnableBridge() 4474 r32 = SiS_Pr->EMI_32; r33 = SiS_Pr->EMI_33; SiS_EnableBridge() 4486 if((!SiS_Pr->HaveEMI) || (!SiS_Pr->HaveEMILCD)) { SiS_EnableBridge() 4490 if(SiS_Pr->SiS_CustomT == CUT_CLEVO1024) r30 &= ~0x40; SiS_EnableBridge() 4491 if(!SiS_Pr->HaveEMI) { SiS_EnableBridge() 4499 if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) r30 |= 0x40; SiS_EnableBridge() 4500 if(!SiS_Pr->HaveEMI) { SiS_EnableBridge() 4502 if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) { SiS_EnableBridge() 4509 if(!SiS_Pr->HaveEMI) { SiS_EnableBridge() 4511 if(SiS_Pr->SiS_CustomT == CUT_COMPAL1400_2) { SiS_EnableBridge() 4518 if(!SiS_Pr->HaveEMI) { SiS_EnableBridge() 4525 if(!SiS_Pr->OverruleEMI) { SiS_EnableBridge() 4527 if(SiS_Pr->SiS_CustomT == CUT_COMPAL1400_2) { SiS_EnableBridge() 4534 if(SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) { SiS_EnableBridge() 4541 if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { SiS_EnableBridge() 4552 if(!(SiS_Pr->OverruleEMI && (!r30) && (!r31) && (!r32) && (!r33))) { SiS_EnableBridge() 4553 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x20); /* Reset */ SiS_EnableBridge() 4554 SiS_GenericDelay(SiS_Pr, 2048); SiS_EnableBridge() 4556 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x31,r31); SiS_EnableBridge() 4557 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x32,r32); SiS_EnableBridge() 4558 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x33,r33); SiS_EnableBridge() 4561 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x10); SiS_EnableBridge() 4564 if( (SiS_LCDAEnabled(SiS_Pr)) || SiS_EnableBridge() 4565 (SiS_CRT2IsLCD(SiS_Pr)) ) { SiS_EnableBridge() 4567 /*SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x2a,0x80);*/ SiS_EnableBridge() 4568 SiS_PanelDelayLoop(SiS_Pr, 3, 5); SiS_EnableBridge() 4570 SiS_PanelDelayLoop(SiS_Pr, 3, 5); SiS_EnableBridge() 4573 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4574 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4575 if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { SiS_EnableBridge() 4576 SiS_GenericDelay(SiS_Pr, 1280); SiS_EnableBridge() 4578 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x30,0x40); /* Enable */ SiS_EnableBridge() 4579 /*SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x2a,0x7f);*/ SiS_EnableBridge() 4586 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_EnableBridge() 4587 if(SiS_IsVAorLCD(SiS_Pr)) { SiS_EnableBridge() 4588 SiS_PanelDelayLoop(SiS_Pr, 3, 10); SiS_EnableBridge() 4590 SiS_PanelDelayLoop(SiS_Pr, 3, 10); SiS_EnableBridge() 4592 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4593 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_EnableBridge() 4594 SiS_GenericDelay(SiS_Pr, 2048); SiS_EnableBridge() 4595 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4598 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x01); SiS_EnableBridge() 4600 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x03); SiS_EnableBridge() 4605 SiS_SetReg(SiS_Pr->SiS_P3c4,0x06,pushax); SiS_EnableBridge() 4606 SiS_DisplayOn(SiS_Pr); SiS_EnableBridge() 4607 SiS_SetRegByte(SiS_Pr->SiS_P3c6,0xff); SiS_EnableBridge() 4611 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_EnableBridge() 4612 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x00,0x7f); SiS_EnableBridge() 4621 if(SiS_Pr->ChipType < SIS_315H) { SiS_EnableBridge() 4622 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4623 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x00); SiS_EnableBridge() 4624 SiS_PanelDelay(SiS_Pr, 0); SiS_EnableBridge() 4628 temp = SiS_GetReg(SiS_Pr->SiS_P3c4,0x32) & 0xDF; /* lock mode */ SiS_EnableBridge() 4629 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_EnableBridge() 4630 tempah = SiS_GetReg(SiS_Pr->SiS_P3d4,0x30); SiS_EnableBridge() 4633 SiS_SetReg(SiS_Pr->SiS_P3c4,0x32,temp); SiS_EnableBridge() 4635 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); /* enable CRT2 */ SiS_EnableBridge() 4637 if(SiS_Pr->ChipType >= SIS_315H) { SiS_EnableBridge() 4638 temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x2E); SiS_EnableBridge() 4640 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2E,0x80); /* BVBDOENABLE=1 */ SiS_EnableBridge() 4644 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x00,0x1F,0x20); /* enable VB processor */ SiS_EnableBridge() 4646 SiS_VBLongWait(SiS_Pr); SiS_EnableBridge() 4647 SiS_DisplayOn(SiS_Pr); SiS_EnableBridge() 4648 if(SiS_Pr->ChipType >= SIS_315H) { SiS_EnableBridge() 4649 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x00,0x7f); SiS_EnableBridge() 4651 SiS_VBLongWait(SiS_Pr); SiS_EnableBridge() 4653 if(SiS_Pr->ChipType < SIS_315H) { SiS_EnableBridge() 4654 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4655 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4656 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x00); SiS_EnableBridge() 4664 if(SiS_Pr->ChipType < SIS_315H) { SiS_EnableBridge() 4668 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4669 if(SiS_Pr->ChipType == SIS_730) { SiS_EnableBridge() 4670 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4671 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4672 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4674 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x00); SiS_EnableBridge() 4675 if(!(SiS_CR36BIOSWord23d(SiS_Pr))) { SiS_EnableBridge() 4676 SiS_PanelDelay(SiS_Pr, 0); SiS_EnableBridge() 4680 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); SiS_EnableBridge() 4681 SiS_DisplayOn(SiS_Pr); SiS_EnableBridge() 4682 SiS_UnLockCRT2(SiS_Pr); SiS_EnableBridge() 4683 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x02,0xBF); SiS_EnableBridge() 4684 if(SiS_BridgeInSlavemode(SiS_Pr)) { SiS_EnableBridge() 4685 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x01,0x1F); SiS_EnableBridge() 4687 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x01,0x1F,0x40); SiS_EnableBridge() 4690 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) { SiS_EnableBridge() 4691 if(!(SiS_CRT2IsLCD(SiS_Pr))) { SiS_EnableBridge() 4692 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4693 SiS_SetCH700x(SiS_Pr,0x0E,0x0B); SiS_EnableBridge() 4697 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4698 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x40)) { SiS_EnableBridge() 4699 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) & 0x10)) { SiS_EnableBridge() 4700 if(!(SiS_CR36BIOSWord23b(SiS_Pr))) { SiS_EnableBridge() 4701 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4702 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4704 SiS_WaitVBRetrace(SiS_Pr); SiS_EnableBridge() 4705 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x00); SiS_EnableBridge() 4716 if(!(SiS_IsNotM650orLater(SiS_Pr))) { SiS_EnableBridge() 4717 /*if(SiS_Pr->ChipType < SIS_340) {*/ /* XGI needs this */ SiS_EnableBridge() 4718 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x4c,0x18); SiS_EnableBridge() 4722 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_EnableBridge() 4723 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4724 SiS_SetRegSR11ANDOR(SiS_Pr,0xFB,0x00); SiS_EnableBridge() 4725 SiS_PanelDelay(SiS_Pr, 0); SiS_EnableBridge() 4729 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); SiS_EnableBridge() 4730 SiS_UnLockCRT2(SiS_Pr); SiS_EnableBridge() 4732 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0xf7); SiS_EnableBridge() 4734 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_EnableBridge() 4735 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_EnableBridge() 4737 SiS_Chrontel701xBLOff(SiS_Pr); SiS_EnableBridge() 4740 if(SiS_Pr->ChipType != SIS_550) { SiS_EnableBridge() 4741 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f); SiS_EnableBridge() 4744 if(SiS_Pr->ChipType == SIS_740) { SiS_EnableBridge() 4745 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_EnableBridge() 4746 if(SiS_IsLCDOrLCDA(SiS_Pr)) { SiS_EnableBridge() 4747 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1E,0x20); SiS_EnableBridge() 4752 temp1 = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x2E); SiS_EnableBridge() 4754 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2E,0x80); SiS_EnableBridge() 4757 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_EnableBridge() 4759 SiS_Chrontel701xBLOn(SiS_Pr); SiS_EnableBridge() 4763 if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_EnableBridge() 4764 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4765 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1E,0x20); SiS_EnableBridge() 4766 if(SiS_Pr->ChipType == SIS_550) { SiS_EnableBridge() 4767 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1E,0x40); SiS_EnableBridge() 4768 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1E,0x10); SiS_EnableBridge() 4771 } else if(SiS_IsVAMode(SiS_Pr)) { SiS_EnableBridge() 4772 if(SiS_Pr->ChipType != SIS_740) { SiS_EnableBridge() 4773 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1E,0x20); SiS_EnableBridge() 4777 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_EnableBridge() 4778 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x00,0x7f); SiS_EnableBridge() 4781 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_EnableBridge() 4782 if(SiS_IsTVOrYPbPrOrScart(SiS_Pr)) { SiS_EnableBridge() 4783 SiS_Chrontel701xOn(SiS_Pr); SiS_EnableBridge() 4785 if( (SiS_IsVAMode(SiS_Pr)) || SiS_EnableBridge() 4786 (SiS_IsLCDOrLCDA(SiS_Pr)) ) { SiS_EnableBridge() 4787 SiS_ChrontelDoSomething1(SiS_Pr); SiS_EnableBridge() 4791 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_EnableBridge() 4792 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_EnableBridge() 4793 if( (SiS_IsVAMode(SiS_Pr)) || SiS_EnableBridge() 4794 (SiS_IsLCDOrLCDA(SiS_Pr)) ) { SiS_EnableBridge() 4795 SiS_Chrontel701xBLOn(SiS_Pr); SiS_EnableBridge() 4796 SiS_ChrontelInitTVVSync(SiS_Pr); SiS_EnableBridge() 4799 } else if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) { SiS_EnableBridge() 4800 if(!(SiS_WeHaveBacklightCtrl(SiS_Pr))) { SiS_EnableBridge() 4801 if(SiS_CRT2IsLCD(SiS_Pr)) { SiS_EnableBridge() 4802 SiS_PanelDelay(SiS_Pr, 1); SiS_EnableBridge() 4803 SiS_SetRegSR11ANDOR(SiS_Pr,0xF7,0x00); SiS_EnableBridge() 4822 SiS_SetCRT2Offset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetCRT2Offset() argument 4828 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) return; SiS_SetCRT2Offset() 4830 offset = SiS_GetOffset(SiS_Pr,ModeNo,ModeIdIndex,RRTI); SiS_SetCRT2Offset() 4832 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x07,(offset & 0xFF)); SiS_SetCRT2Offset() 4833 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x09,(offset >> 8)); SiS_SetCRT2Offset() 4837 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x03,temp); SiS_SetCRT2Offset() 4842 SiS_SetCRT2Sync(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short RefreshRateTableIndex) SiS_SetCRT2Sync() argument 4848 if(SiS_Pr->UseCustomMode) { SiS_SetCRT2Sync() 4849 infoflag = SiS_Pr->CInfoFlag; SiS_SetCRT2Sync() 4851 infoflag = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_InfoFlag; SiS_SetCRT2Sync() 4854 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { /* LVDS */ SiS_SetCRT2Sync() 4856 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2Sync() 4858 } else if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && (SiS_Pr->SiS_LCDInfo & LCDSync)) { SiS_SetCRT2Sync() 4859 tempah = SiS_Pr->SiS_LCDInfo; SiS_SetCRT2Sync() 4863 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempah |= 0x10; SiS_SetCRT2Sync() 4864 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetCRT2Sync() 4865 if((SiS_Pr->SiS_CustomT == CUT_BARCO1366) || SiS_SetCRT2Sync() 4866 (SiS_Pr->SiS_CustomT == CUT_BARCO1024)) { SiS_SetCRT2Sync() 4869 if( (SiS_Pr->SiS_IF_DEF_FSTN) || SiS_SetCRT2Sync() 4870 (SiS_Pr->SiS_IF_DEF_DSTN) || SiS_SetCRT2Sync() 4871 (SiS_Pr->SiS_IF_DEF_TRUMPION) || SiS_SetCRT2Sync() 4872 (SiS_Pr->SiS_CustomT == CUT_PANEL848) || SiS_SetCRT2Sync() 4873 (SiS_Pr->SiS_CustomT == CUT_PANEL856) ) { SiS_SetCRT2Sync() 4876 if( (SiS_Pr->SiS_IF_DEF_FSTN) || SiS_SetCRT2Sync() 4877 (SiS_Pr->SiS_IF_DEF_DSTN) ) { SiS_SetCRT2Sync() 4881 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2Sync() 4882 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2Sync() 4885 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,0xE7,tempah); SiS_SetCRT2Sync() 4888 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,0xe0); SiS_SetCRT2Sync() 4891 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,tempah); SiS_SetCRT2Sync() 4894 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetCRT2Sync() 4896 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetCRT2Sync() 4900 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { /* 630 - 301B(-DH) */ SiS_SetCRT2Sync() 4904 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetCRT2Sync() 4905 if(SiS_Pr->SiS_LCDInfo & LCDSync) { SiS_SetCRT2Sync() 4906 tempah = SiS_Pr->SiS_LCDInfo; SiS_SetCRT2Sync() 4912 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempah |= 0x10; SiS_SetCRT2Sync() 4914 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,tempah); SiS_SetCRT2Sync() 4915 if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && (!(SiS_Pr->SiS_VBType & VB_NoLCD))) { SiS_SetCRT2Sync() 4916 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1a,0xf0,tempbl); SiS_SetCRT2Sync() 4922 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempah |= 0x10; SiS_SetCRT2Sync() 4923 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,tempah); SiS_SetCRT2Sync() 4933 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { /* 315 - LVDS */ SiS_SetCRT2Sync() 4936 if((SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) && SiS_SetCRT2Sync() 4937 (SiS_Pr->SiS_LCDResInfo == Panel_1280x1024)) { SiS_SetCRT2Sync() 4939 if(SiS_Pr->SiS_LCDInfo & LCDSync) { SiS_SetCRT2Sync() 4940 tempbl = ((SiS_Pr->SiS_LCDInfo & 0xc0) >> 6); SiS_SetCRT2Sync() 4942 } else if((SiS_Pr->SiS_CustomT == CUT_CLEVO1400) && SiS_SetCRT2Sync() 4943 (SiS_Pr->SiS_LCDResInfo == Panel_1400x1050)) { SiS_SetCRT2Sync() 4947 tempah = SiS_GetReg(SiS_Pr->SiS_P3d4,0x37); SiS_SetCRT2Sync() 4950 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempbl |= 0x04; SiS_SetCRT2Sync() 4954 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempah |= 0x10; SiS_SetCRT2Sync() 4955 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) tempah |= 0xc0; SiS_SetCRT2Sync() 4956 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,tempah); SiS_SetCRT2Sync() 4957 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetCRT2Sync() 4958 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetCRT2Sync() 4959 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1a,0xf0,tempbl); SiS_SetCRT2Sync() 4966 if(!SiS_Pr->UseCustomMode) { SiS_SetCRT2Sync() 4968 if((SiS_Pr->SiS_VBType & VB_SIS30xC) && (SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC)) { SiS_SetCRT2Sync() 4970 tempah = SiS_GetRegByte((SiS_Pr->SiS_P3ca+0x02)); SiS_SetCRT2Sync() 4973 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetCRT2Sync() 4974 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetCRT2Sync() 4975 if(SiS_Pr->SiS_LCDInfo & LCDSync) { SiS_SetCRT2Sync() 4976 tempah = SiS_Pr->SiS_LCDInfo; SiS_SetCRT2Sync() 4984 if(!(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit)) tempah |= 0x10; SiS_SetCRT2Sync() 4985 if(SiS_Pr->SiS_VBType & VB_NoLCD) { SiS_SetCRT2Sync() 4987 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) tempah |= 0xc0; SiS_SetCRT2Sync() 4989 if((SiS_Pr->SiS_VBType & VB_SIS30xC) && (SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC)) { SiS_SetCRT2Sync() 4992 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,0xe7,tempah); SiS_SetCRT2Sync() 4994 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0F,tempah); SiS_SetCRT2Sync() 4995 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetCRT2Sync() 4996 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetCRT2Sync() 4997 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1a,0xf0,tempbl); SiS_SetCRT2Sync() 5011 SiS_SetCRT2FIFO_300(struct SiS_Private *SiS_Pr,unsigned short ModeNo) SiS_SetCRT2FIFO_300() argument 5013 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetCRT2FIFO_300() 5022 SelectRate_backup = SiS_Pr->SiS_SelectCRT2Rate; SiS_SetCRT2FIFO_300() 5024 if(!SiS_Pr->CRT1UsesCustomMode) { SiS_SetCRT2FIFO_300() 5026 CRT1ModeNo = SiS_Pr->SiS_CRT1Mode; /* get CRT1 ModeNo */ SiS_SetCRT2FIFO_300() 5027 SiS_SearchModeID(SiS_Pr, &CRT1ModeNo, &modeidindex); SiS_SetCRT2FIFO_300() 5028 SiS_Pr->SiS_SetFlag &= (~ProgrammingCRT2); SiS_SetCRT2FIFO_300() 5029 SiS_Pr->SiS_SelectCRT2Rate = 0; SiS_SetCRT2FIFO_300() 5030 refreshratetableindex = SiS_GetRatePtr(SiS_Pr, CRT1ModeNo, modeidindex); SiS_SetCRT2FIFO_300() 5034 index = SiS_GetRefCRTVCLK(SiS_Pr, refreshratetableindex, SiS_Pr->SiS_UseWide); SiS_SetCRT2FIFO_300() 5035 VCLK = SiS_Pr->SiS_VCLKData[index].CLOCK; SiS_SetCRT2FIFO_300() 5038 colorth = SiS_GetColorDepth(SiS_Pr,CRT1ModeNo,modeidindex) >> 1; SiS_SetCRT2FIFO_300() 5047 VCLK = SiS_Pr->CSRClock_CRT1; SiS_SetCRT2FIFO_300() 5050 colorth = colortharray[((SiS_Pr->CModeFlag_CRT1 & ModeTypeMask) - 2)]; SiS_SetCRT2FIFO_300() 5056 if(SiS_Pr->ChipType == SIS_300) { SiS_SetCRT2FIFO_300() 5057 index = SiS_GetReg(SiS_Pr->SiS_P3c4,0x3A); SiS_SetCRT2FIFO_300() 5059 index = SiS_GetReg(SiS_Pr->SiS_P3c4,0x1A); SiS_SetCRT2FIFO_300() 5062 MCLK = SiS_Pr->SiS_MCLKData_0[index].CLOCK; SiS_SetCRT2FIFO_300() 5064 temp = ((SiS_GetReg(SiS_Pr->SiS_P3c4,0x14) >> 6) & 0x03) << 1; SiS_SetCRT2FIFO_300() 5074 if(SiS_Pr->ChipType == SIS_300) { SiS_SetCRT2FIFO_300() 5076 SiS_GetFIFOThresholdIndex300(SiS_Pr, &tempbx, &tempcl); SiS_SetCRT2FIFO_300() 5081 pci50 = sisfb_read_nbridge_pci_dword(SiS_Pr, 0x50); SiS_SetCRT2FIFO_300() 5082 pciA0 = sisfb_read_nbridge_pci_dword(SiS_Pr, 0xa0); SiS_SetCRT2FIFO_300() 5084 if(SiS_Pr->ChipType == SIS_730) { SiS_SetCRT2FIFO_300() 5102 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x14) & 0x80) index += 12; SiS_SetCRT2FIFO_300() 5106 data = SiS_GetLatencyFactor630(SiS_Pr, index) + 15; SiS_SetCRT2FIFO_300() 5107 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x14) & 0x80)) data += 5; SiS_SetCRT2FIFO_300() 5113 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT2FIFO_300() 5114 SiS_Pr->SiS_SelectCRT2Rate = SelectRate_backup; SiS_SetCRT2FIFO_300() 5116 if(!SiS_Pr->UseCustomMode) { SiS_SetCRT2FIFO_300() 5119 SiS_SearchModeID(SiS_Pr, &CRT2ModeNo, &modeidindex); SiS_SetCRT2FIFO_300() 5121 refreshratetableindex = SiS_GetRatePtr(SiS_Pr, CRT2ModeNo, modeidindex); SiS_SetCRT2FIFO_300() 5124 index = SiS_GetVCLK2Ptr(SiS_Pr, CRT2ModeNo, modeidindex, refreshratetableindex); SiS_SetCRT2FIFO_300() 5125 VCLK = SiS_Pr->SiS_VCLKData[index].CLOCK; SiS_SetCRT2FIFO_300() 5127 if((SiS_Pr->SiS_CustomT == CUT_BARCO1366) || (SiS_Pr->SiS_CustomT == CUT_BARCO1024)) { SiS_SetCRT2FIFO_300() 5128 if(SiS_Pr->SiS_UseROM) { SiS_SetCRT2FIFO_300() 5139 VCLK = SiS_Pr->CSRClock; SiS_SetCRT2FIFO_300() 5144 colorth = SiS_GetColorDepth(SiS_Pr,CRT2ModeNo,modeidindex) >> 1; SiS_SetCRT2FIFO_300() 5155 if(SiS_Pr->ChipType == SIS_300) { SiS_SetCRT2FIFO_300() 5157 if((data <= 0x0f) || (SiS_Pr->SiS_LCDResInfo == Panel_1280x1024)) SiS_SetCRT2FIFO_300() 5161 if(( (SiS_Pr->ChipType == SIS_630) || SiS_SetCRT2FIFO_300() 5162 (SiS_Pr->ChipType == SIS_730) ) && SiS_SetCRT2FIFO_300() 5163 (SiS_Pr->ChipRevision >= 0x30)) SiS_SetCRT2FIFO_300() 5166 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x01,0xe0,temp); SiS_SetCRT2FIFO_300() 5168 if((SiS_Pr->ChipType == SIS_630) && SiS_SetCRT2FIFO_300() 5169 (SiS_Pr->ChipRevision >= 0x30)) { SiS_SetCRT2FIFO_300() 5172 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x02,0xe0,data); SiS_SetCRT2FIFO_300() 5176 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT2FIFO_300() 5177 SiS_Pr->SiS_SelectCRT2Rate = SelectRate_backup; SiS_SetCRT2FIFO_300() 5186 SiS_SetCRT2FIFO_310(struct SiS_Private *SiS_Pr) SiS_SetCRT2FIFO_310() argument 5188 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x01,0x3B); SiS_SetCRT2FIFO_310() 5189 if( (SiS_Pr->ChipType == SIS_760) && SiS_SetCRT2FIFO_310() 5190 (SiS_Pr->SiS_SysFlags & SF_760LFB) && SiS_SetCRT2FIFO_310() 5191 (SiS_Pr->SiS_ModeType == Mode32Bpp) && SiS_SetCRT2FIFO_310() 5192 (SiS_Pr->SiS_VGAHDE >= 1280) && SiS_SetCRT2FIFO_310() 5193 (SiS_Pr->SiS_VGAVDE >= 1024) ) { SiS_SetCRT2FIFO_310() 5194 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2f,0x03); SiS_SetCRT2FIFO_310() 5195 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x01,0x3b); SiS_SetCRT2FIFO_310() 5196 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x4d,0xc0); SiS_SetCRT2FIFO_310() 5197 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2f,0x01); SiS_SetCRT2FIFO_310() 5198 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x4d,0xc0); SiS_SetCRT2FIFO_310() 5199 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x02,0x6e); SiS_SetCRT2FIFO_310() 5201 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x02,~0x3f,0x04); SiS_SetCRT2FIFO_310() 5208 SiS_GetVGAHT2(struct SiS_Private *SiS_Pr) SiS_GetVGAHT2() argument 5212 tempbx = (SiS_Pr->SiS_VGAVT - SiS_Pr->SiS_VGAVDE) * SiS_Pr->SiS_RVBHCMAX; SiS_GetVGAHT2() 5213 tempax = (SiS_Pr->SiS_VT - SiS_Pr->SiS_VDE) * SiS_Pr->SiS_RVBHCFACT; SiS_GetVGAHT2() 5214 tempax = (tempax * SiS_Pr->SiS_HT) / tempbx; SiS_GetVGAHT2() 5220 SiS_SetGroup1_301(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex, SiS_SetGroup1_301() argument 5234 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_SetGroup1_301() 5235 } else if(SiS_Pr->UseCustomMode) { SiS_SetGroup1_301() 5236 modeflag = SiS_Pr->CModeFlag; SiS_SetGroup1_301() 5237 xres = SiS_Pr->CHDisplay; SiS_SetGroup1_301() 5239 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_SetGroup1_301() 5240 xres = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].XRes; SiS_SetGroup1_301() 5245 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1_301() 5247 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x31,0x04); SiS_SetGroup1_301() 5251 SiS_Pr->CHTotal = 8224; /* Max HT, 0x2020, results in 0x3ff in registers */ SiS_SetGroup1_301() 5253 SiS_Pr->CHDisplay = SiS_Pr->SiS_VGAHDE; SiS_SetGroup1_301() 5254 if(modeflag & HalfDCLK) SiS_Pr->CHDisplay >>= 1; SiS_SetGroup1_301() 5256 SiS_Pr->CHBlankStart = SiS_Pr->CHDisplay; SiS_SetGroup1_301() 5257 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup1_301() 5258 SiS_Pr->CHBlankStart += 16; SiS_SetGroup1_301() 5261 SiS_Pr->CHBlankEnd = 32; SiS_SetGroup1_301() 5262 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup1_301() 5263 if(xres == 1600) SiS_Pr->CHBlankEnd += 80; SiS_SetGroup1_301() 5266 temp = SiS_Pr->SiS_VGAHT - 96; SiS_SetGroup1_301() 5268 if(SiS_Pr->SiS_LCDInfo & LCDPass11) { SiS_SetGroup1_301() 5269 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x04); SiS_SetGroup1_301() 5270 temp |= ((SiS_GetReg(SiS_Pr->SiS_P3c4,0x0b) & 0xc0) << 2); SiS_SetGroup1_301() 5274 if(SiS_Pr->SiS_RVBHRS2) temp = SiS_Pr->SiS_RVBHRS2; SiS_SetGroup1_301() 5276 SiS_Pr->CHSyncStart = temp; SiS_SetGroup1_301() 5278 SiS_Pr->CHSyncEnd = 0xffe8; /* results in 0x2000 in registers */ SiS_SetGroup1_301() 5280 SiS_Pr->CVTotal = 2049; /* Max VT, 0x0801, results in 0x7ff in registers */ SiS_SetGroup1_301() 5282 VGAVDE = SiS_Pr->SiS_VGAVDE; SiS_SetGroup1_301() 5290 SiS_Pr->CVDisplay = VGAVDE; SiS_SetGroup1_301() 5292 SiS_Pr->CVBlankStart = SiS_Pr->CVDisplay; SiS_SetGroup1_301() 5294 SiS_Pr->CVBlankEnd = 1; SiS_SetGroup1_301() 5295 if(ModeNo == 0x3c) SiS_Pr->CVBlankEnd = 226; SiS_SetGroup1_301() 5297 temp = (SiS_Pr->SiS_VGAVT - VGAVDE) >> 1; SiS_SetGroup1_301() 5298 SiS_Pr->CVSyncStart = VGAVDE + temp; SiS_SetGroup1_301() 5301 SiS_Pr->CVSyncEnd = SiS_Pr->CVSyncStart + temp; SiS_SetGroup1_301() 5303 SiS_CalcCRRegisters(SiS_Pr, 0); SiS_SetGroup1_301() 5304 SiS_Pr->CCRT1CRTC[16] &= ~0xE0; SiS_SetGroup1_301() 5307 SiS_SetReg(SiS_Pr->SiS_Part1Port,CRTranslation[i],SiS_Pr->CCRT1CRTC[i]); SiS_SetGroup1_301() 5310 SiS_SetReg(SiS_Pr->SiS_Part1Port,CRTranslation[i],SiS_Pr->CCRT1CRTC[j]); SiS_SetGroup1_301() 5313 SiS_SetReg(SiS_Pr->SiS_Part1Port,CRTranslation[i],SiS_Pr->CCRT1CRTC[j]); SiS_SetGroup1_301() 5316 SiS_SetReg(SiS_Pr->SiS_Part1Port,CRTranslation[i],SiS_Pr->CCRT1CRTC[j]); SiS_SetGroup1_301() 5319 temp = SiS_Pr->CCRT1CRTC[16] & 0xE0; SiS_SetGroup1_301() 5320 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,CRTranslation[0x0E],0x1F,temp); SiS_SetGroup1_301() 5322 temp = (SiS_Pr->CCRT1CRTC[16] & 0x01) << 5; SiS_SetGroup1_301() 5324 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,CRTranslation[0x09],0x5F,temp); SiS_SetGroup1_301() 5327 temp |= (SiS_GetReg(SiS_Pr->SiS_P3c4,0x01) & 0x01); SiS_SetGroup1_301() 5329 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x16,temp); /* SR01: HalfDCLK[3], 8/9 div dotclock[0] */ SiS_SetGroup1_301() 5331 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0F,0x00); /* CR14: (text mode: underline location) */ SiS_SetGroup1_301() 5332 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x12,0x00); /* CR17: n/a */ SiS_SetGroup1_301() 5335 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) { SiS_SetGroup1_301() 5336 temp = (SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x01) << 7; SiS_SetGroup1_301() 5338 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1A,temp); /* SR0E, dither[7] */ SiS_SetGroup1_301() 5340 temp = SiS_GetRegByte((SiS_Pr->SiS_P3ca+0x02)); SiS_SetGroup1_301() 5341 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,temp); /* ? */ SiS_SetGroup1_301() 5349 SiS_SetGroup1_LVDS(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetGroup1_LVDS() argument 5364 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_SetGroup1_LVDS() 5365 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SiS_SetGroup1_LVDS() 5367 crt2crtc = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_SetGroup1_LVDS() 5369 } else if(SiS_Pr->UseCustomMode) { SiS_SetGroup1_LVDS() 5370 modeflag = SiS_Pr->CModeFlag; SiS_SetGroup1_LVDS() 5372 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_SetGroup1_LVDS() 5373 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_SetGroup1_LVDS() 5375 crt2crtc = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_SetGroup1_LVDS() 5380 if((SiS_Pr->SiS_IF_DEF_LVDS == 1) || (SiS_Pr->SiS_VBType & VB_NoLCD)) { SiS_SetGroup1_LVDS() 5385 if((SiS_Pr->SiS_VBType & VB_SISVB) && (!(SiS_Pr->SiS_VBType & VB_NoLCD))) { SiS_SetGroup1_LVDS() 5389 if((SiS_Pr->ChipType >= SIS_315H) && (islvds) && (!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA))) { SiS_SetGroup1_LVDS() 5390 if((!SiS_Pr->SiS_IF_DEF_FSTN) && (!SiS_Pr->SiS_IF_DEF_DSTN)) { SiS_SetGroup1_LVDS() 5396 if((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5398 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2D,0x10); SiS_SetGroup1_LVDS() 5401 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,0xfb,0x04); SiS_SetGroup1_LVDS() 5402 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2D,0x03); SiS_SetGroup1_LVDS() 5403 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1_LVDS() 5404 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2D,0x10); SiS_SetGroup1_LVDS() 5408 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,0xfb,0x04); SiS_SetGroup1_LVDS() 5409 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2D,0x00); SiS_SetGroup1_LVDS() 5410 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1_LVDS() 5411 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2D,0x0f); SiS_SetGroup1_LVDS() 5412 if(SiS_Pr->SiS_VBType & VB_SIS30xC) { SiS_SetGroup1_LVDS() 5413 if((SiS_Pr->SiS_LCDResInfo == Panel_1024x768) || SiS_SetGroup1_LVDS() 5414 (SiS_Pr->SiS_LCDResInfo == Panel_1280x1024)) { SiS_SetGroup1_LVDS() 5415 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x2D,0x20); SiS_SetGroup1_LVDS() 5425 tempax = SiS_Pr->SiS_LCDHDES; SiS_SetGroup1_LVDS() 5427 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5428 if(!SiS_Pr->SiS_IF_DEF_FSTN && !SiS_Pr->SiS_IF_DEF_DSTN) { SiS_SetGroup1_LVDS() 5429 if((SiS_Pr->SiS_LCDResInfo == Panel_640x480) && SiS_SetGroup1_LVDS() 5430 (!(SiS_Pr->SiS_VBInfo & SetInSlaveMode))) { SiS_SetGroup1_LVDS() 5438 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1A,temp); /* BPLHDESKEW[2:0] */ SiS_SetGroup1_LVDS() 5440 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x16,temp); /* BPLHDESKEW[10:3] */ SiS_SetGroup1_LVDS() 5442 tempbx = SiS_Pr->SiS_HDE; SiS_SetGroup1_LVDS() 5443 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5444 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5445 tempbx = SiS_Pr->PanelXRes; SiS_SetGroup1_LVDS() 5447 if((SiS_Pr->SiS_LCDResInfo == Panel_320x240_1) || SiS_SetGroup1_LVDS() 5448 (SiS_Pr->SiS_LCDResInfo == Panel_320x240_2) || SiS_SetGroup1_LVDS() 5449 (SiS_Pr->SiS_LCDResInfo == Panel_320x240_3)) { SiS_SetGroup1_LVDS() 5455 if(tempax >= SiS_Pr->SiS_HT) tempax -= SiS_Pr->SiS_HT; SiS_SetGroup1_LVDS() 5460 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x17,temp); /* BPLHDEE */ SiS_SetGroup1_LVDS() 5462 tempcx = (SiS_Pr->SiS_HT - tempbx) >> 2; SiS_SetGroup1_LVDS() 5464 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5465 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5466 if(SiS_Pr->PanelHRS != 999) tempcx = SiS_Pr->PanelHRS; SiS_SetGroup1_LVDS() 5471 if(tempcx >= SiS_Pr->SiS_HT) tempcx -= SiS_Pr->SiS_HT; SiS_SetGroup1_LVDS() 5474 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5475 if(SiS_Pr->SiS_IF_DEF_TRUMPION) { SiS_SetGroup1_LVDS() 5476 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_SetGroup1_LVDS() 5497 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x14,temp); /* BPLHRS */ SiS_SetGroup1_LVDS() 5499 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5501 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5503 if(SiS_Pr->PanelHRE != 999) { SiS_SetGroup1_LVDS() 5504 temp = tempcx + SiS_Pr->PanelHRE; SiS_SetGroup1_LVDS() 5505 if(temp >= SiS_Pr->SiS_HT) temp -= SiS_Pr->SiS_HT; SiS_SetGroup1_LVDS() 5515 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x15,temp); /* BPLHRE */ SiS_SetGroup1_LVDS() 5519 tempax = SiS_Pr->SiS_VGAVDE; SiS_SetGroup1_LVDS() 5520 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5521 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5522 tempax = SiS_Pr->PanelYRes; SiS_SetGroup1_LVDS() 5526 tempbx = SiS_Pr->SiS_LCDVDES + tempax; SiS_SetGroup1_LVDS() 5527 if(tempbx >= SiS_Pr->SiS_VT) tempbx -= SiS_Pr->SiS_VT; SiS_SetGroup1_LVDS() 5531 tempcx = SiS_Pr->SiS_VGAVT - SiS_Pr->SiS_VGAVDE; SiS_SetGroup1_LVDS() 5532 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1_LVDS() 5533 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5534 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5535 tempcx = SiS_Pr->SiS_VGAVT - SiS_Pr->PanelYRes; SiS_SetGroup1_LVDS() 5542 if( (SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) && SiS_SetGroup1_LVDS() 5543 (!(SiS_Pr->SiS_LCDInfo & LCDPass11)) && SiS_SetGroup1_LVDS() 5544 (SiS_Pr->PanelVRS != 999) ) { SiS_SetGroup1_LVDS() 5545 tempcx = SiS_Pr->PanelVRS; SiS_SetGroup1_LVDS() 5550 if(SiS_Pr->ChipType < SIS_315H) tempbx++; SiS_SetGroup1_LVDS() 5554 if(tempbx >= SiS_Pr->SiS_VT) tempbx -= SiS_Pr->SiS_VT; SiS_SetGroup1_LVDS() 5557 if(SiS_Pr->SiS_IF_DEF_TRUMPION) { SiS_SetGroup1_LVDS() 5558 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_SetGroup1_LVDS() 5562 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,temp); /* BPLVRS */ SiS_SetGroup1_LVDS() 5567 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5568 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SiS_SetGroup1_LVDS() 5569 if(SiS_Pr->PanelVRE != 999) tempcx = SiS_Pr->PanelVRE; SiS_SetGroup1_LVDS() 5575 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0xF0,temp); /* BPLVRE */ SiS_SetGroup1_LVDS() 5578 if(SiS_Pr->SiS_IF_DEF_FSTN || SiS_Pr->SiS_IF_DEF_DSTN) { SiS_SetGroup1_LVDS() 5579 if(SiS_Pr->SiS_HDE != 640) { SiS_SetGroup1_LVDS() 5580 if(SiS_Pr->SiS_VGAVDE != SiS_Pr->SiS_VDE) temp |= 0x40; SiS_SetGroup1_LVDS() 5582 } else if(SiS_Pr->SiS_VGAVDE != SiS_Pr->SiS_VDE) temp |= 0x40; SiS_SetGroup1_LVDS() 5583 if(SiS_Pr->SiS_SetFlag & EnableLVDSDDA) temp |= 0x40; SiS_SetGroup1_LVDS() 5585 if((SiS_Pr->ChipType >= SIS_315H) || SiS_SetGroup1_LVDS() 5586 (SiS_Pr->ChipRevision >= 0x30)) { SiS_SetGroup1_LVDS() 5588 if((SiS_Pr->SiS_IF_DEF_CH70xx == 1) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_SetGroup1_LVDS() 5589 if(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x03) temp |= 0x80; SiS_SetGroup1_LVDS() 5592 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) { SiS_SetGroup1_LVDS() 5593 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetGroup1_LVDS() 5594 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x06) & 0x10) temp |= 0x80; SiS_SetGroup1_LVDS() 5596 if(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x01) temp |= 0x80; SiS_SetGroup1_LVDS() 5600 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x1A,tempbx,temp); SiS_SetGroup1_LVDS() 5604 tempcx = SiS_Pr->SiS_LCDVDES; /* BPLVDES */ SiS_SetGroup1_LVDS() 5606 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetGroup1_LVDS() 5607 switch(SiS_Pr->SiS_LCDResInfo) { SiS_SetGroup1_LVDS() 5609 tempbx = SiS_Pr->SiS_VGAVDE - 1; SiS_SetGroup1_LVDS() 5610 tempcx = SiS_Pr->SiS_VGAVDE; SiS_SetGroup1_LVDS() 5613 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetGroup1_LVDS() 5618 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetGroup1_LVDS() 5620 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_SetGroup1_LVDS() 5626 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1_LVDS() 5627 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetGroup1_LVDS() 5637 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1D,temp); SiS_SetGroup1_LVDS() 5638 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1C,tempbx); SiS_SetGroup1_LVDS() 5639 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1B,tempcx); SiS_SetGroup1_LVDS() 5643 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1_LVDS() 5646 tempeax = SiS_Pr->SiS_VGAVDE << 6; SiS_SetGroup1_LVDS() 5647 temp = (tempeax % (unsigned int)SiS_Pr->SiS_VDE); SiS_SetGroup1_LVDS() 5648 tempeax = tempeax / (unsigned int)SiS_Pr->SiS_VDE; SiS_SetGroup1_LVDS() 5651 if(SiS_Pr->SiS_SetFlag & EnableLVDSDDA) tempeax = 0x3F; SiS_SetGroup1_LVDS() 5654 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1E,temp); /* BPLVCFACT */ SiS_SetGroup1_LVDS() 5661 tempeax = SiS_Pr->SiS_VGAVDE << 18; SiS_SetGroup1_LVDS() 5662 tempebx = SiS_Pr->SiS_VDE; SiS_SetGroup1_LVDS() 5669 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x37,temp); SiS_SetGroup1_LVDS() 5671 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x36,temp); SiS_SetGroup1_LVDS() 5673 if(SiS_Pr->SiS_VDE == SiS_Pr->SiS_VGAVDE) temp |= 0x04; SiS_SetGroup1_LVDS() 5674 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x35,temp); SiS_SetGroup1_LVDS() 5676 if(SiS_Pr->SiS_VBType & VB_SISPART4SCALER) { SiS_SetGroup1_LVDS() 5678 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x3c,temp); SiS_SetGroup1_LVDS() 5680 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x3b,temp); SiS_SetGroup1_LVDS() 5682 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x3a,0x3f,temp); SiS_SetGroup1_LVDS() 5684 if(SiS_Pr->SiS_VDE != SiS_Pr->SiS_VGAVDE) temp |= 0x08; SiS_SetGroup1_LVDS() 5685 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x30,0xf3,temp); SiS_SetGroup1_LVDS() 5693 tempeax = SiS_Pr->SiS_VGAHDE; /* 1f = ( (VGAHDE * 65536) / ( (VGAHDE * 65536) / HDE ) ) - 1*/ SiS_SetGroup1_LVDS() 5698 if(SiS_Pr->SiS_HDE == tempeax) { SiS_SetGroup1_LVDS() 5701 tempecx = tempebx / SiS_Pr->SiS_HDE; SiS_SetGroup1_LVDS() 5702 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1_LVDS() 5703 if(tempebx % SiS_Pr->SiS_HDE) tempecx++; SiS_SetGroup1_LVDS() 5707 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1_LVDS() 5710 tempeax = ((SiS_Pr->SiS_VGAHT << 16) / tempecx) - 1; SiS_SetGroup1_LVDS() 5714 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1F,temp); SiS_SetGroup1_LVDS() 5716 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1_LVDS() 5717 tempeax = (SiS_Pr->SiS_VGAVDE << 18) / tempvcfact; SiS_SetGroup1_LVDS() 5720 tempeax = SiS_Pr->SiS_VGAVDE << 6; SiS_SetGroup1_LVDS() 5726 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) tempbx--; SiS_SetGroup1_LVDS() 5727 if(SiS_Pr->SiS_SetFlag & EnableLVDSDDA) { SiS_SetGroup1_LVDS() 5728 if((!SiS_Pr->SiS_IF_DEF_FSTN) && (!SiS_Pr->SiS_IF_DEF_DSTN)) tempbx = 1; SiS_SetGroup1_LVDS() 5729 else if(SiS_Pr->SiS_LCDResInfo != Panel_640x480) tempbx = 1; SiS_SetGroup1_LVDS() 5734 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x20,temp); SiS_SetGroup1_LVDS() 5735 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x21,tempbx); SiS_SetGroup1_LVDS() 5742 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x22,temp); SiS_SetGroup1_LVDS() 5744 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x23,temp); SiS_SetGroup1_LVDS() 5747 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1_LVDS() 5748 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetGroup1_LVDS() 5749 if((islvds) || (SiS_Pr->SiS_VBInfo & VB_SISLVDS)) { SiS_SetGroup1_LVDS() 5750 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1e,0x20); SiS_SetGroup1_LVDS() 5754 if(SiS_Pr->ChipType == SIS_740) { SiS_SetGroup1_LVDS() 5755 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1e,0x03); SiS_SetGroup1_LVDS() 5757 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1e,0x23); SiS_SetGroup1_LVDS() 5765 if(SiS_Pr->SiS_IF_DEF_TRUMPION) { SiS_SetGroup1_LVDS() 5766 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetGroup1_LVDS() 5773 if(SiS_Pr->SiS_UseROM) { SiS_SetGroup1_LVDS() 5776 if(SiS_Pr->SiS_LCDTypeInfo == 0x0e) j += 7; SiS_SetGroup1_LVDS() 5780 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x02,0xbf); SiS_SetGroup1_LVDS() 5782 SiS_SetTrumpionBlock(SiS_Pr, trumpdata); SiS_SetGroup1_LVDS() 5784 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_SetGroup1_LVDS() 5787 SiS_SetTrumpionBlock(SiS_Pr, &TrumpMode13[0]); SiS_SetGroup1_LVDS() 5791 SiS_SetTrumpionBlock(SiS_Pr, &TrumpMode10_1[0]); SiS_SetGroup1_LVDS() 5792 SiS_SetTrumpionBlock(SiS_Pr, &TrumpMode10_2[0]); SiS_SetGroup1_LVDS() 5796 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40); SiS_SetGroup1_LVDS() 5801 if(SiS_Pr->SiS_IF_DEF_FSTN || SiS_Pr->SiS_IF_DEF_DSTN) { SiS_SetGroup1_LVDS() 5802 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x25,0x00); SiS_SetGroup1_LVDS() 5803 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x26,0x00); SiS_SetGroup1_LVDS() 5804 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x27,0x00); SiS_SetGroup1_LVDS() 5805 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x28,0x87); SiS_SetGroup1_LVDS() 5806 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x29,0x5A); SiS_SetGroup1_LVDS() 5807 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2A,0x4B); SiS_SetGroup1_LVDS() 5808 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x44,~0x07,0x03); SiS_SetGroup1_LVDS() 5809 tempax = SiS_Pr->SiS_HDE; /* Blps = lcdhdee(lcdhdes+HDE) + 64 */ SiS_SetGroup1_LVDS() 5810 if(SiS_Pr->SiS_LCDResInfo == Panel_320x240_1 || SiS_SetGroup1_LVDS() 5811 SiS_Pr->SiS_LCDResInfo == Panel_320x240_2 || SiS_SetGroup1_LVDS() 5812 SiS_Pr->SiS_LCDResInfo == Panel_320x240_3) tempax >>= 1; SiS_SetGroup1_LVDS() 5814 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x38,tempax & 0xff); SiS_SetGroup1_LVDS() 5816 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x35,~0x078,temp); SiS_SetGroup1_LVDS() 5818 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x39,tempax & 0xff); SiS_SetGroup1_LVDS() 5819 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3A,0x00); /* Bflml = 0 */ SiS_SetGroup1_LVDS() 5820 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x3C,~0x007); SiS_SetGroup1_LVDS() 5822 tempax = SiS_Pr->SiS_VDE; SiS_SetGroup1_LVDS() 5823 if(SiS_Pr->SiS_LCDResInfo == Panel_320x240_1 || SiS_SetGroup1_LVDS() 5824 SiS_Pr->SiS_LCDResInfo == Panel_320x240_2 || SiS_SetGroup1_LVDS() 5825 SiS_Pr->SiS_LCDResInfo == Panel_320x240_3) tempax >>= 1; SiS_SetGroup1_LVDS() 5827 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3B,tempax & 0xff); SiS_SetGroup1_LVDS() 5829 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x3C,~0x038,temp); SiS_SetGroup1_LVDS() 5831 tempeax = SiS_Pr->SiS_HDE; SiS_SetGroup1_LVDS() 5832 if(SiS_Pr->SiS_LCDResInfo == Panel_320x240_1 || SiS_SetGroup1_LVDS() 5833 SiS_Pr->SiS_LCDResInfo == Panel_320x240_2 || SiS_SetGroup1_LVDS() 5834 SiS_Pr->SiS_LCDResInfo == Panel_320x240_3) tempeax >>= 1; SiS_SetGroup1_LVDS() 5840 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x45,temp); SiS_SetGroup1_LVDS() 5841 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3F,0x00); /* BDxWadrst0 */ SiS_SetGroup1_LVDS() 5842 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3E,0x00); SiS_SetGroup1_LVDS() 5843 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3D,0x10); SiS_SetGroup1_LVDS() 5844 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x3C,~0x040); SiS_SetGroup1_LVDS() 5846 tempax = SiS_Pr->SiS_HDE; SiS_SetGroup1_LVDS() 5847 if(SiS_Pr->SiS_LCDResInfo == Panel_320x240_1 || SiS_SetGroup1_LVDS() 5848 SiS_Pr->SiS_LCDResInfo == Panel_320x240_2 || SiS_SetGroup1_LVDS() 5849 SiS_Pr->SiS_LCDResInfo == Panel_320x240_3) tempax >>= 1; SiS_SetGroup1_LVDS() 5853 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x43,temp); SiS_SetGroup1_LVDS() 5855 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port, 0x44, 0x07, temp); SiS_SetGroup1_LVDS() 5857 tempax = SiS_Pr->SiS_VDE; /* BDxWadrst1 = BDxWadrst0 + BDxWadroff * VDE */ SiS_SetGroup1_LVDS() 5858 if(SiS_Pr->SiS_LCDResInfo == Panel_320x240_1 || SiS_SetGroup1_LVDS() 5859 SiS_Pr->SiS_LCDResInfo == Panel_320x240_2 || SiS_SetGroup1_LVDS() 5860 SiS_Pr->SiS_LCDResInfo == Panel_320x240_3) tempax >>= 1; SiS_SetGroup1_LVDS() 5863 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x42,temp); SiS_SetGroup1_LVDS() 5865 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x41,temp); SiS_SetGroup1_LVDS() 5867 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x40,temp); SiS_SetGroup1_LVDS() 5869 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port, 0x3C, 0x7F, temp); SiS_SetGroup1_LVDS() 5871 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2F,0x03); SiS_SetGroup1_LVDS() 5872 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x03,0x50); SiS_SetGroup1_LVDS() 5873 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x04,0x00); SiS_SetGroup1_LVDS() 5874 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2F,0x01); SiS_SetGroup1_LVDS() 5875 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x19,0x38); SiS_SetGroup1_LVDS() 5877 if(SiS_Pr->SiS_IF_DEF_FSTN) { SiS_SetGroup1_LVDS() 5878 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2b,0x02); SiS_SetGroup1_LVDS() 5879 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2c,0x00); SiS_SetGroup1_LVDS() 5880 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2d,0x00); SiS_SetGroup1_LVDS() 5881 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x35,0x0c); SiS_SetGroup1_LVDS() 5882 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x36,0x00); SiS_SetGroup1_LVDS() 5883 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x37,0x00); SiS_SetGroup1_LVDS() 5884 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x38,0x80); SiS_SetGroup1_LVDS() 5885 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x39,0xA0); SiS_SetGroup1_LVDS() 5886 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3a,0x00); SiS_SetGroup1_LVDS() 5887 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3b,0xf0); SiS_SetGroup1_LVDS() 5888 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3c,0x00); SiS_SetGroup1_LVDS() 5889 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3d,0x10); SiS_SetGroup1_LVDS() 5890 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3e,0x00); SiS_SetGroup1_LVDS() 5891 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x3f,0x00); SiS_SetGroup1_LVDS() 5892 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x40,0x10); SiS_SetGroup1_LVDS() 5893 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x41,0x25); SiS_SetGroup1_LVDS() 5894 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x42,0x80); SiS_SetGroup1_LVDS() 5895 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x43,0x14); SiS_SetGroup1_LVDS() 5896 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x44,0x03); SiS_SetGroup1_LVDS() 5897 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x45,0x0a); SiS_SetGroup1_LVDS() 5905 SiS_SetGroup1(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetGroup1() argument 5909 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetGroup1() 5917 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetGroup1() 5918 SiS_SetGroup1_LVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup1() 5923 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_SetGroup1() 5924 } else if(SiS_Pr->UseCustomMode) { SiS_SetGroup1() 5925 modeflag = SiS_Pr->CModeFlag; SiS_SetGroup1() 5927 CRT1Index = SiS_GetRefCRT1CRTC(SiS_Pr, RefreshRateTableIndex, SiS_Pr->SiS_UseWideCRT2); SiS_SetGroup1() 5928 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_SetGroup1() 5929 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_SetGroup1() 5932 SiS_SetCRT2Offset(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup1() 5934 if( ! ((SiS_Pr->ChipType >= SIS_315H) && SiS_SetGroup1() 5935 (SiS_Pr->SiS_IF_DEF_LVDS == 1) && SiS_SetGroup1() 5936 (SiS_Pr->SiS_VBInfo & SetInSlaveMode)) ) { SiS_SetGroup1() 5938 if(SiS_Pr->ChipType < SIS_315H ) { SiS_SetGroup1() 5940 SiS_SetCRT2FIFO_300(SiS_Pr, ModeNo); SiS_SetGroup1() 5944 SiS_SetCRT2FIFO_310(SiS_Pr); SiS_SetGroup1() 5950 if(SiS_Pr->ChipType < SIS_315H ) { SiS_SetGroup1() 5954 temp = (SiS_Pr->SiS_VGAHT - 1) & 0x0FF; /* BTVGA2HT 0x08,0x09 */ SiS_SetGroup1() 5955 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x08,temp); /* CRT2 Horizontal Total */ SiS_SetGroup1() 5957 temp = (((SiS_Pr->SiS_VGAHT - 1) & 0xFF00) >> 8) << 4; SiS_SetGroup1() 5958 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x09,0x0f,temp); /* CRT2 Horizontal Total Overflow [7:4] */ SiS_SetGroup1() 5960 temp = (SiS_Pr->SiS_VGAHDE + 12) & 0x0FF; /* BTVGA2HDEE 0x0A,0x0C */ SiS_SetGroup1() 5961 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0A,temp); /* CRT2 Horizontal Display Enable End */ SiS_SetGroup1() 5963 pushbx = SiS_Pr->SiS_VGAHDE + 12; /* bx BTVGA2HRS 0x0B,0x0C */ SiS_SetGroup1() 5964 tempcx = (SiS_Pr->SiS_VGAHT - SiS_Pr->SiS_VGAHDE) >> 2; SiS_SetGroup1() 5977 tempcx = SiS_Pr->SiS_VGAHT; /* BTVGA2HT 0x08,0x09 */ SiS_SetGroup1() 5979 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 5982 tempax = SiS_Pr->SiS_VGAHDE >> 1; SiS_SetGroup1() 5983 tempcx = SiS_Pr->SiS_HT - SiS_Pr->SiS_HDE + tempax; SiS_SetGroup1() 5984 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_SetGroup1() 5985 tempcx = SiS_Pr->SiS_HT - tempax; SiS_SetGroup1() 5990 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x08,tempcx); /* CRT2 Horizontal Total */ SiS_SetGroup1() 5992 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x09,0x0F,temp); /* CRT2 Horizontal Total Overflow [7:4] */ SiS_SetGroup1() 5994 tempcx = SiS_Pr->SiS_VGAHT; /* BTVGA2HDEE 0x0A,0x0C */ SiS_SetGroup1() 5995 tempbx = SiS_Pr->SiS_VGAHDE; SiS_SetGroup1() 6004 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0A,tempbx); /* CRT2 Horizontal Display Enable End */ SiS_SetGroup1() 6013 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 6014 if(SiS_Pr->ChipType >= SIS_661) { SiS_SetGroup1() 6015 if((SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) || SiS_SetGroup1() 6016 (SiS_Pr->SiS_LCDResInfo == Panel_1280x1024)) { SiS_SetGroup1() 6030 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 6032 if(SiS_Pr->UseCustomMode) { SiS_SetGroup1() 6033 tempbx = SiS_Pr->CHSyncStart + bridgeadd; SiS_SetGroup1() 6034 tempcx = SiS_Pr->CHSyncEnd + bridgeadd; SiS_SetGroup1() 6035 tempax = SiS_Pr->SiS_VGAHT; SiS_SetGroup1() 6041 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) { SiS_SetGroup1() 6043 if(SiS_Pr->UseCustomMode) { SiS_SetGroup1() 6044 cr4 = SiS_Pr->CCRT1CRTC[4]; SiS_SetGroup1() 6045 cr14 = SiS_Pr->CCRT1CRTC[14]; SiS_SetGroup1() 6046 cr5 = SiS_Pr->CCRT1CRTC[5]; SiS_SetGroup1() 6047 cr15 = SiS_Pr->CCRT1CRTC[15]; SiS_SetGroup1() 6049 cr4 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[4]; SiS_SetGroup1() 6050 cr14 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[14]; SiS_SetGroup1() 6051 cr5 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[5]; SiS_SetGroup1() 6052 cr15 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[15]; SiS_SetGroup1() 6060 tempax = SiS_Pr->SiS_VGAHT; SiS_SetGroup1() 6066 if(SiS_Pr->SiS_TVMode & (TVSetNTSC1024 | TVSet525p1024)) { SiS_SetGroup1() 6073 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0B,tempbx); /* CRT2 Horizontal Retrace Start */ SiS_SetGroup1() 6075 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0D,tempcx); /* CRT2 Horizontal Retrace End */ SiS_SetGroup1() 6078 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0C,temp); /* Overflow */ SiS_SetGroup1() 6082 tempcx = SiS_Pr->SiS_VGAVT - 1; SiS_SetGroup1() 6085 if(SiS_Pr->ChipType < SIS_661) { SiS_SetGroup1() 6086 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_SetGroup1() 6087 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1() 6088 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetGroup1() 6089 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToSVIDEO | SetCRT2ToAVIDEO)) { SiS_SetGroup1() 6096 } else if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup1() 6100 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0E,temp); /* CRT2 Vertical Total */ SiS_SetGroup1() 6102 tempbx = SiS_Pr->SiS_VGAVDE - 1; SiS_SetGroup1() 6103 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x0F,tempbx); /* CRT2 Vertical Display Enable End */ SiS_SetGroup1() 6106 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x12,temp); /* Overflow */ SiS_SetGroup1() 6108 if((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->ChipType < SIS_661)) { SiS_SetGroup1() 6120 tempbx = (SiS_Pr->SiS_VGAVT + SiS_Pr->SiS_VGAVDE) >> 1; /* BTVGA2VRS 0x10,0x11 */ SiS_SetGroup1() 6121 tempcx = ((SiS_Pr->SiS_VGAVT - SiS_Pr->SiS_VGAVDE) >> 4) + tempbx + 1; /* BTVGA2VRE 0x11 */ SiS_SetGroup1() 6124 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 6125 if(SiS_Pr->UseCustomMode) { SiS_SetGroup1() 6126 tempbx = SiS_Pr->CVSyncStart; SiS_SetGroup1() 6127 tempcx = SiS_Pr->CVSyncEnd; SiS_SetGroup1() 6129 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) { SiS_SetGroup1() 6131 if(SiS_Pr->UseCustomMode) { SiS_SetGroup1() 6132 cr8 = SiS_Pr->CCRT1CRTC[8]; SiS_SetGroup1() 6133 cr7 = SiS_Pr->CCRT1CRTC[7]; SiS_SetGroup1() 6134 cr13 = SiS_Pr->CCRT1CRTC[13]; SiS_SetGroup1() 6135 tempcx = SiS_Pr->CCRT1CRTC[9]; SiS_SetGroup1() 6137 cr8 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[8]; SiS_SetGroup1() 6138 cr7 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[7]; SiS_SetGroup1() 6139 cr13 = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[13]; SiS_SetGroup1() 6140 tempcx = SiS_Pr->SiS_CRT1Table[CRT1Index].CR[9]; SiS_SetGroup1() 6148 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x10,tempbx); /* CRT2 Vertical Retrace Start */ SiS_SetGroup1() 6151 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x11,temp); /* CRT2 Vert. Retrace End; Overflow */ SiS_SetGroup1() 6155 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1() 6159 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 6161 if(SiS_Pr->ChipType == SIS_300) { SiS_SetGroup1() 6163 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) temp = 0x2c; SiS_SetGroup1() 6164 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) temp = 0x20; SiS_SetGroup1() 6166 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_SetGroup1() 6167 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) temp = 0x20; SiS_SetGroup1() 6169 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x960) temp = 0x24; SiS_SetGroup1() 6170 if(SiS_Pr->SiS_LCDResInfo == Panel_Custom) temp = 0x2c; SiS_SetGroup1() 6171 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) temp = 0x08; SiS_SetGroup1() 6172 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup1() 6173 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) temp = 0x2c; SiS_SetGroup1() 6176 if(SiS_Pr->SiS_UseROM) { SiS_SetGroup1() 6178 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTVNoYPbPrHiVision) SiS_SetGroup1() 6180 else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) SiS_SetGroup1() 6182 else if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) SiS_SetGroup1() 6188 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup1() 6189 if(SiS_Pr->PDC != -1) temp = SiS_Pr->PDC; SiS_SetGroup1() 6194 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_SetGroup1() 6195 if(SiS_Pr->SiS_LCDResInfo == Panel_640x480) temp = 0x04; SiS_SetGroup1() 6197 if(SiS_Pr->SiS_UseROM) { SiS_SetGroup1() 6202 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup1() 6203 if(SiS_Pr->PDC != -1) temp = SiS_Pr->PDC; SiS_SetGroup1() 6209 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,~0x3C,temp); /* Panel Link Delay Compensation; (Software Command Reset; Power Saving) */ SiS_SetGroup1() 6217 if(SiS_Pr->ChipType < SIS_661) { SiS_SetGroup1() 6219 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_SetGroup1() 6221 if(SiS_Pr->ChipType == SIS_740) temp = 0x03; SiS_SetGroup1() 6224 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) temp = 0x0a; SiS_SetGroup1() 6226 if(SiS_Pr->ChipType == SIS_650) { SiS_SetGroup1() 6227 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetGroup1() 6228 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) tempbl = 0x0F; SiS_SetGroup1() 6232 if(SiS_Pr->SiS_IF_DEF_DSTN || SiS_Pr->SiS_IF_DEF_FSTN) { SiS_SetGroup1() 6235 if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SiS_SetGroup1() 6240 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,tempbl,temp); /* Panel Link Delay Compensation */ SiS_SetGroup1() 6248 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2C,0x3f,tempax); SiS_SetGroup1() 6256 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetGroup1() 6257 if((SiS_Pr->SiS_VBType & VB_NoLCD) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) { SiS_SetGroup1() 6259 SiS_SetGroup1_LVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup1() 6260 } else if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetGroup1() 6261 SiS_SetGroup1_301(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup1() 6264 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetGroup1() 6265 SiS_SetGroup1_LVDS(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup1() 6267 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetGroup1() 6268 if((!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) || (SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetGroup1() 6269 SiS_SetGroup1_LVDS(SiS_Pr, ModeNo,ModeIdIndex,RefreshRateTableIndex); SiS_SetGroup1() 6272 SiS_SetGroup1_LVDS(SiS_Pr, ModeNo,ModeIdIndex,RefreshRateTableIndex); SiS_SetGroup1() 6284 SiS_GetGroup2CLVXPtr(struct SiS_Private *SiS_Pr, int tabletype) SiS_GetGroup2CLVXPtr() argument 6289 a = SiS_Pr->SiS_VGAHDE; SiS_GetGroup2CLVXPtr() 6290 b = SiS_Pr->SiS_HDE; SiS_GetGroup2CLVXPtr() 6292 a = SiS_Pr->SiS_VGAVDE; SiS_GetGroup2CLVXPtr() 6293 b = SiS_Pr->SiS_VDE; SiS_GetGroup2CLVXPtr() 6301 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_GetGroup2CLVXPtr() 6306 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_GetGroup2CLVXPtr() 6307 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525i) tableptr = SiS_Part2CLVX_3; SiS_GetGroup2CLVXPtr() 6308 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) tableptr = SiS_Part2CLVX_3; SiS_GetGroup2CLVXPtr() 6310 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_GetGroup2CLVXPtr() 6324 SiS_SetGroup2_C_ELV(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetGroup2_C_ELV() argument 6331 if(!(SiS_Pr->SiS_VBType & VB_SISTAP4SCALER)) return; SiS_SetGroup2_C_ELV() 6333 tableptr = SiS_GetGroup2CLVXPtr(SiS_Pr, 0); SiS_SetGroup2_C_ELV() 6335 SiS_SetReg(SiS_Pr->SiS_Part2Port, i, tableptr[j]); SiS_SetGroup2_C_ELV() 6337 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup2_C_ELV() 6338 tableptr = SiS_GetGroup2CLVXPtr(SiS_Pr, 1); SiS_SetGroup2_C_ELV() 6340 SiS_SetReg(SiS_Pr->SiS_Part2Port, i, tableptr[j]); SiS_SetGroup2_C_ELV() 6344 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) temp |= 0x04; SiS_SetGroup2_C_ELV() 6345 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x4e,0xeb,temp); SiS_SetGroup2_C_ELV() 6349 SiS_GetCRT2Part2Ptr(struct SiS_Private *SiS_Pr,unsigned short ModeNo,unsigned short ModeIdIndex, SiS_GetCRT2Part2Ptr() argument 6354 if(SiS_Pr->ChipType < SIS_315H) return false; SiS_GetCRT2Part2Ptr() 6357 (*ResIndex) = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_GetCRT2Part2Ptr() 6359 (*ResIndex) = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_GetCRT2Part2Ptr() 6364 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_GetCRT2Part2Ptr() 6365 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) { SiS_GetCRT2Part2Ptr() 6370 if(SiS_Pr->SiS_CustomT == CUT_ASUSA2H_2) { SiS_GetCRT2Part2Ptr() 6371 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_GetCRT2Part2Ptr() 6372 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) (*CRT2Index) = 206; SiS_GetCRT2Part2Ptr() 6381 SiS_Group2LCDSpecial(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short crt2crtc) SiS_Group2LCDSpecial() argument 6389 if(!SiS_Pr->UseCustomMode) { SiS_Group2LCDSpecial() 6390 if( ( ( (SiS_Pr->ChipType == SIS_630) || SiS_Group2LCDSpecial() 6391 (SiS_Pr->ChipType == SIS_730) ) && SiS_Group2LCDSpecial() 6392 (SiS_Pr->ChipRevision > 2) ) && SiS_Group2LCDSpecial() 6393 (SiS_Pr->SiS_LCDResInfo == Panel_1024x768) && SiS_Group2LCDSpecial() 6394 (!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) && SiS_Group2LCDSpecial() 6395 (!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) ) { SiS_Group2LCDSpecial() 6397 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,0xB9); SiS_Group2LCDSpecial() 6398 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x05,0xCC); SiS_Group2LCDSpecial() 6399 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,0xA6); SiS_Group2LCDSpecial() 6401 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x2B); SiS_Group2LCDSpecial() 6402 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x13); SiS_Group2LCDSpecial() 6403 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,0xE5); SiS_Group2LCDSpecial() 6404 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x05,0x08); SiS_Group2LCDSpecial() 6405 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,0xE2); SiS_Group2LCDSpecial() 6409 if(SiS_Pr->ChipType < SIS_315H) { SiS_Group2LCDSpecial() 6410 if(SiS_Pr->SiS_LCDTypeInfo == 0x0c) { SiS_Group2LCDSpecial() 6413 if(!(SiS_Pr->SiS_VBInfo & SetNotSimuMode)) { SiS_Group2LCDSpecial() 6414 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_Group2LCDSpecial() 6420 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,0xff); SiS_Group2LCDSpecial() 6423 if(!(SiS_Pr->SiS_VBInfo & SetNotSimuMode)) { SiS_Group2LCDSpecial() 6424 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_Group2LCDSpecial() 6426 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x28); SiS_Group2LCDSpecial() 6430 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x18); SiS_Group2LCDSpecial() 6431 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,atable[tempcx]); SiS_Group2LCDSpecial() 6439 SiS_Set300Part2Regs(struct SiS_Private *SiS_Pr, unsigned short ModeIdIndex, unsigned short RefreshRateTableIndex, SiS_Set300Part2Regs() argument 6446 if(SiS_Pr->ChipType != SIS_300) return; SiS_Set300Part2Regs() 6447 if(!(SiS_Pr->SiS_VBType & VB_SIS30xBLV)) return; SiS_Set300Part2Regs() 6448 if(SiS_Pr->UseCustomMode) return; SiS_Set300Part2Regs() 6451 crt2crtc = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_Set300Part2Regs() 6453 crt2crtc = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_Set300Part2Regs() 6457 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) CRT2Part2Ptr = SiS_Pr->SiS_CRT2Part2_1024x768_1; SiS_Set300Part2Regs() 6458 else CRT2Part2Ptr = SiS_Pr->SiS_CRT2Part2_1024x768_2; SiS_Set300Part2Regs() 6462 CRT2Part2Ptr = SiS_Pr->SiS_CRT2Part2_1024x768_1; SiS_Set300Part2Regs() 6466 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x01,0x80,(CRT2Part2Ptr+resindex)->CR[0]); SiS_Set300Part2Regs() 6467 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x02,0x80,(CRT2Part2Ptr+resindex)->CR[1]); SiS_Set300Part2Regs() 6469 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_Set300Part2Regs() 6472 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_Set300Part2Regs() 6475 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_Set300Part2Regs() 6477 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x23,(CRT2Part2Ptr+resindex)->CR[10]); SiS_Set300Part2Regs() 6478 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x25,0x0f,(CRT2Part2Ptr+resindex)->CR[11]); SiS_Set300Part2Regs() 6483 SiS_SetTVSpecial(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_SetTVSpecial() argument 6485 if(!(SiS_Pr->SiS_VBType & VB_SIS30xBLV)) return; SiS_SetTVSpecial() 6486 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTVNoHiVision)) return; SiS_SetTVSpecial() 6487 if(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p | TVSetYPbPr750p)) return; SiS_SetTVSpecial() 6489 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) { SiS_SetTVSpecial() 6490 if(SiS_Pr->SiS_TVMode & TVSetNTSC1024) { SiS_SetTVSpecial() 6498 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,specialtv[j]); SiS_SetTVSpecial() 6500 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x43,0x72); SiS_SetTVSpecial() 6501 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750)) { SiS_SetTVSpecial() 6502 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_SetTVSpecial() 6503 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x14); SiS_SetTVSpecial() 6504 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x1b); SiS_SetTVSpecial() 6506 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x14); /* 15 */ SiS_SetTVSpecial() 6507 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x1a); /* 1b */ SiS_SetTVSpecial() 6514 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x1b); /* 21 */ SiS_SetTVSpecial() 6515 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x54); /* 5a */ SiS_SetTVSpecial() 6517 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x1a); /* 21 */ SiS_SetTVSpecial() 6518 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x53); /* 5a */ SiS_SetTVSpecial() 6524 SiS_SetGroup2_Tail(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_SetGroup2_Tail() argument 6528 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) { SiS_SetGroup2_Tail() 6529 if(SiS_Pr->SiS_VGAVDE == 525) { SiS_SetGroup2_Tail() 6531 if(SiS_Pr->SiS_ModeType <= ModeVGA) { SiS_SetGroup2_Tail() 6533 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) temp += 2; SiS_SetGroup2_Tail() 6535 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x2f,temp); SiS_SetGroup2_Tail() 6536 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x30,0xb3); SiS_SetGroup2_Tail() 6537 } else if(SiS_Pr->SiS_VGAVDE == 420) { SiS_SetGroup2_Tail() 6539 if(SiS_Pr->SiS_ModeType <= ModeVGA) { SiS_SetGroup2_Tail() 6541 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) temp++; SiS_SetGroup2_Tail() 6543 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x2f,temp); SiS_SetGroup2_Tail() 6547 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup2_Tail() 6548 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) { SiS_SetGroup2_Tail() 6549 if(SiS_Pr->SiS_VBType & VB_SIS30xB) { SiS_SetGroup2_Tail() 6550 SiS_SetRegOR(SiS_Pr->SiS_Part2Port,0x1a,0x03); SiS_SetGroup2_Tail() 6555 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x0b,temp); SiS_SetGroup2_Tail() 6559 if((SiS_Pr->SiS_PanelXRes == 1280) && (SiS_Pr->SiS_PanelYRes == 768)) { SiS_SetGroup2_Tail() 6560 if(SiS_Pr->SiS_VBInfo & SetSimuScanMode) { SiS_SetGroup2_Tail() 6561 if(((SiS_Pr->SiS_HDE == 640) && (SiS_Pr->SiS_VDE == 480)) || SiS_SetGroup2_Tail() 6562 ((SiS_Pr->SiS_HDE == 320) && (SiS_Pr->SiS_VDE == 240))) { SiS_SetGroup2_Tail() 6583 SiS_SetGroup2(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetGroup2() argument 6595 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) return; SiS_SetGroup2() 6599 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_SetGroup2() 6600 crt2crtc = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_SetGroup2() 6601 } else if(SiS_Pr->UseCustomMode) { SiS_SetGroup2() 6602 modeflag = SiS_Pr->CModeFlag; SiS_SetGroup2() 6605 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_SetGroup2() 6606 crt2crtc = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_SetGroup2() 6610 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToAVIDEO)) temp |= 0x08; SiS_SetGroup2() 6611 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToSVIDEO)) temp |= 0x04; SiS_SetGroup2() 6612 if(SiS_Pr->SiS_VBInfo & SetCRT2ToSCART) temp |= 0x02; SiS_SetGroup2() 6613 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) temp |= 0x01; SiS_SetGroup2() 6615 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) temp |= 0x10; SiS_SetGroup2() 6617 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x00,temp); SiS_SetGroup2() 6620 TimingPoint = SiS_Pr->SiS_PALTiming; SiS_SetGroup2() 6623 if( (SiS_Pr->SiS_VBType & VB_SIS30xBLV) && SiS_SetGroup2() 6624 ( (!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) || SiS_SetGroup2() 6625 (SiS_Pr->SiS_TVMode & TVSetTVSimuMode) ) ) { SiS_SetGroup2() 6629 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup2() 6631 TimingPoint = SiS_Pr->SiS_HiTVExtTiming; SiS_SetGroup2() 6632 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetGroup2() 6633 TimingPoint = SiS_Pr->SiS_HiTVSt2Timing; SiS_SetGroup2() 6634 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) { SiS_SetGroup2() 6635 TimingPoint = SiS_Pr->SiS_HiTVSt1Timing; SiS_SetGroup2() 6639 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_SetGroup2() 6642 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) i = 2; SiS_SetGroup2() 6643 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) i = 1; SiS_SetGroup2() 6649 } else if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetGroup2() 6655 TimingPoint = SiS_Pr->SiS_NTSCTiming; SiS_SetGroup2() 6656 PhaseIndex = (SiS_Pr->SiS_TVMode & TVSetNTSCJ) ? 0x01 : 0x00; /* SiS_PALPhase : SiS_NTSCPhase */ SiS_SetGroup2() 6661 if(SiS_Pr->SiS_TVMode & (TVSetPALM | TVSetPALN)) { SiS_SetGroup2() 6662 PhaseIndex = (SiS_Pr->SiS_TVMode & TVSetPALM) ? 0x02 : 0x03; /* SiS_PALMPhase : SiS_PALNPhase */ SiS_SetGroup2() 6666 if(SiS_Pr->SiS_TVMode & TVSetNTSC1024) { SiS_SetGroup2() 6667 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_SetGroup2() 6669 } else if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) { SiS_SetGroup2() 6677 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS_TVPhase[(PhaseIndex * 4) + j]); SiS_SetGroup2() 6681 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,TimingPoint[j]); SiS_SetGroup2() 6684 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,TimingPoint[j]); SiS_SetGroup2() 6687 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup2() 6688 if(SiS_Pr->SiS_ModeType != ModeText) { SiS_SetGroup2() 6689 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x3A,0x1F); SiS_SetGroup2() 6693 SiS_SetRegOR(SiS_Pr->SiS_Part2Port,0x0A,SiS_Pr->SiS_NewFlickerMode); SiS_SetGroup2() 6695 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x35,SiS_Pr->SiS_RY1COE); SiS_SetGroup2() 6696 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x36,SiS_Pr->SiS_RY2COE); SiS_SetGroup2() 6697 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x37,SiS_Pr->SiS_RY3COE); SiS_SetGroup2() 6698 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x38,SiS_Pr->SiS_RY4COE); SiS_SetGroup2() 6700 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) tempax = 950; SiS_SetGroup2() 6701 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) tempax = 680; SiS_SetGroup2() 6702 else if(SiS_Pr->SiS_TVMode & TVSetPAL) tempax = 520; SiS_SetGroup2() 6705 if( ((SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) && (SiS_Pr->SiS_VDE <= tempax)) || SiS_SetGroup2() 6706 ( (SiS_Pr->SiS_VBInfo & SetCRT2ToTVNoHiVision) && SiS_SetGroup2() 6707 ((SiS_Pr->SiS_VGAHDE == 1024) || (SiS_Pr->SiS_VDE <= tempax)) ) ) { SiS_SetGroup2() 6709 tempax -= SiS_Pr->SiS_VDE; SiS_SetGroup2() 6711 if(!(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p | TVSetYPbPr750p))) { SiS_SetGroup2() 6717 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,temp); SiS_SetGroup2() 6720 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,temp); SiS_SetGroup2() 6722 if((SiS_Pr->SiS_VBInfo & SetCRT2ToTVNoYPbPrHiVision) && (SiS_Pr->SiS_VGAHDE >= 1024)) { SiS_SetGroup2() 6723 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetGroup2() 6724 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x1b); SiS_SetGroup2() 6725 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x54); SiS_SetGroup2() 6727 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,0x17); SiS_SetGroup2() 6728 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,0x1d); SiS_SetGroup2() 6734 tempcx = SiS_Pr->SiS_HT; SiS_SetGroup2() 6735 if(SiS_IsDualLink(SiS_Pr)) tempcx >>= 1; SiS_SetGroup2() 6737 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) tempcx--; SiS_SetGroup2() 6738 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1B,tempcx); SiS_SetGroup2() 6739 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1D,0xF0,((tempcx >> 8) & 0x0f)); SiS_SetGroup2() 6741 tempcx = SiS_Pr->SiS_HT >> 1; SiS_SetGroup2() 6742 if(SiS_IsDualLink(SiS_Pr)) tempcx >>= 1; SiS_SetGroup2() 6744 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) tempcx -= 4; SiS_SetGroup2() 6745 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x22,0x0F,((tempcx << 4) & 0xf0)); SiS_SetGroup2() 6749 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x24,tempbx); SiS_SetGroup2() 6750 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x25,0x0F,((tempbx >> 4) & 0xf0)); SiS_SetGroup2() 6753 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup2() 6757 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x29,0x0F,((tempbx << 4) & 0xf0)); SiS_SetGroup2() 6761 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x27,tempcx); SiS_SetGroup2() 6762 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x28,0x0F,((tempcx >> 4) & 0xf0)); SiS_SetGroup2() 6765 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) tempcx -= 4; SiS_SetGroup2() 6766 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x2A,0x0F,((tempcx << 4) & 0xf0)); SiS_SetGroup2() 6768 tempcx = SiS_Pr->SiS_HT >> 1; SiS_SetGroup2() 6769 if(SiS_IsDualLink(SiS_Pr)) tempcx >>= 1; SiS_SetGroup2() 6772 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x2D,0x0F,((tempcx << 4) & 0xf0)); SiS_SetGroup2() 6775 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_SetGroup2() 6776 tempcx = SiS_GetVGAHT2(SiS_Pr) - 1; SiS_SetGroup2() 6778 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x2E,tempcx); SiS_SetGroup2() 6780 tempbx = SiS_Pr->SiS_VDE; SiS_SetGroup2() 6781 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup2() 6782 if(SiS_Pr->SiS_VGAVDE == 360) tempbx = 746; SiS_SetGroup2() 6783 if(SiS_Pr->SiS_VGAVDE == 375) tempbx = 746; SiS_SetGroup2() 6784 if(SiS_Pr->SiS_VGAVDE == 405) tempbx = 853; SiS_SetGroup2() 6785 } else if( (SiS_Pr->SiS_VBInfo & SetCRT2ToTV) && SiS_SetGroup2() 6786 (!(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p|TVSetYPbPr750p))) ) { SiS_SetGroup2() 6788 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup2() 6789 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) { SiS_SetGroup2() 6791 } else if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetGroup2() 6792 if(SiS_Pr->SiS_ModeType <= ModeVGA) { SiS_SetGroup2() 6797 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetGroup2() 6798 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup2() 6801 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) { SiS_SetGroup2() 6807 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x2F,tempbx); SiS_SetGroup2() 6811 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToSVIDEO | SetCRT2ToAVIDEO)) { SiS_SetGroup2() 6813 if(SiS_Pr->SiS_VBInfo & SetCRT2ToAVIDEO) temp |= 0x20; SiS_SetGroup2() 6815 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x30,temp); SiS_SetGroup2() 6817 if(SiS_Pr->SiS_VBType & VB_SISPART4OVERFLOW) { SiS_SetGroup2() 6818 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x10,0xdf,((tempbx & 0x0400) >> 5)); SiS_SetGroup2() 6821 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetGroup2() 6822 tempbx = SiS_Pr->SiS_VDE; SiS_SetGroup2() 6823 if( (SiS_Pr->SiS_VBInfo & SetCRT2ToTV) && SiS_SetGroup2() 6824 (!(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p | TVSetYPbPr750p))) ) { SiS_SetGroup2() 6829 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x46,temp); SiS_SetGroup2() 6830 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x47,tempbx); SiS_SetGroup2() 6832 if(SiS_Pr->SiS_VBType & VB_SISPART4OVERFLOW) { SiS_SetGroup2() 6833 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x10,0xbf,((tempbx & 0x0400) >> 4)); SiS_SetGroup2() 6839 if(SiS_Pr->SiS_VGAHDE >= SiS_Pr->SiS_HDE) { SiS_SetGroup2() 6846 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup2() 6847 if(SiS_Pr->SiS_VGAHDE >= 960) { SiS_SetGroup2() 6848 if((!(modeflag & HalfDCLK)) || (SiS_Pr->ChipType < SIS_315H)) { SiS_SetGroup2() 6850 if(SiS_Pr->SiS_VGAHDE >= 1280) { SiS_SetGroup2() 6853 } else if(SiS_Pr->SiS_VGAHDE >= 1024) { SiS_SetGroup2() 6864 longtemp = ((SiS_Pr->SiS_VGAHDE * tempch) / tempcl) << 13; SiS_SetGroup2() 6865 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) longtemp <<= 3; SiS_SetGroup2() 6866 tempax = longtemp / SiS_Pr->SiS_HDE; SiS_SetGroup2() 6867 if(longtemp % SiS_Pr->SiS_HDE) tempax++; SiS_SetGroup2() 6872 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x44,tempax); SiS_SetGroup2() 6873 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x45,0xC0,tempbx); SiS_SetGroup2() 6875 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetGroup2() 6879 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x46,0xF8,tempcx); SiS_SetGroup2() 6881 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetGroup2() 6888 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x4B,tempbx); SiS_SetGroup2() 6889 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x4C,tempcx); SiS_SetGroup2() 6892 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_SetGroup2() 6894 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) temp |= 0x20; SiS_SetGroup2() 6895 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) temp |= 0x40; SiS_SetGroup2() 6897 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x4D,temp); SiS_SetGroup2() 6899 temp = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x43); SiS_SetGroup2() 6900 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x43,(temp - 3)); SiS_SetGroup2() 6902 SiS_SetTVSpecial(SiS_Pr, ModeNo); SiS_SetGroup2() 6904 if(SiS_Pr->SiS_VBType & VB_SIS30xCLV) { SiS_SetGroup2() 6906 if(SiS_Pr->SiS_TVMode & TVSetPALM) temp = 8; SiS_SetGroup2() 6907 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x4e,0xf7,temp); SiS_SetGroup2() 6912 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_SetGroup2() 6913 if(!(SiS_Pr->SiS_TVMode & TVSetNTSC1024)) { SiS_SetGroup2() 6914 temp = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x01); SiS_SetGroup2() 6915 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,(temp - 1)); SiS_SetGroup2() 6917 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xEF); SiS_SetGroup2() 6920 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup2() 6921 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetGroup2() 6922 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x0B,0x00); SiS_SetGroup2() 6926 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) return; SiS_SetGroup2() 6930 tempbx = SiS_Pr->SiS_HDE; SiS_SetGroup2() 6931 if(SiS_IsDualLink(SiS_Pr)) tempbx >>= 1; SiS_SetGroup2() 6933 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x2C,tempbx); SiS_SetGroup2() 6934 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x2B,0x0F,((tempbx >> 4) & 0xf0)); SiS_SetGroup2() 6937 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) { SiS_SetGroup2() 6938 if(SiS_Pr->SiS_ModeType == ModeEGA) { SiS_SetGroup2() 6939 if(SiS_Pr->SiS_VGAHDE >= 1024) { SiS_SetGroup2() 6941 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) { SiS_SetGroup2() 6947 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x0B,temp); SiS_SetGroup2() 6949 tempbx = SiS_Pr->SiS_VDE - 1; SiS_SetGroup2() 6950 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x03,tempbx); SiS_SetGroup2() 6951 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x0C,0xF8,((tempbx >> 8) & 0x07)); SiS_SetGroup2() 6953 tempcx = SiS_Pr->SiS_VT - 1; SiS_SetGroup2() 6954 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x19,tempcx); SiS_SetGroup2() 6956 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) { SiS_SetGroup2() 6958 if(SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00) & 0x01) { SiS_SetGroup2() 6962 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1A,0x0f,temp); SiS_SetGroup2() 6964 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x09,0xF0); SiS_SetGroup2() 6965 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x0A,0xF0); SiS_SetGroup2() 6967 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x17,0xFB); SiS_SetGroup2() 6968 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x18,0xDF); SiS_SetGroup2() 6971 if(SiS_GetCRT2Part2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex, SiS_SetGroup2() 6976 case 200: CRT2Part2Ptr = SiS_Pr->SiS_CRT2Part2_1024x768_1; break; SiS_SetGroup2() 6979 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x01,0x80,(CRT2Part2Ptr+resindex)->CR[0]); SiS_SetGroup2() 6980 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x02,0x80,(CRT2Part2Ptr+resindex)->CR[1]); SiS_SetGroup2() 6982 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_SetGroup2() 6985 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_SetGroup2() 6988 SiS_SetReg(SiS_Pr->SiS_Part2Port,j,(CRT2Part2Ptr+resindex)->CR[i]); SiS_SetGroup2() 6990 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x23,(CRT2Part2Ptr+resindex)->CR[10]); SiS_SetGroup2() 6991 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x25,0x0f,(CRT2Part2Ptr+resindex)->CR[11]); SiS_SetGroup2() 6993 SiS_SetGroup2_Tail(SiS_Pr, ModeNo); SiS_SetGroup2() 7003 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_SetGroup2() 7004 if((SiS_Pr->SiS_LCDInfo & LCDPass11) || (SiS_Pr->PanelYRes == SiS_Pr->SiS_VDE)) { SiS_SetGroup2() 7005 tempbx = SiS_Pr->SiS_VDE - 1; SiS_SetGroup2() 7006 tempcx = SiS_Pr->SiS_VT - 1; SiS_SetGroup2() 7008 tempbx = SiS_Pr->SiS_VDE + ((SiS_Pr->PanelYRes - SiS_Pr->SiS_VDE) / 2); SiS_SetGroup2() 7009 tempcx = SiS_Pr->SiS_VT - ((SiS_Pr->PanelYRes - SiS_Pr->SiS_VDE) / 2); SiS_SetGroup2() 7012 tempbx = SiS_Pr->PanelYRes; SiS_SetGroup2() 7013 tempcx = SiS_Pr->SiS_VT; SiS_SetGroup2() 7015 if(SiS_Pr->PanelYRes != SiS_Pr->SiS_VDE) { SiS_SetGroup2() 7016 tempax = SiS_Pr->PanelYRes; SiS_SetGroup2() 7017 /* if(SiS_Pr->SiS_VGAVDE == 525) tempax += 0x3c; */ /* 651+301C */ SiS_SetGroup2() 7018 if(SiS_Pr->PanelYRes < SiS_Pr->SiS_VDE) { SiS_SetGroup2() 7021 tempax -= SiS_Pr->SiS_VDE; SiS_SetGroup2() 7031 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x05,tempcx); /* lcdvdes */ SiS_SetGroup2() 7032 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x06,tempbx); /* lcdvdee */ SiS_SetGroup2() 7036 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x02,temp); SiS_SetGroup2() 7038 tempax = SiS_Pr->SiS_VDE; SiS_SetGroup2() 7039 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_SetGroup2() 7040 tempax = SiS_Pr->PanelYRes; SiS_SetGroup2() 7042 tempcx = (SiS_Pr->SiS_VT - tempax) >> 4; SiS_SetGroup2() 7043 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_SetGroup2() 7044 if(SiS_Pr->PanelYRes != SiS_Pr->SiS_VDE) { SiS_SetGroup2() 7045 tempcx = (SiS_Pr->SiS_VT - tempax) / 10; SiS_SetGroup2() 7049 tempbx = ((SiS_Pr->SiS_VT + SiS_Pr->SiS_VDE) >> 1) - 1; SiS_SetGroup2() 7050 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_SetGroup2() 7051 if(SiS_Pr->PanelYRes != SiS_Pr->SiS_VDE) { SiS_SetGroup2() 7052 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { /* ? */ SiS_SetGroup2() 7053 tempax = SiS_Pr->SiS_VT - SiS_Pr->PanelYRes; SiS_SetGroup2() 7059 if(tempbx <= SiS_Pr->SiS_VDE) tempbx = SiS_Pr->SiS_VDE + 1; SiS_SetGroup2() 7063 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_SetGroup2() 7065 if((!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) || (crt2crtc == 6)) { SiS_SetGroup2() 7066 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) { SiS_SetGroup2() 7075 if(SiS_Pr->UseCustomMode) { SiS_SetGroup2() 7076 tempbx = SiS_Pr->CVSyncStart; SiS_SetGroup2() 7079 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,tempbx); /* lcdvrs */ SiS_SetGroup2() 7085 if(SiS_Pr->UseCustomMode) { SiS_SetGroup2() 7087 temp |= (SiS_Pr->CVSyncEnd & 0x0f); SiS_SetGroup2() 7090 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x01,temp); SiS_SetGroup2() 7093 SiS_Group2LCDSpecial(SiS_Pr, ModeNo, crt2crtc); SiS_SetGroup2() 7097 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) bridgeoffset += 2; SiS_SetGroup2() 7098 if(SiS_Pr->SiS_VBType & VB_SIS30xCLV) bridgeoffset += 2; /* OK for Averatec 1280x800 (301C) */ SiS_SetGroup2() 7099 if(SiS_IsDualLink(SiS_Pr)) bridgeoffset++; SiS_SetGroup2() 7100 else if(SiS_Pr->SiS_VBType & VB_SIS302LV) bridgeoffset++; /* OK for Asus A4L 1280x800 */ SiS_SetGroup2() 7104 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_SetGroup2() 7105 if(SiS_Pr->PanelXRes != SiS_Pr->SiS_HDE) { SiS_SetGroup2() 7106 temp = SiS_Pr->SiS_HT - ((SiS_Pr->PanelXRes - SiS_Pr->SiS_HDE) / 2); SiS_SetGroup2() 7107 if(SiS_IsDualLink(SiS_Pr)) temp >>= 1; SiS_SetGroup2() 7111 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1F,temp); /* lcdhdes */ SiS_SetGroup2() 7112 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x20,0x0F,((temp >> 4) & 0xf0)); SiS_SetGroup2() 7114 tempcx = SiS_Pr->SiS_HT; SiS_SetGroup2() 7115 tempax = tempbx = SiS_Pr->SiS_HDE; SiS_SetGroup2() 7116 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_SetGroup2() 7117 if(SiS_Pr->PanelXRes != SiS_Pr->SiS_HDE) { SiS_SetGroup2() 7118 tempax = SiS_Pr->PanelXRes; SiS_SetGroup2() 7119 tempbx = SiS_Pr->PanelXRes - ((SiS_Pr->PanelXRes - SiS_Pr->SiS_HDE) / 2); SiS_SetGroup2() 7122 if(SiS_IsDualLink(SiS_Pr)) { SiS_SetGroup2() 7130 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x23,tempbx); /* lcdhdee */ SiS_SetGroup2() 7131 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x25,0xF0,((tempbx >> 8) & 0x0f)); SiS_SetGroup2() 7138 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) { SiS_SetGroup2() 7139 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_SetGroup2() 7140 if(SiS_Pr->SiS_LCDInfo & LCDPass11) { SiS_SetGroup2() 7141 if(SiS_Pr->SiS_HDE == 1280) tempbx = (tempbx & 0xff00) | 0x47; SiS_SetGroup2() 7146 if(SiS_Pr->UseCustomMode) { SiS_SetGroup2() 7147 tempbx = SiS_Pr->CHSyncStart; SiS_SetGroup2() 7149 if(SiS_IsDualLink(SiS_Pr)) tempbx >>= 1; SiS_SetGroup2() 7153 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1C,tempbx); /* lcdhrs */ SiS_SetGroup2() 7154 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1D,0x0F,((tempbx >> 4) & 0xf0)); SiS_SetGroup2() 7159 if((SiS_Pr->SiS_LCDInfo & DontExpandLCD) && (!(SiS_Pr->SiS_LCDInfo & LCDPass11))) { SiS_SetGroup2() 7160 if(SiS_Pr->PanelXRes != SiS_Pr->SiS_HDE) tempcx >>= 2; SiS_SetGroup2() 7164 if(SiS_Pr->UseCustomMode) { SiS_SetGroup2() 7165 tempbx = SiS_Pr->CHSyncEnd; SiS_SetGroup2() 7167 if(SiS_IsDualLink(SiS_Pr)) tempbx >>= 1; SiS_SetGroup2() 7171 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x21,tempbx); /* lcdhre */ SiS_SetGroup2() 7173 SiS_SetGroup2_Tail(SiS_Pr, ModeNo); SiS_SetGroup2() 7176 SiS_Set300Part2Regs(SiS_Pr, ModeIdIndex, RefreshRateTableIndex, ModeNo); SiS_SetGroup2() 7188 SiS_SetGroup3(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetGroup3() argument 7193 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) return; SiS_SetGroup3() 7196 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x00,0x00); SiS_SetGroup3() 7201 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetGroup3() 7202 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x13,0xFA); SiS_SetGroup3() 7203 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x14,0xC8); SiS_SetGroup3() 7205 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x13,0xF5); SiS_SetGroup3() 7206 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x14,0xB7); SiS_SetGroup3() 7209 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_SetGroup3() 7210 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x13,0xFA); SiS_SetGroup3() 7211 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x14,0xC8); SiS_SetGroup3() 7212 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x3D,0xA8); SiS_SetGroup3() 7216 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup3() 7217 tempdi = SiS_Pr->SiS_HiTVGroup3Data; SiS_SetGroup3() 7218 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) { SiS_SetGroup3() 7219 tempdi = SiS_Pr->SiS_HiTVGroup3Simu; SiS_SetGroup3() 7221 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) { SiS_SetGroup3() 7222 if(!(SiS_Pr->SiS_TVMode & TVSetYPbPr525i)) { SiS_SetGroup3() 7224 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) tempdi = SiS_HiTVGroup3_2; SiS_SetGroup3() 7229 SiS_SetReg(SiS_Pr->SiS_Part3Port,i,tempdi[i]); SiS_SetGroup3() 7231 if(SiS_Pr->SiS_VBType & VB_SIS30xCLV) { SiS_SetGroup3() 7232 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) { SiS_SetGroup3() 7233 SiS_SetReg(SiS_Pr->SiS_Part3Port,0x28,0x3f); SiS_SetGroup3() 7250 SiS_ShiftXPos(struct SiS_Private *SiS_Pr, int shift) 7254 temp1 = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x1f); 7255 temp2 = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x20); 7257 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x1f,temp); 7258 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x20,0x0f,((temp >> 4) & 0xf0)); 7259 temp = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x2b) & 0x0f; 7261 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x2b,0xf0,(temp & 0x0f)); 7262 temp1 = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x43); 7263 temp2 = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x42); 7265 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x43,temp); 7266 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x42,0x0f,((temp >> 4) & 0xf0)); 7271 SiS_SetGroup4_C_ELV(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetGroup4_C_ELV() argument 7274 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetGroup4_C_ELV() 7276 if(!(SiS_Pr->SiS_VBType & VB_SIS30xCLV)) return; SiS_SetGroup4_C_ELV() 7277 if(!(SiS_Pr->SiS_VBInfo & (SetCRT2ToHiVision | SetCRT2ToYPbPr525750))) return; SiS_SetGroup4_C_ELV() 7279 if(SiS_Pr->ChipType >= XGI_20) return; SiS_SetGroup4_C_ELV() 7281 if((SiS_Pr->ChipType >= SIS_661) && (SiS_Pr->SiS_ROMNew)) { SiS_SetGroup4_C_ELV() 7286 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_SetGroup4_C_ELV() 7289 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x3a,0x08); SiS_SetGroup4_C_ELV() 7290 temp = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x3a); SiS_SetGroup4_C_ELV() 7292 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x3a,0xdf); SiS_SetGroup4_C_ELV() 7293 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x25,0xfc); SiS_SetGroup4_C_ELV() 7294 if((SiS_Pr->ChipType < SIS_661) && (!(SiS_Pr->SiS_ROMNew))) { SiS_SetGroup4_C_ELV() 7295 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x25,0xf8); SiS_SetGroup4_C_ELV() 7297 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x0f,0xfb); SiS_SetGroup4_C_ELV() 7298 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) temp = 0x0000; SiS_SetGroup4_C_ELV() 7299 else if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) temp = 0x0002; SiS_SetGroup4_C_ELV() 7300 else if(SiS_Pr->SiS_TVMode & TVSetHiVision) temp = 0x0400; SiS_SetGroup4_C_ELV() 7302 if((SiS_Pr->ChipType >= SIS_661) || (SiS_Pr->SiS_ROMNew)) { SiS_SetGroup4_C_ELV() 7304 if(SiS_Pr->SiS_TVMode & TVAspect43) temp1 = 4; SiS_SetGroup4_C_ELV() 7305 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x0f,0xfb,temp1); SiS_SetGroup4_C_ELV() 7306 if(SiS_Pr->SiS_TVMode & TVAspect43LB) temp |= 0x01; SiS_SetGroup4_C_ELV() 7307 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x26,0x7c,(temp & 0xff)); SiS_SetGroup4_C_ELV() 7308 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x3a,0xfb,(temp >> 8)); SiS_SetGroup4_C_ELV() 7310 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x39,0xfd); SiS_SetGroup4_C_ELV() 7313 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x3b) & 0x03; SiS_SetGroup4_C_ELV() 7316 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x26,0xf8,(temp & 0xff)); SiS_SetGroup4_C_ELV() 7317 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x3a,0xfb,(temp >> 8)); SiS_SetGroup4_C_ELV() 7319 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x3b,0xfd); SiS_SetGroup4_C_ELV() 7324 if(SiS_Pr->ChipType >= SIS_661) { /* ? */ SiS_SetGroup4_C_ELV() 7325 if(SiS_Pr->SiS_TVMode & TVAspect43) { SiS_SetGroup4_C_ELV() 7326 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) { SiS_SetGroup4_C_ELV() 7328 SiS_ShiftXPos(SiS_Pr, 97); SiS_SetGroup4_C_ELV() 7330 SiS_ShiftXPos(SiS_Pr, 111); SiS_SetGroup4_C_ELV() 7332 } else if(SiS_Pr->SiS_TVMode & TVSetHiVision) { SiS_SetGroup4_C_ELV() 7333 SiS_ShiftXPos(SiS_Pr, 136); SiS_SetGroup4_C_ELV() 7345 SiS_SetCRT2VCLK(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetCRT2VCLK() argument 7350 if(SiS_Pr->UseCustomMode) { SiS_SetCRT2VCLK() 7351 reg1 = SiS_Pr->CSR2B; SiS_SetCRT2VCLK() 7352 reg2 = SiS_Pr->CSR2C; SiS_SetCRT2VCLK() 7354 vclkindex = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2VCLK() 7355 reg1 = SiS_Pr->SiS_VBVCLKData[vclkindex].Part4_A; SiS_SetCRT2VCLK() 7356 reg2 = SiS_Pr->SiS_VBVCLKData[vclkindex].Part4_B; SiS_SetCRT2VCLK() 7359 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetCRT2VCLK() 7360 if(SiS_Pr->SiS_TVMode & (TVSetNTSC1024 | TVSet525p1024)) { SiS_SetCRT2VCLK() 7361 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0a,0x57); SiS_SetCRT2VCLK() 7362 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0b,0x46); SiS_SetCRT2VCLK() 7363 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1f,0xf6); SiS_SetCRT2VCLK() 7365 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0a,reg1); SiS_SetCRT2VCLK() 7366 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0b,reg2); SiS_SetCRT2VCLK() 7369 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0a,0x01); SiS_SetCRT2VCLK() 7370 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0b,reg2); SiS_SetCRT2VCLK() 7371 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0a,reg1); SiS_SetCRT2VCLK() 7373 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x12,0x00); SiS_SetCRT2VCLK() 7375 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) temp |= 0x20; SiS_SetCRT2VCLK() 7376 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x12,temp); SiS_SetCRT2VCLK() 7380 SiS_SetDualLinkEtc(struct SiS_Private *SiS_Pr) SiS_SetDualLinkEtc() argument 7382 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetDualLinkEtc() 7383 if(SiS_Pr->SiS_VBType & VB_SISDUALLINK) { SiS_SetDualLinkEtc() 7384 if((SiS_CRT2IsLCD(SiS_Pr)) || SiS_SetDualLinkEtc() 7385 (SiS_IsVAMode(SiS_Pr))) { SiS_SetDualLinkEtc() 7386 if(SiS_Pr->SiS_LCDInfo & LCDDualLink) { SiS_SetDualLinkEtc() 7387 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x27,0x2c); SiS_SetDualLinkEtc() 7389 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x27,~0x20); SiS_SetDualLinkEtc() 7394 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_SetDualLinkEtc() 7395 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2a,0x00); SiS_SetDualLinkEtc() 7397 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c); SiS_SetDualLinkEtc() 7399 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x10); SiS_SetDualLinkEtc() 7404 SiS_SetGroup4(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetGroup4() argument 7411 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_SetGroup4() 7412 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SiS_SetGroup4() 7413 } else if(SiS_Pr->UseCustomMode) { SiS_SetGroup4() 7414 modeflag = SiS_Pr->CModeFlag; SiS_SetGroup4() 7417 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_SetGroup4() 7418 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_SetGroup4() 7421 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup4() 7422 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_SetGroup4() 7423 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetGroup4() 7424 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x24,0x0e); SiS_SetGroup4() 7429 if(SiS_Pr->SiS_VBType & (VB_SIS30xCLV | VB_SIS302LV)) { SiS_SetGroup4() 7430 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup4() 7431 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x10,0x9f); SiS_SetGroup4() 7435 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetGroup4() 7436 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetGroup4() 7437 SiS_SetDualLinkEtc(SiS_Pr); SiS_SetGroup4() 7442 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x13,SiS_Pr->SiS_RVBHCFACT); SiS_SetGroup4() 7444 tempbx = SiS_Pr->SiS_RVBHCMAX; SiS_SetGroup4() 7445 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x14,tempbx); SiS_SetGroup4() 7449 tempcx = SiS_Pr->SiS_VGAHT - 1; SiS_SetGroup4() 7450 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x16,tempcx); SiS_SetGroup4() 7454 tempcx = SiS_Pr->SiS_VGAVT - 1; SiS_SetGroup4() 7455 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) tempcx -= 5; SiS_SetGroup4() 7456 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x17,tempcx); SiS_SetGroup4() 7459 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x15,temp); SiS_SetGroup4() 7461 tempbx = SiS_Pr->SiS_VGAHDE; SiS_SetGroup4() 7463 if(SiS_IsDualLink(SiS_Pr)) tempbx >>= 1; SiS_SetGroup4() 7465 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup4() 7468 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup4() 7472 } else if(SiS_Pr->SiS_TVMode & (TVSetYPbPr525p | TVSetYPbPr750p)) { SiS_SetGroup4() 7481 temp |= SiS_Pr->Init_P4_0E; SiS_SetGroup4() 7483 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_SetGroup4() 7484 if(SiS_Pr->SiS_LCDResInfo != Panel_1280x1024) { SiS_SetGroup4() 7490 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x0E,0x10,temp); SiS_SetGroup4() 7492 tempeax = SiS_Pr->SiS_VGAVDE; SiS_SetGroup4() 7493 tempebx = SiS_Pr->SiS_VDE; SiS_SetGroup4() 7494 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SiS_SetGroup4() 7498 tempcx = SiS_Pr->SiS_RVBHRS; SiS_SetGroup4() 7499 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x18,tempcx); SiS_SetGroup4() 7515 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1B,temp); SiS_SetGroup4() 7517 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1A,temp); SiS_SetGroup4() 7520 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x19,temp); SiS_SetGroup4() 7522 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetGroup4() 7524 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1C,0x28); SiS_SetGroup4() 7528 if(SiS_Pr->SiS_TVMode & (TVSetHiVision | TVSetYPbPr750p)) tempbx = 0x08; SiS_SetGroup4() 7529 tempax = SiS_Pr->SiS_VGAHDE; SiS_SetGroup4() 7531 if(SiS_IsDualLink(SiS_Pr)) tempax >>= 1; SiS_SetGroup4() 7533 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup4() 7544 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup4() 7557 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1D,tempax); SiS_SetGroup4() 7558 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x1E,temp); SiS_SetGroup4() 7561 if((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->SiS_VBType & VB_SISLVDS)) { SiS_SetGroup4() 7564 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetGroup4() 7565 if(!(SiS_Pr->SiS_TVMode & (TVSetNTSC1024 | TVSetHiVision | TVSetYPbPr750p | TVSetYPbPr525p))) { SiS_SetGroup4() 7567 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetGroup4() 7568 if(!(SiS_Pr->SiS_TVMode & TVSetTVSimuMode)) { SiS_SetGroup4() 7574 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x1F,tempbx,temp); SiS_SetGroup4() 7576 tempbx = SiS_Pr->SiS_HT >> 1; SiS_SetGroup4() 7577 if(SiS_IsDualLink(SiS_Pr)) tempbx >>= 1; SiS_SetGroup4() 7579 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x22,tempbx); SiS_SetGroup4() 7581 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x21,0xC0,temp); SiS_SetGroup4() 7583 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SiS_SetGroup4() 7584 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetGroup4() 7585 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x24,0x0e); SiS_SetGroup4() 7590 SiS_SetDualLinkEtc(SiS_Pr); SiS_SetGroup4() 7594 SiS_SetCRT2VCLK(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetGroup4() 7602 SiS_SetGroup5(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetGroup5() argument 7605 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) return; SiS_SetGroup5() 7607 if(SiS_Pr->SiS_ModeType == ModeVGA) { SiS_SetGroup5() 7608 if(!(SiS_Pr->SiS_VBInfo & (SetInSlaveMode | LoadDACFlag))) { SiS_SetGroup5() 7609 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20); SiS_SetGroup5() 7610 SiS_LoadDAC(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetGroup5() 7620 SiS_GetLVDSCRT1Ptr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_GetLVDSCRT1Ptr() argument 7630 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetLVDSCRT1Ptr() 7631 (*ResIndex) = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_GetLVDSCRT1Ptr() 7633 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetLVDSCRT1Ptr() 7634 (*ResIndex) = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_GetLVDSCRT1Ptr() 7639 if((SiS_Pr->SiS_IF_DEF_CH70xx) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_GetLVDSCRT1Ptr() 7642 if((SiS_Pr->SiS_TVMode & TVSetPAL) && (!(SiS_Pr->SiS_TVMode & TVSetPALM))) { SiS_GetLVDSCRT1Ptr() 7644 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_GetLVDSCRT1Ptr() 7645 if(SiS_Pr->SiS_CHSOverScan) (*DisplayType) = 84; SiS_GetLVDSCRT1Ptr() 7649 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) (*DisplayType)++; SiS_GetLVDSCRT1Ptr() 7655 switch(SiS_Pr->SiS_LCDResInfo) { SiS_GetLVDSCRT1Ptr() 7674 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x600) { SiS_GetLVDSCRT1Ptr() 7675 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) (*DisplayType) += 2; SiS_GetLVDSCRT1Ptr() 7684 SiS_ModCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_ModCRT1CRTC() argument 7694 if((SiS_Pr->SiS_CustomT == CUT_BARCO1366) || SiS_ModCRT1CRTC() 7695 (SiS_Pr->SiS_CustomT == CUT_BARCO1024) || SiS_ModCRT1CRTC() 7696 (SiS_Pr->SiS_CustomT == CUT_PANEL848) || SiS_ModCRT1CRTC() 7697 (SiS_Pr->SiS_CustomT == CUT_PANEL856) ) SiS_ModCRT1CRTC() 7700 if(SiS_Pr->SiS_IF_DEF_LVDS) { SiS_ModCRT1CRTC() 7701 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_ModCRT1CRTC() 7702 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) return; SiS_ModCRT1CRTC() 7704 } else if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_ModCRT1CRTC() 7705 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) return; SiS_ModCRT1CRTC() 7708 if(SiS_Pr->SiS_LCDInfo & LCDPass11) return; SiS_ModCRT1CRTC() 7710 if(SiS_Pr->ChipType < SIS_315H) { SiS_ModCRT1CRTC() 7711 if(SiS_Pr->SiS_SetFlag & SetDOSMode) return; SiS_ModCRT1CRTC() 7714 if(!(SiS_GetLVDSCRT1Ptr(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex, SiS_ModCRT1CRTC() 7720 case 50: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1320x240_1; break; /* xSTN */ SiS_ModCRT1CRTC() 7721 case 14: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1320x240_2; break; /* xSTN */ SiS_ModCRT1CRTC() 7722 case 15: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1320x240_2_H; break; /* xSTN */ SiS_ModCRT1CRTC() 7723 case 18: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1320x240_3; break; /* xSTN */ SiS_ModCRT1CRTC() 7724 case 19: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1320x240_3_H; break; /* xSTN */ SiS_ModCRT1CRTC() 7725 case 10: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1640x480_1; break; SiS_ModCRT1CRTC() 7726 case 11: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT1640x480_1_H; break; SiS_ModCRT1CRTC() 7728 case 26: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT11024x600_1; break; SiS_ModCRT1CRTC() 7729 case 27: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT11024x600_1_H; break; SiS_ModCRT1CRTC() 7730 case 28: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT11024x600_2; break; SiS_ModCRT1CRTC() 7731 case 29: LVDSCRT1Ptr = SiS_Pr->SiS_LVDSCRT11024x600_2_H; break; SiS_ModCRT1CRTC() 7733 case 80: LVDSCRT1Ptr = SiS_Pr->SiS_CHTVCRT1UNTSC; break; SiS_ModCRT1CRTC() 7734 case 81: LVDSCRT1Ptr = SiS_Pr->SiS_CHTVCRT1ONTSC; break; SiS_ModCRT1CRTC() 7735 case 82: LVDSCRT1Ptr = SiS_Pr->SiS_CHTVCRT1UPAL; break; SiS_ModCRT1CRTC() 7736 case 83: LVDSCRT1Ptr = SiS_Pr->SiS_CHTVCRT1OPAL; break; SiS_ModCRT1CRTC() 7737 case 84: LVDSCRT1Ptr = SiS_Pr->SiS_CHTVCRT1SOPAL; break; SiS_ModCRT1CRTC() 7742 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x11,0x7f); SiS_ModCRT1CRTC() 7746 SiS_SetReg(SiS_Pr->SiS_P3d4,CRIdx[i],tempah); SiS_ModCRT1CRTC() 7751 SiS_SetReg(SiS_Pr->SiS_P3c4,i,tempah); SiS_ModCRT1CRTC() 7755 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0E,0x1f,tempah); SiS_ModCRT1CRTC() 7757 if(ModeNo <= 0x13) modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_ModCRT1CRTC() 7758 else modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_ModCRT1CRTC() 7762 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x09,~0x020,tempah); SiS_ModCRT1CRTC() 7766 SiS_CalcLCDACRT1Timing(SiS_Pr, ModeNo, ModeIdIndex); SiS_ModCRT1CRTC() 7776 SiS_SetCRT2ECLK(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetCRT2ECLK() argument 7779 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetCRT2ECLK() 7783 if(SiS_Pr->SiS_LCDInfo & LCDPass11) { SiS_SetCRT2ECLK() 7784 SiS_Pr->SiS_SetFlag &= (~ProgrammingCRT2); SiS_SetCRT2ECLK() 7785 if(SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRTVCLK == 2) { SiS_SetCRT2ECLK() 7788 vclkindex = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, SiS_SetCRT2ECLK() 7790 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT2ECLK() 7792 vclkindex = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, SiS_SetCRT2ECLK() 7796 sr2b = SiS_Pr->SiS_VCLKData[vclkindex].SR2B; SiS_SetCRT2ECLK() 7797 sr2c = SiS_Pr->SiS_VCLKData[vclkindex].SR2C; SiS_SetCRT2ECLK() 7799 if((SiS_Pr->SiS_CustomT == CUT_BARCO1366) || (SiS_Pr->SiS_CustomT == CUT_BARCO1024)) { SiS_SetCRT2ECLK() 7800 if(SiS_Pr->SiS_UseROM) { SiS_SetCRT2ECLK() 7809 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT2ECLK() 7810 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) { SiS_SetCRT2ECLK() 7815 SiS_SetReg(SiS_Pr->SiS_P3c4,0x31,0x20); SiS_SetCRT2ECLK() 7816 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase,sr2b); SiS_SetCRT2ECLK() 7817 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase+1,sr2c); SiS_SetCRT2ECLK() 7818 SiS_SetReg(SiS_Pr->SiS_P3c4,0x31,0x10); SiS_SetCRT2ECLK() 7819 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase,sr2b); SiS_SetCRT2ECLK() 7820 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase+1,sr2c); SiS_SetCRT2ECLK() 7821 SiS_SetReg(SiS_Pr->SiS_P3c4,0x31,0x00); SiS_SetCRT2ECLK() 7822 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase,sr2b); SiS_SetCRT2ECLK() 7823 SiS_SetReg(SiS_Pr->SiS_P3c4,clkbase+1,sr2c); SiS_SetCRT2ECLK() 7831 SiS_SetCHTVReg(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_SetCHTVReg() argument 7838 resindex = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SiS_SetCHTVReg() 7840 resindex = SiS_Pr->SiS_RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC; SiS_SetCHTVReg() 7845 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) TVType += 1; SiS_SetCHTVReg() 7846 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetCHTVReg() 7848 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_SetCHTVReg() 7849 if(SiS_Pr->SiS_CHSOverScan) TVType = 8; SiS_SetCHTVReg() 7851 if(SiS_Pr->SiS_TVMode & TVSetPALM) { SiS_SetCHTVReg() 7853 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) TVType += 1; SiS_SetCHTVReg() 7854 } else if(SiS_Pr->SiS_TVMode & TVSetPALN) { SiS_SetCHTVReg() 7856 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) TVType += 1; SiS_SetCHTVReg() 7861 case 0: CHTVRegData = SiS_Pr->SiS_CHTVReg_UNTSC; break; SiS_SetCHTVReg() 7862 case 1: CHTVRegData = SiS_Pr->SiS_CHTVReg_ONTSC; break; SiS_SetCHTVReg() 7863 case 2: CHTVRegData = SiS_Pr->SiS_CHTVReg_UPAL; break; SiS_SetCHTVReg() 7864 case 3: CHTVRegData = SiS_Pr->SiS_CHTVReg_OPAL; break; SiS_SetCHTVReg() 7865 case 4: CHTVRegData = SiS_Pr->SiS_CHTVReg_UPALM; break; SiS_SetCHTVReg() 7866 case 5: CHTVRegData = SiS_Pr->SiS_CHTVReg_OPALM; break; SiS_SetCHTVReg() 7867 case 6: CHTVRegData = SiS_Pr->SiS_CHTVReg_UPALN; break; SiS_SetCHTVReg() 7868 case 7: CHTVRegData = SiS_Pr->SiS_CHTVReg_OPALN; break; SiS_SetCHTVReg() 7869 case 8: CHTVRegData = SiS_Pr->SiS_CHTVReg_SOPAL; break; SiS_SetCHTVReg() 7870 default: CHTVRegData = SiS_Pr->SiS_CHTVReg_OPAL; break; SiS_SetCHTVReg() 7874 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) { SiS_SetCHTVReg() 7883 if(SiS_Pr->SiS_TVMode & TVSetPAL) { SiS_SetCHTVReg() 7884 SiS_SetCH700x(SiS_Pr,0x04,0x43); /* 0x40=76uA (PAL); 0x03=15bit non-multi RGB*/ SiS_SetCHTVReg() 7885 SiS_SetCH700x(SiS_Pr,0x09,0x69); /* Black level for PAL (105)*/ SiS_SetCHTVReg() 7887 SiS_SetCH700x(SiS_Pr,0x04,0x03); /* upper nibble=71uA (NTSC), 0x03=15bit non-multi RGB*/ SiS_SetCHTVReg() 7888 SiS_SetCH700x(SiS_Pr,0x09,0x71); /* Black level for NTSC (113)*/ SiS_SetCHTVReg() 7891 SiS_SetCH700x(SiS_Pr,0x00,CHTVRegData[resindex].Reg[0]); /* Mode register */ SiS_SetCHTVReg() 7892 SiS_SetCH700x(SiS_Pr,0x07,CHTVRegData[resindex].Reg[1]); /* Start active video register */ SiS_SetCHTVReg() 7893 SiS_SetCH700x(SiS_Pr,0x08,CHTVRegData[resindex].Reg[2]); /* Position overflow register */ SiS_SetCHTVReg() 7894 SiS_SetCH700x(SiS_Pr,0x0a,CHTVRegData[resindex].Reg[3]); /* Horiz Position register */ SiS_SetCHTVReg() 7895 SiS_SetCH700x(SiS_Pr,0x0b,CHTVRegData[resindex].Reg[4]); /* Vertical Position register */ SiS_SetCHTVReg() 7902 SiS_SetCH700x(SiS_Pr,0x01,0x28); SiS_SetCHTVReg() 7911 SiS_SetCH700x(SiS_Pr,0x03,0xb1); /* old: 3103 */ SiS_SetCHTVReg() 7917 SiS_SetCH70xx(SiS_Pr,0x3d,0x00); SiS_SetCHTVReg() 7923 SiS_SetCH70xxANDOR(SiS_Pr,0x10,0x00,0x1F); SiS_SetCHTVReg() 7928 SiS_SetCH70xxANDOR(SiS_Pr,0x11,0x02,0xF8); SiS_SetCHTVReg() 7932 SiS_SetCH70xxANDOR(SiS_Pr,0x1c,0x00,0xEF); SiS_SetCHTVReg() 7934 if(!(SiS_Pr->SiS_TVMode & TVSetPAL)) { /* ---- NTSC ---- */ SiS_SetCHTVReg() 7935 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) { SiS_SetCHTVReg() 7937 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off */ SiS_SetCHTVReg() 7938 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x01,0xFE); /* ACIV on, no need to set FSCI */ SiS_SetCHTVReg() 7940 SiS_SetCH70xxANDOR(SiS_Pr,0x18,0x01,0xF0); /* 0x18-0x1f: FSCI 469,762,048 */ SiS_SetCHTVReg() 7941 SiS_SetCH70xxANDOR(SiS_Pr,0x19,0x0C,0xF0); SiS_SetCHTVReg() 7942 SiS_SetCH70xxANDOR(SiS_Pr,0x1a,0x00,0xF0); SiS_SetCHTVReg() 7943 SiS_SetCH70xxANDOR(SiS_Pr,0x1b,0x00,0xF0); SiS_SetCHTVReg() 7944 SiS_SetCH70xxANDOR(SiS_Pr,0x1c,0x00,0xF0); SiS_SetCHTVReg() 7945 SiS_SetCH70xxANDOR(SiS_Pr,0x1d,0x00,0xF0); SiS_SetCHTVReg() 7946 SiS_SetCH70xxANDOR(SiS_Pr,0x1e,0x00,0xF0); SiS_SetCHTVReg() 7947 SiS_SetCH70xxANDOR(SiS_Pr,0x1f,0x00,0xF0); SiS_SetCHTVReg() 7948 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x01,0xEF); /* Loop filter on for mode 23 */ SiS_SetCHTVReg() 7949 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x00,0xFE); /* ACIV off, need to set FSCI */ SiS_SetCHTVReg() 7953 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off */ SiS_SetCHTVReg() 7954 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x01,0xFE); SiS_SetCHTVReg() 7957 SiS_SetCH70xxANDOR(SiS_Pr,0x18,0x01,0xF0); /* (FSCI was 0x1f1c71c7 - this is for mode 22) */ SiS_SetCHTVReg() 7958 SiS_SetCH70xxANDOR(SiS_Pr,0x19,0x09,0xF0); /* FSCI for mode 24 is 428,554,851 */ SiS_SetCHTVReg() 7959 SiS_SetCH70xxANDOR(SiS_Pr,0x1a,0x08,0xF0); /* 198b3a63 */ SiS_SetCHTVReg() 7960 SiS_SetCH70xxANDOR(SiS_Pr,0x1b,0x0b,0xF0); SiS_SetCHTVReg() 7961 SiS_SetCH70xxANDOR(SiS_Pr,0x1c,0x04,0xF0); SiS_SetCHTVReg() 7962 SiS_SetCH70xxANDOR(SiS_Pr,0x1d,0x01,0xF0); SiS_SetCHTVReg() 7963 SiS_SetCH70xxANDOR(SiS_Pr,0x1e,0x06,0xF0); SiS_SetCHTVReg() 7964 SiS_SetCH70xxANDOR(SiS_Pr,0x1f,0x05,0xF0); SiS_SetCHTVReg() 7965 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off for mode 24 */ SiS_SetCHTVReg() 7966 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x00,0xFE); * ACIV off, need to set FSCI */ SiS_SetCHTVReg() 7968 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off */ SiS_SetCHTVReg() 7969 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x01,0xFE); SiS_SetCHTVReg() 7975 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off */ SiS_SetCHTVReg() 7976 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x01,0xFE); /* ACIV on */ SiS_SetCHTVReg() 7978 SiS_SetCH70xxANDOR(SiS_Pr,0x20,0x00,0xEF); /* loop filter off */ SiS_SetCHTVReg() 7979 SiS_SetCH70xxANDOR(SiS_Pr,0x21,0x01,0xFE); /* ACIV on */ SiS_SetCHTVReg() 7997 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) temp |= 0x10; SiS_SetCHTVReg() 7998 SiS_SetCH701x(SiS_Pr,0x00,temp); SiS_SetCHTVReg() 8000 SiS_SetCH701x(SiS_Pr,0x01,CHTVRegData[resindex].Reg[1]); SiS_SetCHTVReg() 8001 SiS_SetCH701x(SiS_Pr,0x02,CHTVRegData[resindex].Reg[2]); SiS_SetCHTVReg() 8002 SiS_SetCH701x(SiS_Pr,0x04,CHTVRegData[resindex].Reg[3]); SiS_SetCHTVReg() 8003 SiS_SetCH701x(SiS_Pr,0x03,CHTVRegData[resindex].Reg[4]); SiS_SetCHTVReg() 8004 SiS_SetCH701x(SiS_Pr,0x05,CHTVRegData[resindex].Reg[5]); SiS_SetCHTVReg() 8005 SiS_SetCH701x(SiS_Pr,0x06,CHTVRegData[resindex].Reg[6]); SiS_SetCHTVReg() 8008 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) temp = 0x66; SiS_SetCHTVReg() 8009 SiS_SetCH701x(SiS_Pr,0x07,temp); SiS_SetCHTVReg() 8011 SiS_SetCH701x(SiS_Pr,0x08,CHTVRegData[resindex].Reg[8]); SiS_SetCHTVReg() 8012 SiS_SetCH701x(SiS_Pr,0x15,CHTVRegData[resindex].Reg[9]); SiS_SetCHTVReg() 8013 SiS_SetCH701x(SiS_Pr,0x1f,CHTVRegData[resindex].Reg[10]); SiS_SetCHTVReg() 8014 SiS_SetCH701x(SiS_Pr,0x0c,CHTVRegData[resindex].Reg[11]); SiS_SetCHTVReg() 8015 SiS_SetCH701x(SiS_Pr,0x0d,CHTVRegData[resindex].Reg[12]); SiS_SetCHTVReg() 8016 SiS_SetCH701x(SiS_Pr,0x0e,CHTVRegData[resindex].Reg[13]); SiS_SetCHTVReg() 8017 SiS_SetCH701x(SiS_Pr,0x0f,CHTVRegData[resindex].Reg[14]); SiS_SetCHTVReg() 8018 SiS_SetCH701x(SiS_Pr,0x10,CHTVRegData[resindex].Reg[15]); SiS_SetCHTVReg() 8020 temp = SiS_GetCH701x(SiS_Pr,0x21) & ~0x02; SiS_SetCHTVReg() 8027 if(SiS_Pr->SiS_TVMode & (TVSetPALN | TVSetNTSCJ)) temp |= 0x02; SiS_SetCHTVReg() 8028 SiS_SetCH701x(SiS_Pr,0x21,temp); SiS_SetCHTVReg() 8043 SiS_Chrontel701xBLOn(struct SiS_Private *SiS_Pr) SiS_Chrontel701xBLOn() argument 8048 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_Chrontel701xBLOn() 8049 if(SiS_Pr->ChipType == SIS_740) { SiS_Chrontel701xBLOn() 8050 SiS_SetCH701x(SiS_Pr,0x66,0x65); SiS_Chrontel701xBLOn() 8052 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_Chrontel701xBLOn() 8054 SiS_SetCH701x(SiS_Pr,0x66,temp); SiS_Chrontel701xBLOn() 8060 SiS_Chrontel701xBLOff(struct SiS_Private *SiS_Pr) SiS_Chrontel701xBLOff() argument 8065 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_Chrontel701xBLOff() 8066 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_Chrontel701xBLOff() 8068 SiS_SetCH701x(SiS_Pr,0x66,temp); SiS_Chrontel701xBLOff() 8073 SiS_ChrontelPowerSequencing(struct SiS_Private *SiS_Pr) SiS_ChrontelPowerSequencing() argument 8087 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelPowerSequencing() 8088 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_ChrontelPowerSequencing() 8089 if(SiS_Pr->SiS_CustomT == CUT_ASUSL3000D) tableptr = asus1024_740; SiS_ChrontelPowerSequencing() 8091 } else if((SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) || SiS_ChrontelPowerSequencing() 8092 (SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) || SiS_ChrontelPowerSequencing() 8093 (SiS_Pr->SiS_LCDResInfo == Panel_1600x1200)) { SiS_ChrontelPowerSequencing() 8094 if(SiS_Pr->SiS_CustomT == CUT_ASUSL3000D) tableptr = asus1400_740; SiS_ChrontelPowerSequencing() 8098 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_ChrontelPowerSequencing() 8100 } else if((SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) || SiS_ChrontelPowerSequencing() 8101 (SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) || SiS_ChrontelPowerSequencing() 8102 (SiS_Pr->SiS_LCDResInfo == Panel_1600x1200)) { SiS_ChrontelPowerSequencing() 8108 SiS_SetCH701x(SiS_Pr, regtable[i], tableptr[i]); SiS_ChrontelPowerSequencing() 8113 SiS_SetCH701xForLCD(struct SiS_Private *SiS_Pr) SiS_SetCH701xForLCD() argument 8155 if(SiS_Pr->ChipType == SIS_740) { SiS_SetCH701xForLCD() 8156 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) tableptr = table1024_740; SiS_SetCH701xForLCD() 8157 else if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) tableptr = table1280_740; SiS_SetCH701xForLCD() 8158 else if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) tableptr = table1400_740; SiS_SetCH701xForLCD() 8159 else if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) tableptr = table1600_740; SiS_SetCH701xForLCD() 8162 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) tableptr = table1024_650; SiS_SetCH701xForLCD() 8163 else if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) tableptr = table1280_650; SiS_SetCH701xForLCD() 8164 else if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) tableptr = table1400_650; SiS_SetCH701xForLCD() 8165 else if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) tableptr = table1600_650; SiS_SetCH701xForLCD() 8169 tempbh = SiS_GetCH701x(SiS_Pr,0x74); SiS_SetCH701xForLCD() 8171 tempbh = SiS_GetCH701x(SiS_Pr,0x73); SiS_SetCH701xForLCD() 8173 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) return; SiS_SetCH701xForLCD() 8175 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) return; SiS_SetCH701xForLCD() 8176 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) return; SiS_SetCH701xForLCD() 8178 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) return; SiS_SetCH701xForLCD() 8182 if(SiS_Pr->ChipType == SIS_740) tempbh = 0x0d; SiS_SetCH701xForLCD() 8186 SiS_SetCH701x(SiS_Pr, regtable[i], tableptr[i]); SiS_SetCH701xForLCD() 8188 SiS_ChrontelPowerSequencing(SiS_Pr); SiS_SetCH701xForLCD() 8189 tempbh = SiS_GetCH701x(SiS_Pr,0x1e); SiS_SetCH701xForLCD() 8191 SiS_SetCH701x(SiS_Pr,0x1e,tempbh); SiS_SetCH701xForLCD() 8193 if(SiS_Pr->ChipType == SIS_740) { SiS_SetCH701xForLCD() 8194 tempbh = SiS_GetCH701x(SiS_Pr,0x1c); SiS_SetCH701xForLCD() 8196 SiS_SetCH701x(SiS_Pr,0x1c,tempbh); SiS_SetCH701xForLCD() 8197 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2d,0x03); SiS_SetCH701xForLCD() 8198 tempbh = SiS_GetCH701x(SiS_Pr,0x64); SiS_SetCH701xForLCD() 8200 SiS_SetCH701x(SiS_Pr,0x64,tempbh); SiS_SetCH701xForLCD() 8201 tempbh = SiS_GetCH701x(SiS_Pr,0x03); SiS_SetCH701xForLCD() 8203 SiS_SetCH701x(SiS_Pr,0x03,tempbh); SiS_SetCH701xForLCD() 8208 SiS_ChrontelResetVSync(struct SiS_Private *SiS_Pr) SiS_ChrontelResetVSync() argument 8212 temp1 = SiS_GetCH701x(SiS_Pr,0x49); SiS_ChrontelResetVSync() 8213 SiS_SetCH701x(SiS_Pr,0x49,0x3e); SiS_ChrontelResetVSync() 8214 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_ChrontelResetVSync() 8216 SiS_SetCH701x(SiS_Pr,0x47,temp); SiS_ChrontelResetVSync() 8217 SiS_LongDelay(SiS_Pr, 3); SiS_ChrontelResetVSync() 8218 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_ChrontelResetVSync() 8220 SiS_SetCH701x(SiS_Pr,0x47,temp); SiS_ChrontelResetVSync() 8221 SiS_SetCH701x(SiS_Pr,0x49,temp1); SiS_ChrontelResetVSync() 8225 SiS_Chrontel701xOn(struct SiS_Private *SiS_Pr) SiS_Chrontel701xOn() argument 8229 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_Chrontel701xOn() 8230 if(SiS_Pr->ChipType == SIS_740) { SiS_Chrontel701xOn() 8231 temp = SiS_GetCH701x(SiS_Pr,0x1c); SiS_Chrontel701xOn() 8233 SiS_SetCH701x(SiS_Pr,0x1c,temp); SiS_Chrontel701xOn() 8235 if(SiS_IsYPbPr(SiS_Pr)) { SiS_Chrontel701xOn() 8236 temp = SiS_GetCH701x(SiS_Pr,0x01); SiS_Chrontel701xOn() 8239 SiS_SetCH701x(SiS_Pr,0x01,temp); SiS_Chrontel701xOn() 8241 if(SiS_IsChScart(SiS_Pr)) { SiS_Chrontel701xOn() 8242 temp = SiS_GetCH701x(SiS_Pr,0x01); SiS_Chrontel701xOn() 8245 SiS_SetCH701x(SiS_Pr,0x01,temp); SiS_Chrontel701xOn() 8247 if(SiS_Pr->ChipType == SIS_740) { SiS_Chrontel701xOn() 8248 SiS_ChrontelResetVSync(SiS_Pr); SiS_Chrontel701xOn() 8249 SiS_SetCH701x(SiS_Pr,0x49,0x20); /* Enable TV path */ SiS_Chrontel701xOn() 8251 SiS_SetCH701x(SiS_Pr,0x49,0x20); /* Enable TV path */ SiS_Chrontel701xOn() 8252 temp = SiS_GetCH701x(SiS_Pr,0x49); SiS_Chrontel701xOn() 8253 if(SiS_IsYPbPr(SiS_Pr)) { SiS_Chrontel701xOn() 8254 temp = SiS_GetCH701x(SiS_Pr,0x73); SiS_Chrontel701xOn() 8256 SiS_SetCH701x(SiS_Pr,0x73,temp); SiS_Chrontel701xOn() 8258 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_Chrontel701xOn() 8260 SiS_SetCH701x(SiS_Pr,0x47,temp); SiS_Chrontel701xOn() 8261 SiS_LongDelay(SiS_Pr, 2); SiS_Chrontel701xOn() 8262 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_Chrontel701xOn() 8264 SiS_SetCH701x(SiS_Pr,0x47,temp); SiS_Chrontel701xOn() 8270 SiS_Chrontel701xOff(struct SiS_Private *SiS_Pr) SiS_Chrontel701xOff() argument 8275 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_Chrontel701xOff() 8276 if(SiS_Pr->ChipType == SIS_740) { SiS_Chrontel701xOff() 8277 SiS_LongDelay(SiS_Pr, 1); SiS_Chrontel701xOff() 8278 SiS_GenericDelay(SiS_Pr, 5887); SiS_Chrontel701xOff() 8279 SiS_SetCH701x(SiS_Pr,0x76,0xac); SiS_Chrontel701xOff() 8280 SiS_SetCH701x(SiS_Pr,0x66,0x00); SiS_Chrontel701xOff() 8282 SiS_LongDelay(SiS_Pr, 2); SiS_Chrontel701xOff() 8283 temp = SiS_GetCH701x(SiS_Pr,0x76); SiS_Chrontel701xOff() 8285 SiS_SetCH701x(SiS_Pr,0x76,temp); SiS_Chrontel701xOff() 8286 SiS_SetCH701x(SiS_Pr,0x66,0x00); SiS_Chrontel701xOff() 8292 SiS_ChrontelResetDB(struct SiS_Private *SiS_Pr) SiS_ChrontelResetDB() argument 8296 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelResetDB() 8298 temp = SiS_GetCH701x(SiS_Pr,0x4a); /* Version ID */ SiS_ChrontelResetDB() 8302 if(SiS_WeHaveBacklightCtrl(SiS_Pr)) { SiS_ChrontelResetDB() 8303 temp = SiS_GetCH701x(SiS_Pr,0x49); SiS_ChrontelResetDB() 8304 SiS_SetCH701x(SiS_Pr,0x49,0x3e); SiS_ChrontelResetDB() 8308 SiS_SetCH701x(SiS_Pr,0x48,0x10); SiS_ChrontelResetDB() 8309 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelResetDB() 8310 SiS_SetCH701x(SiS_Pr,0x48,0x18); SiS_ChrontelResetDB() 8312 if(SiS_WeHaveBacklightCtrl(SiS_Pr)) { SiS_ChrontelResetDB() 8313 SiS_ChrontelResetVSync(SiS_Pr); SiS_ChrontelResetDB() 8314 SiS_SetCH701x(SiS_Pr,0x49,temp); SiS_ChrontelResetDB() 8320 temp = SiS_GetCH701x(SiS_Pr,0x5c); SiS_ChrontelResetDB() 8322 SiS_SetCH701x(SiS_Pr,0x5c,temp); SiS_ChrontelResetDB() 8323 temp = SiS_GetCH701x(SiS_Pr,0x5c); SiS_ChrontelResetDB() 8325 SiS_SetCH701x(SiS_Pr,0x5c,temp); SiS_ChrontelResetDB() 8326 temp = SiS_GetCH701x(SiS_Pr,0x5c); SiS_ChrontelResetDB() 8328 SiS_SetCH701x(SiS_Pr,0x5c,temp); SiS_ChrontelResetDB() 8329 temp = SiS_GetCH701x(SiS_Pr,0x61); SiS_ChrontelResetDB() 8331 SiS_SetCH701xForLCD(SiS_Pr); SiS_ChrontelResetDB() 8337 SiS_SetCH701x(SiS_Pr,0x48,0x10); SiS_ChrontelResetDB() 8338 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelResetDB() 8339 SiS_SetCH701x(SiS_Pr,0x48,0x18); SiS_ChrontelResetDB() 8344 SiS_ChrontelInitTVVSync(struct SiS_Private *SiS_Pr) SiS_ChrontelInitTVVSync() argument 8348 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelInitTVVSync() 8350 if(SiS_WeHaveBacklightCtrl(SiS_Pr)) { SiS_ChrontelInitTVVSync() 8351 SiS_ChrontelResetVSync(SiS_Pr); SiS_ChrontelInitTVVSync() 8356 SiS_SetCH701x(SiS_Pr,0x76,0xaf); /* Power up LVDS block */ SiS_ChrontelInitTVVSync() 8357 temp = SiS_GetCH701x(SiS_Pr,0x49); SiS_ChrontelInitTVVSync() 8360 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_ChrontelInitTVVSync() 8362 SiS_SetCH701x(SiS_Pr,0x47,temp); /* enable VSYNC */ SiS_ChrontelInitTVVSync() 8363 SiS_LongDelay(SiS_Pr, 3); SiS_ChrontelInitTVVSync() 8364 temp = SiS_GetCH701x(SiS_Pr,0x47); SiS_ChrontelInitTVVSync() 8366 SiS_SetCH701x(SiS_Pr,0x47,temp); /* disable VSYNC */ SiS_ChrontelInitTVVSync() 8373 SiS_ChrontelDoSomething3(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_ChrontelDoSomething3() argument 8377 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelDoSomething3() 8379 temp = SiS_GetCH701x(SiS_Pr,0x61); SiS_ChrontelDoSomething3() 8382 SiS_SetCH701x(SiS_Pr,0x61,temp); SiS_ChrontelDoSomething3() 8384 SiS_SetCH701x(SiS_Pr,0x66,0x45); /* Panel power on */ SiS_ChrontelDoSomething3() 8385 SiS_SetCH701x(SiS_Pr,0x76,0xaf); /* All power on */ SiS_ChrontelDoSomething3() 8386 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelDoSomething3() 8387 SiS_GenericDelay(SiS_Pr, 5887); SiS_ChrontelDoSomething3() 8392 temp = SiS_GetCH701x(SiS_Pr,0x61); SiS_ChrontelDoSomething3() 8395 SiS_SetCH701x(SiS_Pr,0x61,temp); SiS_ChrontelDoSomething3() 8398 SiS_SetCH701x(SiS_Pr,0x76,0xac); SiS_ChrontelDoSomething3() 8399 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_ChrontelDoSomething3() 8401 SiS_SetCH701x(SiS_Pr,0x66,temp); SiS_ChrontelDoSomething3() 8403 if(SiS_WeHaveBacklightCtrl(SiS_Pr)) { SiS_ChrontelDoSomething3() 8404 SiS_GenericDelay(SiS_Pr, 1023); SiS_ChrontelDoSomething3() 8406 SiS_GenericDelay(SiS_Pr, 767); SiS_ChrontelDoSomething3() 8410 SiS_GenericDelay(SiS_Pr, 767); SiS_ChrontelDoSomething3() 8412 temp = SiS_GetCH701x(SiS_Pr,0x76); SiS_ChrontelDoSomething3() 8414 SiS_SetCH701x(SiS_Pr,0x76,temp); SiS_ChrontelDoSomething3() 8415 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_ChrontelDoSomething3() 8417 SiS_SetCH701x(SiS_Pr,0x66,temp); SiS_ChrontelDoSomething3() 8418 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelDoSomething3() 8424 SiS_ChrontelDoSomething2(struct SiS_Private *SiS_Pr) SiS_ChrontelDoSomething2() argument 8428 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelDoSomething2() 8431 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_ChrontelDoSomething2() 8435 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelDoSomething2() 8437 SiS_SetCH701x(SiS_Pr,0x76,0xac); SiS_ChrontelDoSomething2() 8440 SiS_SetCH701xForLCD(SiS_Pr); SiS_ChrontelDoSomething2() 8442 temp = SiS_GetCH701x(SiS_Pr,0x76); SiS_ChrontelDoSomething2() 8444 SiS_SetCH701x(SiS_Pr,0x76,temp); SiS_ChrontelDoSomething2() 8445 SiS_LongDelay(SiS_Pr, 2); SiS_ChrontelDoSomething2() 8446 temp = SiS_GetCH701x(SiS_Pr,0x76); SiS_ChrontelDoSomething2() 8448 SiS_SetCH701x(SiS_Pr,0x76,temp); SiS_ChrontelDoSomething2() 8449 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelDoSomething2() 8450 SiS_SetCH701x(SiS_Pr,0x78,0xe0); /* PLL loop filter */ SiS_ChrontelDoSomething2() 8452 SiS_SetCH701x(SiS_Pr,0x78,0x60); SiS_ChrontelDoSomething2() 8454 SiS_LongDelay(SiS_Pr, 2); SiS_ChrontelDoSomething2() 8457 SiS_SetCH701x(SiS_Pr,0x77,0x00); /* MV? */ SiS_ChrontelDoSomething2() 8461 SiS_ChrontelDoSomething1(struct SiS_Private *SiS_Pr) SiS_ChrontelDoSomething1() argument 8465 temp = SiS_GetCH701x(SiS_Pr,0x03); SiS_ChrontelDoSomething1() 8468 SiS_SetCH701x(SiS_Pr,0x03,temp); SiS_ChrontelDoSomething1() 8470 if(SiS_Pr->ChipType == SIS_740) { SiS_ChrontelDoSomething1() 8472 temp = SiS_GetCH701x(SiS_Pr,0x1c); SiS_ChrontelDoSomething1() 8474 SiS_SetCH701x(SiS_Pr,0x1c,temp); SiS_ChrontelDoSomething1() 8476 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2d,0x03); SiS_ChrontelDoSomething1() 8478 temp = SiS_GetCH701x(SiS_Pr,0x64); SiS_ChrontelDoSomething1() 8480 SiS_SetCH701x(SiS_Pr,0x64,temp); SiS_ChrontelDoSomething1() 8482 temp = SiS_GetCH701x(SiS_Pr,0x03); SiS_ChrontelDoSomething1() 8484 SiS_SetCH701x(SiS_Pr,0x03,temp); SiS_ChrontelDoSomething1() 8486 if(SiS_Pr->SiS_CustomT == CUT_ASUSL3000D) { SiS_ChrontelDoSomething1() 8487 SiS_SetCH701x(SiS_Pr,0x63,0x40); /* LVDS off */ SiS_ChrontelDoSomething1() 8488 SiS_LongDelay(SiS_Pr, 1); SiS_ChrontelDoSomething1() 8489 SiS_SetCH701x(SiS_Pr,0x63,0x00); /* LVDS on */ SiS_ChrontelDoSomething1() 8490 SiS_ChrontelResetDB(SiS_Pr); SiS_ChrontelDoSomething1() 8491 SiS_ChrontelDoSomething2(SiS_Pr); SiS_ChrontelDoSomething1() 8492 SiS_ChrontelDoSomething3(SiS_Pr, 0); SiS_ChrontelDoSomething1() 8494 temp = SiS_GetCH701x(SiS_Pr,0x66); SiS_ChrontelDoSomething1() 8496 SiS_ChrontelResetDB(SiS_Pr); SiS_ChrontelDoSomething1() 8497 SiS_ChrontelDoSomething2(SiS_Pr); SiS_ChrontelDoSomething1() 8498 SiS_ChrontelDoSomething3(SiS_Pr, 0); SiS_ChrontelDoSomething1() 8504 SiS_ChrontelResetDB(SiS_Pr); SiS_ChrontelDoSomething1() 8505 SiS_ChrontelDoSomething2(SiS_Pr); SiS_ChrontelDoSomething1() 8506 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x34); SiS_ChrontelDoSomething1() 8507 SiS_ChrontelDoSomething3(SiS_Pr,temp); SiS_ChrontelDoSomething1() 8508 SiS_SetCH701x(SiS_Pr,0x76,0xaf); /* All power on, LVDS normal operation */ SiS_ChrontelDoSomething1() 8520 SiS_SetCRT2Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_SetCRT2Group() argument 8523 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetCRT2Group() 8527 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT2Group() 8529 if(!SiS_Pr->UseCustomMode) { SiS_SetCRT2Group() 8530 SiS_SearchModeID(SiS_Pr, &ModeNo, &ModeIdIndex); SiS_SetCRT2Group() 8536 SiS_Pr->SiS_SelectCRT2Rate = 4; SiS_SetCRT2Group() 8538 SiS_UnLockCRT2(SiS_Pr); SiS_SetCRT2Group() 8540 RefreshRateTableIndex = SiS_GetRatePtr(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8542 SiS_SaveCRT2Info(SiS_Pr,ModeNo); SiS_SetCRT2Group() 8544 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8545 SiS_DisableBridge(SiS_Pr); SiS_SetCRT2Group() 8546 if((SiS_Pr->SiS_IF_DEF_LVDS == 1) && (SiS_Pr->ChipType == SIS_730)) { SiS_SetCRT2Group() 8547 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,0x80); SiS_SetCRT2Group() 8549 SiS_SetCRT2ModeRegs(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8552 if(SiS_Pr->SiS_VBInfo & DisableCRT2Display) { SiS_SetCRT2Group() 8553 SiS_LockCRT2(SiS_Pr); SiS_SetCRT2Group() 8554 SiS_DisplayOn(SiS_Pr); SiS_SetCRT2Group() 8558 SiS_GetCRT2Data(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8561 SiS_Pr->SiS_LCDHDES = SiS_Pr->SiS_LCDVDES = 0; SiS_SetCRT2Group() 8562 if( (SiS_Pr->SiS_IF_DEF_LVDS == 1) || SiS_SetCRT2Group() 8563 ((SiS_Pr->SiS_VBType & VB_NoLCD) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) || SiS_SetCRT2Group() 8564 ((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->SiS_VBType & VB_SIS30xBLV)) ) { SiS_SetCRT2Group() 8565 SiS_GetLVDSDesData(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8568 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8569 SiS_SetGroup1(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8572 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_SetCRT2Group() 8574 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8576 SiS_SetGroup2(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8578 SiS_SetGroup2_C_ELV(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8580 SiS_SetGroup3(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8581 SiS_SetGroup4(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8583 SiS_SetGroup4_C_ELV(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8585 SiS_SetGroup5(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8587 SiS_SetCRT2Sync(SiS_Pr, ModeNo, RefreshRateTableIndex); SiS_SetCRT2Group() 8590 if((SiS_Pr->SiS_VBType & VB_NoLCD) && (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD)) { SiS_SetCRT2Group() 8592 if(!((SiS_Pr->SiS_SetFlag & SetDOSMode) && ((ModeNo == 0x03) || (ModeNo == 0x10)))) { SiS_SetCRT2Group() 8593 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetCRT2Group() 8594 SiS_ModCRT1CRTC(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8597 SiS_SetCRT2ECLK(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8603 SiS_SetCRT2Sync(SiS_Pr, ModeNo, RefreshRateTableIndex); SiS_SetCRT2Group() 8605 SiS_ModCRT1CRTC(SiS_Pr,ModeNo,ModeIdIndex,RefreshRateTableIndex); SiS_SetCRT2Group() 8607 SiS_SetCRT2ECLK(SiS_Pr,ModeNo,ModeIdIndex,RefreshRateTableIndex); SiS_SetCRT2Group() 8609 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8610 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetCRT2Group() 8611 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_SetCRT2Group() 8612 if(SiS_Pr->SiS_IF_DEF_CH70xx == 2) { SiS_SetCRT2Group() 8614 SiS_SetCH701xForLCD(SiS_Pr); SiS_SetCRT2Group() 8618 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2Group() 8619 SiS_SetCHTVReg(SiS_Pr,ModeNo,ModeIdIndex,RefreshRateTableIndex); SiS_SetCRT2Group() 8627 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetCRT2Group() 8628 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8629 if(SiS_Pr->SiS_UseOEM) { SiS_SetCRT2Group() 8630 if((SiS_Pr->SiS_UseROM) && (SiS_Pr->SiS_UseOEM == -1)) { SiS_SetCRT2Group() 8632 SiS_OEM300Setting(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8635 SiS_OEM300Setting(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8638 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_SetCRT2Group() 8639 if((SiS_Pr->SiS_CustomT == CUT_BARCO1366) || SiS_SetCRT2Group() 8640 (SiS_Pr->SiS_CustomT == CUT_BARCO1024)) { SiS_SetCRT2Group() 8641 SetOEMLCDData2(SiS_Pr, ModeNo, ModeIdIndex,RefreshRateTableIndex); SiS_SetCRT2Group() 8643 SiS_DisplayOn(SiS_Pr); SiS_SetCRT2Group() 8650 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT2Group() 8651 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8652 if(SiS_Pr->ChipType < SIS_661) { SiS_SetCRT2Group() 8653 SiS_FinalizeLCD(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT2Group() 8654 SiS_OEM310Setting(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8656 SiS_OEM661Setting(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT2Group() 8658 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x40); SiS_SetCRT2Group() 8663 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8664 SiS_EnableBridge(SiS_Pr); SiS_SetCRT2Group() 8667 SiS_DisplayOn(SiS_Pr); SiS_SetCRT2Group() 8669 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) { SiS_SetCRT2Group() 8670 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetCRT2Group() 8672 SiS_SetRegSR11ANDOR(SiS_Pr,0xFF,0x0C); SiS_SetCRT2Group() 8675 SiS_SetCH70xxANDOR(SiS_Pr,0x0e,0x01,0xf8); SiS_SetCRT2Group() 8679 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT2Group() 8680 SiS_LockCRT2(SiS_Pr); SiS_SetCRT2Group() 8692 SiS_SiS30xBLOn(struct SiS_Private *SiS_Pr) SiS_SiS30xBLOn() argument 8695 SiS_DDC2Delay(SiS_Pr,0xff00); SiS_SiS30xBLOn() 8696 if(!(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x26) & 0x02)) { SiS_SiS30xBLOn() 8697 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x02); SiS_SiS30xBLOn() 8698 SiS_WaitVBRetrace(SiS_Pr); SiS_SiS30xBLOn() 8700 if(!(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x26) & 0x01)) { SiS_SiS30xBLOn() 8701 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x26,0x01); SiS_SiS30xBLOn() 8706 SiS_SiS30xBLOff(struct SiS_Private *SiS_Pr) SiS_SiS30xBLOff() argument 8709 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFE); SiS_SiS30xBLOff() 8710 SiS_DDC2Delay(SiS_Pr,0xff00); SiS_SiS30xBLOff() 8718 SiS_SetupDDCN(struct SiS_Private *SiS_Pr) SiS_SetupDDCN() argument 8720 SiS_Pr->SiS_DDC_NData = ~SiS_Pr->SiS_DDC_Data; SiS_SetupDDCN() 8721 SiS_Pr->SiS_DDC_NClk = ~SiS_Pr->SiS_DDC_Clk; SiS_SetupDDCN() 8722 if((SiS_Pr->SiS_DDC_Index == 0x11) && (SiS_Pr->SiS_SensibleSR11)) { SiS_SetupDDCN() 8723 SiS_Pr->SiS_DDC_NData &= 0x0f; SiS_SetupDDCN() 8724 SiS_Pr->SiS_DDC_NClk &= 0x0f; SiS_SetupDDCN() 8730 SiS_SetTrumpBlockLoop(struct SiS_Private *SiS_Pr, unsigned char *dataptr) SiS_SetTrumpBlockLoop() argument 8741 SiS_SetStop(SiS_Pr); SiS_SetTrumpBlockLoop() 8742 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT * 2); SiS_SetTrumpBlockLoop() 8744 if(SiS_SetStart(SiS_Pr)) continue; /* Set start condition */ SiS_SetTrumpBlockLoop() 8745 tempah = SiS_Pr->SiS_DDC_DeviceAddr; SiS_SetTrumpBlockLoop() 8746 temp = SiS_WriteDDC2Data(SiS_Pr,tempah); /* Write DAB (S0=0=write) */ SiS_SetTrumpBlockLoop() 8749 temp = SiS_WriteDDC2Data(SiS_Pr,tempah); /* Write register number */ SiS_SetTrumpBlockLoop() 8753 temp = SiS_WriteDDC2Data(SiS_Pr,tempah);/* Write DAB (S0=0=write) */ SiS_SetTrumpBlockLoop() 8757 if(SiS_SetStop(SiS_Pr)) continue; SiS_SetTrumpBlockLoop() 8764 SiS_SetTrumpionBlock(struct SiS_Private *SiS_Pr, unsigned char *dataptr) SiS_SetTrumpionBlock() argument 8766 SiS_Pr->SiS_DDC_DeviceAddr = 0xF0; /* DAB (Device Address Byte) */ SiS_SetTrumpionBlock() 8767 SiS_Pr->SiS_DDC_Index = 0x11; /* Bit 0 = SC; Bit 1 = SD */ SiS_SetTrumpionBlock() 8768 SiS_Pr->SiS_DDC_Data = 0x02; /* Bitmask in IndexReg for Data */ SiS_SetTrumpionBlock() 8769 SiS_Pr->SiS_DDC_Clk = 0x01; /* Bitmask in IndexReg for Clk */ SiS_SetTrumpionBlock() 8770 SiS_SetupDDCN(SiS_Pr); SiS_SetTrumpionBlock() 8772 SiS_SetSwitchDDC2(SiS_Pr); SiS_SetTrumpionBlock() 8775 dataptr = SiS_SetTrumpBlockLoop(SiS_Pr, dataptr); SiS_SetTrumpionBlock() 8790 SiS_SetChReg(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val, unsigned short myor) SiS_SetChReg() argument 8796 SiS_SetStop(SiS_Pr); SiS_SetChReg() 8797 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT * 4); SiS_SetChReg() 8799 if(SiS_SetStart(SiS_Pr)) continue; /* Set start condition */ SiS_SetChReg() 8800 temp = SiS_WriteDDC2Data(SiS_Pr, SiS_Pr->SiS_DDC_DeviceAddr); /* Write DAB (S0=0=write) */ SiS_SetChReg() 8802 temp = SiS_WriteDDC2Data(SiS_Pr, (reg | myor)); /* Write RAB (700x: set bit 7, see datasheet) */ SiS_SetChReg() 8804 temp = SiS_WriteDDC2Data(SiS_Pr, val); /* Write data */ SiS_SetChReg() 8806 if(SiS_SetStop(SiS_Pr)) continue; /* Set stop condition */ SiS_SetChReg() 8807 SiS_Pr->SiS_ChrontelInit = 1; SiS_SetChReg() 8815 SiS_SetCH700x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val) SiS_SetCH700x() argument 8817 SiS_Pr->SiS_DDC_DeviceAddr = 0xEA; /* DAB (Device Address Byte) */ SiS_SetCH700x() 8819 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); SiS_SetCH700x() 8821 if(!(SiS_Pr->SiS_ChrontelInit)) { SiS_SetCH700x() 8822 SiS_Pr->SiS_DDC_Index = 0x11; /* Bit 0 = SC; Bit 1 = SD */ SiS_SetCH700x() 8823 SiS_Pr->SiS_DDC_Data = 0x02; /* Bitmask in IndexReg for Data */ SiS_SetCH700x() 8824 SiS_Pr->SiS_DDC_Clk = 0x01; /* Bitmask in IndexReg for Clk */ SiS_SetCH700x() 8825 SiS_SetupDDCN(SiS_Pr); SiS_SetCH700x() 8828 if( (!(SiS_SetChReg(SiS_Pr, reg, val, 0x80))) && SiS_SetCH700x() 8829 (!(SiS_Pr->SiS_ChrontelInit)) ) { SiS_SetCH700x() 8830 SiS_Pr->SiS_DDC_Index = 0x0a; SiS_SetCH700x() 8831 SiS_Pr->SiS_DDC_Data = 0x80; SiS_SetCH700x() 8832 SiS_Pr->SiS_DDC_Clk = 0x40; SiS_SetCH700x() 8833 SiS_SetupDDCN(SiS_Pr); SiS_SetCH700x() 8835 SiS_SetChReg(SiS_Pr, reg, val, 0x80); SiS_SetCH700x() 8842 SiS_SetCH701x(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val) SiS_SetCH701x() argument 8844 SiS_Pr->SiS_DDC_Index = 0x11; /* Bit 0 = SC; Bit 1 = SD */ SiS_SetCH701x() 8845 SiS_Pr->SiS_DDC_Data = 0x08; /* Bitmask in IndexReg for Data */ SiS_SetCH701x() 8846 SiS_Pr->SiS_DDC_Clk = 0x04; /* Bitmask in IndexReg for Clk */ SiS_SetCH701x() 8847 SiS_SetupDDCN(SiS_Pr); SiS_SetCH701x() 8848 SiS_Pr->SiS_DDC_DeviceAddr = 0xEA; /* DAB (Device Address Byte) */ SiS_SetCH701x() 8849 SiS_SetChReg(SiS_Pr, reg, val, 0); SiS_SetCH701x() 8854 SiS_SetCH70xx(struct SiS_Private *SiS_Pr, unsigned short reg, unsigned char val) SiS_SetCH70xx() argument 8856 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) SiS_SetCH70xx() 8857 SiS_SetCH700x(SiS_Pr, reg, val); SiS_SetCH70xx() 8859 SiS_SetCH701x(SiS_Pr, reg, val); SiS_SetCH70xx() 8863 SiS_GetChReg(struct SiS_Private *SiS_Pr, unsigned short myor) SiS_GetChReg() argument 8869 SiS_SetStop(SiS_Pr); SiS_GetChReg() 8870 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT * 4); SiS_GetChReg() 8872 if(SiS_SetStart(SiS_Pr)) continue; /* Set start condition */ SiS_GetChReg() 8873 temp = SiS_WriteDDC2Data(SiS_Pr,SiS_Pr->SiS_DDC_DeviceAddr); /* Write DAB (S0=0=write) */ SiS_GetChReg() 8875 temp = SiS_WriteDDC2Data(SiS_Pr,SiS_Pr->SiS_DDC_ReadAddr | myor); /* Write RAB (700x: | 0x80) */ SiS_GetChReg() 8877 if (SiS_SetStart(SiS_Pr)) continue; /* Re-start */ SiS_GetChReg() 8878 temp = SiS_WriteDDC2Data(SiS_Pr,SiS_Pr->SiS_DDC_DeviceAddr | 0x01);/* DAB (S0=1=read) */ SiS_GetChReg() 8880 tempah = SiS_ReadDDC2Data(SiS_Pr); /* Read byte */ SiS_GetChReg() 8881 if(SiS_SetStop(SiS_Pr)) continue; /* Stop condition */ SiS_GetChReg() 8882 SiS_Pr->SiS_ChrontelInit = 1; SiS_GetChReg() 8891 SiS_GetCH700x(struct SiS_Private *SiS_Pr, unsigned short tempbx) SiS_GetCH700x() argument 8895 SiS_Pr->SiS_DDC_DeviceAddr = 0xEA; /* DAB */ SiS_GetCH700x() 8897 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); SiS_GetCH700x() 8899 if(!(SiS_Pr->SiS_ChrontelInit)) { SiS_GetCH700x() 8900 SiS_Pr->SiS_DDC_Index = 0x11; /* Bit 0 = SC; Bit 1 = SD */ SiS_GetCH700x() 8901 SiS_Pr->SiS_DDC_Data = 0x02; /* Bitmask in IndexReg for Data */ SiS_GetCH700x() 8902 SiS_Pr->SiS_DDC_Clk = 0x01; /* Bitmask in IndexReg for Clk */ SiS_GetCH700x() 8903 SiS_SetupDDCN(SiS_Pr); SiS_GetCH700x() 8906 SiS_Pr->SiS_DDC_ReadAddr = tempbx; SiS_GetCH700x() 8908 if( ((result = SiS_GetChReg(SiS_Pr,0x80)) == 0xFFFF) && SiS_GetCH700x() 8909 (!SiS_Pr->SiS_ChrontelInit) ) { SiS_GetCH700x() 8911 SiS_Pr->SiS_DDC_Index = 0x0a; SiS_GetCH700x() 8912 SiS_Pr->SiS_DDC_Data = 0x80; SiS_GetCH700x() 8913 SiS_Pr->SiS_DDC_Clk = 0x40; SiS_GetCH700x() 8914 SiS_SetupDDCN(SiS_Pr); SiS_GetCH700x() 8916 result = SiS_GetChReg(SiS_Pr,0x80); SiS_GetCH700x() 8924 SiS_GetCH701x(struct SiS_Private *SiS_Pr, unsigned short tempbx) SiS_GetCH701x() argument 8926 SiS_Pr->SiS_DDC_Index = 0x11; /* Bit 0 = SC; Bit 1 = SD */ SiS_GetCH701x() 8927 SiS_Pr->SiS_DDC_Data = 0x08; /* Bitmask in IndexReg for Data */ SiS_GetCH701x() 8928 SiS_Pr->SiS_DDC_Clk = 0x04; /* Bitmask in IndexReg for Clk */ SiS_GetCH701x() 8929 SiS_SetupDDCN(SiS_Pr); SiS_GetCH701x() 8930 SiS_Pr->SiS_DDC_DeviceAddr = 0xEA; /* DAB */ SiS_GetCH701x() 8932 SiS_Pr->SiS_DDC_ReadAddr = tempbx; SiS_GetCH701x() 8934 return SiS_GetChReg(SiS_Pr,0); SiS_GetCH701x() 8941 SiS_GetCH70xx(struct SiS_Private *SiS_Pr, unsigned short tempbx) SiS_GetCH70xx() argument 8943 if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) SiS_GetCH70xx() 8944 return SiS_GetCH700x(SiS_Pr, tempbx); SiS_GetCH70xx() 8946 return SiS_GetCH701x(SiS_Pr, tempbx); SiS_GetCH70xx() 8950 SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg, SiS_SetCH70xxANDOR() argument 8955 tempbl = (SiS_GetCH70xx(SiS_Pr, (reg & 0xFF)) & myand) | myor; SiS_SetCH70xxANDOR() 8956 SiS_SetCH70xx(SiS_Pr, reg, tempbl); SiS_SetCH70xxANDOR() 8962 SiS_InitDDCRegs(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, SiS_InitDDCRegs() argument 8977 SiS_Pr->SiS_ChrontelInit = 0; /* force re-detection! */ SiS_InitDDCRegs() 8979 SiS_Pr->SiS_DDC_SecAddr = 0; SiS_InitDDCRegs() 8980 SiS_Pr->SiS_DDC_DeviceAddr = ddcdtype[DDCdatatype]; SiS_InitDDCRegs() 8981 SiS_Pr->SiS_DDC_Port = SiS_Pr->SiS_P3c4; SiS_InitDDCRegs() 8982 SiS_Pr->SiS_DDC_Index = 0x11; SiS_InitDDCRegs() 8985 cr32 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x32); SiS_InitDDCRegs() 9008 SiS_Pr->SiS_DDC_Port = SiS_Pr->SiS_Part4Port; SiS_InitDDCRegs() 9009 SiS_Pr->SiS_DDC_Index = 0x0f; SiS_InitDDCRegs() 9040 SiS_Pr->SiS_DDC_Port = SiS_Pr->SiS_Part4Port; SiS_InitDDCRegs() 9041 SiS_Pr->SiS_DDC_Index = 0x0f; SiS_InitDDCRegs() 9063 SiS_Pr->SiS_DDC_Data = 0x02 << temp; SiS_InitDDCRegs() 9064 SiS_Pr->SiS_DDC_Clk = 0x01 << temp; SiS_InitDDCRegs() 9066 SiS_SetupDDCN(SiS_Pr); SiS_InitDDCRegs() 9072 SiS_WriteDABDDC(struct SiS_Private *SiS_Pr) SiS_WriteDABDDC() argument 9074 if(SiS_SetStart(SiS_Pr)) return 0xFFFF; SiS_WriteDABDDC() 9075 if(SiS_WriteDDC2Data(SiS_Pr, SiS_Pr->SiS_DDC_DeviceAddr)) { SiS_WriteDABDDC() 9078 if(SiS_WriteDDC2Data(SiS_Pr, SiS_Pr->SiS_DDC_SecAddr)) { SiS_WriteDABDDC() 9085 SiS_PrepareReadDDC(struct SiS_Private *SiS_Pr) SiS_PrepareReadDDC() argument 9087 if(SiS_SetStart(SiS_Pr)) return 0xFFFF; SiS_PrepareReadDDC() 9088 if(SiS_WriteDDC2Data(SiS_Pr, (SiS_Pr->SiS_DDC_DeviceAddr | 0x01))) { SiS_PrepareReadDDC() 9095 SiS_PrepareDDC(struct SiS_Private *SiS_Pr) SiS_PrepareDDC() argument 9097 if(SiS_WriteDABDDC(SiS_Pr)) SiS_WriteDABDDC(SiS_Pr); SiS_PrepareDDC() 9098 if(SiS_PrepareReadDDC(SiS_Pr)) return (SiS_PrepareReadDDC(SiS_Pr)); SiS_PrepareDDC() 9103 SiS_SendACK(struct SiS_Private *SiS_Pr, unsigned short yesno) SiS_SendACK() argument 9105 SiS_SetSCLKLow(SiS_Pr); SiS_SendACK() 9107 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SendACK() 9108 SiS_Pr->SiS_DDC_Index, SiS_SendACK() 9109 SiS_Pr->SiS_DDC_NData, SiS_SendACK() 9110 SiS_Pr->SiS_DDC_Data); SiS_SendACK() 9112 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SendACK() 9113 SiS_Pr->SiS_DDC_Index, SiS_SendACK() 9114 SiS_Pr->SiS_DDC_NData, SiS_SendACK() 9117 SiS_SetSCLKHigh(SiS_Pr); SiS_SendACK() 9121 SiS_DoProbeDDC(struct SiS_Private *SiS_Pr) SiS_DoProbeDDC() argument 9127 SiS_SetSwitchDDC2(SiS_Pr); SiS_DoProbeDDC() 9128 if(SiS_PrepareDDC(SiS_Pr)) { SiS_DoProbeDDC() 9129 SiS_SetStop(SiS_Pr); SiS_DoProbeDDC() 9134 if(SiS_Pr->SiS_DDC_DeviceAddr == 0xa0) { SiS_DoProbeDDC() 9135 temp = (unsigned char)SiS_ReadDDC2Data(SiS_Pr); SiS_DoProbeDDC() 9136 SiS_SendACK(SiS_Pr, 0); SiS_DoProbeDDC() 9146 temp = (unsigned char)SiS_ReadDDC2Data(SiS_Pr); SiS_DoProbeDDC() 9147 SiS_SendACK(SiS_Pr, 1); SiS_DoProbeDDC() 9152 if(SiS_Pr->SiS_DDC_DeviceAddr == 0xa0) { SiS_DoProbeDDC() 9157 SiS_SetStop(SiS_Pr); SiS_DoProbeDDC() 9163 SiS_ProbeDDC(struct SiS_Private *SiS_Pr) SiS_ProbeDDC() argument 9168 SiS_Pr->SiS_DDC_DeviceAddr = 0xa0; SiS_ProbeDDC() 9169 if(!(SiS_DoProbeDDC(SiS_Pr))) flag |= 0x02; SiS_ProbeDDC() 9170 SiS_Pr->SiS_DDC_DeviceAddr = 0xa2; SiS_ProbeDDC() 9171 if(!(SiS_DoProbeDDC(SiS_Pr))) flag |= 0x08; SiS_ProbeDDC() 9172 SiS_Pr->SiS_DDC_DeviceAddr = 0xa6; SiS_ProbeDDC() 9173 if(!(SiS_DoProbeDDC(SiS_Pr))) flag |= 0x10; SiS_ProbeDDC() 9180 SiS_ReadDDC(struct SiS_Private *SiS_Pr, unsigned short DDCdatatype, unsigned char *buffer) SiS_ReadDDC() argument 9188 SiS_SetSwitchDDC2(SiS_Pr); SiS_ReadDDC() 9189 if(!(SiS_PrepareDDC(SiS_Pr))) { SiS_ReadDDC() 9195 buffer[i] = (unsigned char)SiS_ReadDDC2Data(SiS_Pr); SiS_ReadDDC() 9198 SiS_SendACK(SiS_Pr, 0); SiS_ReadDDC() 9200 buffer[i] = (unsigned char)SiS_ReadDDC2Data(SiS_Pr); SiS_ReadDDC() 9202 SiS_SendACK(SiS_Pr, 1); SiS_ReadDDC() 9208 SiS_SetStop(SiS_Pr); SiS_ReadDDC() 9218 we use our pre-detected pSiS-values instead of SiS_Pr as 9234 SiS_HandleDDC(struct SiS_Private *SiS_Pr, unsigned int VBFlags, int VGAEngine, SiS_HandleDDC() argument 9250 if(SiS_InitDDCRegs(SiS_Pr, VBFlags, VGAEngine, adaptnum, DDCdatatype, false, VBFlags2) == 0xFFFF) SiS_HandleDDC() 9253 sr1f = SiS_GetReg(SiS_Pr->SiS_P3c4,0x1f); SiS_HandleDDC() 9254 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x1f,0x3f,0x04); SiS_HandleDDC() 9256 cr17 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x17) & 0x80; SiS_HandleDDC() 9258 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x17,0x80); SiS_HandleDDC() 9259 SiS_SetReg(SiS_Pr->SiS_P3c4,0x00,0x01); SiS_HandleDDC() 9260 SiS_SetReg(SiS_Pr->SiS_P3c4,0x00,0x03); SiS_HandleDDC() 9264 SiS_WaitRetrace1(SiS_Pr); SiS_HandleDDC() 9265 SiS_WaitRetrace1(SiS_Pr); SiS_HandleDDC() 9266 SiS_WaitRetrace1(SiS_Pr); SiS_HandleDDC() 9267 SiS_WaitRetrace1(SiS_Pr); SiS_HandleDDC() 9271 result = SiS_ProbeDDC(SiS_Pr); SiS_HandleDDC() 9273 result = SiS_ReadDDC(SiS_Pr, DDCdatatype, buffer); SiS_HandleDDC() 9280 if(!SiS_Pr->DDCPortMixup) { SiS_HandleDDC() 9290 SiS_SetReg(SiS_Pr->SiS_P3c4,0x1f,sr1f); SiS_HandleDDC() 9292 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x17,0x7f,cr17); SiS_HandleDDC() 9300 SiS_SetSwitchDDC2(struct SiS_Private *SiS_Pr) SiS_SetSwitchDDC2() argument 9302 SiS_SetSCLKHigh(SiS_Pr); SiS_SetSwitchDDC2() 9303 SiS_WaitRetrace1(SiS_Pr); SiS_SetSwitchDDC2() 9305 SiS_SetSCLKLow(SiS_Pr); SiS_SetSwitchDDC2() 9306 SiS_WaitRetrace1(SiS_Pr); SiS_SetSwitchDDC2() 9310 SiS_ReadDDC1Bit(struct SiS_Private *SiS_Pr) SiS_ReadDDC1Bit() argument 9312 SiS_WaitRetrace1(SiS_Pr); SiS_ReadDDC1Bit() 9313 return ((SiS_GetReg(SiS_Pr->SiS_P3c4,0x11) & 0x02) >> 1); SiS_ReadDDC1Bit() 9319 SiS_SetStart(struct SiS_Private *SiS_Pr) SiS_SetStart() argument 9321 if(SiS_SetSCLKLow(SiS_Pr)) return 0xFFFF; /* (SC->low) */ SiS_SetStart() 9322 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetStart() 9323 SiS_Pr->SiS_DDC_Index, SiS_SetStart() 9324 SiS_Pr->SiS_DDC_NData, SiS_SetStart() 9325 SiS_Pr->SiS_DDC_Data); /* SD->high */ SiS_SetStart() 9326 if(SiS_SetSCLKHigh(SiS_Pr)) return 0xFFFF; /* SC->high */ SiS_SetStart() 9327 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetStart() 9328 SiS_Pr->SiS_DDC_Index, SiS_SetStart() 9329 SiS_Pr->SiS_DDC_NData, SiS_SetStart() 9331 if(SiS_SetSCLKHigh(SiS_Pr)) return 0xFFFF; /* (SC->low) */ SiS_SetStart() 9338 SiS_SetStop(struct SiS_Private *SiS_Pr) SiS_SetStop() argument 9340 if(SiS_SetSCLKLow(SiS_Pr)) return 0xFFFF; /* (SC->low) */ SiS_SetStop() 9341 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetStop() 9342 SiS_Pr->SiS_DDC_Index, SiS_SetStop() 9343 SiS_Pr->SiS_DDC_NData, SiS_SetStop() 9345 if(SiS_SetSCLKHigh(SiS_Pr)) return 0xFFFF; /* SC->high */ SiS_SetStop() 9346 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetStop() 9347 SiS_Pr->SiS_DDC_Index, SiS_SetStop() 9348 SiS_Pr->SiS_DDC_NData, SiS_SetStop() 9349 SiS_Pr->SiS_DDC_Data); /* SD->high = stop condition */ SiS_SetStop() 9350 if(SiS_SetSCLKHigh(SiS_Pr)) return 0xFFFF; /* (SC->high) */ SiS_SetStop() 9356 SiS_WriteDDC2Data(struct SiS_Private *SiS_Pr, unsigned short tempax) SiS_WriteDDC2Data() argument 9362 SiS_SetSCLKLow(SiS_Pr); /* SC->low */ SiS_WriteDDC2Data() 9364 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_WriteDDC2Data() 9365 SiS_Pr->SiS_DDC_Index, SiS_WriteDDC2Data() 9366 SiS_Pr->SiS_DDC_NData, SiS_WriteDDC2Data() 9367 SiS_Pr->SiS_DDC_Data); /* Write bit (1) to SD */ SiS_WriteDDC2Data() 9369 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_WriteDDC2Data() 9370 SiS_Pr->SiS_DDC_Index, SiS_WriteDDC2Data() 9371 SiS_Pr->SiS_DDC_NData, SiS_WriteDDC2Data() 9374 SiS_SetSCLKHigh(SiS_Pr); /* SC->high */ SiS_WriteDDC2Data() 9377 temp = SiS_CheckACK(SiS_Pr); /* Check acknowledge */ SiS_WriteDDC2Data() 9382 SiS_ReadDDC2Data(struct SiS_Private *SiS_Pr) SiS_ReadDDC2Data() argument 9389 SiS_SetSCLKLow(SiS_Pr); SiS_ReadDDC2Data() 9390 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_ReadDDC2Data() 9391 SiS_Pr->SiS_DDC_Index, SiS_ReadDDC2Data() 9392 SiS_Pr->SiS_DDC_NData, SiS_ReadDDC2Data() 9393 SiS_Pr->SiS_DDC_Data); SiS_ReadDDC2Data() 9394 SiS_SetSCLKHigh(SiS_Pr); SiS_ReadDDC2Data() 9395 temp = SiS_GetReg(SiS_Pr->SiS_DDC_Port,SiS_Pr->SiS_DDC_Index); SiS_ReadDDC2Data() 9396 if(temp & SiS_Pr->SiS_DDC_Data) getdata |= 0x01; SiS_ReadDDC2Data() 9402 SiS_SetSCLKLow(struct SiS_Private *SiS_Pr) SiS_SetSCLKLow() argument 9404 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetSCLKLow() 9405 SiS_Pr->SiS_DDC_Index, SiS_SetSCLKLow() 9406 SiS_Pr->SiS_DDC_NClk, SiS_SetSCLKLow() 9408 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); SiS_SetSCLKLow() 9413 SiS_SetSCLKHigh(struct SiS_Private *SiS_Pr) SiS_SetSCLKHigh() argument 9417 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_SetSCLKHigh() 9418 SiS_Pr->SiS_DDC_Index, SiS_SetSCLKHigh() 9419 SiS_Pr->SiS_DDC_NClk, SiS_SetSCLKHigh() 9420 SiS_Pr->SiS_DDC_Clk); /* SetSCLKHigh() */ SiS_SetSCLKHigh() 9422 temp = SiS_GetReg(SiS_Pr->SiS_DDC_Port,SiS_Pr->SiS_DDC_Index); SiS_SetSCLKHigh() 9423 } while((!(temp & SiS_Pr->SiS_DDC_Clk)) && --watchdog); SiS_SetSCLKHigh() 9427 SiS_DDC2Delay(SiS_Pr,SiS_I2CDELAYSHORT); SiS_SetSCLKHigh() 9434 SiS_CheckACK(struct SiS_Private *SiS_Pr) SiS_CheckACK() argument 9438 SiS_SetSCLKLow(SiS_Pr); /* (SC->low) */ SiS_CheckACK() 9439 SiS_SetRegANDOR(SiS_Pr->SiS_DDC_Port, SiS_CheckACK() 9440 SiS_Pr->SiS_DDC_Index, SiS_CheckACK() 9441 SiS_Pr->SiS_DDC_NData, SiS_CheckACK() 9442 SiS_Pr->SiS_DDC_Data); /* (SD->high) */ SiS_CheckACK() 9443 SiS_SetSCLKHigh(SiS_Pr); /* SC->high = clock impulse for ack */ SiS_CheckACK() 9444 tempah = SiS_GetReg(SiS_Pr->SiS_DDC_Port,SiS_Pr->SiS_DDC_Index); /* Read SD */ SiS_CheckACK() 9445 SiS_SetSCLKLow(SiS_Pr); /* SC->low = end of clock impulse */ SiS_CheckACK() 9446 if(tempah & SiS_Pr->SiS_DDC_Data) return 1; /* Ack OK if bit = 0 */ SiS_CheckACK() 9458 GetRAMDACromptr(struct SiS_Private *SiS_Pr) GetRAMDACromptr() argument 9460 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetRAMDACromptr() 9463 if(SiS_Pr->ChipType < SIS_330) { GetRAMDACromptr() 9465 if(SiS_Pr->SiS_VBType & VB_SIS30xB) GetRAMDACromptr() 9469 if(SiS_Pr->SiS_VBType & VB_SIS30xB) GetRAMDACromptr() 9476 GetLCDromptr(struct SiS_Private *SiS_Pr) GetLCDromptr() argument 9478 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetLCDromptr() 9481 if(SiS_Pr->ChipType < SIS_330) { GetLCDromptr() 9483 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) GetLCDromptr() 9487 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) GetLCDromptr() 9494 GetTVromptr(struct SiS_Private *SiS_Pr) GetTVromptr() argument 9496 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetTVromptr() 9499 if(SiS_Pr->ChipType < SIS_330) { GetTVromptr() 9501 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) GetTVromptr() 9505 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) GetTVromptr() 9512 GetLCDPtrIndexBIOS(struct SiS_Private *SiS_Pr) GetLCDPtrIndexBIOS() argument 9516 if((IS_SIS650) && (SiS_Pr->SiS_VBType & VB_SISLVDS)) { GetLCDPtrIndexBIOS() 9517 if(!(SiS_IsNotM650orLater(SiS_Pr))) { GetLCDPtrIndexBIOS() 9518 if((index = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) & 0xf0)) { GetLCDPtrIndexBIOS() 9521 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) index += 2; GetLCDPtrIndexBIOS() 9522 else if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) index++; GetLCDPtrIndexBIOS() 9528 index = SiS_GetBIOSLCDResInfo(SiS_Pr) & 0x0F; GetLCDPtrIndexBIOS() 9529 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) index -= 5; GetLCDPtrIndexBIOS() 9530 if(SiS_Pr->SiS_VBType & VB_SIS301C) { /* 1.15.20 and later (not VB specific) */ GetLCDPtrIndexBIOS() 9531 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) index -= 5; GetLCDPtrIndexBIOS() 9532 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x768) index -= 5; GetLCDPtrIndexBIOS() 9534 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) index -= 6; GetLCDPtrIndexBIOS() 9538 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) index += 2; GetLCDPtrIndexBIOS() 9539 else if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) index++; GetLCDPtrIndexBIOS() 9544 GetLCDPtrIndex(struct SiS_Private *SiS_Pr) GetLCDPtrIndex() argument 9548 index = ((SiS_GetBIOSLCDResInfo(SiS_Pr) & 0x0F) - 1) * 3; GetLCDPtrIndex() 9549 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) index += 2; GetLCDPtrIndex() 9550 else if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) index++; GetLCDPtrIndex() 9555 GetTVPtrIndex(struct SiS_Private *SiS_Pr) GetTVPtrIndex() argument 9560 if(SiS_Pr->SiS_TVMode & TVSetPAL) index = 1; GetTVPtrIndex() 9561 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) index = 2; GetTVPtrIndex() 9563 if(SiS_Pr->SiS_VBInfo & SetCRT2ToYPbPr525750) index = 0; GetTVPtrIndex() 9567 if((SiS_Pr->SiS_VBInfo & SetInSlaveMode) && GetTVPtrIndex() 9568 (SiS_Pr->SiS_TVMode & TVSetTVSimuMode)) { GetTVPtrIndex() 9576 GetOEMTVPtr661_2_GEN(struct SiS_Private *SiS_Pr, int addme) GetOEMTVPtr661_2_GEN() argument 9580 if(SiS_Pr->SiS_TVMode & TVSetPAL) index = 1; GetOEMTVPtr661_2_GEN() 9581 if(SiS_Pr->SiS_TVMode & TVSetPALM) index = 2; GetOEMTVPtr661_2_GEN() 9582 if(SiS_Pr->SiS_TVMode & TVSetPALN) index = 3; GetOEMTVPtr661_2_GEN() 9583 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) index = 6; GetOEMTVPtr661_2_GEN() 9584 if(SiS_Pr->SiS_TVMode & TVSetNTSC1024) { GetOEMTVPtr661_2_GEN() 9586 if(SiS_Pr->SiS_TVMode & TVSetPALM) index++; GetOEMTVPtr661_2_GEN() 9587 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) index = 7; GetOEMTVPtr661_2_GEN() 9590 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { GetOEMTVPtr661_2_GEN() 9591 if((!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) || GetOEMTVPtr661_2_GEN() 9592 (SiS_Pr->SiS_TVMode & TVSetTVSimuMode)) { GetOEMTVPtr661_2_GEN() 9602 GetOEMTVPtr661_2_OLD(struct SiS_Private *SiS_Pr) GetOEMTVPtr661_2_OLD() argument 9604 return (GetOEMTVPtr661_2_GEN(SiS_Pr, 8)); GetOEMTVPtr661_2_OLD() 9609 GetOEMTVPtr661_2_NEW(struct SiS_Private *SiS_Pr) 9611 return (GetOEMTVPtr661_2_GEN(SiS_Pr, 6)); 9616 GetOEMTVPtr661(struct SiS_Private *SiS_Pr) GetOEMTVPtr661() argument 9620 if(SiS_Pr->SiS_TVMode & TVSetPAL) index = 2; GetOEMTVPtr661() 9621 if(SiS_Pr->SiS_ROMNew) { GetOEMTVPtr661() 9622 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525i) index = 4; GetOEMTVPtr661() 9623 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) index = 6; GetOEMTVPtr661() 9624 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) index = 8; GetOEMTVPtr661() 9625 if(SiS_Pr->SiS_TVMode & TVSetHiVision) index = 10; GetOEMTVPtr661() 9627 if(SiS_Pr->SiS_TVMode & TVSetHiVision) index = 4; GetOEMTVPtr661() 9628 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525i) index = 6; GetOEMTVPtr661() 9629 if(SiS_Pr->SiS_TVMode & TVSetYPbPr525p) index = 8; GetOEMTVPtr661() 9630 if(SiS_Pr->SiS_TVMode & TVSetYPbPr750p) index = 10; GetOEMTVPtr661() 9633 if(SiS_Pr->SiS_TVMode & TVSetTVSimuMode) index++; GetOEMTVPtr661() 9639 SetDelayComp(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SetDelayComp() argument 9641 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetDelayComp() 9645 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SetDelayComp() 9646 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x20,0xbf); SetDelayComp() 9648 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x35,0x7f); SetDelayComp() 9653 if(SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) { /* ------------ VGA */ SetDelayComp() 9655 if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SetDelayComp() 9656 romptr = GetRAMDACromptr(SiS_Pr); SetDelayComp() 9661 if(SiS_Pr->SiS_VBType & VB_SIS30xB) { SetDelayComp() 9666 } else if(SiS_Pr->ChipType < SIS_330) { SetDelayComp() 9671 } else if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SetDelayComp() 9676 } else if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD|SetCRT2ToLCDA)) { /* ---------- LCD/LCDA */ SetDelayComp() 9682 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SetDelayComp() 9683 if(SiS_Pr->PDC != -1) { SetDelayComp() 9684 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0xf0,((SiS_Pr->PDC >> 1) & 0x0f)); SetDelayComp() 9685 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x35,0x7f,((SiS_Pr->PDC & 0x01) << 7)); SetDelayComp() 9689 if(SiS_Pr->PDCA != -1) { SetDelayComp() 9690 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0x0f,((SiS_Pr->PDCA << 3) & 0xf0)); SetDelayComp() 9691 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x20,0xbf,((SiS_Pr->PDCA & 0x01) << 6)); SetDelayComp() 9698 if(SiS_Pr->SiS_LCDResInfo == Panel_Custom) { SetDelayComp() 9699 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SetDelayComp() 9701 if((SiS_Pr->PanelXRes <= 1280) && (SiS_Pr->PanelYRes <= 1024)) { SetDelayComp() 9704 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0x0f,delay); SetDelayComp() 9707 if(SiS_Pr->SiS_VBType & VB_SIS301C) { SetDelayComp() 9709 if((SiS_Pr->PanelXRes > 1280) && (SiS_Pr->PanelYRes > 1024)) { SetDelayComp() 9712 } else if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SetDelayComp() 9716 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0xf0,delay); SetDelayComp() 9726 switch(SiS_Pr->SiS_CustomT) { SetDelayComp() 9729 if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) { SetDelayComp() 9743 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SetDelayComp() 9747 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2D,delay); SetDelayComp() 9757 index = GetLCDPtrIndexBIOS(SiS_Pr); SetDelayComp() 9758 myindex = GetLCDPtrIndex(SiS_Pr); SetDelayComp() 9760 if(IS_SIS650 && (SiS_Pr->SiS_VBType & VB_SISLVDS)) { SetDelayComp() 9762 if(SiS_IsNotM650orLater(SiS_Pr)) { SetDelayComp() 9764 if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SetDelayComp() 9768 /* if(SiS_Pr->SiS_VBType & VB_SIS302LV) */ SetDelayComp() 9779 if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) SetDelayComp() 9784 } else if(SiS_Pr->SiS_UseROM && SetDelayComp() 9785 (!(SiS_Pr->SiS_ROMNew)) && SetDelayComp() 9786 (SiS_Pr->SiS_LCDResInfo != Panel_1280x1024) && SetDelayComp() 9787 (SiS_Pr->SiS_LCDResInfo != Panel_1280x768) && SetDelayComp() 9788 (SiS_Pr->SiS_LCDResInfo != Panel_1280x960) && SetDelayComp() 9789 (SiS_Pr->SiS_LCDResInfo != Panel_1600x1200) && SetDelayComp() 9790 ((romptr = GetLCDromptr(SiS_Pr)))) { SetDelayComp() 9796 } else if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SetDelayComp() 9804 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SetDelayComp() 9806 else if(SiS_Pr->ChipType <= SIS_315PRO) delay = SiS310_LCDDelayCompensation_3xx301LV[myindex]; SetDelayComp() 9808 } else if(SiS_Pr->SiS_VBType & VB_SIS301C) { SetDelayComp() 9811 if(SiS_Pr->SiS_LCDResInfo == Panel_1600x1200) delay = 0x00; /* experience */ SetDelayComp() 9812 } else if(SiS_Pr->SiS_VBType & VB_SIS30xB) { SetDelayComp() 9821 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SetDelayComp() 9822 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,0x0F,((delay << 4) & 0xf0)); SetDelayComp() 9826 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { /* ------------ TV */ SetDelayComp() 9828 index = GetTVPtrIndex(SiS_Pr); SetDelayComp() 9830 if(IS_SIS650 && (SiS_Pr->SiS_VBType & VB_SISLVDS)) { SetDelayComp() 9832 if(SiS_IsNotM650orLater(SiS_Pr)) { SetDelayComp() 9834 if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SetDelayComp() 9838 /* if(SiS_Pr->SiS_VBType & VB_SIS302LV) */ SetDelayComp() 9851 switch(SiS_Pr->SiS_CustomT) { SetDelayComp() 9866 if(SiS_Pr->SiS_VBType & VB_SIS302LV) { SetDelayComp() 9872 } else if((SiS_Pr->SiS_UseROM) && (!(SiS_Pr->SiS_ROMNew))) { SetDelayComp() 9874 romptr = GetTVromptr(SiS_Pr); SetDelayComp() 9878 } else if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SetDelayComp() 9885 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SetDelayComp() 9891 if(SiS_Pr->SiS_VBType & VB_SIS301C) delay = 0x02; SetDelayComp() 9897 if(SiS_LCDAEnabled(SiS_Pr)) { SetDelayComp() 9906 if(SiS_Pr->SiS_VBType & VB_SISVB) { SetDelayComp() 9908 if(IS_SIS650 && (SiS_Pr->SiS_VBType & VB_SISLVDS) && dochiptest) { SetDelayComp() 9910 temp = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) & 0xf0) >> 4; SetDelayComp() 9920 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x2D,delay); SetDelayComp() 9924 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,0xF0,delay); SetDelayComp() 9930 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SetDelayComp() 9931 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,0xF0,delay); SetDelayComp() 9933 if(IS_SIS650 && (SiS_Pr->SiS_IF_DEF_CH70xx != 0)) { SetDelayComp() 9935 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,0x0F,delay); SetDelayComp() 9937 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2D,0xF0,delay); SetDelayComp() 9946 SetAntiFlicker(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetAntiFlicker() argument 9948 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetAntiFlicker() 9951 if(SiS_Pr->SiS_TVMode & (TVSetYPbPr750p|TVSetYPbPr525p)) return; SetAntiFlicker() 9954 index = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].VB_StTVFlickerIndex; SetAntiFlicker() 9956 index = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].VB_ExtTVFlickerIndex; SetAntiFlicker() 9958 temp = GetTVPtrIndex(SiS_Pr); SetAntiFlicker() 9962 if(SiS_Pr->SiS_UseROM && (!(SiS_Pr->SiS_ROMNew))) { SetAntiFlicker() 9963 if(SiS_Pr->ChipType >= SIS_661) { SetAntiFlicker() 9964 temp1 = GetOEMTVPtr661(SiS_Pr); SetAntiFlicker() 9967 if(SiS_Pr->ChipType >= SIS_760) { SetAntiFlicker() 9970 } else if(SiS_Pr->ChipType >= SIS_330) { SetAntiFlicker() 9985 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x0A,0x8f,temp); /* index 0A D[6:4] */ SetAntiFlicker() 9989 SetEdgeEnhance(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex) SetEdgeEnhance() argument 9991 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetEdgeEnhance() 9994 temp = temp1 = GetTVPtrIndex(SiS_Pr) >> 1; /* 0: NTSC/YPbPr, 1: PAL, 2: HiTV */ SetEdgeEnhance() 9997 index = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].VB_StTVEdgeIndex; SetEdgeEnhance() 9999 index = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].VB_ExtTVEdgeIndex; SetEdgeEnhance() 10001 if(SiS_Pr->SiS_UseROM && (!(SiS_Pr->SiS_ROMNew))) { SetEdgeEnhance() 10002 if(SiS_Pr->ChipType >= SIS_661) { SetEdgeEnhance() 10004 if(SiS_Pr->ChipType >= SIS_760) { SetEdgeEnhance() 10007 temp1 = GetOEMTVPtr661(SiS_Pr); SetEdgeEnhance() 10009 } else if(SiS_Pr->ChipType >= SIS_330) { SetEdgeEnhance() 10023 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x3A,0x1F,temp); /* index 0A D[7:5] */ SetEdgeEnhance() 10027 SetYFilter(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex) SetYFilter() argument 10032 index = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].VB_StTVYFilterIndex; SetYFilter() 10034 index = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].VB_ExtTVYFilterIndex; SetYFilter() 10037 temp = GetTVPtrIndex(SiS_Pr) >> 1; /* 0: NTSC/YPbPr, 1: PAL, 2: HiTV */ SetYFilter() 10039 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) temp = 1; /* NTSC-J uses PAL */ SetYFilter() 10040 else if(SiS_Pr->SiS_TVMode & TVSetPALM) temp = 3; /* PAL-M */ SetYFilter() 10041 else if(SiS_Pr->SiS_TVMode & TVSetPALN) temp = 4; /* PAL-N */ SetYFilter() 10042 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) temp = 1; /* HiVision uses PAL */ SetYFilter() 10044 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SetYFilter() 10046 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVYFilter2[temp][index][j]); SetYFilter() 10049 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVYFilter2[temp][index][j]); SetYFilter() 10053 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVYFilter1[temp][index][j]); SetYFilter() 10059 SetPhaseIncr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetPhaseIncr() argument 10061 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetPhaseIncr() 10065 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) return; SetPhaseIncr() 10068 if(SiS_Pr->SiS_TVMode & TVSetNTSCJ) return; SetPhaseIncr() 10070 if((SiS_Pr->ChipType >= SIS_661) || SiS_Pr->SiS_ROMNew) { SetPhaseIncr() 10071 lindex = GetOEMTVPtr661_2_OLD(SiS_Pr) & 0xffff; SetPhaseIncr() 10074 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS_TVPhase[lindex + j]); SetPhaseIncr() 10080 if(SiS_Pr->SiS_TVMode & (TVSetPALM | TVSetPALN)) return; SetPhaseIncr() 10083 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SetPhaseIncr() 10085 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SetPhaseIncr() 10088 temp = GetTVPtrIndex(SiS_Pr); SetPhaseIncr() 10092 if(SiS_Pr->SiS_UseROM) { SetPhaseIncr() 10094 if(SiS_Pr->ChipType >= SIS_330) { SetPhaseIncr() 10097 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SetPhaseIncr() 10099 if(SiS_Pr->ChipType >= SIS_330) { SetPhaseIncr() 10102 if((SiS_Pr->SiS_VBInfo & SetInSlaveMode) && (!(SiS_Pr->SiS_TVMode & TVSetTVSimuMode))) { SetPhaseIncr() 10104 if(SiS_Pr->ChipType >= SIS_330) { SetPhaseIncr() 10113 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,ROMAddr[romptr + j]); SetPhaseIncr() 10119 if(!(SiS_Pr->SiS_VBType & VB_SIS30xBLV)) SetPhaseIncr() 10120 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVPhaseIncr1[temp][index][j]); SetPhaseIncr() 10121 else if((!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) || (SiS_Pr->SiS_TVMode & TVSetTVSimuMode)) SetPhaseIncr() 10122 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVPhaseIncr2[temp][index][j]); SetPhaseIncr() 10124 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS310_TVPhaseIncr1[temp][index][j]); SetPhaseIncr() 10128 if((SiS_Pr->SiS_VBType & VB_SIS30xBLV) && (!(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision))) { SetPhaseIncr() 10129 if((!(SiS_Pr->SiS_TVMode & (TVSetPAL | TVSetYPbPr525p | TVSetYPbPr750p))) && (ModeNo > 0x13)) { SetPhaseIncr() 10132 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x31,0x21); SetPhaseIncr() 10133 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x32,0xf0); SetPhaseIncr() 10134 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x33,0xf5); SetPhaseIncr() 10135 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x34,0x7f); SetPhaseIncr() 10137 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x31,0x1e); SetPhaseIncr() 10138 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x32,0x8b); SetPhaseIncr() 10139 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x33,0xfb); SetPhaseIncr() 10140 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x34,0x7b); SetPhaseIncr() 10147 SetDelayComp661(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SetDelayComp661() argument 10151 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetDelayComp661() 10153 if(!(SiS_Pr->SiS_VBInfo & (SetCRT2ToTV | SetCRT2ToLCD | SetCRT2ToLCDA | SetCRT2ToRAMDAC))) SetDelayComp661() 10159 if(SiS_Pr->SiS_ROMNew) { SetDelayComp661() 10160 if((SiS_Pr->SiS_VBInfo & SetCRT2ToRAMDAC) || SetDelayComp661() 10161 ((SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) && SetDelayComp661() 10162 (SiS_Pr->SiS_LCDInfo & LCDPass11))) { SetDelayComp661() 10164 if(SiS_Pr->UseCustomMode) { SetDelayComp661() 10165 index = SiS_Pr->CSRClock; SetDelayComp661() 10167 index = SiS_GetVCLK2Ptr(SiS_Pr,ModeNo,ModeIdIndex,RTI); SetDelayComp661() 10168 index = SiS_Pr->SiS_VCLKData[index].CLOCK; SetDelayComp661() 10172 if((ROMAddr[0x5b] & 0x80) || (SiS_Pr->SiS_VBInfo & (SetCRT2ToRAMDAC | SetCRT2ToLCD))) { SetDelayComp661() 10177 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToRAMDAC | SetCRT2ToLCD)) { SetDelayComp661() 10178 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0xf0,((delay >> 1) & 0x0f)); SetDelayComp661() 10179 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x35,0x7f,((delay & 0x01) << 7)); SetDelayComp661() 10181 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0x0f,((delay << 3) & 0xf0)); SetDelayComp661() 10182 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x20,0xbf,((delay & 0x01) << 6)); SetDelayComp661() 10190 if(SiS_Pr->UseCustomMode) delay = 0x04; SetDelayComp661() 10192 else delay = (SiS_Pr->SiS_RefIndex[RTI].Ext_PDC >> 4); SetDelayComp661() 10195 if(SiS_Pr->ChipType >= XGI_20) { SetDelayComp661() 10198 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SetDelayComp661() 10201 if(SiS_Pr->SiS_XGIROM) { SetDelayComp661() 10202 index = GetTVPtrIndex(SiS_Pr); SetDelayComp661() 10209 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) { SetDelayComp661() 10210 if(SiS_Pr->ChipType == XGI_40 && SiS_Pr->ChipRevision == 0x02) { SetDelayComp661() 10216 } else if(SiS_Pr->ChipType >= SIS_340) { SetDelayComp661() 10219 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SetDelayComp661() 10224 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SetDelayComp661() 10228 index = GetOEMTVPtr661(SiS_Pr); SetDelayComp661() 10229 if(SiS_Pr->SiS_ROMNew) { SetDelayComp661() 10231 if(SiS_Pr->SiS_VBType & VB_UMC) romptr += 12; SetDelayComp661() 10238 } else if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SetDelayComp661() 10242 if( (SiS_Pr->SiS_LCDResInfo != Panel_Custom) && SetDelayComp661() 10243 ((romptr = GetLCDStructPtr661_2(SiS_Pr))) ) { SetDelayComp661() 10245 lcdpdcindex = (SiS_Pr->SiS_VBType & VB_UMC) ? 14 : 12; SetDelayComp661() 10255 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SetDelayComp661() 10256 switch(SiS_Pr->SiS_LCDResInfo) { SetDelayComp661() 10269 if((SiS_Pr->PanelXRes <= 1024) && (SiS_Pr->PanelYRes <= 768)) { SetDelayComp661() 10271 } else if((SiS_Pr->PanelXRes == 1280) && (SiS_Pr->PanelYRes == 1024)) { SetDelayComp661() 10273 } else if((SiS_Pr->PanelXRes <= 1400) && (SiS_Pr->PanelYRes <= 1050)) { SetDelayComp661() 10275 } else if((SiS_Pr->PanelXRes <= 1600) && (SiS_Pr->PanelYRes <= 1200)) { SetDelayComp661() 10285 if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && (SiS_Pr->PDC != -1)) { SetDelayComp661() 10286 delay = SiS_Pr->PDC & 0x1f; SetDelayComp661() 10288 if((SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) && (SiS_Pr->PDCA != -1)) { SetDelayComp661() 10289 delay = (SiS_Pr->PDCA & 0x1f) << 8; SetDelayComp661() 10296 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SetDelayComp661() 10298 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0x0f,((delay << 3) & 0xf0)); SetDelayComp661() 10299 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x20,0xbf,((delay & 0x01) << 6)); SetDelayComp661() 10301 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x2d,0xf0,((delay >> 1) & 0x0f)); SetDelayComp661() 10302 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x35,0x7f,((delay & 0x01) << 7)); SetDelayComp661() 10307 SetCRT2SyncDither661(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short RTI) SetCRT2SyncDither661() argument 10312 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SetCRT2SyncDither661() 10315 infoflag = SiS_GetRegByte(SiS_Pr->SiS_P3ca+2); SetCRT2SyncDither661() 10316 } else if(SiS_Pr->UseCustomMode) { SetCRT2SyncDither661() 10317 infoflag = SiS_Pr->CInfoFlag; SetCRT2SyncDither661() 10319 infoflag = SiS_Pr->SiS_RefIndex[RTI].Ext_InfoFlag; SetCRT2SyncDither661() 10322 if(!(SiS_Pr->SiS_LCDInfo & LCDPass11)) { SetCRT2SyncDither661() 10323 infoflag = SiS_GetReg(SiS_Pr->SiS_P3d4,0x37); /* No longer check D5 */ SetCRT2SyncDither661() 10328 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SetCRT2SyncDither661() 10330 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) { SetCRT2SyncDither661() 10332 if(SiS_Pr->SiS_ModeType >= Mode24Bpp) temp |= 0x10; SetCRT2SyncDither661() 10334 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x1a,0xe0,temp); SetCRT2SyncDither661() 10337 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) temp = 0x20; SetCRT2SyncDither661() 10339 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x19,0x0f,temp); SetCRT2SyncDither661() 10341 if(SiS_Pr->SiS_LCDInfo & LCDRGB18Bit) { SetCRT2SyncDither661() 10342 if(SiS_Pr->SiS_ModeType >= Mode24Bpp) temp |= 0x80; SetCRT2SyncDither661() 10344 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x1a,0x7f,temp); SetCRT2SyncDither661() 10351 SetPanelParms661(struct SiS_Private *SiS_Pr) SetPanelParms661() argument 10353 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetPanelParms661() 10356 if(SiS_Pr->SiS_VBType & (VB_SISLVDS | VB_SIS30xC)) { SetPanelParms661() 10357 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x24,0x0f); SetPanelParms661() 10360 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SetPanelParms661() 10361 if(SiS_Pr->LVDSHL != -1) { SetPanelParms661() 10362 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,0xfc,SiS_Pr->LVDSHL); SetPanelParms661() 10366 if(SiS_Pr->SiS_ROMNew) { SetPanelParms661() 10368 if((romptr = GetLCDStructPtr661_2(SiS_Pr))) { SetPanelParms661() 10369 if(SiS_Pr->SiS_VBType & VB_SISLVDS) { SetPanelParms661() 10372 if(SiS_Pr->LVDSHL != -1) { SetPanelParms661() 10376 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,temp2,temp1); SetPanelParms661() 10378 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SetPanelParms661() 10380 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x0d,0xbf,temp1); SetPanelParms661() 10388 SiS_OEM310Setting(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, unsigned short RRTI) SiS_OEM310Setting() argument 10390 if((SiS_Pr->SiS_ROMNew) && (SiS_Pr->SiS_VBType & VB_SISLVDS)) { SiS_OEM310Setting() 10391 SetDelayComp661(SiS_Pr, ModeNo, ModeIdIndex, RRTI); SiS_OEM310Setting() 10392 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_OEM310Setting() 10393 SetCRT2SyncDither661(SiS_Pr, ModeNo, RRTI); SiS_OEM310Setting() 10394 SetPanelParms661(SiS_Pr); SiS_OEM310Setting() 10397 SetDelayComp(SiS_Pr,ModeNo); SiS_OEM310Setting() 10400 if((SiS_Pr->SiS_VBType & VB_SISVB) && (SiS_Pr->SiS_VBInfo & SetCRT2ToTV)) { SiS_OEM310Setting() 10401 SetAntiFlicker(SiS_Pr,ModeNo,ModeIdIndex); SiS_OEM310Setting() 10402 SetPhaseIncr(SiS_Pr,ModeNo,ModeIdIndex); SiS_OEM310Setting() 10403 SetYFilter(SiS_Pr,ModeNo,ModeIdIndex); SiS_OEM310Setting() 10404 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_OEM310Setting() 10405 SetEdgeEnhance(SiS_Pr,ModeNo,ModeIdIndex); SiS_OEM310Setting() 10411 SiS_OEM661Setting(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_OEM661Setting() argument 10414 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_OEM661Setting() 10416 SetDelayComp661(SiS_Pr, ModeNo, ModeIdIndex, RRTI); SiS_OEM661Setting() 10418 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_OEM661Setting() 10419 SetCRT2SyncDither661(SiS_Pr, ModeNo, RRTI); SiS_OEM661Setting() 10420 SetPanelParms661(SiS_Pr); SiS_OEM661Setting() 10423 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_OEM661Setting() 10424 SetPhaseIncr(SiS_Pr, ModeNo, ModeIdIndex); SiS_OEM661Setting() 10425 SetYFilter(SiS_Pr, ModeNo, ModeIdIndex); SiS_OEM661Setting() 10426 SetAntiFlicker(SiS_Pr, ModeNo, ModeIdIndex); SiS_OEM661Setting() 10427 if(SiS_Pr->SiS_VBType & VB_SIS301) { SiS_OEM661Setting() 10428 SetEdgeEnhance(SiS_Pr, ModeNo, ModeIdIndex); SiS_OEM661Setting() 10442 SiS_FinalizeLCD(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_FinalizeLCD() argument 10447 if(!(SiS_Pr->SiS_VBType & VB_SISLVDS)) return; SiS_FinalizeLCD() 10448 if(SiS_Pr->SiS_ROMNew) return; SiS_FinalizeLCD() 10450 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_FinalizeLCD() 10451 if(SiS_Pr->LVDSHL != -1) { SiS_FinalizeLCD() 10452 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,0xfc,SiS_Pr->LVDSHL); SiS_FinalizeLCD() 10456 if(SiS_Pr->SiS_LCDResInfo == Panel_Custom) return; SiS_FinalizeLCD() 10457 if(SiS_Pr->UseCustomMode) return; SiS_FinalizeLCD() 10459 switch(SiS_Pr->SiS_CustomT) { SiS_FinalizeLCD() 10468 resinfo = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ResInfo; SiS_FinalizeLCD() 10469 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_FinalizeLCD() 10471 resinfo = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_RESINFO; SiS_FinalizeLCD() 10472 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_FinalizeLCD() 10476 if(!(SiS_GetReg(SiS_Pr->SiS_P3d4, 0x5f) & 0xf0)) { SiS_FinalizeLCD() 10477 if(SiS_Pr->SiS_CustomT == CUT_CLEVO1024) { SiS_FinalizeLCD() 10478 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1e,0x02); SiS_FinalizeLCD() 10480 SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x1e,0x03); SiS_FinalizeLCD() 10485 if(SiS_Pr->SiS_CustomT == CUT_CLEVO1024) { SiS_FinalizeLCD() 10486 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_FinalizeLCD() 10488 if(SiS_Pr->LVDSHL == -1) { SiS_FinalizeLCD() 10489 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,0xfc,0x01); SiS_FinalizeLCD() 10495 if(SiS_Pr->SiS_CustomT == CUT_CLEVO10242) { SiS_FinalizeLCD() 10496 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_FinalizeLCD() 10497 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_FinalizeLCD() 10498 if(SiS_Pr->LVDSHL == -1) { SiS_FinalizeLCD() 10500 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,0xfc,0x01); SiS_FinalizeLCD() 10502 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_FinalizeLCD() 10503 tempch = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4; SiS_FinalizeLCD() 10505 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x02); SiS_FinalizeLCD() 10506 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x25); SiS_FinalizeLCD() 10507 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1c,0x00); SiS_FinalizeLCD() 10508 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1d,0x1b); SiS_FinalizeLCD() 10516 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToLCDA)) { SiS_FinalizeLCD() 10517 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_FinalizeLCD() 10518 if(SiS_Pr->SiS_VBType & VB_SISEMI) { SiS_FinalizeLCD() 10519 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x2a,0x00); SiS_FinalizeLCD() 10521 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c); SiS_FinalizeLCD() 10523 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x34,0x10); SiS_FinalizeLCD() 10525 } else if(SiS_Pr->SiS_LCDResInfo == Panel_1280x1024) { SiS_FinalizeLCD() 10526 if(SiS_Pr->LVDSHL == -1) { SiS_FinalizeLCD() 10528 SiS_SetRegANDOR(SiS_Pr->SiS_Part4Port,0x24,0xfc,0x01); SiS_FinalizeLCD() 10531 tempch = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) >> 4; SiS_FinalizeLCD() 10532 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_FinalizeLCD() 10533 if(SiS_Pr->SiS_LCDResInfo == Panel_1400x1050) { SiS_FinalizeLCD() 10534 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1f,0x76); SiS_FinalizeLCD() 10535 } else if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_FinalizeLCD() 10537 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x02); SiS_FinalizeLCD() 10538 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x25); SiS_FinalizeLCD() 10539 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1c,0x00); SiS_FinalizeLCD() 10540 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1d,0x1b); SiS_FinalizeLCD() 10542 if(SiS_Pr->Backup && (SiS_Pr->Backup_Mode == ModeNo)) { SiS_FinalizeLCD() 10543 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x14,SiS_Pr->Backup_14); SiS_FinalizeLCD() 10544 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x15,SiS_Pr->Backup_15); SiS_FinalizeLCD() 10545 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x16,SiS_Pr->Backup_16); SiS_FinalizeLCD() 10546 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x17,SiS_Pr->Backup_17); SiS_FinalizeLCD() 10547 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,SiS_Pr->Backup_18); SiS_FinalizeLCD() 10548 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x19,SiS_Pr->Backup_19); SiS_FinalizeLCD() 10549 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1a,SiS_Pr->Backup_1a); SiS_FinalizeLCD() 10550 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,SiS_Pr->Backup_1b); SiS_FinalizeLCD() 10551 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1c,SiS_Pr->Backup_1c); SiS_FinalizeLCD() 10552 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1d,SiS_Pr->Backup_1d); SiS_FinalizeLCD() 10553 } else if(!(SiS_Pr->SiS_LCDInfo & DontExpandLCD)) { /* 1.10.8w */ SiS_FinalizeLCD() 10554 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x14,0x90); SiS_FinalizeLCD() 10556 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x11); SiS_FinalizeLCD() 10558 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x18); SiS_FinalizeLCD() 10561 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x02); SiS_FinalizeLCD() 10563 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x02); /* 1.10.7u */ SiS_FinalizeLCD() 10568 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,temp); SiS_FinalizeLCD() 10570 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x1d,0xf8,temp); SiS_FinalizeLCD() 10575 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x70); SiS_FinalizeLCD() 10576 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x19,0xff); SiS_FinalizeLCD() 10577 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x48); SiS_FinalizeLCD() 10578 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1d,0x12); SiS_FinalizeLCD() 10581 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x14,0x20); SiS_FinalizeLCD() 10582 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x15,0x1a); SiS_FinalizeLCD() 10583 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x16,0x28); SiS_FinalizeLCD() 10584 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x17,0x00); SiS_FinalizeLCD() 10585 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x4c); SiS_FinalizeLCD() 10586 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x19,0xdc); SiS_FinalizeLCD() 10590 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x95); SiS_FinalizeLCD() 10591 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x19,0xdc); SiS_FinalizeLCD() 10592 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1a,0x10); SiS_FinalizeLCD() 10593 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x95); SiS_FinalizeLCD() 10594 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1c,0x48); SiS_FinalizeLCD() 10595 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1d,0x12); SiS_FinalizeLCD() 10598 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,0x95); SiS_FinalizeLCD() 10599 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x48); SiS_FinalizeLCD() 10602 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x1b,0x95); SiS_FinalizeLCD() 10610 tempcl = tempbh = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x01); SiS_FinalizeLCD() 10614 tempbl = SiS_GetReg(SiS_Pr->SiS_Part2Port,0x04); SiS_FinalizeLCD() 10616 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_FinalizeLCD() 10617 if((resinfo == SIS_RI_1024x768) || (!(SiS_Pr->SiS_LCDInfo & DontExpandLCD))) { SiS_FinalizeLCD() 10618 if(SiS_Pr->SiS_SetFlag & LCDVESATiming) { SiS_FinalizeLCD() 10622 if(SiS_Pr->SiS_VGAVDE < 600) { SiS_FinalizeLCD() 10623 tempax = 768 - SiS_Pr->SiS_VGAVDE; SiS_FinalizeLCD() 10625 if(SiS_Pr->SiS_VGAVDE <= 480) tempax >>= 4; /* 1.10.7w; 1.10.6s: < 480; >>=1; */ SiS_FinalizeLCD() 10632 SiS_SetReg(SiS_Pr->SiS_Part2Port,0x04,temp); SiS_FinalizeLCD() 10634 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x01,0x80,temp); SiS_FinalizeLCD() 10646 SetOEMLCDData2(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex, SetOEMLCDData2() argument 10654 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SetOEMLCDData2() 10655 crt2crtc = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_CRT2CRTC; SetOEMLCDData2() 10657 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SetOEMLCDData2() 10658 crt2crtc = SiS_Pr->SiS_RefIndex[RefTabIndex].Ext_CRT2CRTC; SetOEMLCDData2() 10663 if(SiS_Pr->SiS_CustomT == CUT_BARCO1024) { SetOEMLCDData2() 10664 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xdf); SetOEMLCDData2() 10667 if(SiS_Pr->SiS_CustomT == CUT_BARCO1366) { SetOEMLCDData2() 10670 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SetOEMLCDData2() 10673 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port, SetOEMLCDData2() 10680 temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00); SetOEMLCDData2() 10682 temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x18); SetOEMLCDData2() 10684 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x18,temp); SetOEMLCDData2() 10690 GetOEMLCDPtr(struct SiS_Private *SiS_Pr, int Flag) GetOEMLCDPtr() argument 10692 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; GetOEMLCDPtr() 10703 if(SiS_Pr->ChipType == SIS_300) { GetOEMLCDPtr() 10705 tempbx = SiS_GetReg(SiS_Pr->SiS_P3d4,0x36) & 0x0f; GetOEMLCDPtr() 10706 if(SiS_Pr->SiS_VBType & VB_SIS301) tempbx &= 0x07; GetOEMLCDPtr() 10708 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) tempbx += 4; GetOEMLCDPtr() 10709 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { GetOEMLCDPtr() 10710 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx += 3; GetOEMLCDPtr() 10712 if(SiS_Pr->SiS_UseROM) { GetOEMLCDPtr() 10714 tempbx = SiS_Pr->SiS_LCDTypeInfo; GetOEMLCDPtr() 10717 if(romptr) tempbx = ROMAddr[romptr + SiS_Pr->SiS_LCDTypeInfo]; GetOEMLCDPtr() 10718 else tempbx = customtable300[SiS_Pr->SiS_LCDTypeInfo]; GetOEMLCDPtr() 10722 if(!(SiS_Pr->SiS_SetFlag & LCDVESATiming)) tempbx++; GetOEMLCDPtr() 10729 if(SiS_Pr->SiS_UseROM) { GetOEMLCDPtr() 10731 if(romptr) tempbx = ROMAddr[romptr + SiS_Pr->SiS_LCDTypeInfo]; GetOEMLCDPtr() 10734 tempbx = customtable630[SiS_Pr->SiS_LCDTypeInfo]; GetOEMLCDPtr() 10738 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) tempbx += 2; GetOEMLCDPtr() 10739 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; GetOEMLCDPtr() 10742 tempbx = SiS_Pr->SiS_LCDTypeInfo << 2; GetOEMLCDPtr() 10743 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) tempbx += 2; GetOEMLCDPtr() 10744 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) tempbx++; GetOEMLCDPtr() 10752 SetOEMLCDDelay(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex) SetOEMLCDDelay() argument 10754 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMLCDDelay() 10757 if(SiS_Pr->SiS_LCDResInfo == Panel_Custom) return; SetOEMLCDDelay() 10759 if(SiS_Pr->SiS_UseROM) { SetOEMLCDDelay() 10772 if(SiS_Pr->PDC != -1) return; SetOEMLCDDelay() 10774 temp = GetOEMLCDPtr(SiS_Pr, 0); SetOEMLCDDelay() 10776 if(SiS_Pr->UseCustomMode) SetOEMLCDDelay() 10779 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].VB_LCDDelayIndex; SetOEMLCDDelay() 10781 if(SiS_Pr->ChipType != SIS_300) { SetOEMLCDDelay() 10788 if(SiS_Pr->SiS_VBType & VB_SISVB) { SetOEMLCDDelay() 10795 if(SiS_Pr->SiS_UseROM && (ROMAddr[0x235] & 0x80)) { SetOEMLCDDelay() 10805 if(SiS_Pr->SiS_UseROM) { SetOEMLCDDelay() 10821 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,~0x3C,temp); /* index 0A D[6:4] */ SetOEMLCDDelay() 10825 SetOEMLCDData(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetOEMLCDData() argument 10828 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMLCDData() 10831 if((SiS_Pr->SiS_UseROM) { SetOEMLCDData() 10837 temp = GetOEMLCDPtr(SiS_Pr, 1); SetOEMLCDData() 10840 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex]._VB_LCDHIndex; SetOEMLCDData() 10842 SiS_SetReg(SiS_Pr->SiS_Part1Port,i,SiS300_LCDHData[temp][index][j]); SetOEMLCDData() 10846 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex]._VB_LCDVIndex; SetOEMLCDData() 10851 SiS_SetReg(SiS_Pr->SiS_Part1Port,i,SiS300_LCDVData[temp][index][j]); SetOEMLCDData() 10857 GetOEMTVPtr(struct SiS_Private *SiS_Pr) GetOEMTVPtr() argument 10862 if(!(SiS_Pr->SiS_VBInfo & SetInSlaveMode)) index += 4; GetOEMTVPtr() 10863 if(SiS_Pr->SiS_VBType & VB_SISVB) { GetOEMTVPtr() 10864 if(SiS_Pr->SiS_VBInfo & SetCRT2ToSCART) index += 2; GetOEMTVPtr() 10865 else if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) index += 3; GetOEMTVPtr() 10866 else if(SiS_Pr->SiS_TVMode & TVSetPAL) index += 1; GetOEMTVPtr() 10868 if(SiS_Pr->SiS_TVMode & TVSetCHOverScan) index += 2; GetOEMTVPtr() 10869 if(SiS_Pr->SiS_TVMode & TVSetPAL) index += 1; GetOEMTVPtr() 10875 SetOEMTVDelay(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetOEMTVDelay() argument 10877 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMTVDelay() 10880 if(SiS_Pr->SiS_UseROM) { SetOEMTVDelay() 10886 temp = GetOEMTVPtr(SiS_Pr); SetOEMTVDelay() 10888 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].VB_TVDelayIndex; SetOEMTVDelay() 10896 if(SiS_Pr->SiS_VBType & VB_SISVB) { SetOEMTVDelay() 10903 SiS_SetRegANDOR(SiS_Pr->SiS_Part1Port,0x13,~0x3C,temp); SetOEMTVDelay() 10907 SetOEMAntiFlicker(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetOEMAntiFlicker() argument 10909 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMAntiFlicker() 10912 if(SiS_Pr->SiS_UseROM) { SetOEMAntiFlicker() 10918 temp = GetOEMTVPtr(SiS_Pr); SetOEMAntiFlicker() 10920 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].VB_TVFlickerIndex; SetOEMAntiFlicker() 10931 SiS_SetRegANDOR(SiS_Pr->SiS_Part2Port,0x0A,0x8F,temp); SetOEMAntiFlicker() 10935 SetOEMPhaseIncr(struct SiS_Private *SiS_Pr, unsigned short ModeNo,unsigned short ModeIdIndex) SetOEMPhaseIncr() argument 10937 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMPhaseIncr() 10940 if(SiS_Pr->SiS_VBInfo & SetCRT2ToHiVision) return; SetOEMPhaseIncr() 10942 if(SiS_Pr->SiS_TVMode & (TVSetNTSC1024 | TVSetNTSCJ | TVSetPALM | TVSetPALN)) return; SetOEMPhaseIncr() 10944 if(SiS_Pr->SiS_UseROM) { SetOEMPhaseIncr() 10950 temp = GetOEMTVPtr(SiS_Pr); SetOEMPhaseIncr() 10952 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].VB_TVPhaseIndex; SetOEMPhaseIncr() 10954 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SetOEMPhaseIncr() 10956 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS300_Phase2[temp][index][j]); SetOEMPhaseIncr() 10964 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,ROMAddr[romptr + j]); SetOEMPhaseIncr() 10968 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS300_Phase1[temp][index][j]); SetOEMPhaseIncr() 10975 SetOEMYFilter(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SetOEMYFilter() argument 10977 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SetOEMYFilter() 10980 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToSCART | SetCRT2ToHiVision | SetCRT2ToYPbPr525750)) return; SetOEMYFilter() 10982 if(SiS_Pr->SiS_UseROM) { SetOEMYFilter() 10988 temp = GetOEMTVPtr(SiS_Pr); SetOEMYFilter() 10990 if(SiS_Pr->SiS_TVMode & TVSetPALM) temp = 8; SetOEMYFilter() 10991 else if(SiS_Pr->SiS_TVMode & TVSetPALN) temp = 9; SetOEMYFilter() 10994 index = SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].VB_TVYFilterIndex; SetOEMYFilter() 10996 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SetOEMYFilter() 10998 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS300_Filter2[temp][index][j]); SetOEMYFilter() 11001 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS300_Filter2[temp][index][j]); SetOEMYFilter() 11004 if((romptr) && (!(SiS_Pr->SiS_TVMode & (TVSetPALM|TVSetPALN)))) { SetOEMYFilter() 11009 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,ROMAddr[romptr + j]); SetOEMYFilter() 11013 SiS_SetReg(SiS_Pr->SiS_Part2Port,i,SiS300_Filter1[temp][index][j]); SetOEMYFilter() 11020 SiS_SearchVBModeID(struct SiS_Private *SiS_Pr, unsigned short *ModeNo) SiS_SearchVBModeID() argument 11023 unsigned char VGAINFO = SiS_Pr->SiS_VGAINFO; SiS_SearchVBModeID() 11028 if(SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].ModeID == *ModeNo) break; SiS_SearchVBModeID() 11029 if(SiS_Pr->SiS_VBModeIDTable[ModeIdIndex].ModeID == 0xFF) return 0; SiS_SearchVBModeID() 11044 SiS_OEM300Setting(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex, SiS_OEM300Setting() argument 11049 if(!SiS_Pr->UseCustomMode) { SiS_OEM300Setting() 11050 OEMModeIdIndex = SiS_SearchVBModeID(SiS_Pr,&ModeNo); SiS_OEM300Setting() 11054 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_OEM300Setting() 11055 SetOEMLCDDelay(SiS_Pr, ModeNo, OEMModeIdIndex); SiS_OEM300Setting() 11056 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_OEM300Setting() 11057 SetOEMLCDData(SiS_Pr, ModeNo, OEMModeIdIndex); SiS_OEM300Setting() 11060 if(SiS_Pr->UseCustomMode) return; SiS_OEM300Setting() 11061 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_OEM300Setting() 11062 SetOEMTVDelay(SiS_Pr, ModeNo,OEMModeIdIndex); SiS_OEM300Setting() 11063 if(SiS_Pr->SiS_VBType & VB_SISVB) { SiS_OEM300Setting() 11064 SetOEMAntiFlicker(SiS_Pr, ModeNo, OEMModeIdIndex); SiS_OEM300Setting() 11065 SetOEMPhaseIncr(SiS_Pr, ModeNo, OEMModeIdIndex); SiS_OEM300Setting() 11066 SetOEMYFilter(SiS_Pr, ModeNo, OEMModeIdIndex); SiS_OEM300Setting()
|
H A D | init.c | 79 InitCommonPointer(struct SiS_Private *SiS_Pr) InitCommonPointer() argument 81 SiS_Pr->SiS_SModeIDTable = SiS_SModeIDTable; InitCommonPointer() 82 SiS_Pr->SiS_StResInfo = SiS_StResInfo; InitCommonPointer() 83 SiS_Pr->SiS_ModeResInfo = SiS_ModeResInfo; InitCommonPointer() 84 SiS_Pr->SiS_StandTable = SiS_StandTable; InitCommonPointer() 86 SiS_Pr->SiS_NTSCTiming = SiS_NTSCTiming; InitCommonPointer() 87 SiS_Pr->SiS_PALTiming = SiS_PALTiming; InitCommonPointer() 88 SiS_Pr->SiS_HiTVSt1Timing = SiS_HiTVSt1Timing; InitCommonPointer() 89 SiS_Pr->SiS_HiTVSt2Timing = SiS_HiTVSt2Timing; InitCommonPointer() 91 SiS_Pr->SiS_HiTVExtTiming = SiS_HiTVExtTiming; InitCommonPointer() 92 SiS_Pr->SiS_HiTVGroup3Data = SiS_HiTVGroup3Data; InitCommonPointer() 93 SiS_Pr->SiS_HiTVGroup3Simu = SiS_HiTVGroup3Simu; InitCommonPointer() 95 SiS_Pr->SiS_HiTVTextTiming = SiS_HiTVTextTiming; InitCommonPointer() 96 SiS_Pr->SiS_HiTVGroup3Text = SiS_HiTVGroup3Text; InitCommonPointer() 99 SiS_Pr->SiS_StPALData = SiS_StPALData; InitCommonPointer() 100 SiS_Pr->SiS_ExtPALData = SiS_ExtPALData; InitCommonPointer() 101 SiS_Pr->SiS_StNTSCData = SiS_StNTSCData; InitCommonPointer() 102 SiS_Pr->SiS_ExtNTSCData = SiS_ExtNTSCData; InitCommonPointer() 103 SiS_Pr->SiS_St1HiTVData = SiS_StHiTVData; InitCommonPointer() 104 SiS_Pr->SiS_St2HiTVData = SiS_St2HiTVData; InitCommonPointer() 105 SiS_Pr->SiS_ExtHiTVData = SiS_ExtHiTVData; InitCommonPointer() 106 SiS_Pr->SiS_St525iData = SiS_StNTSCData; InitCommonPointer() 107 SiS_Pr->SiS_St525pData = SiS_St525pData; InitCommonPointer() 108 SiS_Pr->SiS_St750pData = SiS_St750pData; InitCommonPointer() 109 SiS_Pr->SiS_Ext525iData = SiS_ExtNTSCData; InitCommonPointer() 110 SiS_Pr->SiS_Ext525pData = SiS_ExtNTSCData; InitCommonPointer() 111 SiS_Pr->SiS_Ext750pData = SiS_Ext750pData; InitCommonPointer() 113 SiS_Pr->pSiS_OutputSelect = &SiS_OutputSelect; InitCommonPointer() 114 SiS_Pr->pSiS_SoftSetting = &SiS_SoftSetting; InitCommonPointer() 116 SiS_Pr->SiS_LCD1280x720Data = SiS_LCD1280x720Data; InitCommonPointer() 117 SiS_Pr->SiS_StLCD1280x768_2Data = SiS_StLCD1280x768_2Data; InitCommonPointer() 118 SiS_Pr->SiS_ExtLCD1280x768_2Data = SiS_ExtLCD1280x768_2Data; InitCommonPointer() 119 SiS_Pr->SiS_LCD1280x800Data = SiS_LCD1280x800Data; InitCommonPointer() 120 SiS_Pr->SiS_LCD1280x800_2Data = SiS_LCD1280x800_2Data; InitCommonPointer() 121 SiS_Pr->SiS_LCD1280x854Data = SiS_LCD1280x854Data; InitCommonPointer() 122 SiS_Pr->SiS_LCD1280x960Data = SiS_LCD1280x960Data; InitCommonPointer() 123 SiS_Pr->SiS_StLCD1400x1050Data = SiS_StLCD1400x1050Data; InitCommonPointer() 124 SiS_Pr->SiS_ExtLCD1400x1050Data = SiS_ExtLCD1400x1050Data; InitCommonPointer() 125 SiS_Pr->SiS_LCD1680x1050Data = SiS_LCD1680x1050Data; InitCommonPointer() 126 SiS_Pr->SiS_StLCD1600x1200Data = SiS_StLCD1600x1200Data; InitCommonPointer() 127 SiS_Pr->SiS_ExtLCD1600x1200Data = SiS_ExtLCD1600x1200Data; InitCommonPointer() 128 SiS_Pr->SiS_NoScaleData = SiS_NoScaleData; InitCommonPointer() 130 SiS_Pr->SiS_LVDS320x240Data_1 = SiS_LVDS320x240Data_1; InitCommonPointer() 131 SiS_Pr->SiS_LVDS320x240Data_2 = SiS_LVDS320x240Data_2; InitCommonPointer() 132 SiS_Pr->SiS_LVDS640x480Data_1 = SiS_LVDS640x480Data_1; InitCommonPointer() 133 SiS_Pr->SiS_LVDS800x600Data_1 = SiS_LVDS800x600Data_1; InitCommonPointer() 134 SiS_Pr->SiS_LVDS1024x600Data_1 = SiS_LVDS1024x600Data_1; InitCommonPointer() 135 SiS_Pr->SiS_LVDS1024x768Data_1 = SiS_LVDS1024x768Data_1; InitCommonPointer() 137 SiS_Pr->SiS_LVDSCRT1320x240_1 = SiS_LVDSCRT1320x240_1; InitCommonPointer() 138 SiS_Pr->SiS_LVDSCRT1320x240_2 = SiS_LVDSCRT1320x240_2; InitCommonPointer() 139 SiS_Pr->SiS_LVDSCRT1320x240_2_H = SiS_LVDSCRT1320x240_2_H; InitCommonPointer() 140 SiS_Pr->SiS_LVDSCRT1320x240_3 = SiS_LVDSCRT1320x240_3; InitCommonPointer() 141 SiS_Pr->SiS_LVDSCRT1320x240_3_H = SiS_LVDSCRT1320x240_3_H; InitCommonPointer() 142 SiS_Pr->SiS_LVDSCRT1640x480_1 = SiS_LVDSCRT1640x480_1; InitCommonPointer() 143 SiS_Pr->SiS_LVDSCRT1640x480_1_H = SiS_LVDSCRT1640x480_1_H; InitCommonPointer() 145 SiS_Pr->SiS_LVDSCRT11024x600_1 = SiS_LVDSCRT11024x600_1; InitCommonPointer() 146 SiS_Pr->SiS_LVDSCRT11024x600_1_H = SiS_LVDSCRT11024x600_1_H; InitCommonPointer() 147 SiS_Pr->SiS_LVDSCRT11024x600_2 = SiS_LVDSCRT11024x600_2; InitCommonPointer() 148 SiS_Pr->SiS_LVDSCRT11024x600_2_H = SiS_LVDSCRT11024x600_2_H; InitCommonPointer() 151 SiS_Pr->SiS_CHTVUNTSCData = SiS_CHTVUNTSCData; InitCommonPointer() 152 SiS_Pr->SiS_CHTVONTSCData = SiS_CHTVONTSCData; InitCommonPointer() 154 SiS_Pr->SiS_PanelMinLVDS = Panel_800x600; /* lowest value LVDS/LCDA */ InitCommonPointer() 155 SiS_Pr->SiS_PanelMin301 = Panel_1024x768; /* lowest value 301 */ InitCommonPointer() 161 InitTo300Pointer(struct SiS_Private *SiS_Pr) InitTo300Pointer() argument 163 InitCommonPointer(SiS_Pr); InitTo300Pointer() 165 SiS_Pr->SiS_VBModeIDTable = SiS300_VBModeIDTable; InitTo300Pointer() 166 SiS_Pr->SiS_EModeIDTable = SiS300_EModeIDTable; InitTo300Pointer() 167 SiS_Pr->SiS_RefIndex = SiS300_RefIndex; InitTo300Pointer() 168 SiS_Pr->SiS_CRT1Table = SiS300_CRT1Table; InitTo300Pointer() 169 if(SiS_Pr->ChipType == SIS_300) { InitTo300Pointer() 170 SiS_Pr->SiS_MCLKData_0 = SiS300_MCLKData_300; /* 300 */ InitTo300Pointer() 172 SiS_Pr->SiS_MCLKData_0 = SiS300_MCLKData_630; /* 630, 730 */ InitTo300Pointer() 174 SiS_Pr->SiS_VCLKData = SiS300_VCLKData; InitTo300Pointer() 175 SiS_Pr->SiS_VBVCLKData = (struct SiS_VBVCLKData *)SiS300_VCLKData; InitTo300Pointer() 177 SiS_Pr->SiS_SR15 = SiS300_SR15; InitTo300Pointer() 179 SiS_Pr->SiS_PanelDelayTbl = SiS300_PanelDelayTbl; InitTo300Pointer() 180 SiS_Pr->SiS_PanelDelayTblLVDS = SiS300_PanelDelayTbl; InitTo300Pointer() 182 SiS_Pr->SiS_ExtLCD1024x768Data = SiS300_ExtLCD1024x768Data; InitTo300Pointer() 183 SiS_Pr->SiS_St2LCD1024x768Data = SiS300_St2LCD1024x768Data; InitTo300Pointer() 184 SiS_Pr->SiS_ExtLCD1280x1024Data = SiS300_ExtLCD1280x1024Data; InitTo300Pointer() 185 SiS_Pr->SiS_St2LCD1280x1024Data = SiS300_St2LCD1280x1024Data; InitTo300Pointer() 187 SiS_Pr->SiS_CRT2Part2_1024x768_1 = SiS300_CRT2Part2_1024x768_1; InitTo300Pointer() 188 SiS_Pr->SiS_CRT2Part2_1024x768_2 = SiS300_CRT2Part2_1024x768_2; InitTo300Pointer() 189 SiS_Pr->SiS_CRT2Part2_1024x768_3 = SiS300_CRT2Part2_1024x768_3; InitTo300Pointer() 191 SiS_Pr->SiS_CHTVUPALData = SiS300_CHTVUPALData; InitTo300Pointer() 192 SiS_Pr->SiS_CHTVOPALData = SiS300_CHTVOPALData; InitTo300Pointer() 193 SiS_Pr->SiS_CHTVUPALMData = SiS_CHTVUNTSCData; /* not supported on 300 series */ InitTo300Pointer() 194 SiS_Pr->SiS_CHTVOPALMData = SiS_CHTVONTSCData; /* not supported on 300 series */ InitTo300Pointer() 195 SiS_Pr->SiS_CHTVUPALNData = SiS300_CHTVUPALData; /* not supported on 300 series */ InitTo300Pointer() 196 SiS_Pr->SiS_CHTVOPALNData = SiS300_CHTVOPALData; /* not supported on 300 series */ InitTo300Pointer() 197 SiS_Pr->SiS_CHTVSOPALData = SiS300_CHTVSOPALData; InitTo300Pointer() 199 SiS_Pr->SiS_LVDS848x480Data_1 = SiS300_LVDS848x480Data_1; InitTo300Pointer() 200 SiS_Pr->SiS_LVDS848x480Data_2 = SiS300_LVDS848x480Data_2; InitTo300Pointer() 201 SiS_Pr->SiS_LVDSBARCO1024Data_1 = SiS300_LVDSBARCO1024Data_1; InitTo300Pointer() 202 SiS_Pr->SiS_LVDSBARCO1366Data_1 = SiS300_LVDSBARCO1366Data_1; InitTo300Pointer() 203 SiS_Pr->SiS_LVDSBARCO1366Data_2 = SiS300_LVDSBARCO1366Data_2; InitTo300Pointer() 205 SiS_Pr->SiS_PanelType04_1a = SiS300_PanelType04_1a; InitTo300Pointer() 206 SiS_Pr->SiS_PanelType04_2a = SiS300_PanelType04_2a; InitTo300Pointer() 207 SiS_Pr->SiS_PanelType04_1b = SiS300_PanelType04_1b; InitTo300Pointer() 208 SiS_Pr->SiS_PanelType04_2b = SiS300_PanelType04_2b; InitTo300Pointer() 210 SiS_Pr->SiS_CHTVCRT1UNTSC = SiS300_CHTVCRT1UNTSC; InitTo300Pointer() 211 SiS_Pr->SiS_CHTVCRT1ONTSC = SiS300_CHTVCRT1ONTSC; InitTo300Pointer() 212 SiS_Pr->SiS_CHTVCRT1UPAL = SiS300_CHTVCRT1UPAL; InitTo300Pointer() 213 SiS_Pr->SiS_CHTVCRT1OPAL = SiS300_CHTVCRT1OPAL; InitTo300Pointer() 214 SiS_Pr->SiS_CHTVCRT1SOPAL = SiS300_CHTVCRT1SOPAL; InitTo300Pointer() 215 SiS_Pr->SiS_CHTVReg_UNTSC = SiS300_CHTVReg_UNTSC; InitTo300Pointer() 216 SiS_Pr->SiS_CHTVReg_ONTSC = SiS300_CHTVReg_ONTSC; InitTo300Pointer() 217 SiS_Pr->SiS_CHTVReg_UPAL = SiS300_CHTVReg_UPAL; InitTo300Pointer() 218 SiS_Pr->SiS_CHTVReg_OPAL = SiS300_CHTVReg_OPAL; InitTo300Pointer() 219 SiS_Pr->SiS_CHTVReg_UPALM = SiS300_CHTVReg_UNTSC; /* not supported on 300 series */ InitTo300Pointer() 220 SiS_Pr->SiS_CHTVReg_OPALM = SiS300_CHTVReg_ONTSC; /* not supported on 300 series */ InitTo300Pointer() 221 SiS_Pr->SiS_CHTVReg_UPALN = SiS300_CHTVReg_UPAL; /* not supported on 300 series */ InitTo300Pointer() 222 SiS_Pr->SiS_CHTVReg_OPALN = SiS300_CHTVReg_OPAL; /* not supported on 300 series */ InitTo300Pointer() 223 SiS_Pr->SiS_CHTVReg_SOPAL = SiS300_CHTVReg_SOPAL; InitTo300Pointer() 224 SiS_Pr->SiS_CHTVVCLKUNTSC = SiS300_CHTVVCLKUNTSC; InitTo300Pointer() 225 SiS_Pr->SiS_CHTVVCLKONTSC = SiS300_CHTVVCLKONTSC; InitTo300Pointer() 226 SiS_Pr->SiS_CHTVVCLKUPAL = SiS300_CHTVVCLKUPAL; InitTo300Pointer() 227 SiS_Pr->SiS_CHTVVCLKOPAL = SiS300_CHTVVCLKOPAL; InitTo300Pointer() 228 SiS_Pr->SiS_CHTVVCLKUPALM = SiS300_CHTVVCLKUNTSC; /* not supported on 300 series */ InitTo300Pointer() 229 SiS_Pr->SiS_CHTVVCLKOPALM = SiS300_CHTVVCLKONTSC; /* not supported on 300 series */ InitTo300Pointer() 230 SiS_Pr->SiS_CHTVVCLKUPALN = SiS300_CHTVVCLKUPAL; /* not supported on 300 series */ InitTo300Pointer() 231 SiS_Pr->SiS_CHTVVCLKOPALN = SiS300_CHTVVCLKOPAL; /* not supported on 300 series */ InitTo300Pointer() 232 SiS_Pr->SiS_CHTVVCLKSOPAL = SiS300_CHTVVCLKSOPAL; InitTo300Pointer() 238 InitTo310Pointer(struct SiS_Private *SiS_Pr) InitTo310Pointer() argument 240 InitCommonPointer(SiS_Pr); InitTo310Pointer() 242 SiS_Pr->SiS_EModeIDTable = SiS310_EModeIDTable; InitTo310Pointer() 243 SiS_Pr->SiS_RefIndex = SiS310_RefIndex; InitTo310Pointer() 244 SiS_Pr->SiS_CRT1Table = SiS310_CRT1Table; InitTo310Pointer() 245 if(SiS_Pr->ChipType >= SIS_340) { InitTo310Pointer() 246 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_340; /* 340 + XGI */ InitTo310Pointer() 247 } else if(SiS_Pr->ChipType >= SIS_761) { InitTo310Pointer() 248 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_761; /* 761 - preliminary */ InitTo310Pointer() 249 } else if(SiS_Pr->ChipType >= SIS_760) { InitTo310Pointer() 250 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_760; /* 760 */ InitTo310Pointer() 251 } else if(SiS_Pr->ChipType >= SIS_661) { InitTo310Pointer() 252 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_660; /* 661/741 */ InitTo310Pointer() 253 } else if(SiS_Pr->ChipType == SIS_330) { InitTo310Pointer() 254 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_330; /* 330 */ InitTo310Pointer() 255 } else if(SiS_Pr->ChipType > SIS_315PRO) { InitTo310Pointer() 256 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_650; /* 550, 650, 740 */ InitTo310Pointer() 258 SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_315; /* 315 */ InitTo310Pointer() 260 if(SiS_Pr->ChipType >= SIS_340) { InitTo310Pointer() 261 SiS_Pr->SiS_MCLKData_1 = SiS310_MCLKData_1_340; InitTo310Pointer() 263 SiS_Pr->SiS_MCLKData_1 = SiS310_MCLKData_1; InitTo310Pointer() 265 SiS_Pr->SiS_VCLKData = SiS310_VCLKData; InitTo310Pointer() 266 SiS_Pr->SiS_VBVCLKData = SiS310_VBVCLKData; InitTo310Pointer() 268 SiS_Pr->SiS_SR15 = SiS310_SR15; InitTo310Pointer() 270 SiS_Pr->SiS_PanelDelayTbl = SiS310_PanelDelayTbl; InitTo310Pointer() 271 SiS_Pr->SiS_PanelDelayTblLVDS = SiS310_PanelDelayTblLVDS; InitTo310Pointer() 273 SiS_Pr->SiS_St2LCD1024x768Data = SiS310_St2LCD1024x768Data; InitTo310Pointer() 274 SiS_Pr->SiS_ExtLCD1024x768Data = SiS310_ExtLCD1024x768Data; InitTo310Pointer() 275 SiS_Pr->SiS_St2LCD1280x1024Data = SiS310_St2LCD1280x1024Data; InitTo310Pointer() 276 SiS_Pr->SiS_ExtLCD1280x1024Data = SiS310_ExtLCD1280x1024Data; InitTo310Pointer() 278 SiS_Pr->SiS_CRT2Part2_1024x768_1 = SiS310_CRT2Part2_1024x768_1; InitTo310Pointer() 280 SiS_Pr->SiS_CHTVUPALData = SiS310_CHTVUPALData; InitTo310Pointer() 281 SiS_Pr->SiS_CHTVOPALData = SiS310_CHTVOPALData; InitTo310Pointer() 282 SiS_Pr->SiS_CHTVUPALMData = SiS310_CHTVUPALMData; InitTo310Pointer() 283 SiS_Pr->SiS_CHTVOPALMData = SiS310_CHTVOPALMData; InitTo310Pointer() 284 SiS_Pr->SiS_CHTVUPALNData = SiS310_CHTVUPALNData; InitTo310Pointer() 285 SiS_Pr->SiS_CHTVOPALNData = SiS310_CHTVOPALNData; InitTo310Pointer() 286 SiS_Pr->SiS_CHTVSOPALData = SiS310_CHTVSOPALData; InitTo310Pointer() 288 SiS_Pr->SiS_CHTVCRT1UNTSC = SiS310_CHTVCRT1UNTSC; InitTo310Pointer() 289 SiS_Pr->SiS_CHTVCRT1ONTSC = SiS310_CHTVCRT1ONTSC; InitTo310Pointer() 290 SiS_Pr->SiS_CHTVCRT1UPAL = SiS310_CHTVCRT1UPAL; InitTo310Pointer() 291 SiS_Pr->SiS_CHTVCRT1OPAL = SiS310_CHTVCRT1OPAL; InitTo310Pointer() 292 SiS_Pr->SiS_CHTVCRT1SOPAL = SiS310_CHTVCRT1OPAL; InitTo310Pointer() 294 SiS_Pr->SiS_CHTVReg_UNTSC = SiS310_CHTVReg_UNTSC; InitTo310Pointer() 295 SiS_Pr->SiS_CHTVReg_ONTSC = SiS310_CHTVReg_ONTSC; InitTo310Pointer() 296 SiS_Pr->SiS_CHTVReg_UPAL = SiS310_CHTVReg_UPAL; InitTo310Pointer() 297 SiS_Pr->SiS_CHTVReg_OPAL = SiS310_CHTVReg_OPAL; InitTo310Pointer() 298 SiS_Pr->SiS_CHTVReg_UPALM = SiS310_CHTVReg_UPALM; InitTo310Pointer() 299 SiS_Pr->SiS_CHTVReg_OPALM = SiS310_CHTVReg_OPALM; InitTo310Pointer() 300 SiS_Pr->SiS_CHTVReg_UPALN = SiS310_CHTVReg_UPALN; InitTo310Pointer() 301 SiS_Pr->SiS_CHTVReg_OPALN = SiS310_CHTVReg_OPALN; InitTo310Pointer() 302 SiS_Pr->SiS_CHTVReg_SOPAL = SiS310_CHTVReg_OPAL; InitTo310Pointer() 304 SiS_Pr->SiS_CHTVVCLKUNTSC = SiS310_CHTVVCLKUNTSC; InitTo310Pointer() 305 SiS_Pr->SiS_CHTVVCLKONTSC = SiS310_CHTVVCLKONTSC; InitTo310Pointer() 306 SiS_Pr->SiS_CHTVVCLKUPAL = SiS310_CHTVVCLKUPAL; InitTo310Pointer() 307 SiS_Pr->SiS_CHTVVCLKOPAL = SiS310_CHTVVCLKOPAL; InitTo310Pointer() 308 SiS_Pr->SiS_CHTVVCLKUPALM = SiS310_CHTVVCLKUPALM; InitTo310Pointer() 309 SiS_Pr->SiS_CHTVVCLKOPALM = SiS310_CHTVVCLKOPALM; InitTo310Pointer() 310 SiS_Pr->SiS_CHTVVCLKUPALN = SiS310_CHTVVCLKUPALN; InitTo310Pointer() 311 SiS_Pr->SiS_CHTVVCLKOPALN = SiS310_CHTVVCLKOPALN; InitTo310Pointer() 312 SiS_Pr->SiS_CHTVVCLKSOPAL = SiS310_CHTVVCLKOPAL; InitTo310Pointer() 317 SiSInitPtr(struct SiS_Private *SiS_Pr) SiSInitPtr() argument 319 if(SiS_Pr->ChipType < SIS_315H) { SiSInitPtr() 321 InitTo300Pointer(SiS_Pr); SiSInitPtr() 327 InitTo310Pointer(SiS_Pr); SiSInitPtr() 964 SiS_DisplayOn(struct SiS_Private *SiS_Pr) SiS_DisplayOn() argument 966 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x01,0xDF); SiS_DisplayOn() 970 SiS_DisplayOff(struct SiS_Private *SiS_Pr) SiS_DisplayOff() argument 972 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x01,0x20); SiS_DisplayOff() 981 SiSRegInit(struct SiS_Private *SiS_Pr, SISIOADDRESS BaseAddr) SiSRegInit() argument 983 SiS_Pr->SiS_P3c4 = BaseAddr + 0x14; SiSRegInit() 984 SiS_Pr->SiS_P3d4 = BaseAddr + 0x24; SiSRegInit() 985 SiS_Pr->SiS_P3c0 = BaseAddr + 0x10; SiSRegInit() 986 SiS_Pr->SiS_P3ce = BaseAddr + 0x1e; SiSRegInit() 987 SiS_Pr->SiS_P3c2 = BaseAddr + 0x12; SiSRegInit() 988 SiS_Pr->SiS_P3ca = BaseAddr + 0x1a; SiSRegInit() 989 SiS_Pr->SiS_P3c6 = BaseAddr + 0x16; SiSRegInit() 990 SiS_Pr->SiS_P3c7 = BaseAddr + 0x17; SiSRegInit() 991 SiS_Pr->SiS_P3c8 = BaseAddr + 0x18; SiSRegInit() 992 SiS_Pr->SiS_P3c9 = BaseAddr + 0x19; SiSRegInit() 993 SiS_Pr->SiS_P3cb = BaseAddr + 0x1b; SiSRegInit() 994 SiS_Pr->SiS_P3cc = BaseAddr + 0x1c; SiSRegInit() 995 SiS_Pr->SiS_P3cd = BaseAddr + 0x1d; SiSRegInit() 996 SiS_Pr->SiS_P3da = BaseAddr + 0x2a; SiSRegInit() 997 SiS_Pr->SiS_Part1Port = BaseAddr + SIS_CRT2_PORT_04; SiSRegInit() 998 SiS_Pr->SiS_Part2Port = BaseAddr + SIS_CRT2_PORT_10; SiSRegInit() 999 SiS_Pr->SiS_Part3Port = BaseAddr + SIS_CRT2_PORT_12; SiSRegInit() 1000 SiS_Pr->SiS_Part4Port = BaseAddr + SIS_CRT2_PORT_14; SiSRegInit() 1001 SiS_Pr->SiS_Part5Port = BaseAddr + SIS_CRT2_PORT_14 + 2; SiSRegInit() 1002 SiS_Pr->SiS_DDC_Port = BaseAddr + 0x14; SiSRegInit() 1003 SiS_Pr->SiS_VidCapt = BaseAddr + SIS_VIDEO_CAPTURE; SiSRegInit() 1004 SiS_Pr->SiS_VidPlay = BaseAddr + SIS_VIDEO_PLAYBACK; SiSRegInit() 1012 SiS_GetSysFlags(struct SiS_Private *SiS_Pr) SiS_GetSysFlags() argument 1018 SiS_Pr->SiS_SensibleSR11 = false; SiS_GetSysFlags() 1019 SiS_Pr->SiS_MyCR63 = 0x63; SiS_GetSysFlags() 1020 if(SiS_Pr->ChipType >= SIS_330) { SiS_GetSysFlags() 1021 SiS_Pr->SiS_MyCR63 = 0x53; SiS_GetSysFlags() 1022 if(SiS_Pr->ChipType >= SIS_661) { SiS_GetSysFlags() 1023 SiS_Pr->SiS_SensibleSR11 = true; SiS_GetSysFlags() 1029 SiS_Pr->SiS_SysFlags = 0; SiS_GetSysFlags() 1030 if(SiS_Pr->ChipType == SIS_650) { SiS_GetSysFlags() 1031 cr5f = SiS_GetReg(SiS_Pr->SiS_P3d4,0x5f) & 0xf0; SiS_GetSysFlags() 1032 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x5c,0x07); SiS_GetSysFlags() 1033 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x5c) & 0xf8; SiS_GetSysFlags() 1034 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x5c,0xf8); SiS_GetSysFlags() 1035 temp2 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x5c) & 0xf8; SiS_GetSysFlags() 1041 SiS_Pr->SiS_SysFlags |= SF_IsM650; SiS_GetSysFlags() 1046 SiS_Pr->SiS_SysFlags |= SF_Is651; SiS_GetSysFlags() 1052 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x5c) & 0xf8; SiS_GetSysFlags() 1054 case 0x00: SiS_Pr->SiS_SysFlags |= SF_IsM652; break; SiS_GetSysFlags() 1055 case 0x40: SiS_Pr->SiS_SysFlags |= SF_IsM653; break; SiS_GetSysFlags() 1056 default: SiS_Pr->SiS_SysFlags |= SF_IsM650; break; SiS_GetSysFlags() 1060 SiS_Pr->SiS_SysFlags |= SF_Is652; SiS_GetSysFlags() 1063 SiS_Pr->SiS_SysFlags |= SF_IsM650; SiS_GetSysFlags() 1069 if(SiS_Pr->ChipType >= SIS_760 && SiS_Pr->ChipType <= SIS_761) { SiS_GetSysFlags() 1070 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x78) & 0x30) { SiS_GetSysFlags() 1071 SiS_Pr->SiS_SysFlags |= SF_760LFB; SiS_GetSysFlags() 1073 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x79) & 0xf0) { SiS_GetSysFlags() 1074 SiS_Pr->SiS_SysFlags |= SF_760UMA; SiS_GetSysFlags() 1084 SiSInitPCIetc(struct SiS_Private *SiS_Pr) SiSInitPCIetc() argument 1086 switch(SiS_Pr->ChipType) { SiSInitPCIetc() 1097 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x20,0xa1); SiSInitPCIetc() 1103 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x5A); SiSInitPCIetc() 1121 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x20,0xa1); SiSInitPCIetc() 1128 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0xDA); SiSInitPCIetc() 1133 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x20,0xa1); SiSInitPCIetc() 1138 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x1E,0x60,0x40); SiSInitPCIetc() 1152 SiSSetLVDSetc(struct SiS_Private *SiS_Pr) SiSSetLVDSetc() argument 1156 SiS_Pr->SiS_IF_DEF_LVDS = 0; SiSSetLVDSetc() 1157 SiS_Pr->SiS_IF_DEF_TRUMPION = 0; SiSSetLVDSetc() 1158 SiS_Pr->SiS_IF_DEF_CH70xx = 0; SiSSetLVDSetc() 1159 SiS_Pr->SiS_IF_DEF_CONEX = 0; SiSSetLVDSetc() 1161 SiS_Pr->SiS_ChrontelInit = 0; SiSSetLVDSetc() 1163 if(SiS_Pr->ChipType == XGI_20) return; SiSSetLVDSetc() 1166 temp = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x00); SiSSetLVDSetc() 1169 switch(SiS_Pr->ChipType) { SiSSetLVDSetc() 1174 temp = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x37) & 0x0e) >> 1; SiSSetLVDSetc() 1175 if((temp >= 2) && (temp <= 5)) SiS_Pr->SiS_IF_DEF_LVDS = 1; SiSSetLVDSetc() 1176 if(temp == 3) SiS_Pr->SiS_IF_DEF_TRUMPION = 1; SiSSetLVDSetc() 1179 SiS_Pr->SiS_Backup70xx = SiS_GetCH700x(SiS_Pr, 0x0e); SiSSetLVDSetc() 1180 SiS_Pr->SiS_IF_DEF_CH70xx = 1; SiSSetLVDSetc() 1189 temp = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x37) & 0x0e) >> 1; SiSSetLVDSetc() 1190 if((temp >= 2) && (temp <= 3)) SiS_Pr->SiS_IF_DEF_LVDS = 1; SiSSetLVDSetc() 1191 if(temp == 3) SiS_Pr->SiS_IF_DEF_CH70xx = 2; SiSSetLVDSetc() 1201 temp = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x38) & 0xe0) >> 5; SiSSetLVDSetc() 1202 if((temp >= 2) && (temp <= 3)) SiS_Pr->SiS_IF_DEF_LVDS = 1; SiSSetLVDSetc() 1203 if(temp == 3) SiS_Pr->SiS_IF_DEF_CH70xx = 2; SiSSetLVDSetc() 1204 if(temp == 4) SiS_Pr->SiS_IF_DEF_CONEX = 1; /* Not yet supported */ SiSSetLVDSetc() 1217 SiS_SetEnableDstn(struct SiS_Private *SiS_Pr, int enable) SiS_SetEnableDstn() argument 1219 SiS_Pr->SiS_IF_DEF_DSTN = enable ? 1 : 0; SiS_SetEnableDstn() 1223 SiS_SetEnableFstn(struct SiS_Private *SiS_Pr, int enable) SiS_SetEnableFstn() argument 1225 SiS_Pr->SiS_IF_DEF_FSTN = enable ? 1 : 0; SiS_SetEnableFstn() 1233 SiS_GetModeFlag(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_GetModeFlag() argument 1236 if(SiS_Pr->UseCustomMode) { SiS_GetModeFlag() 1237 return SiS_Pr->CModeFlag; SiS_GetModeFlag() 1239 return SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetModeFlag() 1241 return SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetModeFlag() 1250 SiSDetermineROMLayout661(struct SiS_Private *SiS_Pr) SiSDetermineROMLayout661() argument 1252 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiSDetermineROMLayout661() 1255 if(SiS_Pr->ChipType >= XGI_20) { SiSDetermineROMLayout661() 1258 } else if(SiS_Pr->ChipType >= SIS_761) { SiSDetermineROMLayout661() 1261 } else if(SiS_Pr->ChipType >= SIS_661) { SiSDetermineROMLayout661() 1290 SiSDetermineROMUsage(struct SiS_Private *SiS_Pr) SiSDetermineROMUsage() argument 1292 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiSDetermineROMUsage() 1295 SiS_Pr->SiS_UseROM = false; SiSDetermineROMUsage() 1296 SiS_Pr->SiS_ROMNew = false; SiSDetermineROMUsage() 1297 SiS_Pr->SiS_PWDOffset = 0; SiSDetermineROMUsage() 1299 if(SiS_Pr->ChipType >= XGI_20) return; SiSDetermineROMUsage() 1301 if((ROMAddr) && (SiS_Pr->UseROM)) { SiSDetermineROMUsage() 1302 if(SiS_Pr->ChipType == SIS_300) { SiSDetermineROMUsage() 1308 SiS_Pr->SiS_UseROM = true; SiSDetermineROMUsage() 1309 } else if(SiS_Pr->ChipType < SIS_315H) { SiSDetermineROMUsage() 1313 SiS_Pr->SiS_UseROM = true; SiSDetermineROMUsage() 1316 SiS_Pr->SiS_UseROM = true; SiSDetermineROMUsage() 1317 if((SiS_Pr->SiS_ROMNew = SiSDetermineROMLayout661(SiS_Pr))) { SiSDetermineROMUsage() 1318 SiS_Pr->SiS_EMIOffset = 14; SiSDetermineROMUsage() 1319 SiS_Pr->SiS_PWDOffset = 17; SiSDetermineROMUsage() 1320 SiS_Pr->SiS661LCD2TableSize = 36; SiSDetermineROMUsage() 1324 SiS_Pr->SiS661LCD2TableSize = 32; SiSDetermineROMUsage() 1326 SiS_Pr->SiS661LCD2TableSize = 34; SiSDetermineROMUsage() 1328 SiS_Pr->SiS661LCD2TableSize = 36; SiSDetermineROMUsage() 1331 SiS_Pr->SiS661LCD2TableSize = 38; /* UMC data layout abandoned at 2.05.00 */ SiSDetermineROMUsage() 1332 SiS_Pr->SiS_EMIOffset = 16; SiSDetermineROMUsage() 1333 SiS_Pr->SiS_PWDOffset = 19; SiSDetermineROMUsage() 1346 SiS_SetSegRegLower(struct SiS_Private *SiS_Pr, unsigned short value) SiS_SetSegRegLower() argument 1351 temp = SiS_GetRegByte(SiS_Pr->SiS_P3cb) & 0xf0; SiS_SetSegRegLower() 1353 SiS_SetRegByte(SiS_Pr->SiS_P3cb, temp); SiS_SetSegRegLower() 1354 temp = SiS_GetRegByte(SiS_Pr->SiS_P3cd) & 0xf0; SiS_SetSegRegLower() 1356 SiS_SetRegByte(SiS_Pr->SiS_P3cd, temp); SiS_SetSegRegLower() 1360 SiS_SetSegRegUpper(struct SiS_Private *SiS_Pr, unsigned short value) SiS_SetSegRegUpper() argument 1365 temp = SiS_GetRegByte(SiS_Pr->SiS_P3cb) & 0x0f; SiS_SetSegRegUpper() 1367 SiS_SetRegByte(SiS_Pr->SiS_P3cb, temp); SiS_SetSegRegUpper() 1368 temp = SiS_GetRegByte(SiS_Pr->SiS_P3cd) & 0x0f; SiS_SetSegRegUpper() 1370 SiS_SetRegByte(SiS_Pr->SiS_P3cd, temp); SiS_SetSegRegUpper() 1374 SiS_SetSegmentReg(struct SiS_Private *SiS_Pr, unsigned short value) SiS_SetSegmentReg() argument 1376 SiS_SetSegRegLower(SiS_Pr, value); SiS_SetSegmentReg() 1377 SiS_SetSegRegUpper(SiS_Pr, value); SiS_SetSegmentReg() 1381 SiS_ResetSegmentReg(struct SiS_Private *SiS_Pr) SiS_ResetSegmentReg() argument 1383 SiS_SetSegmentReg(SiS_Pr, 0); SiS_ResetSegmentReg() 1387 SiS_SetSegmentRegOver(struct SiS_Private *SiS_Pr, unsigned short value) SiS_SetSegmentRegOver() argument 1393 SiS_SetReg(SiS_Pr->SiS_P3c4,0x1d,temp); SiS_SetSegmentRegOver() 1394 SiS_SetSegmentReg(SiS_Pr, value); SiS_SetSegmentRegOver() 1398 SiS_ResetSegmentRegOver(struct SiS_Private *SiS_Pr) SiS_ResetSegmentRegOver() argument 1400 SiS_SetSegmentRegOver(SiS_Pr, 0); SiS_ResetSegmentRegOver() 1404 SiS_ResetSegmentRegisters(struct SiS_Private *SiS_Pr) SiS_ResetSegmentRegisters() argument 1406 if((IS_SIS65x) || (SiS_Pr->ChipType >= SIS_661)) { SiS_ResetSegmentRegisters() 1407 SiS_ResetSegmentReg(SiS_Pr); SiS_ResetSegmentRegisters() 1408 SiS_ResetSegmentRegOver(SiS_Pr); SiS_ResetSegmentRegisters() 1418 SiS_GetVBType(struct SiS_Private *SiS_Pr) SiS_GetVBType() argument 1423 SiS_Pr->SiS_VBType = 0; SiS_GetVBType() 1425 if((SiS_Pr->SiS_IF_DEF_LVDS) || (SiS_Pr->SiS_IF_DEF_CONEX)) SiS_GetVBType() 1428 if(SiS_Pr->ChipType == XGI_20) SiS_GetVBType() 1431 flag = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x00); SiS_GetVBType() 1436 rev = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x01); SiS_GetVBType() 1439 SiS_Pr->SiS_VBType = VB_SIS302B; SiS_GetVBType() 1442 SiS_Pr->SiS_VBType = VB_SIS301C; SiS_GetVBType() 1444 SiS_Pr->SiS_VBType = VB_SIS301B; SiS_GetVBType() 1446 nolcd = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x23); SiS_GetVBType() 1447 if(!(nolcd & 0x02)) SiS_Pr->SiS_VBType |= VB_NoLCD; SiS_GetVBType() 1449 SiS_Pr->SiS_VBType = VB_SIS301; SiS_GetVBType() 1452 if(SiS_Pr->SiS_VBType & (VB_SIS301B | VB_SIS301C | VB_SIS302B)) { SiS_GetVBType() 1454 flag = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x39); SiS_GetVBType() 1455 if(flag == 0xff) SiS_Pr->SiS_VBType = VB_SIS302LV; SiS_GetVBType() 1456 else SiS_Pr->SiS_VBType = VB_SIS301C; /* VB_SIS302ELV; */ SiS_GetVBType() 1458 SiS_Pr->SiS_VBType = VB_SIS301LV; SiS_GetVBType() 1461 if(SiS_Pr->SiS_VBType & (VB_SIS301C | VB_SIS301LV | VB_SIS302LV | VB_SIS302ELV)) { SiS_GetVBType() 1462 p4_0f = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x0f); SiS_GetVBType() 1463 p4_25 = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x25); SiS_GetVBType() 1464 p4_27 = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x27); SiS_GetVBType() 1465 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x0f,0x7f); SiS_GetVBType() 1466 SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x25,0x08); SiS_GetVBType() 1467 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x27,0xfd); SiS_GetVBType() 1468 if(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x26) & 0x08) { SiS_GetVBType() 1469 SiS_Pr->SiS_VBType |= VB_UMC; SiS_GetVBType() 1471 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x27,p4_27); SiS_GetVBType() 1472 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x25,p4_25); SiS_GetVBType() 1473 SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0f,p4_0f); SiS_GetVBType() 1482 SiS_CheckMemorySize(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_CheckMemorySize() argument 1485 unsigned short AdapterMemSize = SiS_Pr->VideoMemorySize / (1024*1024); SiS_CheckMemorySize() 1486 unsigned short modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_CheckMemorySize() 1501 SiS_Get310DRAMType(struct SiS_Private *SiS_Pr) SiS_Get310DRAMType() argument 1505 if((*SiS_Pr->pSiS_SoftSetting) & SoftDRAMType) { SiS_Get310DRAMType() 1506 data = (*SiS_Pr->pSiS_SoftSetting) & 0x03; SiS_Get310DRAMType() 1508 if(SiS_Pr->ChipType >= XGI_20) { SiS_Get310DRAMType() 1511 } else if(SiS_Pr->ChipType >= SIS_340) { SiS_Get310DRAMType() 1514 } else if(SiS_Pr->ChipType >= SIS_661) { SiS_Get310DRAMType() 1515 if(SiS_Pr->SiS_ROMNew) { SiS_Get310DRAMType() 1516 data = ((SiS_GetReg(SiS_Pr->SiS_P3d4,0x78) & 0xc0) >> 6); SiS_Get310DRAMType() 1518 data = SiS_GetReg(SiS_Pr->SiS_P3d4,0x78) & 0x07; SiS_Get310DRAMType() 1521 data = SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x07; SiS_Get310DRAMType() 1523 data = SiS_GetReg(SiS_Pr->SiS_P3c4,0x3a) & 0x03; SiS_Get310DRAMType() 1524 if(SiS_Pr->ChipType == SIS_330) { SiS_Get310DRAMType() 1526 switch(SiS_GetReg(SiS_Pr->SiS_P3d4,0x5f) & 0x30) { SiS_Get310DRAMType() 1543 SiS_GetMCLK(struct SiS_Private *SiS_Pr) SiS_GetMCLK() argument 1545 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_GetMCLK() 1548 index = SiS_Get310DRAMType(SiS_Pr); SiS_GetMCLK() 1549 if(SiS_Pr->ChipType >= SIS_661) { SiS_GetMCLK() 1550 if(SiS_Pr->SiS_ROMNew) { SiS_GetMCLK() 1553 return(SiS_Pr->SiS_MCLKData_0[index].CLOCK); SiS_GetMCLK() 1555 return(SiS_Pr->SiS_MCLKData_1[index - 4].CLOCK); SiS_GetMCLK() 1557 return(SiS_Pr->SiS_MCLKData_0[index].CLOCK); SiS_GetMCLK() 1567 SiS_ClearBuffer(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_ClearBuffer() argument 1569 unsigned char SISIOMEMTYPE *memaddr = SiS_Pr->VideoMemoryAddress; SiS_ClearBuffer() 1570 unsigned int memsize = SiS_Pr->VideoMemorySize; SiS_ClearBuffer() 1576 if(SiS_Pr->SiS_ModeType >= ModeEGA) { SiS_ClearBuffer() 1583 } else if(SiS_Pr->SiS_ModeType < ModeCGA) { SiS_ClearBuffer() 1596 SiS_SearchModeID(struct SiS_Private *SiS_Pr, unsigned short *ModeNo, SiS_SearchModeID() argument 1599 unsigned char VGAINFO = SiS_Pr->SiS_VGAINFO; SiS_SearchModeID() 1606 if(SiS_Pr->SiS_SModeIDTable[(*ModeIdIndex)].St_ModeID == (*ModeNo)) break; SiS_SearchModeID() 1607 if(SiS_Pr->SiS_SModeIDTable[(*ModeIdIndex)].St_ModeID == 0xFF) return false; SiS_SearchModeID() 1624 if(SiS_Pr->SiS_EModeIDTable[(*ModeIdIndex)].Ext_ModeID == (*ModeNo)) break; SiS_SearchModeID() 1625 if(SiS_Pr->SiS_EModeIDTable[(*ModeIdIndex)].Ext_ModeID == 0xFF) return false; SiS_SearchModeID() 1637 SiS_GetModePtr(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_GetModePtr() argument 1642 index = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_StTableIndex; SiS_GetModePtr() 1644 if(SiS_Pr->SiS_ModeType <= ModeEGA) index = 0x1B; SiS_GetModePtr() 1655 SiS_GetRefCRTVCLK(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide) SiS_GetRefCRTVCLK() argument 1657 if(SiS_Pr->SiS_RefIndex[Index].Ext_InfoFlag & HaveWideTiming) { SiS_GetRefCRTVCLK() 1659 return SiS_Pr->SiS_RefIndex[Index].Ext_CRTVCLK_WIDE; SiS_GetRefCRTVCLK() 1661 return SiS_Pr->SiS_RefIndex[Index].Ext_CRTVCLK_NORM; SiS_GetRefCRTVCLK() 1664 return SiS_Pr->SiS_RefIndex[Index].Ext_CRTVCLK; SiS_GetRefCRTVCLK() 1669 SiS_GetRefCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short Index, int UseWide) SiS_GetRefCRT1CRTC() argument 1671 if(SiS_Pr->SiS_RefIndex[Index].Ext_InfoFlag & HaveWideTiming) { SiS_GetRefCRT1CRTC() 1673 return SiS_Pr->SiS_RefIndex[Index].Ext_CRT1CRTC_WIDE; SiS_GetRefCRT1CRTC() 1675 return SiS_Pr->SiS_RefIndex[Index].Ext_CRT1CRTC_NORM; SiS_GetRefCRT1CRTC() 1678 return SiS_Pr->SiS_RefIndex[Index].Ext_CRT1CRTC; SiS_GetRefCRT1CRTC() 1687 SiS_DoLowModeTest(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_DoLowModeTest() argument 1693 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x11); SiS_DoLowModeTest() 1694 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x11,0x80); SiS_DoLowModeTest() 1695 temp1 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x00); SiS_DoLowModeTest() 1696 SiS_SetReg(SiS_Pr->SiS_P3d4,0x00,0x55); SiS_DoLowModeTest() 1697 temp2 = SiS_GetReg(SiS_Pr->SiS_P3d4,0x00); SiS_DoLowModeTest() 1698 SiS_SetReg(SiS_Pr->SiS_P3d4,0x00,temp1); SiS_DoLowModeTest() 1699 SiS_SetReg(SiS_Pr->SiS_P3d4,0x11,temp); SiS_DoLowModeTest() 1700 if((SiS_Pr->ChipType >= SIS_315H) || SiS_DoLowModeTest() 1701 (SiS_Pr->ChipType == SIS_300)) { SiS_DoLowModeTest() 1707 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x35,0x01); SiS_DoLowModeTest() 1714 SiS_SetLowModeTest(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_SetLowModeTest() argument 1716 if(SiS_DoLowModeTest(SiS_Pr, ModeNo)) { SiS_SetLowModeTest() 1717 SiS_Pr->SiS_SetFlag |= LowModeTests; SiS_SetLowModeTest() 1726 SiS_OpenCRTC(struct SiS_Private *SiS_Pr) SiS_OpenCRTC() argument 1729 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x51,0x1f); SiS_OpenCRTC() 1730 if(IS_SIS651) SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x51,0x20); SiS_OpenCRTC() 1731 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x56,0xe7); SiS_OpenCRTC() 1733 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x61,0xf7); SiS_OpenCRTC() 1734 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x51,0x1f); SiS_OpenCRTC() 1735 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x56,0xe7); SiS_OpenCRTC() 1736 if(!SiS_Pr->SiS_ROMNew) { SiS_OpenCRTC() 1737 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x3a,0xef); SiS_OpenCRTC() 1743 SiS_CloseCRTC(struct SiS_Private *SiS_Pr) SiS_CloseCRTC() argument 1749 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_CloseCRTC() 1752 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x51,0x1f,temp1); SiS_CloseCRTC() 1753 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x56,0xe7,temp2); SiS_CloseCRTC() 1759 SiS_HandleCRT1(struct SiS_Private *SiS_Pr) SiS_HandleCRT1() argument 1762 SiS_SetRegAND(SiS_Pr->SiS_P3d4,SiS_Pr->SiS_MyCR63,0xbf); SiS_HandleCRT1() 1764 if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x15) & 0x01)) { SiS_HandleCRT1() 1765 if((SiS_GetReg(SiS_Pr->SiS_P3c4,0x15) & 0x0a) || SiS_HandleCRT1() 1766 (SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) & 0x01)) { SiS_HandleCRT1() 1767 SiS_SetRegOR(SiS_Pr->SiS_P3d4,SiS_Pr->SiS_MyCR63,0x40); SiS_HandleCRT1() 1778 SiS_GetColorDepth(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_GetColorDepth() argument 1787 modeflag = SiS_Pr->CModeFlag; SiS_GetColorDepth() 1789 modeflag = SiS_Pr->SiS_SModeIDTable[ModeIdIndex].St_ModeFlag; SiS_GetColorDepth() 1791 modeflag = SiS_Pr->SiS_EModeIDTable[ModeIdIndex].Ext_ModeFlag; SiS_GetColorDepth() 1804 SiS_GetOffset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_GetOffset() argument 1809 if(SiS_Pr->UseCustomMode) { SiS_GetOffset() 1810 infoflag = SiS_Pr->CInfoFlag; SiS_GetOffset() 1811 xres = SiS_Pr->CHDisplay; SiS_GetOffset() 1813 infoflag = SiS_Pr->SiS_RefIndex[RRTI].Ext_InfoFlag; SiS_GetOffset() 1814 xres = SiS_Pr->SiS_RefIndex[RRTI].XRes; SiS_GetOffset() 1817 colordepth = SiS_GetColorDepth(SiS_Pr, ModeNo, ModeIdIndex); SiS_GetOffset() 1832 SiS_SetSeqRegs(struct SiS_Private *SiS_Pr, unsigned short StandTableIndex) SiS_SetSeqRegs() argument 1837 SiS_SetReg(SiS_Pr->SiS_P3c4,0x00,0x03); SiS_SetSeqRegs() 1840 SRdata = SiS_Pr->SiS_StandTable[StandTableIndex].SR[0] | 0x20; SiS_SetSeqRegs() 1843 if((SiS_Pr->SiS_VBType & VB_SISVB) || (SiS_Pr->SiS_IF_DEF_LVDS)) { SiS_SetSeqRegs() 1845 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToTV)) { SiS_SetSeqRegs() 1846 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) SRdata |= 0x01; SiS_SetSeqRegs() 1847 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) SRdata |= 0x01; SiS_SetSeqRegs() 1851 SiS_SetReg(SiS_Pr->SiS_P3c4,0x01,SRdata); SiS_SetSeqRegs() 1854 SRdata = SiS_Pr->SiS_StandTable[StandTableIndex].SR[i - 1]; SiS_SetSeqRegs() 1855 SiS_SetReg(SiS_Pr->SiS_P3c4,i,SRdata); SiS_SetSeqRegs() 1864 SiS_SetMiscRegs(struct SiS_Private *SiS_Pr, unsigned short StandTableIndex) SiS_SetMiscRegs() argument 1868 Miscdata = SiS_Pr->SiS_StandTable[StandTableIndex].MISC; SiS_SetMiscRegs() 1870 if(SiS_Pr->ChipType < SIS_661) { SiS_SetMiscRegs() 1871 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetMiscRegs() 1872 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetMiscRegs() 1878 SiS_SetRegByte(SiS_Pr->SiS_P3c2,Miscdata); SiS_SetMiscRegs() 1886 SiS_SetCRTCRegs(struct SiS_Private *SiS_Pr, unsigned short StandTableIndex) SiS_SetCRTCRegs() argument 1892 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x11,0x7f); SiS_SetCRTCRegs() 1895 CRTCdata = SiS_Pr->SiS_StandTable[StandTableIndex].CRTC[i]; SiS_SetCRTCRegs() 1896 SiS_SetReg(SiS_Pr->SiS_P3d4,i,CRTCdata); SiS_SetCRTCRegs() 1899 if(SiS_Pr->ChipType >= SIS_661) { SiS_SetCRTCRegs() 1900 SiS_OpenCRTC(SiS_Pr); SiS_SetCRTCRegs() 1902 CRTCdata = SiS_Pr->SiS_StandTable[StandTableIndex].CRTC[i]; SiS_SetCRTCRegs() 1903 SiS_SetReg(SiS_Pr->SiS_P3d4,i,CRTCdata); SiS_SetCRTCRegs() 1905 } else if( ( (SiS_Pr->ChipType == SIS_630) || SiS_SetCRTCRegs() 1906 (SiS_Pr->ChipType == SIS_730) ) && SiS_SetCRTCRegs() 1907 (SiS_Pr->ChipRevision >= 0x30) ) { SiS_SetCRTCRegs() 1908 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetCRTCRegs() 1909 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToLCD | SetCRT2ToTV)) { SiS_SetCRTCRegs() 1910 SiS_SetReg(SiS_Pr->SiS_P3d4,0x18,0xFE); SiS_SetCRTCRegs() 1921 SiS_SetATTRegs(struct SiS_Private *SiS_Pr, unsigned short StandTableIndex) SiS_SetATTRegs() argument 1927 ARdata = SiS_Pr->SiS_StandTable[StandTableIndex].ATTR[i]; SiS_SetATTRegs() 1933 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiS_SetATTRegs() 1934 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) ARdata = 0; SiS_SetATTRegs() 1936 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiS_SetATTRegs() 1937 if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) { SiS_SetATTRegs() 1938 if(SiS_Pr->SiS_VBInfo & SetCRT2ToTV) { SiS_SetATTRegs() 1939 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) ARdata = 0; SiS_SetATTRegs() 1943 if(SiS_Pr->ChipType >= SIS_661) { SiS_SetATTRegs() 1944 if(SiS_Pr->SiS_VBInfo & (SetCRT2ToTV | SetCRT2ToLCD)) { SiS_SetATTRegs() 1945 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) ARdata = 0; SiS_SetATTRegs() 1947 } else if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) { SiS_SetATTRegs() 1948 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetATTRegs() 1951 if(SiS_Pr->SiS_VBType & VB_SIS30xB) { SiS_SetATTRegs() 1952 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) ARdata = 0; SiS_SetATTRegs() 1958 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) ARdata = 0; SiS_SetATTRegs() 1962 SiS_GetRegByte(SiS_Pr->SiS_P3da); /* reset 3da */ SiS_SetATTRegs() 1963 SiS_SetRegByte(SiS_Pr->SiS_P3c0,i); /* set index */ SiS_SetATTRegs() 1964 SiS_SetRegByte(SiS_Pr->SiS_P3c0,ARdata); /* set data */ SiS_SetATTRegs() 1967 SiS_GetRegByte(SiS_Pr->SiS_P3da); /* reset 3da */ SiS_SetATTRegs() 1968 SiS_SetRegByte(SiS_Pr->SiS_P3c0,0x14); /* set index */ SiS_SetATTRegs() 1969 SiS_SetRegByte(SiS_Pr->SiS_P3c0,0x00); /* set data */ SiS_SetATTRegs() 1971 SiS_GetRegByte(SiS_Pr->SiS_P3da); SiS_SetATTRegs() 1972 SiS_SetRegByte(SiS_Pr->SiS_P3c0,0x20); /* Enable Attribute */ SiS_SetATTRegs() 1973 SiS_GetRegByte(SiS_Pr->SiS_P3da); SiS_SetATTRegs() 1981 SiS_SetGRCRegs(struct SiS_Private *SiS_Pr, unsigned short StandTableIndex) SiS_SetGRCRegs() argument 1987 GRdata = SiS_Pr->SiS_StandTable[StandTableIndex].GRC[i]; SiS_SetGRCRegs() 1988 SiS_SetReg(SiS_Pr->SiS_P3ce,i,GRdata); SiS_SetGRCRegs() 1991 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_SetGRCRegs() 1993 SiS_SetRegAND(SiS_Pr->SiS_P3ce,0x05,0xBF); SiS_SetGRCRegs() 2002 SiS_ClearExt1Regs(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiS_ClearExt1Regs() argument 2007 SiS_SetReg(SiS_Pr->SiS_P3c4,i,0x00); SiS_ClearExt1Regs() 2010 if(SiS_Pr->ChipType >= SIS_315H) { SiS_ClearExt1Regs() 2011 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x37,0xFE); SiS_ClearExt1Regs() 2014 SiS_SetReg(SiS_Pr->SiS_P3c4,0x0e,0x20); SiS_ClearExt1Regs() 2025 SiS_ResetCRT1VCLK(struct SiS_Private *SiS_Pr) SiS_ResetCRT1VCLK() argument 2027 if(SiS_Pr->ChipType >= SIS_315H) { SiS_ResetCRT1VCLK() 2028 if(SiS_Pr->ChipType < SIS_661) { SiS_ResetCRT1VCLK() 2029 if(SiS_Pr->SiS_IF_DEF_LVDS == 0) return; SiS_ResetCRT1VCLK() 2032 if((SiS_Pr->SiS_IF_DEF_LVDS == 0) && SiS_ResetCRT1VCLK() 2033 (!(SiS_Pr->SiS_VBType & VB_SIS30xBLV)) ) { SiS_ResetCRT1VCLK() 2038 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x31,0xcf,0x20); SiS_ResetCRT1VCLK() 2039 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2B,SiS_Pr->SiS_VCLKData[1].SR2B); SiS_ResetCRT1VCLK() 2040 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2C,SiS_Pr->SiS_VCLKData[1].SR2C); SiS_ResetCRT1VCLK() 2041 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2D,0x80); SiS_ResetCRT1VCLK() 2042 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x31,0xcf,0x10); SiS_ResetCRT1VCLK() 2043 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2B,SiS_Pr->SiS_VCLKData[0].SR2B); SiS_ResetCRT1VCLK() 2044 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2C,SiS_Pr->SiS_VCLKData[0].SR2C); SiS_ResetCRT1VCLK() 2045 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2D,0x80); SiS_ResetCRT1VCLK() 2053 SiS_SetCRT1Sync(struct SiS_Private *SiS_Pr, unsigned short RRTI) SiS_SetCRT1Sync() argument 2057 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1Sync() 2058 sync = SiS_Pr->CInfoFlag >> 8; SiS_SetCRT1Sync() 2060 sync = SiS_Pr->SiS_RefIndex[RRTI].Ext_InfoFlag >> 8; SiS_SetCRT1Sync() 2065 SiS_SetRegByte(SiS_Pr->SiS_P3c2,sync); SiS_SetCRT1Sync() 2073 SiS_SetCRT1CRTC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1CRTC() argument 2079 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1CRTC() 2081 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1CRTC() 2083 crt1data = &SiS_Pr->CCRT1CRTC[0]; SiS_SetCRT1CRTC() 2087 temp = SiS_GetRefCRT1CRTC(SiS_Pr, RRTI, SiS_Pr->SiS_UseWide); SiS_SetCRT1CRTC() 2090 if((temp == 0x20) && (SiS_Pr->Alternate1600x1200)) temp = 0x57; SiS_SetCRT1CRTC() 2092 crt1data = (unsigned char *)&SiS_Pr->SiS_CRT1Table[temp].CR[0]; SiS_SetCRT1CRTC() 2097 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x11,0x7f); SiS_SetCRT1CRTC() 2100 SiS_SetReg(SiS_Pr->SiS_P3d4,j,crt1data[i]); SiS_SetCRT1CRTC() 2103 SiS_SetReg(SiS_Pr->SiS_P3d4,j,crt1data[i]); SiS_SetCRT1CRTC() 2106 SiS_SetReg(SiS_Pr->SiS_P3d4,j,crt1data[i]); SiS_SetCRT1CRTC() 2109 SiS_SetReg(SiS_Pr->SiS_P3c4,j,crt1data[i]); SiS_SetCRT1CRTC() 2112 SiS_SetReg(SiS_Pr->SiS_P3c4,0x0E,crt1data[16] & 0xE0); SiS_SetCRT1CRTC() 2116 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x09,0x5F,temp); SiS_SetCRT1CRTC() 2118 if(SiS_Pr->SiS_ModeType > ModeVGA) { SiS_SetCRT1CRTC() 2119 SiS_SetReg(SiS_Pr->SiS_P3d4,0x14,0x4F); SiS_SetCRT1CRTC() 2123 if(SiS_Pr->ChipType == XGI_20) { SiS_SetCRT1CRTC() 2124 SiS_SetReg(SiS_Pr->SiS_P3d4,0x04,crt1data[4] - 1); SiS_SetCRT1CRTC() 2126 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x0c,0xfb); SiS_SetCRT1CRTC() 2128 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x05,0xe0,((temp - 1) & 0x1f)); SiS_SetCRT1CRTC() 2131 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0e,0x1f,(temp << 5)); SiS_SetCRT1CRTC() 2143 SiS_SetCRT1Offset(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1Offset() argument 2148 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1Offset() 2149 infoflag = SiS_Pr->CInfoFlag; SiS_SetCRT1Offset() 2151 infoflag = SiS_Pr->SiS_RefIndex[RRTI].Ext_InfoFlag; SiS_SetCRT1Offset() 2154 DisplayUnit = SiS_GetOffset(SiS_Pr, ModeNo, ModeIdIndex, RRTI); SiS_SetCRT1Offset() 2157 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0E,0xF0,temp); SiS_SetCRT1Offset() 2159 SiS_SetReg(SiS_Pr->SiS_P3d4,0x13,DisplayUnit & 0xFF); SiS_SetCRT1Offset() 2166 if(SiS_Pr->ChipType == XGI_20) { SiS_SetCRT1Offset() 2169 SiS_SetReg(SiS_Pr->SiS_P3c4,0x10,temp); SiS_SetCRT1Offset() 2177 SiS_SetCRT1VCLK(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1VCLK() argument 2182 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1VCLK() 2183 clka = SiS_Pr->CSR2B; SiS_SetCRT1VCLK() 2184 clkb = SiS_Pr->CSR2C; SiS_SetCRT1VCLK() 2186 index = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RRTI); SiS_SetCRT1VCLK() 2187 if((SiS_Pr->SiS_VBType & VB_SIS30xBLV) && SiS_SetCRT1VCLK() 2188 (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT1VCLK() 2190 if((index == 0x21) && (SiS_Pr->Alternate1600x1200)) index = 0x72; SiS_SetCRT1VCLK() 2191 clka = SiS_Pr->SiS_VBVCLKData[index].Part4_A; SiS_SetCRT1VCLK() 2192 clkb = SiS_Pr->SiS_VBVCLKData[index].Part4_B; SiS_SetCRT1VCLK() 2194 clka = SiS_Pr->SiS_VCLKData[index].SR2B; SiS_SetCRT1VCLK() 2195 clkb = SiS_Pr->SiS_VCLKData[index].SR2C; SiS_SetCRT1VCLK() 2199 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x31,0xCF); SiS_SetCRT1VCLK() 2201 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2b,clka); SiS_SetCRT1VCLK() 2202 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2c,clkb); SiS_SetCRT1VCLK() 2204 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT1VCLK() 2206 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2D,0x01); SiS_SetCRT1VCLK() 2207 if(SiS_Pr->ChipType == XGI_20) { SiS_SetCRT1VCLK() 2208 unsigned short mf = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1VCLK() 2210 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2b,SiS_GetReg(SiS_Pr->SiS_P3c4,0x2b)); SiS_SetCRT1VCLK() 2211 clkb = SiS_GetReg(SiS_Pr->SiS_P3c4,0x2c); SiS_SetCRT1VCLK() 2213 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2c,clkb); SiS_SetCRT1VCLK() 2218 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2D,0x80); SiS_SetCRT1VCLK() 2228 SiS_GetFIFOThresholdIndex300(struct SiS_Private *SiS_Pr, unsigned short *idx1, SiS_GetFIFOThresholdIndex300() argument 2236 temp1 = temp2 = (SiS_GetReg(SiS_Pr->SiS_P3c4,0x18) & 0x62) >> 1; SiS_GetFIFOThresholdIndex300() 2238 (*idx1) = (unsigned short)(SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) >> 6) & 0x03; SiS_GetFIFOThresholdIndex300() 2239 (*idx1) |= (unsigned short)(((SiS_GetReg(SiS_Pr->SiS_P3c4,0x14) >> 4) & 0x0c)); SiS_GetFIFOThresholdIndex300() 2268 SiS_DoCalcDelay(struct SiS_Private *SiS_Pr, unsigned short MCLK, unsigned short VCLK, SiS_DoCalcDelay() argument 2274 SiS_GetFIFOThresholdIndex300(SiS_Pr, &idx1, &idx2); SiS_DoCalcDelay() 2288 SiS_CalcDelay(struct SiS_Private *SiS_Pr, unsigned short VCLK, SiS_CalcDelay() argument 2293 temp2 = SiS_DoCalcDelay(SiS_Pr, MCLK, VCLK, colordepth, 0); SiS_CalcDelay() 2294 temp1 = SiS_DoCalcDelay(SiS_Pr, MCLK, VCLK, colordepth, 1); SiS_CalcDelay() 2302 SiS_SetCRT1FIFO_300(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1FIFO_300() argument 2312 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1FIFO_300() 2313 VCLK = SiS_Pr->CSRClock; SiS_SetCRT1FIFO_300() 2315 index = SiS_GetRefCRTVCLK(SiS_Pr, RefreshRateTableIndex, SiS_Pr->SiS_UseWide); SiS_SetCRT1FIFO_300() 2316 VCLK = SiS_Pr->SiS_VCLKData[index].CLOCK; SiS_SetCRT1FIFO_300() 2320 colorth = colortharray[(SiS_Pr->SiS_ModeType - ModeEGA)]; SiS_SetCRT1FIFO_300() 2323 index = SiS_GetReg(SiS_Pr->SiS_P3c4,0x3A) & 0x07; SiS_SetCRT1FIFO_300() 2324 MCLK = SiS_Pr->SiS_MCLKData_0[index].CLOCK; SiS_SetCRT1FIFO_300() 2326 temp = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35) & 0xc3; SiS_SetCRT1FIFO_300() 2327 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x16,0x3c,temp); SiS_SetCRT1FIFO_300() 2330 ThresholdLow = SiS_CalcDelay(SiS_Pr, VCLK, colorth, MCLK) + 1; SiS_SetCRT1FIFO_300() 2332 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x16,0xfc); SiS_SetCRT1FIFO_300() 2334 temp = SiS_GetReg(SiS_Pr->SiS_P3c4,0x16) >> 6; SiS_SetCRT1FIFO_300() 2336 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x16,0x3f,((temp - 1) << 6)); SiS_SetCRT1FIFO_300() 2343 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,temp); SiS_SetCRT1FIFO_300() 2347 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0f,0x9f,temp); SiS_SetCRT1FIFO_300() 2350 SiS_SetReg(SiS_Pr->SiS_P3c4,0x3B,0x09); SiS_SetCRT1FIFO_300() 2355 SiS_SetReg(SiS_Pr->SiS_P3c4,0x09,temp); SiS_SetCRT1FIFO_300() 2359 SiS_GetLatencyFactor630(struct SiS_Private *SiS_Pr, unsigned short index) SiS_GetLatencyFactor630() argument 2379 if(SiS_Pr->ChipType == SIS_730) { SiS_GetLatencyFactor630() 2387 SiS_CalcDelay2(struct SiS_Private *SiS_Pr, unsigned char key) SiS_CalcDelay2() argument 2391 if(SiS_Pr->ChipType == SIS_730) { SiS_CalcDelay2() 2397 if(SiS_GetReg(SiS_Pr->SiS_P3c4,0x14) & 0x80) index += 12; SiS_CalcDelay2() 2399 return SiS_GetLatencyFactor630(SiS_Pr, index); SiS_CalcDelay2() 2403 SiS_SetCRT1FIFO_630(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1FIFO_630() argument 2434 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1FIFO_630() 2435 VCLK = SiS_Pr->CSRClock; SiS_SetCRT1FIFO_630() 2437 data = SiS_GetRefCRTVCLK(SiS_Pr, RefreshRateTableIndex, SiS_Pr->SiS_UseWide); SiS_SetCRT1FIFO_630() 2438 VCLK = SiS_Pr->SiS_VCLKData[data].CLOCK; SiS_SetCRT1FIFO_630() 2442 data = SiS_GetReg(SiS_Pr->SiS_P3c4,0x1A) & 0x07; SiS_SetCRT1FIFO_630() 2443 MCLK16 = SiS_Pr->SiS_MCLKData_0[data].CLOCK * 16; SiS_SetCRT1FIFO_630() 2446 colorth = colortharray[(SiS_Pr->SiS_ModeType - ModeEGA)]; SiS_SetCRT1FIFO_630() 2448 if(SiS_Pr->ChipType == SIS_730) { SiS_SetCRT1FIFO_630() 2455 templ = SiS_CalcDelay2(SiS_Pr, queuedata[i]) * VCLK * colorth; SiS_SetCRT1FIFO_630() 2475 if(SiS_Pr->ChipType != SIS_730) i = 9; SiS_SetCRT1FIFO_630() 2482 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,data); SiS_SetCRT1FIFO_630() 2485 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0F,0xDF,data); SiS_SetCRT1FIFO_630() 2488 SiS_SetReg(SiS_Pr->SiS_P3c4,0x3B,0x09); SiS_SetCRT1FIFO_630() 2493 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x09,0x80,data); SiS_SetCRT1FIFO_630() 2496 templ = sisfb_read_nbridge_pci_dword(SiS_Pr, 0x50); SiS_SetCRT1FIFO_630() 2498 if(SiS_Pr->ChipType == SIS_730) { SiS_SetCRT1FIFO_630() 2507 (SiS_Pr->ChipType == SIS_630) && SiS_SetCRT1FIFO_630() 2508 (SiS_Pr->ChipRevision >= 0x30) ) { SiS_SetCRT1FIFO_630() 2516 sisfb_write_nbridge_pci_dword(SiS_Pr, 0x50, templ); SiS_SetCRT1FIFO_630() 2517 templ = sisfb_read_nbridge_pci_dword(SiS_Pr, 0xA0); SiS_SetCRT1FIFO_630() 2520 if(SiS_Pr->ChipType == SIS_730) { SiS_SetCRT1FIFO_630() 2533 sisfb_write_nbridge_pci_dword(SiS_Pr, 0xA0, templ); SiS_SetCRT1FIFO_630() 2539 SiS_SetCRT1FIFO_310(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetCRT1FIFO_310() argument 2544 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x3D,0xFE); SiS_SetCRT1FIFO_310() 2546 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1FIFO_310() 2548 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,0xAE); SiS_SetCRT1FIFO_310() 2549 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x09,0xF0); SiS_SetCRT1FIFO_310() 2551 if(SiS_Pr->ChipType >= XGI_20) { SiS_SetCRT1FIFO_310() 2552 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,0x34); SiS_SetCRT1FIFO_310() 2553 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x3D,0x01); SiS_SetCRT1FIFO_310() 2554 } else if(SiS_Pr->ChipType >= SIS_661) { SiS_SetCRT1FIFO_310() 2556 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,0x34); SiS_SetCRT1FIFO_310() 2557 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x3D,0x01); SiS_SetCRT1FIFO_310() 2561 SiS_SetReg(SiS_Pr->SiS_P3c4,0x08,0x34); SiS_SetCRT1FIFO_310() 2562 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x3D,0x01); SiS_SetCRT1FIFO_310() 2574 SiS_SetVCLKState(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetVCLKState() argument 2580 if(SiS_Pr->UseCustomMode) { SiS_SetVCLKState() 2581 VCLK = SiS_Pr->CSRClock; SiS_SetVCLKState() 2583 index = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetVCLKState() 2584 VCLK = SiS_Pr->SiS_VCLKData[index].CLOCK; SiS_SetVCLKState() 2588 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetVCLKState() 2591 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x07,0x7B,data); SiS_SetVCLKState() 2595 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x32,0xF7,data); SiS_SetVCLKState() 2597 } else if(SiS_Pr->ChipType < XGI_20) { SiS_SetVCLKState() 2600 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x32,0xf3,data); SiS_SetVCLKState() 2603 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1f,0xe7); SiS_SetVCLKState() 2609 if(SiS_Pr->ChipType == XGI_20) data &= ~0x04; SiS_SetVCLKState() 2610 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x32,0xf3,data); SiS_SetVCLKState() 2611 if(SiS_Pr->ChipType != XGI_20) { SiS_SetVCLKState() 2612 data = SiS_GetReg(SiS_Pr->SiS_P3c4,0x1f) & 0xe7; SiS_SetVCLKState() 2614 SiS_SetReg(SiS_Pr->SiS_P3c4,0x1f,data); SiS_SetVCLKState() 2620 if(SiS_Pr->ChipType >= SIS_661) { SiS_SetVCLKState() 2622 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x07,0xE8,0x10); SiS_SetVCLKState() 2631 if(SiS_Pr->ChipType == SIS_540) { SiS_SetVCLKState() 2636 if(SiS_Pr->ChipType < SIS_315H) { SiS_SetVCLKState() 2637 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x07,0xFC,data); SiS_SetVCLKState() 2639 if(SiS_Pr->ChipType > SIS_315PRO) { SiS_SetVCLKState() 2642 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x07,0xF8,data); SiS_SetVCLKState() 2649 SiS_SetCRT1ModeRegs(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_SetCRT1ModeRegs() argument 2654 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_SetCRT1ModeRegs() 2658 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1ModeRegs() 2660 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1ModeRegs() 2661 infoflag = SiS_Pr->CInfoFlag; SiS_SetCRT1ModeRegs() 2663 resindex = SiS_GetResInfo(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1ModeRegs() 2665 infoflag = SiS_Pr->SiS_RefIndex[RRTI].Ext_InfoFlag; SiS_SetCRT1ModeRegs() 2670 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1F,0x3F); SiS_SetCRT1ModeRegs() 2674 if(SiS_Pr->SiS_ModeType > ModeEGA) { SiS_SetCRT1ModeRegs() 2676 data |= ((SiS_Pr->SiS_ModeType - ModeVGA) << 2); SiS_SetCRT1ModeRegs() 2680 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x06,0xC0,data); SiS_SetCRT1ModeRegs() 2682 if(SiS_Pr->ChipType != SIS_300) { SiS_SetCRT1ModeRegs() 2686 int hrs = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x04) | SiS_SetCRT1ModeRegs() 2687 ((SiS_GetReg(SiS_Pr->SiS_P3c4,0x0b) & 0xc0) << 2)) - 3; SiS_SetCRT1ModeRegs() 2688 int hto = (SiS_GetReg(SiS_Pr->SiS_P3d4,0x00) | SiS_SetCRT1ModeRegs() 2689 ((SiS_GetReg(SiS_Pr->SiS_P3c4,0x0b) & 0x03) << 8)) + 5; SiS_SetCRT1ModeRegs() 2692 SiS_SetReg(SiS_Pr->SiS_P3d4,0x19,data); SiS_SetCRT1ModeRegs() 2693 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x1a,0xFC,((data >> 8) & 0x03)); SiS_SetCRT1ModeRegs() 2697 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x01,0x08); SiS_SetCRT1ModeRegs() 2702 if(SiS_Pr->ChipType == SIS_300) { SiS_SetCRT1ModeRegs() 2703 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0F,0xF7,data); SiS_SetCRT1ModeRegs() 2705 if(SiS_Pr->ChipType >= XGI_20) data |= 0x20; SiS_SetCRT1ModeRegs() 2706 if(SiS_Pr->SiS_ModeType == ModeEGA) { SiS_SetCRT1ModeRegs() 2711 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0F,0xB7,data); SiS_SetCRT1ModeRegs() 2715 if(SiS_Pr->ChipType >= SIS_315H) { SiS_SetCRT1ModeRegs() 2716 SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x31,0xfb); SiS_SetCRT1ModeRegs() 2719 if(SiS_Pr->ChipType == SIS_315PRO) { SiS_SetCRT1ModeRegs() 2721 data = SiS_Pr->SiS_SR15[(2 * 4) + SiS_Get310DRAMType(SiS_Pr)]; SiS_SetCRT1ModeRegs() 2722 if(SiS_Pr->SiS_ModeType == ModeText) { SiS_SetCRT1ModeRegs() 2725 data2 = SiS_GetOffset(SiS_Pr, ModeNo, ModeIdIndex, RRTI) >> 1; SiS_SetCRT1ModeRegs() 2727 data3 = SiS_GetColorDepth(SiS_Pr, ModeNo, ModeIdIndex) >> 1; SiS_SetCRT1ModeRegs() 2734 SiS_SetReg(SiS_Pr->SiS_P3c4,0x17,data); SiS_SetCRT1ModeRegs() 2736 } else if((SiS_Pr->ChipType == SIS_330) || (SiS_Pr->SiS_SysFlags & SF_760LFB)) { SiS_SetCRT1ModeRegs() 2738 data = SiS_Get310DRAMType(SiS_Pr); SiS_SetCRT1ModeRegs() 2739 if(SiS_Pr->ChipType == SIS_330) { SiS_SetCRT1ModeRegs() 2740 data = SiS_Pr->SiS_SR15[(2 * 4) + data]; SiS_SetCRT1ModeRegs() 2742 if(SiS_Pr->SiS_ROMNew) data = ROMAddr[0xf6]; SiS_SetCRT1ModeRegs() 2743 else if(SiS_Pr->SiS_UseROM) data = ROMAddr[0x100 + data]; SiS_SetCRT1ModeRegs() 2746 if(SiS_Pr->SiS_ModeType <= ModeEGA) { SiS_SetCRT1ModeRegs() 2749 if(SiS_Pr->UseCustomMode) { SiS_SetCRT1ModeRegs() 2750 data2 = SiS_Pr->CSRClock; SiS_SetCRT1ModeRegs() 2752 data2 = SiS_GetVCLK2Ptr(SiS_Pr, ModeNo, ModeIdIndex, RRTI); SiS_SetCRT1ModeRegs() 2753 data2 = SiS_Pr->SiS_VCLKData[data2].CLOCK; SiS_SetCRT1ModeRegs() 2756 data3 = SiS_GetColorDepth(SiS_Pr, ModeNo, ModeIdIndex) >> 1; SiS_SetCRT1ModeRegs() 2759 data2 = ((unsigned int)(SiS_GetMCLK(SiS_Pr) * 1024)) / data2; SiS_SetCRT1ModeRegs() 2761 if(SiS_Pr->ChipType == SIS_330) { SiS_SetCRT1ModeRegs() 2762 if(SiS_Pr->SiS_ModeType != Mode16Bpp) { SiS_SetCRT1ModeRegs() 2786 SiS_SetReg(SiS_Pr->SiS_P3c4,0x17,data); SiS_SetCRT1ModeRegs() 2794 if(SiS_Pr->SiS_ModeType != ModeText) { SiS_SetCRT1ModeRegs() 2796 if(SiS_Pr->SiS_ModeType != ModeEGA) { SiS_SetCRT1ModeRegs() 2800 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x21,0x1F,data); SiS_SetCRT1ModeRegs() 2802 SiS_SetVCLKState(SiS_Pr, ModeNo, RRTI, ModeIdIndex); SiS_SetCRT1ModeRegs() 2805 if(((SiS_Pr->ChipType >= SIS_315H) && (SiS_Pr->ChipType < SIS_661)) || SiS_SetCRT1ModeRegs() 2806 (SiS_Pr->ChipType == XGI_40)) { SiS_SetCRT1ModeRegs() 2807 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & 0x40) { SiS_SetCRT1ModeRegs() 2808 SiS_SetReg(SiS_Pr->SiS_P3d4,0x52,0x2c); SiS_SetCRT1ModeRegs() 2810 SiS_SetReg(SiS_Pr->SiS_P3d4,0x52,0x6c); SiS_SetCRT1ModeRegs() 2812 } else if(SiS_Pr->ChipType == XGI_20) { SiS_SetCRT1ModeRegs() 2813 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & 0x40) { SiS_SetCRT1ModeRegs() 2814 SiS_SetReg(SiS_Pr->SiS_P3d4,0x52,0x33); SiS_SetCRT1ModeRegs() 2816 SiS_SetReg(SiS_Pr->SiS_P3d4,0x52,0x73); SiS_SetCRT1ModeRegs() 2818 SiS_SetReg(SiS_Pr->SiS_P3d4,0x51,0x02); SiS_SetCRT1ModeRegs() 2825 SiS_SetupDualChip(struct SiS_Private *SiS_Pr) SiS_SetupDualChip() argument 2829 SISIOADDRESS P2_3c2 = SiS_Pr->IOAddress2 + 0x12; SiS_SetupDualChip() 2830 SISIOADDRESS P2_3c4 = SiS_Pr->IOAddress2 + 0x14; SiS_SetupDualChip() 2831 SISIOADDRESS P2_3ce = SiS_Pr->IOAddress2 + 0x1e; SiS_SetupDualChip() 2834 if((SiS_Pr->ChipRevision != 0) || SiS_SetupDualChip() 2835 (!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x3a) & 0x04))) SiS_SetupDualChip() 2839 SiS_SetReg(P2_3c4,i,SiS_GetReg(SiS_Pr->SiS_P3c4,i)); SiS_SetupDualChip() 2842 SiS_SetReg(P2_3ce,i,SiS_GetReg(SiS_Pr->SiS_P3ce,i)); SiS_SetupDualChip() 2845 SiS_SetReg(P2_3c4,0x06,SiS_GetReg(SiS_Pr->SiS_P3c4,0x06)); /* SR06 */ SiS_SetupDualChip() 2846 SiS_SetReg(P2_3c4,0x21,SiS_GetReg(SiS_Pr->SiS_P3c4,0x21)); /* SR21 */ SiS_SetupDualChip() 2847 SiS_SetRegByte(P2_3c2,SiS_GetRegByte(SiS_Pr->SiS_P3cc)); /* MISC */ SiS_SetupDualChip() 2858 SiS_WriteDAC(struct SiS_Private *SiS_Pr, SISIOADDRESS DACData, unsigned short shiftflag, SiS_WriteDAC() argument 2874 SiS_LoadDAC(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_LoadDAC() argument 2881 data = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex) & DACInfoFlag; SiS_LoadDAC() 2893 if( ( (SiS_Pr->SiS_VBInfo & SetCRT2ToLCD) && /* 301B-DH LCD */ SiS_LoadDAC() 2894 (SiS_Pr->SiS_VBType & VB_NoLCD) ) || SiS_LoadDAC() 2895 (SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) || /* LCDA */ SiS_LoadDAC() 2896 (!(SiS_Pr->SiS_SetFlag & ProgrammingCRT2)) ) { /* Programming CRT1 */ SiS_LoadDAC() 2897 SiS_SetRegByte(SiS_Pr->SiS_P3c6,0xFF); SiS_LoadDAC() 2898 DACAddr = SiS_Pr->SiS_P3c8; SiS_LoadDAC() 2899 DACData = SiS_Pr->SiS_P3c9; SiS_LoadDAC() 2902 DACAddr = SiS_Pr->SiS_Part5Port; SiS_LoadDAC() 2903 DACData = SiS_Pr->SiS_Part5Port + 1; SiS_LoadDAC() 2931 SiS_WriteDAC(SiS_Pr, DACData, sf, n, table[di], table[bx], table[si]); SiS_LoadDAC() 2936 SiS_WriteDAC(SiS_Pr, DACData, sf, n, table[di], table[si], table[bx]); SiS_LoadDAC() 2950 SiS_SetCRT1Group(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned short ModeIdIndex) SiS_SetCRT1Group() argument 2954 SiS_Pr->SiS_CRT1Mode = ModeNo; SiS_SetCRT1Group() 2956 StandTableIndex = SiS_GetModePtr(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1Group() 2958 if(SiS_Pr->SiS_SetFlag & LowModeTests) { SiS_SetCRT1Group() 2959 if(SiS_Pr->SiS_VBInfo & (SetSimuScanMode | SwitchCRT2)) { SiS_SetCRT1Group() 2960 SiS_DisableBridge(SiS_Pr); SiS_SetCRT1Group() 2964 SiS_ResetSegmentRegisters(SiS_Pr); SiS_SetCRT1Group() 2966 SiS_SetSeqRegs(SiS_Pr, StandTableIndex); SiS_SetCRT1Group() 2967 SiS_SetMiscRegs(SiS_Pr, StandTableIndex); SiS_SetCRT1Group() 2968 SiS_SetCRTCRegs(SiS_Pr, StandTableIndex); SiS_SetCRT1Group() 2969 SiS_SetATTRegs(SiS_Pr, StandTableIndex); SiS_SetCRT1Group() 2970 SiS_SetGRCRegs(SiS_Pr, StandTableIndex); SiS_SetCRT1Group() 2971 SiS_ClearExt1Regs(SiS_Pr, ModeNo); SiS_SetCRT1Group() 2972 SiS_ResetCRT1VCLK(SiS_Pr); SiS_SetCRT1Group() 2974 SiS_Pr->SiS_SelectCRT2Rate = 0; SiS_SetCRT1Group() 2975 SiS_Pr->SiS_SetFlag &= (~ProgrammingCRT2); SiS_SetCRT1Group() 2977 if(SiS_Pr->SiS_VBInfo & SetSimuScanMode) { SiS_SetCRT1Group() 2978 if(SiS_Pr->SiS_VBInfo & SetInSlaveMode) { SiS_SetCRT1Group() 2979 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT1Group() 2983 if(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA) { SiS_SetCRT1Group() 2984 SiS_Pr->SiS_SetFlag |= ProgrammingCRT2; SiS_SetCRT1Group() 2987 RefreshRateTableIndex = SiS_GetRatePtr(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1Group() 2989 if(!(SiS_Pr->SiS_VBInfo & SetCRT2ToLCDA)) { SiS_SetCRT1Group() 2990 SiS_Pr->SiS_SetFlag &= ~ProgrammingCRT2; SiS_SetCRT1Group() 2994 SiS_SetCRT1Sync(SiS_Pr, RefreshRateTableIndex); SiS_SetCRT1Group() 2995 SiS_SetCRT1CRTC(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT1Group() 2996 SiS_SetCRT1Offset(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT1Group() 2997 SiS_SetCRT1VCLK(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT1Group() 3000 switch(SiS_Pr->ChipType) { SiS_SetCRT1Group() 3003 SiS_SetCRT1FIFO_300(SiS_Pr, ModeNo, RefreshRateTableIndex); SiS_SetCRT1Group() 3008 SiS_SetCRT1FIFO_630(SiS_Pr, ModeNo, RefreshRateTableIndex); SiS_SetCRT1Group() 3013 if(SiS_Pr->ChipType == XGI_20) { SiS_SetCRT1Group() 3023 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2b,sr2b); SiS_SetCRT1Group() 3024 SiS_SetReg(SiS_Pr->SiS_P3c4,0x2c,sr2c); SiS_SetCRT1Group() 3025 SiS_SetRegByte(SiS_Pr->SiS_P3c2,(SiS_GetRegByte(SiS_Pr->SiS_P3cc) | 0x0c)); SiS_SetCRT1Group() 3028 SiS_SetCRT1FIFO_310(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1Group() 3033 SiS_SetCRT1ModeRegs(SiS_Pr, ModeNo, ModeIdIndex, RefreshRateTableIndex); SiS_SetCRT1Group() 3036 if(SiS_Pr->ChipType == XGI_40) { SiS_SetCRT1Group() 3037 SiS_SetupDualChip(SiS_Pr); SiS_SetCRT1Group() 3041 SiS_LoadDAC(SiS_Pr, ModeNo, ModeIdIndex); SiS_SetCRT1Group() 3043 if(SiS_Pr->SiS_flag_clearbuffer) { SiS_SetCRT1Group() 3044 SiS_ClearBuffer(SiS_Pr, ModeNo); SiS_SetCRT1Group() 3047 if(!(SiS_Pr->SiS_VBInfo & (SetSimuScanMode | SwitchCRT2 | SetCRT2ToLCDA))) { SiS_SetCRT1Group() 3048 SiS_WaitRetrace1(SiS_Pr); SiS_SetCRT1Group() 3049 SiS_DisplayOn(SiS_Pr); SiS_SetCRT1Group() 3058 SiS_InitVB(struct SiS_Private *SiS_Pr) SiS_InitVB() argument 3060 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_InitVB() 3062 SiS_Pr->Init_P4_0E = 0; SiS_InitVB() 3063 if(SiS_Pr->SiS_ROMNew) { SiS_InitVB() 3064 SiS_Pr->Init_P4_0E = ROMAddr[0x82]; SiS_InitVB() 3065 } else if(SiS_Pr->ChipType >= XGI_40) { SiS_InitVB() 3066 if(SiS_Pr->SiS_XGIROM) { SiS_InitVB() 3067 SiS_Pr->Init_P4_0E = ROMAddr[0x80]; SiS_InitVB() 3073 SiS_ResetVB(struct SiS_Private *SiS_Pr) SiS_ResetVB() argument 3076 unsigned char *ROMAddr = SiS_Pr->VirtualRomBase; SiS_ResetVB() 3080 if(SiS_Pr->SiS_UseROM) { SiS_ResetVB() 3081 if(SiS_Pr->ChipType < SIS_330) { SiS_ResetVB() 3083 if(SiS_Pr->SiS_ROMNew) temp = ROMAddr[0x80] | 0x40; SiS_ResetVB() 3084 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x02,temp); SiS_ResetVB() 3085 } else if(SiS_Pr->ChipType >= SIS_661 && SiS_Pr->ChipType < XGI_20) { SiS_ResetVB() 3087 if(SiS_Pr->SiS_ROMNew) temp = ROMAddr[0x80] | 0x40; SiS_ResetVB() 3088 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x02,temp); SiS_ResetVB() 3090 } else if(SiS_Pr->ChipType >= XGI_40) { SiS_ResetVB() 3092 if(SiS_Pr->SiS_XGIROM) temp |= ROMAddr[0x7e]; SiS_ResetVB() 3094 SiS_SetReg(SiS_Pr->SiS_Part1Port,0x02,temp); SiS_ResetVB() 3104 SiS_StrangeStuff(struct SiS_Private *SiS_Pr) SiS_StrangeStuff() argument 3112 SiS_Pr->ChipType == SIS_340 || SiS_StrangeStuff() 3113 SiS_Pr->ChipType == XGI_40) { SiS_StrangeStuff() 3114 SiS_SetReg(SiS_Pr->SiS_VidCapt, 0x3f, 0x00); /* Fiddle with capture regs */ SiS_StrangeStuff() 3115 SiS_SetReg(SiS_Pr->SiS_VidCapt, 0x00, 0x00); SiS_StrangeStuff() 3116 SiS_SetReg(SiS_Pr->SiS_VidPlay, 0x00, 0x86); /* (BIOS does NOT unlock) */ SiS_StrangeStuff() 3117 SiS_SetRegAND(SiS_Pr->SiS_VidPlay, 0x30, 0xfe); /* Fiddle with video regs */ SiS_StrangeStuff() 3118 SiS_SetRegAND(SiS_Pr->SiS_VidPlay, 0x3f, 0xef); SiS_StrangeStuff() 3129 SiS_Handle760(struct SiS_Private *SiS_Pr) SiS_Handle760() argument 3135 if( (SiS_Pr->ChipType != SIS_760) || SiS_Handle760() 3136 ((SiS_GetReg(SiS_Pr->SiS_P3d4, 0x5c) & 0xf8) != 0x80) || SiS_Handle760() 3137 (!(SiS_Pr->SiS_SysFlags & SF_760LFB)) || SiS_Handle760() 3138 (!(SiS_Pr->SiS_SysFlags & SF_760UMA)) ) SiS_Handle760() 3141 somebase = sisfb_read_mio_pci_word(SiS_Pr, 0x74); SiS_Handle760() 3148 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x31) & 0x40) { SiS_Handle760() 3157 sisfb_write_nbridge_pci_byte(SiS_Pr, 0x7e, temp1); SiS_Handle760() 3158 sisfb_write_nbridge_pci_byte(SiS_Pr, 0x8d, temp2); SiS_Handle760() 3169 SiSSetMode(struct SiS_Private *SiS_Pr, unsigned short ModeNo) SiSSetMode() argument 3171 SISIOADDRESS BaseAddr = SiS_Pr->IOAddress; SiSSetMode() 3176 SiS_Pr->UseCustomMode = false; SiSSetMode() 3177 SiS_Pr->CRT1UsesCustomMode = false; SiSSetMode() 3179 SiS_Pr->SiS_flag_clearbuffer = 0; SiSSetMode() 3181 if(SiS_Pr->UseCustomMode) { SiSSetMode() 3184 if(!(ModeNo & 0x80)) SiS_Pr->SiS_flag_clearbuffer = 1; SiSSetMode() 3192 SiSInitPtr(SiS_Pr); SiSSetMode() 3193 SiSRegInit(SiS_Pr, BaseAddr); SiSSetMode() 3194 SiS_GetSysFlags(SiS_Pr); SiSSetMode() 3196 SiS_Pr->SiS_VGAINFO = 0x11; SiSSetMode() 3198 KeepLockReg = SiS_GetReg(SiS_Pr->SiS_P3c4,0x05); SiSSetMode() 3199 SiS_SetReg(SiS_Pr->SiS_P3c4,0x05,0x86); SiSSetMode() 3201 SiSInitPCIetc(SiS_Pr); SiSSetMode() 3202 SiSSetLVDSetc(SiS_Pr); SiSSetMode() 3203 SiSDetermineROMUsage(SiS_Pr); SiSSetMode() 3205 SiS_UnLockCRT2(SiS_Pr); SiSSetMode() 3207 if(!SiS_Pr->UseCustomMode) { SiSSetMode() 3208 if(!(SiS_SearchModeID(SiS_Pr, &ModeNo, &ModeIdIndex))) return false; SiSSetMode() 3213 SiS_GetVBType(SiS_Pr); SiSSetMode() 3216 SiS_InitVB(SiS_Pr); SiSSetMode() 3217 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiSSetMode() 3218 if(SiS_Pr->ChipType >= SIS_315H) { SiSSetMode() 3219 SiS_ResetVB(SiS_Pr); SiSSetMode() 3220 SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x32,0x10); SiSSetMode() 3221 SiS_SetRegOR(SiS_Pr->SiS_Part2Port,0x00,0x0c); SiSSetMode() 3222 backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x38); SiSSetMode() 3224 backupreg = SiS_GetReg(SiS_Pr->SiS_P3d4,0x35); SiSSetMode() 3229 SiS_GetVBInfo(SiS_Pr, ModeNo, ModeIdIndex, (SiS_Pr->UseCustomMode) ? 0 : 1); SiSSetMode() 3230 SiS_SetYPbPr(SiS_Pr); SiSSetMode() 3231 SiS_SetTVMode(SiS_Pr, ModeNo, ModeIdIndex); SiSSetMode() 3232 SiS_GetLCDResInfo(SiS_Pr, ModeNo, ModeIdIndex); SiSSetMode() 3233 SiS_SetLowModeTest(SiS_Pr, ModeNo); SiSSetMode() 3236 if(!SiS_CheckMemorySize(SiS_Pr, ModeNo, ModeIdIndex)) { SiSSetMode() 3240 SiS_OpenCRTC(SiS_Pr); SiSSetMode() 3242 if(SiS_Pr->UseCustomMode) { SiSSetMode() 3243 SiS_Pr->CRT1UsesCustomMode = true; SiSSetMode() 3244 SiS_Pr->CSRClock_CRT1 = SiS_Pr->CSRClock; SiSSetMode() 3245 SiS_Pr->CModeFlag_CRT1 = SiS_Pr->CModeFlag; SiSSetMode() 3247 SiS_Pr->CRT1UsesCustomMode = false; SiSSetMode() 3251 if( (SiS_Pr->SiS_VBInfo & (SetSimuScanMode | SetCRT2ToLCDA)) || SiSSetMode() 3252 (!(SiS_Pr->SiS_VBInfo & SwitchCRT2)) ) { SiSSetMode() 3253 SiS_SetCRT1Group(SiS_Pr, ModeNo, ModeIdIndex); SiSSetMode() 3257 if(SiS_Pr->SiS_VBInfo & (SetSimuScanMode | SwitchCRT2 | SetCRT2ToLCDA)) { SiSSetMode() 3258 if( (SiS_Pr->SiS_VBType & VB_SISVB) || SiSSetMode() 3259 (SiS_Pr->SiS_IF_DEF_LVDS == 1) || SiSSetMode() 3260 (SiS_Pr->SiS_IF_DEF_CH70xx != 0) || SiSSetMode() 3261 (SiS_Pr->SiS_IF_DEF_TRUMPION != 0) ) { SiSSetMode() 3262 SiS_SetCRT2Group(SiS_Pr, RealModeNo); SiSSetMode() 3266 SiS_HandleCRT1(SiS_Pr); SiSSetMode() 3268 SiS_StrangeStuff(SiS_Pr); SiSSetMode() 3270 SiS_DisplayOn(SiS_Pr); SiSSetMode() 3271 SiS_SetRegByte(SiS_Pr->SiS_P3c6,0xFF); SiSSetMode() 3274 if(SiS_Pr->ChipType >= SIS_315H) { SiSSetMode() 3275 if(SiS_Pr->SiS_IF_DEF_LVDS == 1) { SiSSetMode() 3276 if(!(SiS_IsDualEdge(SiS_Pr))) { SiSSetMode() 3277 SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb); SiSSetMode() 3283 if(SiS_Pr->SiS_VBType & VB_SIS30xBLV) { SiSSetMode() 3284 if(SiS_Pr->ChipType >= SIS_315H) { SiSSetMode() 3286 if(!SiS_Pr->SiS_ROMNew) { SiSSetMode() 3287 if(SiS_IsVAMode(SiS_Pr)) { SiSSetMode() 3288 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x35,0x01); SiSSetMode() 3290 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x35,0xFE); SiSSetMode() 3294 SiS_SetReg(SiS_Pr->SiS_P3d4,0x38,backupreg); SiSSetMode() 3296 if((IS_SIS650) && (SiS_GetReg(SiS_Pr->SiS_P3d4,0x30) & 0xfc)) { SiSSetMode() 3298 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x51,0x80); SiSSetMode() 3299 SiS_SetRegOR(SiS_Pr->SiS_P3d4,0x56,0x08); SiSSetMode() 3303 if(SiS_GetReg(SiS_Pr->SiS_P3d4,0x30) & SetCRT2ToLCD) { SiSSetMode() 3304 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x38,0xfc); SiSSetMode() 3307 } else if((SiS_Pr->ChipType == SIS_630) || SiSSetMode() 3308 (SiS_Pr->ChipType == SIS_730)) { SiSSetMode() 3309 SiS_SetReg(SiS_Pr->SiS_P3d4,0x35,backupreg); SiSSetMode() 3313 SiS_CloseCRTC(SiS_Pr); SiSSetMode() 3315 SiS_Handle760(SiS_Pr); SiSSetMode() 3318 if(KeepLockReg != 0xA1) SiS_SetReg(SiS_Pr->SiS_P3c4,0x05,0x00); SiSSetMode() 3330 SiS_CalcCRRegisters(struct SiS_Private *SiS_Pr, int depth) SiS_CalcCRRegisters() argument 3334 SiS_Pr->CCRT1CRTC[0] = ((SiS_Pr->CHTotal >> 3) - 5) & 0xff; /* CR0 */ SiS_CalcCRRegisters() 3335 SiS_Pr->CCRT1CRTC[1] = (SiS_Pr->CHDisplay >> 3) - 1; /* CR1 */ SiS_CalcCRRegisters() 3336 SiS_Pr->CCRT1CRTC[2] = (SiS_Pr->CHBlankStart >> 3) - 1; /* CR2 */ SiS_CalcCRRegisters() 3337 SiS_Pr->CCRT1CRTC[3] = (((SiS_Pr->CHBlankEnd >> 3) - 1) & 0x1F) | 0x80; /* CR3 */ SiS_CalcCRRegisters() 3338 SiS_Pr->CCRT1CRTC[4] = (SiS_Pr->CHSyncStart >> 3) + 3; /* CR4 */ SiS_CalcCRRegisters() 3339 SiS_Pr->CCRT1CRTC[5] = ((((SiS_Pr->CHBlankEnd >> 3) - 1) & 0x20) << 2) | /* CR5 */ SiS_CalcCRRegisters() 3340 (((SiS_Pr->CHSyncEnd >> 3) + 3) & 0x1F); SiS_CalcCRRegisters() 3342 SiS_Pr->CCRT1CRTC[6] = (SiS_Pr->CVTotal - 2) & 0xFF; /* CR6 */ SiS_CalcCRRegisters() 3343 SiS_Pr->CCRT1CRTC[7] = (((SiS_Pr->CVTotal - 2) & 0x100) >> 8) /* CR7 */ SiS_CalcCRRegisters() 3344 | (((SiS_Pr->CVDisplay - 1) & 0x100) >> 7) SiS_CalcCRRegisters() 3345 | (((SiS_Pr->CVSyncStart - x) & 0x100) >> 6) SiS_CalcCRRegisters() 3346 | (((SiS_Pr->CVBlankStart- 1) & 0x100) >> 5) SiS_CalcCRRegisters() 3348 | (((SiS_Pr->CVTotal - 2) & 0x200) >> 4) SiS_CalcCRRegisters() 3349 | (((SiS_Pr->CVDisplay - 1) & 0x200) >> 3) SiS_CalcCRRegisters() 3350 | (((SiS_Pr->CVSyncStart - x) & 0x200) >> 2); SiS_CalcCRRegisters() 3352 SiS_Pr->CCRT1CRTC[16] = ((((SiS_Pr->CVBlankStart - 1) & 0x200) >> 4) >> 5); /* CR9 */ SiS_CalcCRRegisters() 3355 if(SiS_Pr->CHDisplay >= 1600) SiS_Pr->CCRT1CRTC[16] |= 0x60; /* SRE */ SiS_CalcCRRegisters() 3356 else if(SiS_Pr->CHDisplay >= 640) SiS_Pr->CCRT1CRTC[16] |= 0x40; SiS_CalcCRRegisters() 3359 SiS_Pr->CCRT1CRTC[8] = (SiS_Pr->CVSyncStart - x) & 0xFF; /* CR10 */ SiS_CalcCRRegisters() 3360 SiS_Pr->CCRT1CRTC[9] = ((SiS_Pr->CVSyncEnd - x) & 0x0F) | 0x80; /* CR11 */ SiS_CalcCRRegisters() 3361 SiS_Pr->CCRT1CRTC[10] = (SiS_Pr->CVDisplay - 1) & 0xFF; /* CR12 */ SiS_CalcCRRegisters() 3362 SiS_Pr->CCRT1CRTC[11] = (SiS_Pr->CVBlankStart - 1) & 0xFF; /* CR15 */ SiS_CalcCRRegisters() 3363 SiS_Pr->CCRT1CRTC[12] = (SiS_Pr->CVBlankEnd - 1) & 0xFF; /* CR16 */ SiS_CalcCRRegisters() 3365 SiS_Pr->CCRT1CRTC[13] = /* SRA */ SiS_CalcCRRegisters() 3366 GETBITSTR((SiS_Pr->CVTotal -2), 10:10, 0:0) | SiS_CalcCRRegisters() 3367 GETBITSTR((SiS_Pr->CVDisplay -1), 10:10, 1:1) | SiS_CalcCRRegisters() 3368 GETBITSTR((SiS_Pr->CVBlankStart-1), 10:10, 2:2) | SiS_CalcCRRegisters() 3369 GETBITSTR((SiS_Pr->CVSyncStart -x), 10:10, 3:3) | SiS_CalcCRRegisters() 3370 GETBITSTR((SiS_Pr->CVBlankEnd -1), 8:8, 4:4) | SiS_CalcCRRegisters() 3371 GETBITSTR((SiS_Pr->CVSyncEnd ), 4:4, 5:5) ; SiS_CalcCRRegisters() 3373 SiS_Pr->CCRT1CRTC[14] = /* SRB */ SiS_CalcCRRegisters() 3374 GETBITSTR((SiS_Pr->CHTotal >> 3) - 5, 9:8, 1:0) | SiS_CalcCRRegisters() 3375 GETBITSTR((SiS_Pr->CHDisplay >> 3) - 1, 9:8, 3:2) | SiS_CalcCRRegisters() 3376 GETBITSTR((SiS_Pr->CHBlankStart >> 3) - 1, 9:8, 5:4) | SiS_CalcCRRegisters() 3377 GETBITSTR((SiS_Pr->CHSyncStart >> 3) + 3, 9:8, 7:6) ; SiS_CalcCRRegisters() 3380 SiS_Pr->CCRT1CRTC[15] = /* SRC */ SiS_CalcCRRegisters() 3381 GETBITSTR((SiS_Pr->CHBlankEnd >> 3) - 1, 7:6, 1:0) | SiS_CalcCRRegisters() 3382 GETBITSTR((SiS_Pr->CHSyncEnd >> 3) + 3, 5:5, 2:2) ; SiS_CalcCRRegisters() 3386 SiS_CalcLCDACRT1Timing(struct SiS_Private *SiS_Pr, unsigned short ModeNo, SiS_CalcLCDACRT1Timing() argument 3390 unsigned short VGAHDE = SiS_Pr->SiS_VGAHDE; SiS_CalcLCDACRT1Timing() 3394 if(SiS_Pr->SiS_LCDInfo & LCDPass11) return; SiS_CalcLCDACRT1Timing() 3396 modeflag = SiS_GetModeFlag(SiS_Pr, ModeNo, ModeIdIndex); SiS_CalcLCDACRT1Timing() 3400 SiS_Pr->CHDisplay = VGAHDE; SiS_CalcLCDACRT1Timing() 3401 SiS_Pr->CHBlankStart = VGAHDE; SiS_CalcLCDACRT1Timing() 3403 SiS_Pr->CVDisplay = SiS_Pr->SiS_VGAVDE; SiS_CalcLCDACRT1Timing() 3404 SiS_Pr->CVBlankStart = SiS_Pr->SiS_VGAVDE; SiS_CalcLCDACRT1Timing() 3406 if(SiS_Pr->ChipType < SIS_315H) { SiS_CalcLCDACRT1Timing() 3408 tempbx = SiS_Pr->SiS_VGAHT; SiS_CalcLCDACRT1Timing() 3409 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3410 tempbx = SiS_Pr->PanelHT; SiS_CalcLCDACRT1Timing() 3418 tempbx = SiS_Pr->PanelHT - SiS_Pr->PanelXRes; SiS_CalcLCDACRT1Timing() 3419 tempax = SiS_Pr->SiS_VGAHDE; /* not /2 ! */ SiS_CalcLCDACRT1Timing() 3420 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3421 tempax = SiS_Pr->PanelXRes; SiS_CalcLCDACRT1Timing() 3427 SiS_Pr->CHTotal = SiS_Pr->CHBlankEnd = tempbx; SiS_CalcLCDACRT1Timing() 3429 if(SiS_Pr->ChipType < SIS_315H) { SiS_CalcLCDACRT1Timing() 3431 if(SiS_Pr->SiS_VGAHDE == SiS_Pr->PanelXRes) { SiS_CalcLCDACRT1Timing() 3432 SiS_Pr->CHSyncStart = SiS_Pr->SiS_VGAHDE + ((SiS_Pr->PanelHRS + 1) & ~1); SiS_CalcLCDACRT1Timing() 3433 SiS_Pr->CHSyncEnd = SiS_Pr->CHSyncStart + SiS_Pr->PanelHRE; SiS_CalcLCDACRT1Timing() 3435 SiS_Pr->CHSyncStart >>= 1; SiS_CalcLCDACRT1Timing() 3436 SiS_Pr->CHSyncEnd >>= 1; SiS_CalcLCDACRT1Timing() 3438 } else if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3439 tempax = (SiS_Pr->PanelXRes - SiS_Pr->SiS_VGAHDE) >> 1; SiS_CalcLCDACRT1Timing() 3440 tempbx = (SiS_Pr->PanelHRS + 1) & ~1; SiS_CalcLCDACRT1Timing() 3445 SiS_Pr->CHSyncStart = (VGAHDE + tempax + tempbx + 7) & ~7; SiS_CalcLCDACRT1Timing() 3446 tempax = SiS_Pr->PanelHRE + 7; SiS_CalcLCDACRT1Timing() 3448 SiS_Pr->CHSyncEnd = (SiS_Pr->CHSyncStart + tempax) & ~7; SiS_CalcLCDACRT1Timing() 3450 SiS_Pr->CHSyncStart = SiS_Pr->SiS_VGAHDE; SiS_CalcLCDACRT1Timing() 3452 SiS_Pr->CHSyncStart >>= 1; SiS_CalcLCDACRT1Timing() 3453 tempax = ((SiS_Pr->CHTotal - SiS_Pr->CHSyncStart) / 3) << 1; SiS_CalcLCDACRT1Timing() 3454 SiS_Pr->CHSyncEnd = SiS_Pr->CHSyncStart + tempax; SiS_CalcLCDACRT1Timing() 3456 SiS_Pr->CHSyncEnd = (SiS_Pr->CHSyncStart + (SiS_Pr->CHTotal / 10) + 7) & ~7; SiS_CalcLCDACRT1Timing() 3457 SiS_Pr->CHSyncStart += 8; SiS_CalcLCDACRT1Timing() 3464 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3465 tempbx = SiS_Pr->PanelXRes; SiS_CalcLCDACRT1Timing() 3469 tempax += SiS_Pr->PanelHRS; SiS_CalcLCDACRT1Timing() 3470 SiS_Pr->CHSyncStart = tempax; SiS_CalcLCDACRT1Timing() 3471 tempax += SiS_Pr->PanelHRE; SiS_CalcLCDACRT1Timing() 3472 SiS_Pr->CHSyncEnd = tempax; SiS_CalcLCDACRT1Timing() 3476 tempbx = SiS_Pr->PanelVT - SiS_Pr->PanelYRes; SiS_CalcLCDACRT1Timing() 3477 tempax = SiS_Pr->SiS_VGAVDE; SiS_CalcLCDACRT1Timing() 3478 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3479 tempax = SiS_Pr->PanelYRes; SiS_CalcLCDACRT1Timing() 3480 } else if(SiS_Pr->ChipType < SIS_315H) { SiS_CalcLCDACRT1Timing() 3483 if(SiS_Pr->SiS_LCDResInfo == Panel_1024x768) { SiS_CalcLCDACRT1Timing() 3485 } else if((SiS_Pr->SiS_LCDResInfo == Panel_800x600) || SiS_CalcLCDACRT1Timing() 3486 (SiS_Pr->SiS_LCDResInfo == Panel_1024x600)) { SiS_CalcLCDACRT1Timing() 3488 tempbx = SiS_Pr->SiS_VGAVT; SiS_CalcLCDACRT1Timing() 3492 SiS_Pr->CVTotal = SiS_Pr->CVBlankEnd = tempbx + tempax; SiS_CalcLCDACRT1Timing() 3494 tempax = SiS_Pr->SiS_VGAVDE; SiS_CalcLCDACRT1Timing() 3495 if(SiS_Pr->SiS_LCDInfo & DontExpandLCD) { SiS_CalcLCDACRT1Timing() 3496 tempax += (SiS_Pr->PanelYRes - tempax) >> 1; SiS_CalcLCDACRT1Timing() 3498 tempax += SiS_Pr->PanelVRS; SiS_CalcLCDACRT1Timing() 3499 SiS_Pr->CVSyncStart = tempax; SiS_CalcLCDACRT1Timing() 3500 tempax += SiS_Pr->PanelVRE; SiS_CalcLCDACRT1Timing() 3501 SiS_Pr->CVSyncEnd = tempax; SiS_CalcLCDACRT1Timing() 3502 if(SiS_Pr->ChipType < SIS_315H) { SiS_CalcLCDACRT1Timing() 3503 SiS_Pr->CVSyncStart--; SiS_CalcLCDACRT1Timing() 3504 SiS_Pr->CVSyncEnd--; SiS_CalcLCDACRT1Timing() 3507 SiS_CalcCRRegisters(SiS_Pr, 8); SiS_CalcLCDACRT1Timing() 3508 SiS_Pr->CCRT1CRTC[15] &= ~0xF8; SiS_CalcLCDACRT1Timing() 3509 SiS_Pr->CCRT1CRTC[15] |= (remaining << 4); SiS_CalcLCDACRT1Timing() 3510 SiS_Pr->CCRT1CRTC[16] &= ~0xE0; SiS_CalcLCDACRT1Timing() 3512 SiS_SetRegAND(SiS_Pr->SiS_P3d4,0x11,0x7f); SiS_CalcLCDACRT1Timing() 3515 SiS_SetReg(SiS_Pr->SiS_P3d4,j,SiS_Pr->CCRT1CRTC[i]); SiS_CalcLCDACRT1Timing() 3518 SiS_SetReg(SiS_Pr->SiS_P3d4,j,SiS_Pr->CCRT1CRTC[i]); SiS_CalcLCDACRT1Timing() 3521 SiS_SetReg(SiS_Pr->SiS_P3d4,j,SiS_Pr->CCRT1CRTC[i]); SiS_CalcLCDACRT1Timing() 3524 SiS_SetReg(SiS_Pr->SiS_P3c4,j,SiS_Pr->CCRT1CRTC[i]); SiS_CalcLCDACRT1Timing() 3527 tempax = SiS_Pr->CCRT1CRTC[16] & 0xE0; SiS_CalcLCDACRT1Timing() 3528 SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x0E,0x1F,tempax); SiS_CalcLCDACRT1Timing() 3530 tempax = (SiS_Pr->CCRT1CRTC[16] & 0x01) << 5; SiS_CalcLCDACRT1Timing() 3532 SiS_SetRegANDOR(SiS_Pr->SiS_P3d4,0x09,0x5F,tempax); SiS_CalcLCDACRT1Timing() 3537 SiS_Generic_ConvertCRData(struct SiS_Private *SiS_Pr, unsigned char *crdata, SiS_Generic_ConvertCRData() argument
|