if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) { 
if(SiS_Pr->SiS_VBType & VB_SISEMI) { 
SiS_DisableBridge(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo){#ifdef SIS315H  USHORT tempah,pushax=0,modenum;#endif  USHORT temp=0;  if(SiS_Pr->SiS_VBType & VB_SISVB) {     if(SiS_Pr->SiS_VBType & VB_SIS301BLV302BLV) {   /* ===== For 30xB/LV ===== */        if(HwInfo->jChipType < SIS_315H) {#ifdef SIS300	   /* 300 series */	   if(!(SiS_CR36BIOSWord23b(SiS_Pr,HwInfo))) {	      if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {	         SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFE);	      } else {		 SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xF7,0x08);	      }	      SiS_PanelDelay(SiS_Pr, HwInfo, 3);	   }	   if(SiS_Is301B(SiS_Pr)) {	      SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1f,0x3f);	      SiS_ShortDelay(SiS_Pr,1);           }	   SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xDF);	   SiS_DisplayOff(SiS_Pr);	   SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);	   SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF);	   SiS_UnLockCRT2(SiS_Pr,HwInfo);	   if(!(SiS_Pr->SiS_VBType & VB_SIS301LV302LV)) {	      SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80);	      SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40);	   }	   if( (!(SiS_CRT2IsLCD(SiS_Pr, HwInfo))) ||	       (!(SiS_CR36BIOSWord23d(SiS_Pr, HwInfo))) ) {	      SiS_PanelDelay(SiS_Pr, HwInfo, 2);	      if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {                 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFD);	      } else {		 SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xFB,0x04);	      }	   }#endif  /* SIS300 */        } else {#ifdef SIS315H	   /* 315 series */	   BOOLEAN custom1 = ((SiS_Pr->SiS_CustomT == CUT_COMPAQ1280) ||	                      (SiS_Pr->SiS_CustomT == CUT_CLEVO1400)) ? TRUE : FALSE;	   modenum = SiS_GetReg(SiS_Pr->SiS_P3d4,0x34) & 0x7f;           if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {#ifdef SET_EMI	      if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) {		 if(SiS_Pr->SiS_CustomT != CUT_CLEVO1400) {	            SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x30,0x0c);		 }	      }#endif	      if( (modenum <= 0x13)                  ||		  (SiS_IsVAMode(SiS_Pr,HwInfo))      ||		  (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ) {	     	 SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFE);		 if(custom1) SiS_PanelDelay(SiS_Pr, HwInfo, 3);	      }	      if(!custom1) {		 SiS_DDC2Delay(SiS_Pr,0xff00);		 SiS_DDC2Delay(SiS_Pr,0xe000);	         SiS_SetRegByte(SiS_Pr->SiS_P3c6,0x00);                 pushax = SiS_GetReg(SiS_Pr->SiS_P3c4,0x06);		 if(IS_SIS740) {		    SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x06,0xE3);		 }	         SiS_PanelDelay(SiS_Pr, HwInfo, 3);	      }           }	   if(!(SiS_IsNotM650orLater(SiS_Pr, HwInfo))) {	      if(HwInfo->jChipType < SIS_340) {	         tempah = 0xef;	         if(SiS_IsVAMode(SiS_Pr,HwInfo)) tempah = 0xf7;	         SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x4c,tempah);	      }	   }	   if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {	      SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1F,~0x10);	   }	   tempah = 0x3f;	   if(SiS_IsDualEdge(SiS_Pr,HwInfo)) {	      tempah = 0x7f;	      if(!(SiS_IsVAMode(SiS_Pr,HwInfo))) tempah = 0xbf;	   }	   SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x1F,tempah);           if((SiS_IsVAMode(SiS_Pr,HwInfo)) ||	      ((SiS_Pr->SiS_VBType & VB_SIS301LV302LV) && (modenum <= 0x13))) {	      SiS_DisplayOff(SiS_Pr);	      if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {		 SiS_PanelDelay(SiS_Pr, HwInfo, 2);	      }	      SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);	      SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1E,0xDF);	   }	   if((!(SiS_IsVAMode(SiS_Pr,HwInfo))) ||	      ((SiS_Pr->SiS_VBType & VB_SIS301LV302LV) && (modenum <= 0x13))) {	      if(!(SiS_IsDualEdge(SiS_Pr,HwInfo))) {		 SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xdf);		 SiS_DisplayOff(SiS_Pr);	      }	      SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80);	      if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {		 SiS_PanelDelay(SiS_Pr, HwInfo, 2);	      }	      SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);	      temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00);              SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x10);	      SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF);	      SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,temp);	   }	   if(SiS_IsNotM650orLater(SiS_Pr,HwInfo)) {	      SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f);	   }	   if(SiS_Pr->SiS_VBType & VB_SIS301LV302LV) {	      if(!custom1) {	         if(!(SiS_IsVAMode(SiS_Pr,HwInfo))) {	            if(!(SiS_CRT2IsLCD(SiS_Pr,HwInfo))) {	               if(!(SiS_IsDualEdge(SiS_Pr,HwInfo))) {		          SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFD);                       }                    }	         }	         SiS_SetReg(SiS_Pr->SiS_P3c4,0x06,pushax);		 if(SiS_Pr->SiS_VBType & (VB_SIS302LV | VB_SIS302ELV)) {	            if(SiS_IsVAorLCD(SiS_Pr, HwInfo)) {		       SiS_PanelDelayLoop(SiS_Pr, HwInfo, 3, 20);		    }	         }	      } else {		 if((SiS_IsVAMode(SiS_Pr,HwInfo)) ||		    (!(SiS_IsDualEdge(SiS_Pr,HwInfo)))) {		    if((!(SiS_WeHaveBacklightCtrl(SiS_Pr, HwInfo))) ||		       (!(SiS_CRT2IsLCD(SiS_Pr, HwInfo)))) {		       SiS_PanelDelay(SiS_Pr, HwInfo, 2);	     	       SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x26,0xFD);		       SiS_PanelDelay(SiS_Pr, HwInfo, 4);		    }		 }	      }           }#endif /* SIS315H */	}     } else {     /* ============ For 301 ================ */        if(HwInfo->jChipType < SIS_315H) {#ifdef SIS300           if(!(SiS_CR36BIOSWord23b(SiS_Pr,HwInfo))) {	      SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xF7,0x08);	      SiS_PanelDelay(SiS_Pr, HwInfo, 3);	   }#endif	}        SiS_SetRegAND(SiS_Pr->SiS_Part2Port,0x00,0xDF);           /* disable VB */        SiS_DisplayOff(SiS_Pr);        if(HwInfo->jChipType >= SIS_315H) {           SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80);	}        SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);                /* disable lock mode */	if(HwInfo->jChipType >= SIS_315H) {            temp = SiS_GetReg(SiS_Pr->SiS_Part1Port,0x00);            SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x10);	    SiS_SetRegOR(SiS_Pr->SiS_P3c4,0x1E,0x20);	    SiS_SetReg(SiS_Pr->SiS_Part1Port,0x00,temp);	} else {#ifdef SIS300            SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF);            /* disable CRT2 */	    if( (!(SiS_CRT2IsLCD(SiS_Pr, HwInfo))) ||	        (!(SiS_CR36BIOSWord23d(SiS_Pr,HwInfo))) ) {		SiS_PanelDelay(SiS_Pr, HwInfo, 2);		SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xFB,0x04);	    }#endif	}      }  } else {     /* ============ For LVDS =============*/    if(HwInfo->jChipType < SIS_315H) {#ifdef SIS300	/* 300 series */	if(SiS_Pr->SiS_IF_DEF_CH70xx == 1) {	   SiS_SetCH700x(SiS_Pr,0x090E);	}	if(HwInfo->jChipType == SIS_730) {	   if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x11) & 0x08)) {	      SiS_WaitVBRetrace(SiS_Pr,HwInfo);	   }	   if(!(SiS_CR36BIOSWord23b(SiS_Pr,HwInfo))) {	      SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xF7,0x08);	      SiS_PanelDelay(SiS_Pr, HwInfo, 3);	   }	} else {	   if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x11) & 0x08)) {	      if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x13) & 0x40)) {  	         if(!(SiS_CR36BIOSWord23b(SiS_Pr,HwInfo))) {                    SiS_WaitVBRetrace(SiS_Pr,HwInfo);		    if(!(SiS_GetReg(SiS_Pr->SiS_P3c4,0x06) & 0x1c)) {		       SiS_DisplayOff(SiS_Pr);	            }	            SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xF7,0x08);	            SiS_PanelDelay(SiS_Pr, HwInfo, 3);                 }              }	   }	}	SiS_DisplayOff(SiS_Pr);	SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);	SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF);	SiS_UnLockCRT2(SiS_Pr,HwInfo);	SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80);	SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40);	if( (!(SiS_CRT2IsLCD(SiS_Pr, HwInfo))) ||	    (!(SiS_CR36BIOSWord23d(SiS_Pr,HwInfo))) ) {	   SiS_PanelDelay(SiS_Pr, HwInfo, 2);	   SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xFB,0x04);	}#endif  /* SIS300 */    } else {#ifdef SIS315H	/* 315 series */        if(!(SiS_IsNotM650orLater(SiS_Pr,HwInfo))) {	   if(HwInfo->jChipType < SIS_340) {              SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x4c,~0x18);	   }        }	if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) {	   if(HwInfo->jChipType == SIS_740) {	      temp = SiS_GetCH701x(SiS_Pr,0x61);	      if(temp < 1) {	         SiS_SetCH701x(SiS_Pr,0xac76);	         SiS_SetCH701x(SiS_Pr,0x0066);	      }	      if( (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	          (SiS_IsTVOrYPbPrOrScart(SiS_Pr,HwInfo)) ) {	  	 SiS_SetCH701x(SiS_Pr,0x3e49);	      }	   }	   if( (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	       (SiS_IsVAMode(SiS_Pr,HwInfo)) ) {	      SiS_Chrontel701xBLOff(SiS_Pr);	      SiS_Chrontel701xOff(SiS_Pr,HwInfo);	   }	   if(HwInfo->jChipType != SIS_740) {	      if( (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	          (SiS_IsTVOrYPbPrOrScart(SiS_Pr,HwInfo)) ) {	   	 SiS_SetCH701x(SiS_Pr,0x0149);  	      }	   }	}	if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) {	   SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xF7,0x08);	   SiS_PanelDelay(SiS_Pr, HwInfo, 3);	}	if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0)   ||	    (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	    (!(SiS_IsTVOrYPbPrOrScart(SiS_Pr,HwInfo))) ) {	   SiS_DisplayOff(SiS_Pr);	}	if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0)   ||	    (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	    (!(SiS_IsVAMode(SiS_Pr,HwInfo))) ) {	   SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x00,0x80);	}	if(HwInfo->jChipType == SIS_740) {	   SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0x7f);	}	SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x32,0xDF);	if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0)   ||	    (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||	    (!(SiS_IsVAMode(SiS_Pr,HwInfo))) ) {	   SiS_SetRegAND(SiS_Pr->SiS_P3c4,0x1E,0xDF);	}	if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) {	   if(SiS_CRT2IsLCD(SiS_Pr, HwInfo)) {	      SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf);	      if(HwInfo->jChipType == SIS_550) {	         SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xbf);	         SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xef);	      }	   }	} else {	   if(HwInfo->jChipType == SIS_740) {	      if(SiS_IsLCDOrLCDA(SiS_Pr,HwInfo)) {	         SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf);	      }	   } else if(SiS_IsVAMode(SiS_Pr,HwInfo)) {	      SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x1e,0xdf);	   }	}	if(SiS_Pr->SiS_IF_DEF_CH70xx != 0) {	   if(SiS_IsDualEdge(SiS_Pr,HwInfo)) {	      /* SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xff); */	   } else {	      SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x13,0xfb);	   }	}	SiS_UnLockCRT2(SiS_Pr,HwInfo);	if(HwInfo->jChipType == SIS_550) {	   SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x01,0x80); /* DirectDVD PAL?*/	   SiS_SetRegOR(SiS_Pr->SiS_Part1Port,0x02,0x40); /* VB clock / 4 ? */	} else if( (SiS_Pr->SiS_IF_DEF_CH70xx == 0)   ||	           (!(SiS_IsDualEdge(SiS_Pr,HwInfo))) ||		   (!(SiS_IsVAMode(SiS_Pr,HwInfo))) ) {	   SiS_SetRegAND(SiS_Pr->SiS_Part1Port,0x2e,0xf7);	}        if(SiS_Pr->SiS_IF_DEF_CH70xx == 0) {	   if(SiS_CRT2IsLCD(SiS_Pr, HwInfo)) {	      if(!(SiS_WeHaveBacklightCtrl(SiS_Pr,HwInfo))) {	 	 SiS_PanelDelay(SiS_Pr, HwInfo, 2);		 SiS_SetRegSR11ANDOR(SiS_Pr,HwInfo,0xFB,0x04);	      }	   }        }#endif  /* SIS315H */    }  /* 315 series */  }  /* LVDS */}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/544393fe584d333480659a4bed30f5295355df11/init301.c/clean/drivers/video/sis/init301.c