⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.c

📁 优龙2410linux2.6.8内核源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
   SiS_Pr->SiS_CHTVVCLKONTSC = SiS300_CHTVVCLKONTSC;   SiS_Pr->SiS_CHTVVCLKUPAL  = SiS300_CHTVVCLKUPAL;   SiS_Pr->SiS_CHTVVCLKOPAL  = SiS300_CHTVVCLKOPAL;   SiS_Pr->SiS_CHTVVCLKUPALM = SiS300_CHTVVCLKUNTSC;  /* not supported on 300 series */   SiS_Pr->SiS_CHTVVCLKOPALM = SiS300_CHTVVCLKONTSC;  /* not supported on 300 series */   SiS_Pr->SiS_CHTVVCLKUPALN = SiS300_CHTVVCLKUPAL;   /* not supported on 300 series */   SiS_Pr->SiS_CHTVVCLKOPALN = SiS300_CHTVVCLKOPAL;   /* not supported on 300 series */   SiS_Pr->SiS_CHTVVCLKSOPAL = SiS300_CHTVVCLKSOPAL;}#endif#ifdef SIS315Hstatic voidInitTo310Pointer(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo){   InitCommonPointer(SiS_Pr, HwInfo);   SiS_StandTable[0x04].CRTC[4] = 0x2c;   SiS_StandTable[0x05].CRTC[4] = 0x2c;   SiS_StandTable[0x06].CRTC[4] = 0x55;   SiS_StandTable[0x06].CRTC[5] = 0x81;   SiS_StandTable[0x0d].CRTC[4] = 0x2c;   SiS_StandTable[0x0e].CRTC[4] = 0x55;   SiS_StandTable[0x0e].CRTC[5] = 0x81;   SiS_StandTable[0x11].CRTC[4] = 0x55;   SiS_StandTable[0x11].CRTC[5] = 0x81;   SiS_StandTable[0x11].CRTC[16] = 0x82;   SiS_StandTable[0x11].CRTC[17] = 0x84;   SiS_StandTable[0x12].CRTC[4] = 0x55;   SiS_StandTable[0x12].CRTC[5] = 0x81;   SiS_StandTable[0x12].CRTC[16] = 0x82;   SiS_StandTable[0x12].CRTC[17] = 0x84;   SiS_StandTable[0x13].CRTC[5] = 0xb1;   SiS_StandTable[0x17].CRTC[5] = 0xb1;   SiS_StandTable[0x1a].CRTC[4] = 0x55;   SiS_StandTable[0x1a].CRTC[5] = 0x81;   SiS_StandTable[0x1a].CRTC[16] = 0xe9;   SiS_StandTable[0x1a].CRTC[17] = 0x8b;   SiS_StandTable[0x1b].CRTC[4] = 0x55;   SiS_StandTable[0x1b].CRTC[5] = 0x81;   SiS_StandTable[0x1b].CRTC[16] = 0xe9;   SiS_StandTable[0x1b].CRTC[17] = 0x8b;   SiS_StandTable[0x1c].CRTC[4] = 0x55;   SiS_StandTable[0x1c].CRTC[5] = 0x81;   SiS_Pr->SiS_SModeIDTable  = SiS310_SModeIDTable;   SiS_Pr->SiS_EModeIDTable  = SiS310_EModeIDTable;   SiS_Pr->SiS_RefIndex      = (SiS_Ext2Struct *)SiS310_RefIndex;   SiS_Pr->SiS_CRT1Table     = SiS310_CRT1Table;   if(HwInfo->jChipType >= SIS_760) {      SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_760;  /* 760 */   } else if(HwInfo->jChipType >= SIS_661) {      SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_660;  /* 661/741 */   } else if(HwInfo->jChipType == SIS_330) {      SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_330;  /* 330 */   } else if(HwInfo->jChipType > SIS_315PRO) {      SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_650;  /* 550, 650, 740 */   } else {      SiS_Pr->SiS_MCLKData_0 = SiS310_MCLKData_0_315;  /* 315 */   }   SiS_Pr->SiS_MCLKData_1    = SiS310_MCLKData_1;   SiS_Pr->SiS_VCLKData      = SiS310_VCLKData;   SiS_Pr->SiS_VBVCLKData    = SiS310_VBVCLKData;   SiS_Pr->SiS_SR15  = SiS310_SR15;#ifndef LINUX_XF86   SiS_Pr->pSiS_SR07 = &SiS310_SR07;   SiS_Pr->SiS_CR40  = SiS310_CR40;   SiS_Pr->SiS_CR49  = SiS310_CR49;   SiS_Pr->pSiS_SR1F = &SiS310_SR1F;   SiS_Pr->pSiS_SR21 = &SiS310_SR21;   SiS_Pr->pSiS_SR22 = &SiS310_SR22;   SiS_Pr->pSiS_SR23 = &SiS310_SR23;   SiS_Pr->pSiS_SR24 = &SiS310_SR24;   SiS_Pr->SiS_SR25  = SiS310_SR25;   SiS_Pr->pSiS_SR31 = &SiS310_SR31;   SiS_Pr->pSiS_SR32 = &SiS310_SR32;   SiS_Pr->pSiS_SR33 = &SiS310_SR33;   SiS_Pr->pSiS_CRT2Data_1_2  = &SiS310_CRT2Data_1_2;   SiS_Pr->pSiS_CRT2Data_4_D  = &SiS310_CRT2Data_4_D;   SiS_Pr->pSiS_CRT2Data_4_E  = &SiS310_CRT2Data_4_E;   SiS_Pr->pSiS_CRT2Data_4_10 = &SiS310_CRT2Data_4_10;   SiS_Pr->pSiS_RGBSenseData    = &SiS310_RGBSenseData;   SiS_Pr->pSiS_VideoSenseData  = &SiS310_VideoSenseData;   SiS_Pr->pSiS_YCSenseData     = &SiS310_YCSenseData;   SiS_Pr->pSiS_RGBSenseData2   = &SiS310_RGBSenseData2;   SiS_Pr->pSiS_VideoSenseData2 = &SiS310_VideoSenseData2;   SiS_Pr->pSiS_YCSenseData2    = &SiS310_YCSenseData2;#endif   SiS_Pr->SiS_PanelDelayTbl     = SiS310_PanelDelayTbl;   SiS_Pr->SiS_PanelDelayTblLVDS = SiS310_PanelDelayTblLVDS;   SiS_Pr->SiS_St2LCD1024x768Data   = SiS310_St2LCD1024x768Data;   SiS_Pr->SiS_ExtLCD1024x768Data   = SiS310_ExtLCD1024x768Data;   SiS_Pr->SiS_St2LCD1280x1024Data  = SiS310_St2LCD1280x1024Data;   SiS_Pr->SiS_ExtLCD1280x1024Data  = SiS310_ExtLCD1280x1024Data;   SiS_Pr->SiS_CRT2Part2_1024x768_1  = SiS310_CRT2Part2_1024x768_1;   SiS_Pr->SiS_PanelType00_1 = SiS310_PanelType00_1;   SiS_Pr->SiS_PanelType01_1 = SiS310_PanelType01_1;   SiS_Pr->SiS_PanelType02_1 = SiS310_PanelType02_1;   SiS_Pr->SiS_PanelType03_1 = SiS310_PanelType03_1;   SiS_Pr->SiS_PanelType04_1 = SiS310_PanelType04_1;   SiS_Pr->SiS_PanelType05_1 = SiS310_PanelType05_1;   SiS_Pr->SiS_PanelType06_1 = SiS310_PanelType06_1;   SiS_Pr->SiS_PanelType07_1 = SiS310_PanelType07_1;   SiS_Pr->SiS_PanelType08_1 = SiS310_PanelType08_1;   SiS_Pr->SiS_PanelType09_1 = SiS310_PanelType09_1;   SiS_Pr->SiS_PanelType0a_1 = SiS310_PanelType0a_1;   SiS_Pr->SiS_PanelType0b_1 = SiS310_PanelType0b_1;   SiS_Pr->SiS_PanelType0c_1 = SiS310_PanelType0c_1;   SiS_Pr->SiS_PanelType0d_1 = SiS310_PanelType0d_1;   SiS_Pr->SiS_PanelType0e_1 = SiS310_PanelType0e_1;   SiS_Pr->SiS_PanelType0f_1 = SiS310_PanelType0f_1;   SiS_Pr->SiS_PanelType00_2 = SiS310_PanelType00_2;   SiS_Pr->SiS_PanelType01_2 = SiS310_PanelType01_2;   SiS_Pr->SiS_PanelType02_2 = SiS310_PanelType02_2;   SiS_Pr->SiS_PanelType03_2 = SiS310_PanelType03_2;   SiS_Pr->SiS_PanelType04_2 = SiS310_PanelType04_2;   SiS_Pr->SiS_PanelType05_2 = SiS310_PanelType05_2;   SiS_Pr->SiS_PanelType06_2 = SiS310_PanelType06_2;   SiS_Pr->SiS_PanelType07_2 = SiS310_PanelType07_2;   SiS_Pr->SiS_PanelType08_2 = SiS310_PanelType08_2;   SiS_Pr->SiS_PanelType09_2 = SiS310_PanelType09_2;   SiS_Pr->SiS_PanelType0a_2 = SiS310_PanelType0a_2;   SiS_Pr->SiS_PanelType0b_2 = SiS310_PanelType0b_2;   SiS_Pr->SiS_PanelType0c_2 = SiS310_PanelType0c_2;   SiS_Pr->SiS_PanelType0d_2 = SiS310_PanelType0d_2;   SiS_Pr->SiS_PanelType0e_2 = SiS310_PanelType0e_2;   SiS_Pr->SiS_PanelType0f_2 = SiS310_PanelType0f_2;   SiS_Pr->SiS_PanelTypeNS_1 = SiS310_PanelTypeNS_1;   SiS_Pr->SiS_PanelTypeNS_2 = SiS310_PanelTypeNS_2;   SiS_Pr->SiS_CHTVUPALData  = SiS310_CHTVUPALData;   SiS_Pr->SiS_CHTVOPALData  = SiS310_CHTVOPALData;   SiS_Pr->SiS_CHTVUPALMData = SiS310_CHTVUPALMData;   SiS_Pr->SiS_CHTVOPALMData = SiS310_CHTVOPALMData;   SiS_Pr->SiS_CHTVUPALNData = SiS310_CHTVUPALNData;   SiS_Pr->SiS_CHTVOPALNData = SiS310_CHTVOPALNData;   SiS_Pr->SiS_CHTVSOPALData = SiS310_CHTVSOPALData;   SiS_Pr->SiS_LVDSCRT1800x600_1     = SiS310_LVDSCRT1800x600_1;   SiS_Pr->SiS_LVDSCRT11024x768_1    = SiS310_LVDSCRT11024x768_1;   SiS_Pr->SiS_LVDSCRT11280x1024_1   = SiS310_LVDSCRT11280x1024_1;   SiS_Pr->SiS_LVDSCRT11400x1050_1   = SiS310_LVDSCRT11400x1050_1;   SiS_Pr->SiS_LVDSCRT11600x1200_1   = SiS310_LVDSCRT11600x1200_1;   SiS_Pr->SiS_LVDSCRT1800x600_1_H   = SiS310_LVDSCRT1800x600_1_H;   SiS_Pr->SiS_LVDSCRT11024x768_1_H  = SiS310_LVDSCRT11024x768_1_H;   SiS_Pr->SiS_LVDSCRT11280x1024_1_H = SiS310_LVDSCRT11280x1024_1_H;   SiS_Pr->SiS_LVDSCRT11400x1050_1_H = SiS310_LVDSCRT11400x1050_1_H;   SiS_Pr->SiS_LVDSCRT11600x1200_1_H = SiS310_LVDSCRT11600x1200_1_H;   SiS_Pr->SiS_LVDSCRT1800x600_2     = SiS310_LVDSCRT1800x600_2;   SiS_Pr->SiS_LVDSCRT11024x768_2    = SiS310_LVDSCRT11024x768_2;   SiS_Pr->SiS_LVDSCRT11280x1024_2   = SiS310_LVDSCRT11280x1024_2;   SiS_Pr->SiS_LVDSCRT11400x1050_2   = SiS310_LVDSCRT11400x1050_2;   SiS_Pr->SiS_LVDSCRT11600x1200_2   = SiS310_LVDSCRT11600x1200_2;   SiS_Pr->SiS_LVDSCRT1800x600_2_H   = SiS310_LVDSCRT1800x600_2_H;   SiS_Pr->SiS_LVDSCRT11024x768_2_H  = SiS310_LVDSCRT11024x768_2_H;   SiS_Pr->SiS_LVDSCRT11280x1024_2_H = SiS310_LVDSCRT11280x1024_2_H;   SiS_Pr->SiS_LVDSCRT11400x1050_2_H = SiS310_LVDSCRT11400x1050_2_H;   SiS_Pr->SiS_LVDSCRT11600x1200_2_H = SiS310_LVDSCRT11600x1200_2_H;   SiS_Pr->SiS_LVDSCRT1XXXxXXX_1     = SiS310_LVDSCRT1XXXxXXX_1;   SiS_Pr->SiS_LVDSCRT1XXXxXXX_1_H   = SiS310_LVDSCRT1XXXxXXX_1_H;   SiS_Pr->SiS_CHTVCRT1UNTSC         = SiS310_CHTVCRT1UNTSC;   SiS_Pr->SiS_CHTVCRT1ONTSC         = SiS310_CHTVCRT1ONTSC;   SiS_Pr->SiS_CHTVCRT1UPAL          = SiS310_CHTVCRT1UPAL;   SiS_Pr->SiS_CHTVCRT1OPAL          = SiS310_CHTVCRT1OPAL;   SiS_Pr->SiS_CHTVCRT1SOPAL         = SiS310_CHTVCRT1OPAL;   SiS_Pr->SiS_CHTVReg_UNTSC = SiS310_CHTVReg_UNTSC;   SiS_Pr->SiS_CHTVReg_ONTSC = SiS310_CHTVReg_ONTSC;   SiS_Pr->SiS_CHTVReg_UPAL  = SiS310_CHTVReg_UPAL;   SiS_Pr->SiS_CHTVReg_OPAL  = SiS310_CHTVReg_OPAL;   SiS_Pr->SiS_CHTVReg_UPALM = SiS310_CHTVReg_UPALM;   SiS_Pr->SiS_CHTVReg_OPALM = SiS310_CHTVReg_OPALM;   SiS_Pr->SiS_CHTVReg_UPALN = SiS310_CHTVReg_UPALN;   SiS_Pr->SiS_CHTVReg_OPALN = SiS310_CHTVReg_OPALN;   SiS_Pr->SiS_CHTVReg_SOPAL = SiS310_CHTVReg_OPAL;   SiS_Pr->SiS_CHTVVCLKUNTSC = SiS310_CHTVVCLKUNTSC;   SiS_Pr->SiS_CHTVVCLKONTSC = SiS310_CHTVVCLKONTSC;   SiS_Pr->SiS_CHTVVCLKUPAL  = SiS310_CHTVVCLKUPAL;   SiS_Pr->SiS_CHTVVCLKOPAL  = SiS310_CHTVVCLKOPAL;   SiS_Pr->SiS_CHTVVCLKUPALM = SiS310_CHTVVCLKUPALM;   SiS_Pr->SiS_CHTVVCLKOPALM = SiS310_CHTVVCLKOPALM;   SiS_Pr->SiS_CHTVVCLKUPALN = SiS310_CHTVVCLKUPALN;   SiS_Pr->SiS_CHTVVCLKOPALN = SiS310_CHTVVCLKOPALN;   SiS_Pr->SiS_CHTVVCLKSOPAL = SiS310_CHTVVCLKOPAL;}#endifstatic voidSiSInitPtr(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo){   switch(HwInfo->jChipType) {#ifdef SIS315H   case SIS_315H:   case SIS_315:   case SIS_315PRO:   case SIS_550:   case SIS_650:   case SIS_740:   case SIS_330:   case SIS_661:   case SIS_741:   case SIS_660:   case SIS_760:      InitTo310Pointer(SiS_Pr, HwInfo);      break;#endif#ifdef SIS300   case SIS_300:   case SIS_540:   case SIS_630:   case SIS_730:      InitTo300Pointer(SiS_Pr, HwInfo);      break;#endif   default:      break;   }}/*********************************************//*            HELPER: Get ModeID             *//*********************************************/USHORTSiS_GetModeID(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay,              int Depth, BOOLEAN FSTN, int LCDwidth, int LCDheight){   USHORT ModeIndex = 0;   switch(HDisplay)   {     case 320:     	  if(VDisplay == 200)     ModeIndex = ModeIndex_320x200[Depth];	  else if(VDisplay == 240) {	     if(FSTN) ModeIndex = ModeIndex_320x240_FSTN[Depth];	     else     ModeIndex = ModeIndex_320x240[Depth];          }          break;     case 400:          if(VDisplay == 300) ModeIndex = ModeIndex_400x300[Depth];          break;     case 512:          if(VDisplay == 384) ModeIndex = ModeIndex_512x384[Depth];          break;     case 640:          if(VDisplay == 480)      ModeIndex = ModeIndex_640x480[Depth];	  else if(VDisplay == 400) ModeIndex = ModeIndex_640x400[Depth];          break;     case 720:          if(VDisplay == 480)      ModeIndex = ModeIndex_720x480[Depth];          else if(VDisplay == 576) ModeIndex = ModeIndex_720x576[Depth];          break;     case 768:          if(VDisplay == 576) ModeIndex = ModeIndex_768x576[Depth];	  break;     case 800:	  if(VDisplay == 600)      ModeIndex = ModeIndex_800x600[Depth];	  else if(VDisplay == 480) ModeIndex = ModeIndex_800x480[Depth];          break;     case 848:	  if(VDisplay == 480) ModeIndex = ModeIndex_848x480[Depth];	  break;     case 856:	  if(VDisplay == 480) ModeIndex = ModeIndex_856x480[Depth];	  break;     case 960:	  if(VGAEngine == SIS_315_VGA) {	     if(VDisplay == 540) ModeIndex = ModeIndex_960x540[Depth];	  }	  break;     case 1024:          if(VDisplay == 768)      ModeIndex = ModeIndex_1024x768[Depth];	  else if(VDisplay == 576) ModeIndex = ModeIndex_1024x576[Depth];	  else if((!(VBFlags & CRT1_LCDA)) && (VGAEngine == SIS_300_VGA)) {	     if(VDisplay == 600) ModeIndex = ModeIndex_1024x600[Depth];	  }          break;     case 1152:          if(VDisplay == 864) ModeIndex = ModeIndex_1152x864[Depth];          if((!(VBFlags & CRT1_LCDA)) && (VGAEngine == SIS_300_VGA)) {	     if(VDisplay == 768) ModeIndex = ModeIndex_1152x768[Depth];	  }	  break;     case 1280:          if(VDisplay == 1024) ModeIndex = ModeIndex_1280x1024[Depth];	  else if(VDisplay == 800) {	     if(VGAEngine == SIS_315_VGA) {	        if((VBFlags & CRT1_LCDA) && (LCDwidth == 1280) && (LCDheight == 800)) {	           ModeIndex = ModeIndex_1280x800[Depth];	        } else if(!(VBFlags & CRT1_LCDA)) {	           ModeIndex = ModeIndex_1280x800[Depth];	        }	     }	  } else if(VDisplay == 720) {	     if((VBFlags & CRT1_LCDA) && (LCDwidth == 1280) && (LCDheight == 720)) {	        ModeIndex = ModeIndex_1280x720[Depth];	     } else if(!(VBFlags & CRT1_LCDA)) {	        ModeIndex = ModeIndex_1280x720[Depth];	     }	  } else if(!(VBFlags & CRT1_LCDA)) {             if(VDisplay == 960) ModeIndex = ModeIndex_1280x960[Depth];	     else if(VDisplay == 768) {	        if(VGAEngine == SIS_300_VGA) {	           ModeIndex = ModeIndex_300_1280x768[Depth];	        } else {	           ModeIndex = ModeIndex_310_1280x768[Depth];	        }	     }	  }          break;     case 1360:          if(VDisplay == 768) ModeIndex = ModeIndex_1360x768[Depth];          if(!(VBFlags & CRT1_LCDA)) {	     if(VGAEngine == SIS_300_VGA) {	        if(VDisplay == 1024) ModeIndex = ModeIndex_300_1360x1024[Depth];             }	  }          break;     case 1400:          if(VGAEngine == SIS_315_VGA) {	     if(VDisplay == 1050) {	        if((VBFlags & CRT1_LCDA) &&	           (((LCDwidth == 1400) && (LCDheight == 1050)) ||		    ((LCDwidth == 1600) && (LCDheight == 1200)))) {	           ModeIndex = ModeIndex_1400x1050[Depth];	        } else if(!(VBFlags & CRT1_LCDA)) {	           ModeIndex = ModeIndex_1400x1050[Depth];	        }	     }	  }          break;     case 1600:          if(VDisplay == 1200) ModeIndex = ModeIndex_1600x1200[Depth];          break;     case 1680:          if(VGAEngine == SIS_315_VGA) {             if(VDisplay == 1050) ModeIndex = ModeIndex_1680x1050[Depth];	  }          break;     case 1920:          if(!(VBFlags & CRT1_LCDA)) {	     if(VGAEngine == SIS_315_VGA) {	        if(VDisplay == 1080) ModeIndex = ModeIndex_1920x1080[Depth];	     }             if(VDisplay == 1440) ModeIndex = ModeIndex_1920x1440[Depth];	  }          break;     case 2048:          if(!(VBFlags & CRT1_LCDA)) {             if(VDisplay == 1536) {                if(VGAEngine == SIS_300_VGA) {	            ModeIndex = ModeIndex_300_2048x1536[Depth];  	        } else {	            ModeIndex = ModeIndex_310_2048x1536[Depth];                }	     }	  }          break;   }   return(ModeIndex);}USHORTSiS_GetModeID_LCD(int VGAEngine, ULONG VBFlags, int HDisplay, int VDisplay,                  int Depth, BOOLEAN FSTN, USHORT CustomT, int LCDwidth, int LCDheight){   USHORT ModeIndex = 0;   if(VBFlags & (VB_LVDS | VB_30xBDH)) {      switch(HDisplay)      {	case 320:	     if(CustomT != CUT_PANEL848) {     	  	if(VDisplay == 200) ModeIndex = ModeIndex_320x200[Depth];	  	else if(VDisplay == 240) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -