Save the register state before we write to any of them. This makes the XORG-6_7_99_901 XORG-6_7_99_902 XORG-6_7_99_903 XORG-6_7_99_904 XORG-6_8_0 XORG-6_8_1 XORG-6_8_1_901 XORG-6_8_1_902 XORG-6_8_1_903 XORG-6_8_1_904 XORG-6_8_2 lg3d-base lg3d-rel-0-6-2 lg3d-rel-0-7-0 rel-0-6-1
authornolan <nolan>
Sat, 14 Aug 2004 01:03:55 +0000 (01:03 +0000)
committernolan <nolan>
Sat, 14 Aug 2004 01:03:55 +0000 (01:03 +0000)
    VMware driver coexist with VESA fbcon.

src/vmware.c

index baa302d..15363e4 100644 (file)
@@ -151,6 +151,7 @@ static const OptionInfoRec VMWAREOptions[] = {
 };
 
 static void VMWAREStopFIFO(ScrnInfoPtr pScrn);
+static void VMWARESave(ScrnInfoPtr pScrn);
 
 static Bool
 VMWAREGetRec(ScrnInfoPtr pScrn)
@@ -435,13 +436,6 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
                "VMware SVGA regs at (0x%04lx, 0x%04lx)\n",
                pVMWARE->indexReg, pVMWARE->valueReg);
 
-    id = VMXGetVMwareSvgaId(pVMWARE);
-    if (id == SVGA_ID_0 || id == SVGA_ID_INVALID) {
-        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                   "No supported VMware SVGA found (read ID 0x%08x).\n", id);
-        return FALSE;
-    }
-
     if (!xf86LoadSubModule(pScrn, "vgahw")) {
         return FALSE;
     }
@@ -452,6 +446,19 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
         return FALSE;
     }
 
+    /*
+     * Save the current video state.  Do it here before VMXGetVMwareSvgaId
+     * writes to any registers.
+     */
+    VMWARESave(pScrn);
+
+    id = VMXGetVMwareSvgaId(pVMWARE);
+    if (id == SVGA_ID_0 || id == SVGA_ID_INVALID) {
+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                   "No supported VMware SVGA found (read ID 0x%08x).\n", id);
+        return FALSE;
+    }
+
     pVMWARE->PciTag = pciTag(pVMWARE->PciInfo->bus, pVMWARE->PciInfo->device,
                              pVMWARE->PciInfo->func);
     pVMWARE->Primary = xf86IsPrimaryPci(pVMWARE->PciInfo);
@@ -1124,9 +1131,6 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     hwp = VGAHWPTR(pScrn);
     vgaHWGetIOBase(hwp);
 
-    /* Save the current video state */
-    VMWARESave(pScrn);
-
     VMWAREInitFIFO(pScrn);
 
     /* Initialise the first mode */