summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Kosiorek <gang65@poczta.onet.pl>2010-12-15 20:19:56 +0000
committerBartosz Kosiorek <gang65@poczta.onet.pl>2010-12-15 20:19:56 +0000
commitb9f239eac6e87139e8882b65cded51da96902cce (patch)
treeb1c012c2a5315567f47e63e8faad3b8db842889d
parent242f8ee3b7e76e66091708547deb385ab355cd8a (diff)
Enable new mode switch and panel support on K8M800 and VM800
-rw-r--r--ChangeLog7
-rw-r--r--src/via_driver.c12
-rw-r--r--src/via_mode.c7
3 files changed, 14 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a0b47c..c597424 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-12-15 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Enable the new mode switch and panel support on K8M800 and VM800 chipsets
+
+ * src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit):
+ * src/via_mode.c: (ViaModeSet):
+
2010-11-10 Bartosz Kosiorek <gang65@poczta.onet.pl>
Replace the deprecated functions
diff --git a/src/via_driver.c b/src/via_driver.c
index f8198d5..ec62102 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -725,7 +725,6 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn)
break;
case VIA_K8M800:
pVia->DRIIrqEnable = FALSE;
- pVia->UseLegacyModeSwitch = TRUE;
break;
case VIA_PM800:
/* Use new mode switch to resolve many resolution and display bugs (switch to console) */
@@ -735,7 +734,6 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn)
case VIA_VM800:
/* New mode switch resolve bug with gamma set #282 */
/* and with Xv after hibernate #240 */
- /* FIXME Add panel support for this chipset */
break;
case VIA_CX700:
pVia->VideoEngine = VIDEO_ENGINE_CME;
@@ -1616,16 +1614,6 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags)
ViaPanelPreInit(pScrn);
}
- if (pBIOSInfo->Panel->IsActive &&
- ((pVia->Chipset == VIA_K8M800) ||
- (pVia->Chipset == VIA_VM800))) {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and "
- "VM800 is currently not supported.\n");
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Using VBE to set modes to work around this.\n");
- pVia->useVBEModes = TRUE;
- }
-
pVia->pVbe = NULL;
if (pVia->useVBEModes) {
/* VBE doesn't properly initialise int10 itself. */
diff --git a/src/via_mode.c b/src/via_mode.c
index 37ef7ba..ca1f0f2 100644
--- a/src/via_mode.c
+++ b/src/via_mode.c
@@ -1734,6 +1734,13 @@ ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode)
ViaDisplayDisableCRT(pScrn);
}
+ // Enable panel support on K8M800 and VM800 chipset
+ // See: https://bugs.launchpad.net/openchrome/+bug/186103
+ if (pBIOSInfo->Panel->IsActive &&
+ ((pVia->Chipset == VIA_K8M800) ||
+ (pVia->Chipset == VIA_VM800)))
+ ViaModeFirstCRTC(pScrn, mode);
+
if (pBIOSInfo->Simultaneous->IsActive) {
ViaDisplayEnableSimultaneous(pScrn);
} else {