diff options
author | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2010-11-10 17:01:26 +0000 |
---|---|---|
committer | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2010-11-10 17:01:26 +0000 |
commit | 185cfc63a76b7502069d239fda9f53b5b4ac3286 (patch) | |
tree | 873581d51e2d22eda77929405e95e1ad6928c1f6 | |
parent | 1a8d4cbfe704336edb6e59d9d8b3bfcb964e7744 (diff) |
Fix bug #342 with TV out flickering
-rw-r--r-- | src/via_vt162x.c | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/via_vt162x.c b/src/via_vt162x.c index aa64b33..963e33d 100644 --- a/src/via_vt162x.c +++ b/src/via_vt162x.c @@ -41,30 +41,42 @@ ViaSetTVClockSource(ScrnInfoPtr pScrn) VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; vgaHWPtr hwp = VGAHWPTR(pScrn); - /* External TV: */ - switch(pVia->Chipset) { - case VIA_CX700: - case VIA_VX800: - if (pBIOSInfo->FirstCRTC->IsActive) { - if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP1) - ViaCrtcMask(hwp, 0x6C, 0xB0, 0xF0); - else if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP0) - ViaCrtcMask(hwp, 0x6C, 0x90, 0xF0); - } else { - /* IGA2 */ - if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP1) - ViaCrtcMask(hwp, 0x6C, 0x0B, 0x0F); - else if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP0) - ViaCrtcMask(hwp, 0x6C, 0x09, 0x0F); + switch(pBIOSInfo->TVEncoder) { + case VIA_VT1625: + /* External TV: */ + switch(pVia->Chipset) { + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + if (pBIOSInfo->FirstCRTC->IsActive) { + if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP1) + ViaCrtcMask(hwp, 0x6C, 0xB0, 0xF0); + else if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP0) + ViaCrtcMask(hwp, 0x6C, 0x90, 0xF0); + } else { + /* IGA2 */ + if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP1) + ViaCrtcMask(hwp, 0x6C, 0x0B, 0x0F); + else if(pBIOSInfo->TVDIPort == VIA_DI_PORT_DVP0) + ViaCrtcMask(hwp, 0x6C, 0x09, 0x0F); + } + break; + default: + if (pBIOSInfo->FirstCRTC->IsActive) + ViaCrtcMask(hwp, 0x6C, 0x21, 0x21); + else + ViaCrtcMask(hwp, 0x6C, 0xA1, 0xA1); + break; } break; default: if (pBIOSInfo->FirstCRTC->IsActive) - ViaCrtcMask(hwp, 0x6C, 0x21, 0x21); + ViaCrtcMask(hwp, 0x6C, 0x50, 0xF0); else - ViaCrtcMask(hwp, 0x6C, 0xA1, 0xA1); + ViaCrtcMask(hwp, 0x6C, 0x05, 0x0F); break; } + } static void |