Hi,

The mga driver in XFree86-4.1 does not restore text mode properly, since
it always sets the clock to 25MHz (or 28?) when returning to text mode,
instead of restoring the clock that was when X started. This causes
problems when the text mode uses a non-standard mode (when using
SVGATextMode).

The following patch fixes this problem.


--- mga_dacG.c  Thu Jan 10 13:08:34 2002
+++ mga_dacG.c  Sun Dec 16 11:40:41 2001
@@ -212,6 +212,7 @@

        if(MGAISG450(pMga)) {
                G450SetPLLFreq(pScrn, f_out);
+                pReg->PIXPLLC_Saved = FALSE;
                return;
        }

@@ -672,7 +673,7 @@
                  (i == 0x1c) ||
                  ((i >= 0x1f) && (i <= 0x29)) ||
                  ((i >= 0x30) && (i <= 0x37)) ||
-                 (MGAISG450(pMga) &&
+                 (MGAISG450(pMga) && !mgaReg->PIXPLLC_Saved &&
                   ((i == 0x2c) || (i == 0x2d) || (i == 0x2e) ||
                    (i == 0x4c) || (i == 0x4d) || (i == 0x4e))))
                 continue;
@@ -793,6 +794,8 @@
         */
        for (i = 0; i < DACREGSIZE; i++)
                mgaReg->DacRegs[i] = inMGAdac(i);
+
+        mgaReg->PIXPLLC_Saved = TRUE;

        mgaReg->Option = pciReadLong(pMga->PciTag, PCI_OPTION_REG);


-- 
Matan Ziv-Av.                         [EMAIL PROTECTED]


_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to