Enscript Output

extractedLnx/linux-2.4.22/drivers/video/sis/init.c_SiSInit.c

BOOLEAN
SiSInit(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension)
{
   UCHAR  *ROMAddr  = HwDeviceExtension->pjVirtualRomBase;
   ULONG   FBAddr   = (ULONG)HwDeviceExtension->pjVideoMemoryAddress;
   USHORT  BaseAddr = (USHORT)HwDeviceExtension->ulIOAddress;
   UCHAR   i, temp=0;
   UCHAR   SR11;
#ifdef LINUX_KERNEL
   UCHAR   temp1;
   ULONG   base;
#endif
   UCHAR   SR13=0, SR14=0, SR16=0
   UCHAR   SR17=0, SR19=0, SR1A=0;
#ifdef SIS300
   UCHAR   SR18=0, SR12=0;
#endif
#ifdef SIS315H
   UCHAR   CR37=0, CR38=0, CR79=0,
   UCHAR   CR7A=0, CR7B=0, CR7C=0;
   UCHAR   SR1B=0, SR15=0;
   PSIS_DSReg pSR;
   ULONG   Temp;
#endif
   UCHAR   VBIOSVersion[5];

   if(FBAddr==0)    return (FALSE);
   if(BaseAddr==0)  return (FALSE);

   SiS_SetReg3((USHORT)(BaseAddr+0x12),  0x67);  /* Misc */

#ifdef SIS315H
   if(HwDeviceExtension->jChipType > SIS_315PRO) {
     if(!HwDeviceExtension->bIntegratedMMEnabled)
     	return (FALSE);
   }
#endif

   SiS_MemoryCopy(VBIOSVersion,HwDeviceExtension->szVBIOSVer,4);
   VBIOSVersion[4]= 0x00;

   SiSDetermineROMUsage(SiS_Pr, HwDeviceExtension, ROMAddr);

   /* TW: Init pointers */
#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) ||
      (HwDeviceExtension->jChipType == SIS_660))
     InitTo310Pointer(SiS_Pr, HwDeviceExtension);
#endif

#ifdef SIS300
   if((HwDeviceExtension->jChipType == SIS_540) ||
      (HwDeviceExtension->jChipType == SIS_630) ||
      (HwDeviceExtension->jChipType == SIS_730) ||
      (HwDeviceExtension->jChipType == SIS_300))
     InitTo300Pointer(SiS_Pr, HwDeviceExtension);
#endif

   /* TW: Set SiS Register definitions */
   SiSRegInit(SiS_Pr, BaseAddr);

   /* TW: Determine LVDS/CH70xx/TRUMPION */
   SiS_Set_LVDS_TRUMPION(SiS_Pr, HwDeviceExtension);

   /* TW: Unlock registers */
   SiS_SetReg1(SiS_Pr->SiS_P3c4,0x05,0x86);

#ifdef LINUX_KERNEL

#ifdef SIS300                                         	/* Set SR14 */
   if((HwDeviceExtension->jChipType==SIS_540) ||
      (HwDeviceExtension->jChipType==SIS_630) ||
      (HwDeviceExtension->jChipType==SIS_730)) {
     base=0x80000060;
     OutPortLong(base,0xcf8);
     temp1 = InPortLong(0xcfc);
     temp1 >>= (16+8+4);
     temp1 &= 0x07;
     temp1++;
     temp1 = 1 << temp1;
     SR14 = temp1 - 1;
     base = 0x80000064;
     OutPortLong(base,0xcf8);
     temp1 = InPortLong(0xcfc);
     temp1 &= 0x00000020;
     if(temp1) 	SR14 |= 0x80;
     else      	SR14 |= 0x40;
   }
#endif

#ifdef SIS315H                                          /* Set SR14 */
   if(HwDeviceExtension->jChipType == SIS_550) {
     base = 0x80000060;
     OutPortLong(base,0xcf8);
     temp1 = InPortLong(0xcfc);
     temp1 >>= (16+8+4);
     temp1 &= 0x07;
     temp1++;
     temp1 = 1 << temp1;
     SR14 = temp1 - 1;
     base = 0x80000064;
     OutPortLong(base,0xcf8);
     temp1 = InPortLong(0xcfc);
     temp1 &= 0x00000020;
     if(temp1)  SR14 |= 0x80;
     else       SR14 |= 0x40;
   }

   if((HwDeviceExtension->jChipType == SIS_740) ||     /* Set SR14 */
      (HwDeviceExtension->jChipType == SIS_650))  {
     base = 0x80000064;
     OutPortLong(base,0xcf8);
     temp1=InPortLong(0xcfc);
     temp1 >>= 4;
     temp1 &= 0x07;
     if(temp1 > 2) {
       temp = temp1;
       switch(temp) {
        case 3: temp1 = 0x07;  break;
        case 4: temp1 = 0x0F;  break;
        case 5: temp1 = 0x1F;  break;
        case 6: temp1 = 0x05;  break;
        case 7: temp1 = 0x17;  break;
        case 8: break;
        case 9: break;
       }
     }
     SR14 = temp1;
     base = 0x8000007C;
     OutPortLong(base,0xcf8);
     temp1 = InPortLong(0xcfc);
     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) ||
      (HwDeviceExtension->jChipType == SIS_660)) {
   	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) ||
      (HwDeviceExtension->jChipType == SIS_660)) {
        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) ||
      (HwDeviceExtension->jChipType == SIS_660))
     	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
   if(HwDeviceExtension->jChipType == SIS_550) {
       /* SetDRAMConfig begin */
/*     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);   */
       /* SetDRAMConfig end */
   }
#endif

#ifdef SIS300
   if(HwDeviceExtension->jChipType == SIS_300) {
       	if (HwDeviceExtension->bSkipDramSizing == TRUE) {
/*       	SiS_SetDRAMModeRegister(ROMAddr,HwDeviceExtension);
         	temp = (HwDeviceExtension->pSR)->jVal;
         	SiS_SetReg1(SiS_Pr->SiS_P3c4,0x13,temp);
         	temp = (HwDeviceExtension->pSR)->jVal;
         	SiS_SetReg1(SiS_Pr->SiS_P3c4,0x14,temp);   */
       } else {
#ifdef TC
         	SiS_SetReg1(SiS_Pr->SiS_P3c4,0x13,SR13);
         	SiS_SetReg1(SiS_Pr->SiS_P3c4,0x14,SR14);
         	SiS_SetRegANDOR(SiS_Pr->SiS_P3c4,0x15,0xFF,0x04);
#else
         	SiS_SetDRAMSize_300(SiS_Pr, HwDeviceExtension);
         	SiS_SetDRAMSize_300(SiS_Pr, HwDeviceExtension);
#endif
       }
   }
   if((HwDeviceExtension->jChipType==SIS_540)||
      (HwDeviceExtension->jChipType==SIS_630)||
      (HwDeviceExtension->jChipType==SIS_730)) {
#if 0
     	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
   }
/* SetDRAMSize end */
#endif /* SIS300 */

   /* Set default Ext2Regs */
#if 0
   AGP=1;
   temp=(UCHAR)SiS_GetReg1(SiS_Pr->SiS_P3c4,0x3A);
   temp &= 0x30;
   if(temp == 0x30) AGP=0;
   if(AGP == 0) *SiS_Pr->pSiS_SR21 &= 0xEF;
   SiS_SetReg1(SiS_Pr->SiS_P3c4,0x21,*SiS_Pr->pSiS_SR21);
   if(AGP == 1) *SiS_Pr->pSiS_SR22 &= 0x20;
   SiS_SetReg1(SiS_Pr->SiS_P3c4,0x22,*SiS_Pr->pSiS_SR22);
#endif
   SiS_SetReg1(SiS_Pr->SiS_P3c4,0x21,*SiS_Pr->pSiS_SR21);
   SiS_SetReg1(SiS_Pr->SiS_P3c4,0x22,*SiS_Pr->pSiS_SR22);

#if 0
   SiS_SetReg3(SiS_Pr->SiS_P3c6,0xff);
   SiS_ClearDAC(SiS_Pr, SiS_Pr->SiS_P3c8);
#endif

#ifdef LINUXBIOS   /* TW: This is not needed for our purposes */
   SiS_DetectMonitor(SiS_Pr, HwDeviceExtension,BaseAddr);    /* Sense CRT1 */
   SiS_GetSenseStatus(SiS_Pr, HwDeviceExtension,ROMAddr);    /* Sense CRT2 */
#endif

   return(TRUE);
}

Generated by GNU enscript 1.6.4.