SiS_GetVBType(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo) 
SiS_GetVBType(struct SiS_Private *SiS_Pr) 
SiS_GetVBType(SiS_Private *SiS_Pr, PSIS_HW_INFO HwInfo){  USHORT flag=0, rev=0, nolcd=0, p4_0f, p4_25, p4_27;  SiS_Pr->SiS_VBType = 0;  if((SiS_Pr->SiS_IF_DEF_LVDS) || (SiS_Pr->SiS_IF_DEF_CONEX))     return;  flag = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x00);  if(flag > 3) return;  rev = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x01);  if(flag >= 2) {     SiS_Pr->SiS_VBType = VB_SIS302B;  } else if(flag == 1) {     if(rev >= 0xC0) {       	SiS_Pr->SiS_VBType = VB_SIS301C;     } else if(rev >= 0xB0) {       	SiS_Pr->SiS_VBType = VB_SIS301B;	/* Check if 30xB DH version (no LCD support, use Panel Link instead) */    	nolcd = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x23);        if(!(nolcd & 0x02)) SiS_Pr->SiS_VBType |= VB_NoLCD;     } else {        SiS_Pr->SiS_VBType = VB_SIS301;     }  }  if(SiS_Pr->SiS_VBType & (VB_SIS301B | VB_SIS301C | VB_SIS302B)) {     if(rev >= 0xE0) {	flag = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x39);	if(flag == 0xff) SiS_Pr->SiS_VBType = VB_SIS302LV;	else 	 	 SiS_Pr->SiS_VBType = VB_SIS301C;  /* VB_SIS302ELV; */     } else if(rev >= 0xD0) {	SiS_Pr->SiS_VBType = VB_SIS301LV;     }  }  if(SiS_Pr->SiS_VBType & (VB_301C | VB_301LV | VB_302LV | VB_302ELV)) {     p4_0f = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x0f);     p4_25 = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x25);     p4_27 = SiS_GetReg(SiS_Pr->SiS_Part4Port,0x27);     SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x0f,0x7f);     SiS_SetRegOR(SiS_Pr->SiS_Part4Port,0x25,0x08);     SiS_SetRegAND(SiS_Pr->SiS_Part4Port,0x27,0xfd);     if(SiS_GetReg(SiS_Pr->SiS_Part4Port,0x26) & 0x08) {        SiS_Pr->SiS_VBType |= VB_UMC;     }     SiS_SetReg(SiS_Pr->SiS_Part4Port,0x27,p4_27);     SiS_SetReg(SiS_Pr->SiS_Part4Port,0x25,p4_25);     SiS_SetReg(SiS_Pr->SiS_Part4Port,0x0f,p4_0f);  }}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/544393fe584d333480659a4bed30f5295355df11/init.c/clean/drivers/video/sis/init.c