Lines Matching refs:pSiS
62 extern unsigned short SiS_SenseLCDDDC(struct SiS_Private *SiS_Pr, SISPtr pSiS);
63 extern unsigned short SiS_SenseVGA2DDC(struct SiS_Private *SiS_Pr, SISPtr pSiS);
135 SISPtr pSiS = SISPTR(pScrn);
139 old = SiS_ReadDDC1Bit(pSiS->SiS_Pr);
141 if(old != SiS_ReadDDC1Bit(pSiS->SiS_Pr)) break;
149 SISPtr pSiS = SISPTR(pScrn);
159 if(pSiS->VGAEngine == SIS_315_VGA) {
160 inSISIDXREG(SISCR,pSiS->myCR63,CR63);
162 andSISIDXREG(SISCR,pSiS->myCR63,0xbf);
178 if(pSiS->ChipType >= SIS_330) {
180 if(pSiS->ChipType >= SIS_340) {
198 if((temp == 0xffff) && (!pSiS->SiS_Pr->DDCPortMixup)) {
201 temp = SiS_HandleDDC(pSiS->SiS_Pr, pSiS->VBFlags, pSiS->VGAEngine, 0, 0, NULL, pSiS->VBFlags2);
212 } else if(pSiS->ChipType >= SIS_330) {
217 if(pSiS->VGAEngine == SIS_315_VGA) {
218 setSISIDXREG(SISCR,pSiS->myCR63,0xBF,CR63);
231 SISPtr pSiS = SISPTR(pScrn);
235 pSiS->CRT1Detected = FALSE;
237 if(!(pSiS->VBFlags2 & VB2_VIDEOBRIDGE)) {
238 pSiS->CRT1Detected = TRUE;
239 pSiS->CRT1off = 0;
244 if(pSiS->DualHeadMode) {
245 pSiS->CRT1Detected = TRUE;
246 pSiS->CRT1off = 0;
252 if((pSiS->MergedFB) && (!(pSiS->MergedFBAuto))) {
253 pSiS->CRT1Detected = TRUE;
254 pSiS->CRT1off = 0;
261 if(pSiS->ChipType >= SIS_330) {
263 pSiS->CRT1Detected = SiS_SISDetectCRT1(pScrn);
265 if(CR32 & 0x20) pSiS->CRT1Detected = TRUE;
266 else pSiS->CRT1Detected = SiS_SISDetectCRT1(pScrn);
271 if(pSiS->CRT1off == -1) {
272 if(!pSiS->CRT1Detected) {
276 if(OtherDevices) pSiS->CRT1off = 1;
277 else pSiS->CRT1off = 0;
282 pSiS->CRT1off = 0;
289 pSiS->CRT1Detected ? "" : "No ");
295 SISPtr pSiS = SISPTR(pScrn);
298 pSiS->VBFlags &= ~(CRT2_LCD);
299 pSiS->VBLCDFlags = 0;
300 pSiS->LCDwidth = 0;
301 pSiS->LCDheight = 0;
303 if(!(pSiS->VBFlags2 & VB2_VIDEOBRIDGE)) return;
307 if(CR32 & 0x08) pSiS->VBFlags |= CRT2_LCD;
333 if((!pSiS->DualHeadMode) || (!pSiS->SecondHead)) {
335 if((pSiS->VGAEngine == SIS_315_VGA) &&
336 (pSiS->VBFlags2 & VB2_SISTMDSBRIDGE) &&
337 (!(pSiS->VBFlags2 & VB2_30xBDH)) &&
338 (pSiS->VESA != 1)) {
340 if(pSiS->forcecrt2redetection) {
341 pSiS->VBFlags &= ~CRT2_LCD;
345 if(!(pSiS->nocrt2ddcdetection)) {
346 if((!(pSiS->VBFlags & CRT2_LCD)) &&
348 (pSiS->ForceCRT2Type == CRT2_LCD) ) ) {
352 pSiS->forcecrt2redetection ?
355 if(SiS_SenseLCDDDC(pSiS->SiS_Pr, pSiS)) {
361 pSiS->VBFlags |= CRT2_LCD;
362 pSiS->postVBCR32 |= 0x08;
376 if(pSiS->VBFlags & CRT2_LCD) {
378 if(pSiS->VGAEngine == SIS_300_VGA) {
379 if(pSiS->VBFlags2 & VB2_301) {
383 if(pSiS->PRGB != -1) {
385 if((pSiS->VGAEngine == SIS_315_VGA) &&
386 (pSiS->ChipType < SIS_661) &&
387 (pSiS->ROM661New) &&
388 (!(pSiS->SiS_Pr->PanelSelfDetected))) {
391 if(pSiS->PRGB == 18) orSISIDXREG(SISCR, tmp, 0x01);
392 else if(pSiS->PRGB == 24) andSISIDXREG(SISCR, tmp, 0xfe);
395 if(pSiS->ChipType < SIS_661) {
400 if(pSiS->SiS_Pr->SiS_CustomT == CUT_BARCO1366) {
401 pSiS->VBLCDFlags |= VB_LCD_BARCO1366;
402 pSiS->LCDwidth = 1360;
403 pSiS->LCDheight = 1024;
404 if(CR37 & 0x10) pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
407 pSiS->LCDwidth, pSiS->LCDheight,
411 } else if(pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL848) {
412 pSiS->VBLCDFlags |= VB_LCD_848x480;
413 pSiS->LCDwidth = pSiS->SiS_Pr->CP_MaxX = 848;
414 pSiS->LCDheight = pSiS->SiS_Pr->CP_MaxY = 480;
415 pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
418 } else if(pSiS->SiS_Pr->SiS_CustomT == CUT_PANEL856) {
419 pSiS->VBLCDFlags |= VB_LCD_856x480;
420 pSiS->LCDwidth = pSiS->SiS_Pr->CP_MaxX = 856;
421 pSiS->LCDheight = pSiS->SiS_Pr->CP_MaxY = 480;
422 pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
425 } else if(pSiS->FSTN) {
426 pSiS->VBLCDFlags |= VB_LCD_320x240;
427 pSiS->LCDwidth = pSiS->SiS_Pr->CP_MaxX = 320;
428 pSiS->LCDheight = pSiS->SiS_Pr->CP_MaxY = 240;
429 pSiS->VBLCDFlags &= ~VB_LCD_EXPANDING;
435 if(pSiS->VGAEngine == SIS_315_VGA) {
436 if(pSiS->ChipType < SIS_661) {
439 if(pSiS->VBFlags2 & VB2_LVDS) pSiS->SiS_Pr->SiS_IF_DEF_LVDS = 1;
440 else pSiS->SiS_Pr->SiS_IF_DEF_LVDS = 0;
441 SiS_GetPanelID(pSiS->SiS_Pr);
447 pSiS->VBFlags &= ~CRT2_LCD;
450 } else if(pSiS->VGAEngine == SIS_300_VGA) {
460 pSiS->VBLCDFlags |= VB_LCD_CUSTOM;
461 pSiS->LCDheight = pSiS->SiS_Pr->CP_MaxY;
462 pSiS->LCDwidth = pSiS->SiS_Pr->CP_MaxX;
463 if(CR37 & 0x10) pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
466 pSiS->SiS_Pr->CP_MaxX, pSiS->SiS_Pr->CP_MaxY,
467 pSiS->SiS_Pr->CP_PreferredX, pSiS->SiS_Pr->CP_PreferredY,
470 if(pSiS->VGAEngine == SIS_300_VGA) {
471 pSiS->VBLCDFlags |= SiS300_LCD_Type[(CR36 & 0x0f)].VBLCD_lcdflag;
472 pSiS->LCDheight = SiS300_LCD_Type[(CR36 & 0x0f)].LCDheight;
473 pSiS->LCDwidth = SiS300_LCD_Type[(CR36 & 0x0f)].LCDwidth;
474 if(CR37 & 0x10) pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
475 } else if((pSiS->ChipType >= SIS_661) || (pSiS->ROM661New)) {
476 pSiS->VBLCDFlags |= SiS661_LCD_Type[(CR36 & 0x0f)].VBLCD_lcdflag;
477 pSiS->LCDheight = SiS661_LCD_Type[(CR36 & 0x0f)].LCDheight;
478 pSiS->LCDwidth = SiS661_LCD_Type[(CR36 & 0x0f)].LCDwidth;
479 if(CR37 & 0x10) pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
480 if(pSiS->ChipType < SIS_661) {
481 if(!(pSiS->SiS_Pr->PanelSelfDetected)) {
488 pSiS->VBLCDFlags |= SiS315_LCD_Type[(CR36 & 0x0f)].VBLCD_lcdflag;
489 pSiS->LCDheight = SiS315_LCD_Type[(CR36 & 0x0f)].LCDheight;
490 pSiS->LCDwidth = SiS315_LCD_Type[(CR36 & 0x0f)].LCDwidth;
491 if(CR37 & 0x10) pSiS->VBLCDFlags |= VB_LCD_EXPANDING;
495 pSiS->LCDwidth, pSiS->LCDheight,
496 ((pSiS->VGAEngine == SIS_315_VGA) && (!pSiS->ROM661New)) ?
508 SISPtr pSiS = SISPTR(pScrn);
516 pSiS->VBFlags |= CRT2_LCD;
517 pSiS->SiS_Pr->SiS_CustomT = CUT_UNKNOWNLCD;
518 pSiS->SiS_Pr->CP_PrefClock = 0;
519 pSiS->SiS_Pr->CP_PreferredIndex = -1;
520 pSiS->VBLCDFlags |= (VB_LCD_UNKNOWN | VB_LCD_EXPANDING);
521 pSiS->LCDwidth = pSiS->SiS_Pr->CP_MaxX = 2048;
522 pSiS->LCDheight = pSiS->SiS_Pr->CP_MaxY = 2048;
523 for(i=0; i<7; i++) pSiS->SiS_Pr->CP_DataValid[i] = FALSE;
524 pSiS->SiS_Pr->CP_HaveCustomData = FALSE;
525 pSiS->SiS_Pr->PanelSelfDetected = TRUE;
534 SISPtr pSiS = SISPTR(pScrn);
538 if(!(pSiS->VBFlags2 & VB2_VIDEOBRIDGE)) return;
544 switch(pSiS->VGAEngine) {
546 if(pSiS->Chipset == PCI_CHIP_SIS630) temp = 0x35;
559 CR32, SR16, SR38, pSiS->VBFlags);
562 if(CR32 & 0x47) pSiS->VBFlags |= CRT2_TV;
564 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTYPBPR) {
565 if(CR32 & 0x80) pSiS->VBFlags |= CRT2_TV;
571 pSiS->VBFlags |= TV_AVIDEO;
573 pSiS->VBFlags |= TV_SVIDEO;
575 pSiS->VBFlags |= TV_SCART;
576 else if((CR32 & 0x40) && (pSiS->SiS_SD_Flags & SiS_SD_SUPPORTHIVISION))
577 pSiS->VBFlags |= (TV_HIVISION | TV_PAL);
578 else if((CR32 & 0x80) && (pSiS->SiS_SD_Flags & SiS_SD_SUPPORTYPBPR)) {
579 pSiS->VBFlags |= TV_YPBPR;
580 if(pSiS->NewCRLayout) {
583 case 0x20: pSiS->VBFlags |= TV_YPBPR525P; break;
584 case 0x40: pSiS->VBFlags |= TV_YPBPR750P; break;
585 case 0x60: pSiS->VBFlags |= TV_YPBPR1080I; break;
586 default: pSiS->VBFlags |= TV_YPBPR525I;
588 } else pSiS->VBFlags |= TV_YPBPR525I;
591 if(CR39 == 0x00) pSiS->VBFlags |= TV_YPBPR43LB;
592 else if(CR39 == 0x01) pSiS->VBFlags |= TV_YPBPR43;
593 else if(CR39 == 0x02) pSiS->VBFlags |= TV_YPBPR169;
594 else pSiS->VBFlags |= TV_YPBPR43;
595 } else if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTYPBPR) {
598 case 0x10: pSiS->VBFlags |= TV_YPBPR525P; break;
599 case 0x20: pSiS->VBFlags |= TV_YPBPR750P; break;
600 case 0x30: pSiS->VBFlags |= TV_YPBPR1080I; break;
601 default: pSiS->VBFlags |= TV_YPBPR525I;
603 } else pSiS->VBFlags |= TV_YPBPR525I;
604 if(pSiS->SiS_SD_Flags & SiS_SD_SUPPORTYPBPRAR) {
607 if(CR39 == 0x00) pSiS->VBFlags |= TV_YPBPR43LB;
608 else if(CR39 == 0x01) pSiS->VBFlags |= TV_YPBPR169;
609 else if(CR39 == 0x03) pSiS->VBFlags |= TV_YPBPR43;
612 } else if((CR38 & 0x04) && (pSiS->VBFlags2 & VB2_CHRONTEL))
613 pSiS->VBFlags |= (TV_CHSCART | TV_PAL);
614 else if((CR38 & 0x08) && (pSiS->VBFlags2 & VB2_CHRONTEL))
615 pSiS->VBFlags |= (TV_CHYPBPR525I | TV_NTSC);
617 if(pSiS->VBFlags & (TV_SCART | TV_SVIDEO | TV_AVIDEO)) {
618 if(pSiS->VGAEngine == SIS_300_VGA) {
621 pSiS->VBFlags |= TV_PAL;
623 pSiS->VBFlags |= TV_NTSC;
624 } else if(pSiS->Chipset == PCI_CHIP_SIS550) {
631 pSiS->VBFlags |= TV_PAL;
632 if(CR38 & 0x40) pSiS->VBFlags |= TV_PALM;
633 else if(CR38 & 0x80) pSiS->VBFlags |= TV_PALN;
635 pSiS->VBFlags |= TV_NTSC;
636 } else if(pSiS->Chipset == PCI_CHIP_SIS650) {
639 pSiS->VBFlags |= TV_PAL;
640 if(CR38 & 0x40) pSiS->VBFlags |= TV_PALM;
641 else if(CR38 & 0x80) pSiS->VBFlags |= TV_PALN;
643 pSiS->VBFlags |= TV_NTSC;
644 } else if(pSiS->NewCRLayout) {
646 pSiS->VBFlags |= TV_PAL;
647 if(CR35 & 0x04) pSiS->VBFlags |= TV_PALM;
648 else if(CR35 & 0x08) pSiS->VBFlags |= TV_PALN;
650 pSiS->VBFlags |= TV_NTSC;
651 if(CR35 & 0x02) pSiS->VBFlags |= TV_NTSCJ;
655 pSiS->VBFlags |= TV_PAL;
656 if(CR38 & 0x40) pSiS->VBFlags |= TV_PALM;
657 else if(CR38 & 0x80) pSiS->VBFlags |= TV_PALN;
659 pSiS->VBFlags |= TV_NTSC;
665 "(vb.c: SISTVPreInit 2: VBFlags 0x%x)\n", pSiS->VBFlags);
668 if((pSiS->VBFlags & (TV_SCART|TV_SVIDEO|TV_AVIDEO)) && !quiet) {
670 (pSiS->VBFlags & TV_NTSC) ?
671 ((pSiS->VBFlags & TV_NTSCJ) ? "NTSCJ" : "NTSC") :
672 ((pSiS->VBFlags & TV_PALM) ? "PALM" :
673 ((pSiS->VBFlags & TV_PALN) ? "PALN" : "PAL")));
676 if((pSiS->VBFlags & TV_HIVISION) && !quiet) {
680 if((pSiS->VBFlags2 & VB2_CHRONTEL) && (pSiS->VBFlags & (TV_CHSCART|TV_CHYPBPR525I)) && !quiet) {
682 (pSiS->VBFlags & TV_CHSCART) ? "SCART (PAL)" : "YPbPr (480i)");
685 if((pSiS->VBFlags & TV_YPBPR) && !quiet) {
687 (pSiS->VBFlags & TV_YPBPR525I) ? "480i" :
688 ((pSiS->VBFlags & TV_YPBPR525P) ? "480p" :
689 ((pSiS->VBFlags & TV_YPBPR750P) ? "720p" : "1080i")));
696 SISPtr pSiS = SISPTR(pScrn);
700 if(!(pSiS->VBFlags2 & VB2_SISVGA2BRIDGE))
705 if(CR32 & 0x10) pSiS->VBFlags |= CRT2_VGA;
708 if(pSiS->SiS_Pr->DDCPortMixup) return;
711 if((!pSiS->DualHeadMode) || (!pSiS->SecondHead)) {
714 if(pSiS->forcecrt2redetection) {
715 pSiS->VBFlags &= ~CRT2_VGA;
725 if(!(pSiS->nocrt2ddcdetection)) {
726 if(!(pSiS->VBFlags & (CRT2_VGA | CRT2_LCD))) {
729 pSiS->forcecrt2redetection ?
731 if(SiS_SenseVGA2DDC(pSiS->SiS_Pr, pSiS)) {
737 pSiS->VBFlags |= CRT2_VGA;
738 pSiS->postVBCR32 |= 0x10;
756 SISPtr pSiS = SISPTR(pScrn);
770 SiS_DDC2Delay(pSiS->SiS_Pr, 0x1500);
780 SiS_DDC2Delay(pSiS->SiS_Pr, 0x1000);
788 #define GETROMWORD(w) (pSiS->BIOS[w] | (pSiS->BIOS[w+1] << 8))
794 SISPtr pSiS = SISPTR(pScrn);
801 if(!(pSiS->VBFlags2 & VB2_SISBRIDGE)) return;
806 "(vb.c: SISSense30c 1: CR32=%02x, VBFlags 0x%x)\n", backupP2_4d, pSiS->VBFlags);
809 if(pSiS->VBFlags2 & VB2_301) {
815 } else if(pSiS->VBFlags2 & (VB2_301B | VB2_302B)) {
817 } else if(pSiS->VBFlags2 & (VB2_301LV | VB2_302LV)) {
819 } else if(pSiS->VBFlags2 & (VB2_301C | VB2_302ELV | VB2_307T | VB2_307LV)) {
824 if(pSiS->VBFlags2 & (VB2_301LV|VB2_302LV|VB2_302ELV|VB2_307LV)) {
829 if(pSiS->Chipset == PCI_CHIP_SIS300) {
834 if(pSiS->SiS_Pr->UseROM) {
835 if(pSiS->VGAEngine == SIS_300_VGA) {
836 if(pSiS->VBFlags2 & VB2_301) {
842 biosflag = pSiS->BIOS[0xfe];
843 } else if((pSiS->Chipset == PCI_CHIP_SIS660) ||
844 (pSiS->Chipset == PCI_CHIP_SIS340)) {
845 if(pSiS->ROM661New) {
848 if(pSiS->BIOS[0x6f] & 0x01) {
849 if(pSiS->VBFlags2 & VB2_SISUMC) vga2 = GETROMWORD(0x4d);
852 if(pSiS->BIOS[0x5d] & 0x04) biosflag |= 0x01;
858 if(pSiS->ChipType >= XGI_20) {
859 if(pSiS->HaveXGIBIOS) {
860 biosflag = pSiS->BIOS[0x58] & 0x03;
874 if(!(pSiS->VBFlags2 & VB2_SISVGA2BRIDGE)) {
882 if(pSiS->VBFlags2 & VB2_30xCLV) {
887 SiS_DDC2Delay(pSiS->SiS_Pr, 0x2000);
893 if(pSiS->VBFlags2 & VB2_SISYPBPRBRIDGE) {
897 if(!(pSiS->VBFlags2 & VB2_30xCLV)) {
902 pSiS->postVBCR32 &= ~0x14;
911 pSiS->VBFlags |= TV_SCART;
913 pSiS->postVBCR32 |= 0x04;
919 pSiS->VBFlags |= VGA2_CONNECTED;
921 pSiS->postVBCR32 |= 0x10;
924 if(biosflag & 0x01) pSiS->SiS_SD_Flags |= SiS_SD_VBHASSCART;
928 pSiS->postVBCR32 &= 0x3f;
930 if(pSiS->VBFlags2 & VB2_30xCLV) {
934 if((pSiS->VGAEngine == SIS_315_VGA) && (pSiS->VBFlags2 & VB2_SISYPBPRBRIDGE)) {
935 if(pSiS->SenseYPbPr) {
937 SiS_DDC2Delay(pSiS->SiS_Pr, 0x2000);
946 pSiS->VBFlags |= TV_YPBPR;
947 pSiS->postVBCR32 |= 0x80;
955 pSiS->postVBCR32 &= ~0x03;
957 if(!(pSiS->VBFlags & TV_YPBPR)) {
964 pSiS->VBFlags |= TV_SVIDEO;
966 pSiS->postVBCR32 |= 0x02;
975 pSiS->VBFlags |= TV_AVIDEO;
977 pSiS->postVBCR32 |= 0x01;
989 if(pSiS->VBFlags2 & VB2_30xCLV) {
1004 "(vb.c: SISSense30c 2: CR32=0x%02x, VBFlags 0x%x)\n", backupP2_4d, pSiS->VBFlags);
1011 SISPtr pSiS = SISPTR(pScrn);
1015 if(pSiS->SiS_Pr->SiS_IF_DEF_CH70xx == 1) {
1020 temp1 = SiS_GetCH700x(pSiS->SiS_Pr, 0x0e); /* Power status */
1023 SiS_SetCH700x(pSiS->SiS_Pr, 0x0e,0x0b);
1024 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1028 SiS_SetCH700x(pSiS->SiS_Pr, 0x10, 0x01);
1029 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1030 SiS_SetCH700x(pSiS->SiS_Pr, 0x10, 0x00);
1031 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1032 temp1 = SiS_GetCH700x(pSiS->SiS_Pr, 0x10);
1036 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1048 } else if(pSiS->SiS_Pr->SiS_IF_DEF_CH70xx == 2) {
1053 temp1 = SiS_GetCH701x(pSiS->SiS_Pr, 0x49);
1056 SiS_SetCH701x(pSiS->SiS_Pr, 0x49, 0x20);
1058 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1061 temp2 = SiS_GetCH701x(pSiS->SiS_Pr, 0x20);
1063 SiS_SetCH701x(pSiS->SiS_Pr, 0x20, temp2);
1065 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1068 SiS_SetCH701x(pSiS->SiS_Pr, 0x20, temp2);
1070 SiS_DDC2Delay(pSiS->SiS_Pr, 0x96);
1072 temp2 = SiS_GetCH701x(pSiS->SiS_Pr, 0x20);
1075 SiS_SetCH701x(pSiS->SiS_Pr, 0x49, temp1);
1090 pSiS->VBFlags |= TV_AVIDEO;
1093 pSiS->postVBCR32 |= 0x01;
1094 pSiS->postVBCR32 &= ~0x06;
1099 pSiS->VBFlags |= TV_SVIDEO;
1102 pSiS->postVBCR32 |= 0x02;
1103 pSiS->postVBCR32 &= ~0x05;
1108 if(pSiS->chtvtype == -1) {
1115 pSiS->chtvtype = 1;
1117 if(pSiS->chtvtype)
1118 pSiS->VBFlags |= TV_CHSCART;
1120 pSiS->VBFlags |= TV_CHYPBPR525I;
1126 pSiS->postVBCR32 &= ~0x07;
1135 SISPtr pSiS = SISPTR(pScrn);
1136 ULong VBFlagsBackup = pSiS->VBFlags;
1137 Bool backup1 = pSiS->forcecrt2redetection;
1138 Bool backup2 = pSiS->nocrt2ddcdetection;
1141 if(pSiS->DualHeadMode) return FALSE;
1144 pSiS->VBFlags &= ~(CRT2_DEFAULT |
1156 if(pSiS->VBFlags2 & VB2_SISBRIDGE) {
1158 } else if(pSiS->VBFlags2 & VB2_CHRONTEL) {
1159 SiS_SetChrontelGPIO(pSiS->SiS_Pr, 0x9c);
1161 SiS_SetChrontelGPIO(pSiS->SiS_Pr, 0x00);
1166 pSiS->forcecrt2redetection = TRUE;
1167 pSiS->nocrt2ddcdetection = FALSE;
1173 if((pSiS->VGAEngine == SIS_315_VGA) &&
1174 (pSiS->VBFlags2 & VB2_SISTMDSBRIDGE) &&
1175 (!(pSiS->VBFlags2 & VB2_30xBDH)) &&
1176 (pSiS->VESA != 1) &&
1177 (pSiS->SiS_Pr->SiS_CustomT != CUT_UNKNOWNLCD)) {
1180 pSiS->VBFlags |= (pSiS->detectedCRT2Devices & CRT2_LCD);
1184 if(pSiS->VBFlags2 & VB2_SISVGA2BRIDGE) {
1188 pSiS->forcecrt2redetection = backup1;
1189 pSiS->nocrt2ddcdetection = backup2;
1191 pSiS->SiS_SD_Flags &= ~SiS_SD_SUPPORTLCDA;
1193 pSiS->SiS_SD_Flags |= SiS_SD_SUPPORTLCDA;
1197 pSiS->VBFlags = VBFlagsBackup;
1200 if(!(pSiS->detectedCRT2Devices & CRT2_LCD)) {
1201 pSiS->SiS_SD_Flags &= ~(SiS_SD_SUPPORTLCDA);
1202 if(pSiS->VBFlags & CRT2_LCD) {
1204 pSiS->VBFlags &= ~(CRT2_LCD | DISPLAY_MODE);
1206 pSiS->VBFlags |= (SINGLE_MODE | DISPTYPE_CRT1);
1207 pSiS->CRT1off = 0;
1210 pSiS->VBFlags &= ~(CRT1_LCDA);
1211 pSiS->VBFlags_backup = pSiS->VBFlags;
1214 pSiS->VBFlagsInit = pSiS->VBFlags;
1217 inSISIDXREG(SISCR,0x32,pSiS->myCR32);
1218 inSISIDXREG(SISCR,0x36,pSiS->myCR36);
1219 inSISIDXREG(SISCR,0x37,pSiS->myCR37);