summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@poczta.onet.pl>2011-01-27 18:54:09 +0000
committerBartosz Kosiorek <gang65@poczta.onet.pl>2011-01-27 18:54:09 +0000
commitc07a8987be855e870ca68dfc6a9a997632f11afb (patch)
treec1c77adfd837576674976d560d79d08964281501
parentb6e94e85bd67898072460843367a94f88be8f5fa (diff)
Fix XVideo on VX900 chipsetvx900_branch
-rw-r--r--src/via.h2
-rw-r--r--src/via_mode.c17
-rw-r--r--src/via_swov.c4
3 files changed, 17 insertions, 6 deletions
diff --git a/src/via.h b/src/via.h
index c3298ca..8421b30 100644
--- a/src/via.h
+++ b/src/via.h
@@ -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;