diff options
author | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2011-01-27 18:54:09 +0000 |
---|---|---|
committer | Bartosz Kosiorek <gang65@poczta.onet.pl> | 2011-01-27 18:54:09 +0000 |
commit | c07a8987be855e870ca68dfc6a9a997632f11afb (patch) | |
tree | c1c77adfd837576674976d560d79d08964281501 | |
parent | b6e94e85bd67898072460843367a94f88be8f5fa (diff) |
Fix XVideo on VX900 chipsetvx900_branch
-rw-r--r-- | src/via.h | 2 | ||||
-rw-r--r-- | src/via_mode.c | 17 | ||||
-rw-r--r-- | src/via_swov.c | 4 |
3 files changed, 17 insertions, 6 deletions
@@ -260,7 +260,7 @@ #define V1_EXPIRE_NUM_A 0x000a0000 #define V1_EXPIRE_NUM_F 0x000f0000 /* jason */ #define V1_FIFO_EXTENDED 0x00200000 -#define V1_ON_CRT 0x00000000 +#define V1_ON_PRI 0x00000000 #define V1_ON_SND_DISPLAY 0x80000000 #define V1_FIFO_32V1_32V2 0x00000000 #define V1_FIFO_48V1_32V2 0x00200000 diff --git a/src/via_mode.c b/src/via_mode.c index c5b0b8f..d7bd243 100644 --- a/src/via_mode.c +++ b/src/via_mode.c @@ -1742,10 +1742,21 @@ ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode) ViaDisplayDisableCRT(pScrn); } - //FIXME Workaround to enable LCD on VX900 chipset - if (pVia->Chipset == VIA_VX900) + // Enable panel support on VM800, K8M800 and VX900 chipset + // See: https://bugs.launchpad.net/openchrome/+bug/186103 + if (pBIOSInfo->Panel->IsActive && + ((pVia->Chipset == VIA_VM800) || + (pVia->Chipset == VIA_K8M800) || + (pVia->Chipset == VIA_VX900) )) { + pBIOSInfo->FirstCRTC->IsActive=TRUE; + if (pVia->DDC1) { + pBIOSInfo->SecondCRTC->IsActive=TRUE; + } else { + //We need to disable the secondary to properly work XVideo on VX900 + pBIOSInfo->SecondCRTC->IsActive=FALSE; + } ViaModeFirstCRTC(pScrn, mode); - + } if (pBIOSInfo->Simultaneous->IsActive) { ViaDisplayEnableSimultaneous(pScrn); } else { diff --git a/src/via_swov.c b/src/via_swov.c index 13b2ae0..1158f58 100644 --- a/src/via_swov.c +++ b/src/via_swov.c @@ -1875,9 +1875,9 @@ Upd_Video(ScrnInfoPtr pScrn, unsigned long videoFlag, */ if ((pVia->VideoEngine == VIDEO_ENGINE_CME || pVia->Chipset == VIA_VM800) - && pVia->pBIOSInfo->Panel->IsActive) { + && (pBIOSInfo->SecondCRTC->IsActive==TRUE)) { - /* V1_ON_SND_DISPLAY */ + /* VAL_VIDEO_ON_SND_DISPLAY */ vidCtl |= V1_ON_SND_DISPLAY; /* SECOND_DISPLAY_COLOR_KEY_ENABLE */ compose |= SECOND_DISPLAY_COLOR_KEY_ENABLE | 0x1; |