?? init.c
字號:
temp1 &= 0x00000020; if(temp1) SR14 |= 0x80; }#endif#endif /* Linux kernel */#ifdef SIS300 if((HwDeviceExtension->jChipType == SIS_540)|| (HwDeviceExtension->jChipType == SIS_630)|| (HwDeviceExtension->jChipType == SIS_730)) { SR12 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x12); SR13 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x13); SR14 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x14); SR16 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x16); SR17 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x17); SR18 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x18); SR19 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x19); SR1A = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x1A); } else if(HwDeviceExtension->jChipType == SIS_300){ SR13 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x13); SR14 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x14); }#endif#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_550) || (HwDeviceExtension->jChipType == SIS_740) || (HwDeviceExtension->jChipType == SIS_650)) { SR19 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x19); SR19 = (SR19)||0x01; /* TW: ??? || ??? */ if(SR19==0x00) { SR13 = 0x22; SR14 = 0x00; SR15 = 0x01; SR16 = 0x00; SR17 = 0x00; SR1A = 0x00; SR1B = 0x00; CR37 = 0x00; CR38 = 0x00; CR79 = 0x00; CR7A = 0x00; CR7B = 0x00; CR7C = 0x00; } else { SR13 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x13); SR14 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x14); SR15 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x15); SR16 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x16); SR17 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x17); SR1A = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x1A); SR1B = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x1B); CR37 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x37); /* TW: Was 0x02 - why? */ CR38 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x38); CR79 = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x79); CR7A = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x7A); CR7B = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x7B); CR7C = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3d4,0x7C); } }#endif /* Reset extended registers */ for(i=0x06; i< 0x20; i++) SiS_SetReg1(SiS_Pr->SiS_P3c4,i,0); for(i=0x21; i<=0x27; i++) SiS_SetReg1(SiS_Pr->SiS_P3c4,i,0); for(i=0x31; i<=0x3D; i++) SiS_SetReg1(SiS_Pr->SiS_P3c4,i,0);#ifdef SIS300 if((HwDeviceExtension->jChipType == SIS_540) || (HwDeviceExtension->jChipType == SIS_630) || (HwDeviceExtension->jChipType == SIS_730) || (HwDeviceExtension->jChipType == SIS_300)) { for(i=0x38; i<=0x3F; i++) SiS_SetReg1(SiS_Pr->SiS_P3d4,i,0); }#endif#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_550) || (HwDeviceExtension->jChipType == SIS_650) || (HwDeviceExtension->jChipType == SIS_740) || (HwDeviceExtension->jChipType == SIS_330)) { for(i=0x12; i<=0x1B; i++) SiS_SetReg1(SiS_Pr->SiS_P3c4,i,0); for(i=0x79; i<=0x7C; i++) SiS_SetReg1(SiS_Pr->SiS_P3d4,i,0); }#endif /* Restore Extended Registers */#ifdef SIS300 if((HwDeviceExtension->jChipType == SIS_540) || (HwDeviceExtension->jChipType == SIS_630) || (HwDeviceExtension->jChipType == SIS_730)) { SiS_SetReg1(SiS_Pr->SiS_P3c4,0x12,SR12); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x13,SR13); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x14,SR14); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x16,SR16); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x17,SR17); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x18,SR18); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x19,SR19); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x1A,SR1A); }#endif#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_550) || (HwDeviceExtension->jChipType == SIS_740) || (HwDeviceExtension->jChipType == SIS_650)) { SiS_SetReg1(SiS_Pr->SiS_P3c4,0x13,SR13); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x14,SR14); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x15,SR15); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x16,SR16); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x17,SR17); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x19,SR19); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x1A,SR1A); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x1B,SR1B); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x37,CR37); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x38,CR38); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x79,CR79); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x7A,CR7A); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x7B,CR7B); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x7C,CR7C); }#endif#ifdef SIS300 if((HwDeviceExtension->jChipType==SIS_540) || (HwDeviceExtension->jChipType==SIS_630) || (HwDeviceExtension->jChipType==SIS_730)) { temp = (UCHAR)SR1A & 0x03; } else if(HwDeviceExtension->jChipType == SIS_300) { /* TW: Nothing */ }#endif#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_330) ) { if((*SiS_Pr->pSiS_SoftSetting & SoftDRAMType) == 0) { temp = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x3A) & 0x03; } } if((HwDeviceExtension->jChipType == SIS_550) || (HwDeviceExtension->jChipType == SIS_740) || (HwDeviceExtension->jChipType == SIS_650)) { if((*SiS_Pr->pSiS_SoftSetting & SoftDRAMType) == 0) { temp = (UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x13) & 0x07; } }#endif SiS_Pr->SiS_RAMType = temp; SiS_SetMemoryClock(SiS_Pr, ROMAddr, HwDeviceExtension); /* Set default register contents */ SiS_SetReg1(SiS_Pr->SiS_P3c4,0x07,*SiS_Pr->pSiS_SR07); /* DAC speed */ if((HwDeviceExtension->jChipType != SIS_540) && (HwDeviceExtension->jChipType != SIS_630) && (HwDeviceExtension->jChipType != SIS_730)){ for(i=0x15;i<0x1C;i++) { SiS_SetReg1(SiS_Pr->SiS_P3c4,i,SiS_Pr->SiS_SR15[i-0x15][SiS_Pr->SiS_RAMType]); } }#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_330)) { for(i=0x40;i<=0x44;i++) { SiS_SetReg1(SiS_Pr->SiS_P3d4,i,SiS_Pr->SiS_CR40[i-0x40][SiS_Pr->SiS_RAMType]); } SiS_SetReg1(SiS_Pr->SiS_P3d4,0x48,0x23); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x49,SiS_Pr->SiS_CR49[0]); /* SiS_SetReg1(SiS_Pr->SiS_P3c4,0x25,SiS_Pr->SiS_SR25[0]); */ }#endif SiS_SetReg1(SiS_Pr->SiS_P3c4,0x1F,*SiS_Pr->pSiS_SR1F); /* DAC pedestal */ SiS_SetReg1(SiS_Pr->SiS_P3c4,0x20,0xA0); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x23,*SiS_Pr->pSiS_SR23); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x24,*SiS_Pr->pSiS_SR24); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x25,SiS_Pr->SiS_SR25[0]);#ifdef SIS300 if(HwDeviceExtension->jChipType == SIS_300) { SiS_SetReg1(SiS_Pr->SiS_P3c4,0x21,0x84); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x22,0x00); }#endif SR11 = 0x0F; SiS_SetReg1(SiS_Pr->SiS_P3c4,0x11,SR11); /* Power Management & DDC port */ SiS_UnLockCRT2(SiS_Pr, HwDeviceExtension, BaseAddr); SiS_SetReg1(SiS_Pr->SiS_Part1Port,0x00,0x00); SiS_SetReg1(SiS_Pr->SiS_Part1Port,0x02,*SiS_Pr->pSiS_CRT2Data_1_2);#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_550) || (HwDeviceExtension->jChipType == SIS_650) || (HwDeviceExtension->jChipType == SIS_740) || (HwDeviceExtension->jChipType == SIS_330)) SiS_SetReg1(SiS_Pr->SiS_Part1Port,0x2E,0x08); /* use VB */#endif temp = *SiS_Pr->pSiS_SR32; if(SiS_BridgeIsOn(SiS_Pr, BaseAddr)) { temp &= 0xEF; } SiS_SetReg1(SiS_Pr->SiS_P3c4,0x32,temp);#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_330)) { HwDeviceExtension->pQueryVGAConfigSpace(HwDeviceExtension,0x50,0,&Temp); Temp >>= 20; Temp &= 0xF; if (Temp != 1) { SiS_SetReg1(SiS_Pr->SiS_P3c4,0x25,SiS_Pr->SiS_SR25[1]); SiS_SetReg1(SiS_Pr->SiS_P3d4,0x49,SiS_Pr->SiS_CR49[1]); } SiS_SetReg1(SiS_Pr->SiS_P3c4,0x27,0x1F); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x31,*SiS_Pr->pSiS_SR31); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x32,*SiS_Pr->pSiS_SR32); SiS_SetReg1(SiS_Pr->SiS_P3c4,0x33,*SiS_Pr->pSiS_SR33); }#endif if (SiS_BridgeIsOn(SiS_Pr, BaseAddr) == 0) { if(SiS_Pr->SiS_IF_DEF_LVDS == 0) { SiS_SetReg1(SiS_Pr->SiS_Part2Port,0x00,0x1C); SiS_SetReg1(SiS_Pr->SiS_Part4Port,0x0D,*SiS_Pr->pSiS_CRT2Data_4_D); SiS_SetReg1(SiS_Pr->SiS_Part4Port,0x0E,*SiS_Pr->pSiS_CRT2Data_4_E); SiS_SetReg1(SiS_Pr->SiS_Part4Port,0x10,*SiS_Pr->pSiS_CRT2Data_4_10); SiS_SetReg1(SiS_Pr->SiS_Part4Port,0x0F,0x3F); } SiS_LockCRT2(SiS_Pr, HwDeviceExtension, BaseAddr); } SiS_SetReg1(SiS_Pr->SiS_P3d4,0x83,0x00);#ifdef SIS315H if((HwDeviceExtension->jChipType == SIS_315H) || (HwDeviceExtension->jChipType == SIS_315) || (HwDeviceExtension->jChipType == SIS_315PRO) || (HwDeviceExtension->jChipType == SIS_330)) { if(HwDeviceExtension->bSkipDramSizing==TRUE) { SiS_SetDRAMModeRegister(SiS_Pr, ROMAddr,HwDeviceExtension); pSR = HwDeviceExtension->pSR; if(pSR != NULL) { while(pSR->jIdx != 0xFF) { SiS_SetReg1(SiS_Pr->SiS_P3c4,pSR->jIdx,pSR->jVal); pSR++; } } } else SiS_SetDRAMSize_310(SiS_Pr, HwDeviceExtension); }#endif#ifdef SIS315H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -