open-src/driver/xf86-video-vesa/vesa_xorg72.patch
author Niveditha Rau <Niveditha.Rau@Oracle.COM>
Fri, 06 Apr 2012 21:57:14 -0700
changeset 1265 0b5cc5c013e4
parent 606 068c11b419c9
permissions -rw-r--r--
7083537 Xorg 1.12 & associated module updates

Fixes Sun bug 6526933: Matrox MGA chip (embedded in ServerEngines "Pilot" BSC)
does not work with vesa driver

diff --git a/src/vesa.c b/src/vesa.c
index 23d9e14..709d791 100644
--- a/src/vesa.c
+++ b/src/vesa.c
@@ -1488,19 +1488,19 @@ SaveFonts(ScrnInfoPtr pScrn)
     WriteGr(0x06, 0x05);	/* set graphics */
     slowbcopy_frombus(pVesa->VGAbase, pVesa->fonts + 8192, 8192);
 
-    scrn = ReadSeq(pVesa, 0x01) & ~0x20;
-    SeqReset(pVesa, TRUE);
-    WriteSeq(0x01, scrn);
-    SeqReset(pVesa, FALSE);
-
     /* Restore clobbered registers */
     WriteAttr(pVesa, 0x10, attr10);
-    WriteSeq(0x02, seq2);
-    WriteSeq(0x04, seq4);
     WriteGr(0x04, gr4);
     WriteGr(0x05, gr5);
     WriteGr(0x06, gr6);
+    WriteSeq(0x02, seq2);
+    WriteSeq(0x04, seq4);
     WriteMiscOut(miscOut);
+
+    scrn = ReadSeq(pVesa, 0x01) & ~0x20;
+    SeqReset(pVesa, TRUE);
+    WriteSeq(0x01, scrn);
+    SeqReset(pVesa, FALSE);
 }
 
 static void
@@ -1557,11 +1557,6 @@ RestoreFonts(ScrnInfoPtr pScrn)
     WriteGr(0x06, 0x05);    /* set graphics */
     slowbcopy_tobus(pVesa->fonts + 8192, pVesa->VGAbase, 8192);
 
-    scrn = ReadSeq(pVesa, 0x01) & ~0x20;
-    SeqReset(pVesa, TRUE);
-    WriteSeq(0x01, scrn);
-    SeqReset(pVesa, FALSE);
-
     /* restore the registers that were changed */
     WriteMiscOut(miscOut);
     WriteAttr(pVesa, 0x10, attr10);
@@ -1573,6 +1568,11 @@ RestoreFonts(ScrnInfoPtr pScrn)
     WriteGr(0x08, gr8);
     WriteSeq(0x02, seq2);
     WriteSeq(0x04, seq4);
+
+    scrn = ReadSeq(pVesa, 0x01) & ~0x20;
+    SeqReset(pVesa, TRUE);
+    WriteSeq(0x01, scrn);
+    SeqReset(pVesa, FALSE);
 }
 
 static Bool