[Openchrome-users] Getting around VBE modes

userforum@openchrome.org userforum
Sat Mar 11 06:23:19 PST 2006


Re: Getting around VBE modes

Whoo thanks Thomas!
I finally managed to fix this thing that has been bothering me for almost a year!
Unfortunately your reply isn't visible in the forum, but here's what happened:
I looked in via_driver.c as you suggested and added some debugging code.
Then I started X remotely. The driver calls ViaVbeSaveRestore in VIAScreenInit:
....
if (pVia->pVbe)
  ViaVbeSaveRestore(pScrn, MODE_SAVE);
else
....

This call to ViaVbeSaveRestore is the problem. I removed this line completely and the whole delay problem is gone.
I also needed to remove the other calls to ViaVbeSaveRestore to be able to switch back and forth between a terminal and an X session.

Here's a patch for the SVN from 7 march. I don't know if this is useful for other cards as well.

--- openchrome-cvs-070306.bak/unichrome/via_driver.c    2006-03-11 15:17:09.000000000 +0100
+++ openchrome-cvs-070306/unichrome/via_driver.c        2006-03-11 15:01:38.000000000 +0100
@@ -1592,7 +1592,7 @@
     DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAEnterVT\n"));
     
     if (pVia->pVbe) {
-       ViaVbeSaveRestore(pScrn, MODE_SAVE);
+/*     ViaVbeSaveRestore(pScrn, MODE_SAVE);*/
        ret = ViaVbeSetMode(pScrn, pScrn->currentMode); 
     } else {
        VIASave(pScrn);
@@ -1661,9 +1661,9 @@
     if (pVia->hwcursor)
        ViaCursorStore(pScrn);
 
-    if (pVia->pVbe)
+/*    if (pVia->pVbe)
        ViaVbeSaveRestore(pScrn, MODE_RESTORE);
-    else
+    else*/
        VIARestore(pScrn);
 
     vgaHWLock(hwp);
@@ -2071,9 +2071,9 @@
     if (!VIAMapMMIO(pScrn))
         return FALSE;
 
-    if (pVia->pVbe)
+/*    if (pVia->pVbe)
        ViaVbeSaveRestore(pScrn, MODE_SAVE);
-    else
+    else*/
        VIASave(pScrn);
 
     vgaHWUnlock(hwp);
@@ -2409,9 +2409,9 @@
     }
 
     if (pScrn->vtSema) {
-       if (pVia->pVbe)
+/*     if (pVia->pVbe)
            ViaVbeSaveRestore(pScrn, MODE_RESTORE); 
-       else
+       else*/
            VIARestore(pScrn);
 
        vgaHWLock(hwp);





More information about the Openchrome-users mailing list