Blob Blame History Raw
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 711)
+++ ChangeLog	(revision 712)
@@ -1,3 +1,14 @@
+2009-01-07  Jon Nettleton <jon.nettleton@gmail.com>
+
+	* src/via_bios.h:
+	* src/via_crtc.c: (via_xf86crtc_resize), (ViaPreInitCRTCConfig):
+	* src/via_driver.c: (VIAPreInit):
+
+	Temporary hack to fix a bug with newer Xorg and DRI
+	that crashes if CRTC is not setup.  I am adding this
+	because I am working on this part of the code anyways
+	so it won't get lost in bit rot.
+
 2009-01-06  Jon Nettleton  <jon.nettleton@gmail.com>
 
 	* src/via_mode.c: (ViaModesMonitorFixup), (ViaModesAttachHelper):
Index: src/via_driver.c
===================================================================
--- src/via_driver.c	(revision 711)
+++ src/via_driver.c	(revision 712)
@@ -1665,6 +1665,9 @@
         return FALSE;
     }
 
+	/* Might not belong here temporary fix for bug fix */
+    ViaPreInitCRTCConfig(pScrn);
+
     if (!pVia->UseLegacyModeSwitch) {
         if (pBIOSInfo->Panel->IsActive)
             ViaPanelPreInit(pScrn);
Index: src/via_crtc.c
===================================================================
--- src/via_crtc.c	(revision 711)
+++ src/via_crtc.c	(revision 712)
@@ -35,6 +35,8 @@
 
 #include "via_mode.h"
 
+#include <xorg/xf86Crtc.h>
+
 static void
 ViaCRTCSetGraphicsRegisters(ScrnInfoPtr pScrn)
 {
@@ -73,6 +75,26 @@
     hwp->writeAttr(hwp, 0x14, 0x00);
 }
 
+static Bool
+via_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
+{
+    scrn->virtualX = width;
+    scrn->virtualY = height;
+    return TRUE;
+}
+
+static const
+xf86CrtcConfigFuncsRec via_xf86crtc_config_funcs = {
+    via_xf86crtc_resize
+};
+
+void 
+ViaPreInitCRTCConfig(ScrnInfoPtr pScrn)
+{
+     xf86CrtcConfigInit (pScrn, &via_xf86crtc_config_funcs);
+}
+
+
 void
 ViaCRTCInit(ScrnInfoPtr pScrn)
 {
Index: src/via_bios.h
===================================================================
--- src/via_bios.h	(revision 711)
+++ src/via_bios.h	(revision 712)
@@ -227,6 +227,7 @@
 void ViaModeSet(ScrnInfoPtr pScrn, DisplayModePtr mode);
 
 /* via_crtc.c */
+void ViaPreInitCRTCConfig(ScrnInfoPtr pScrn);
 void ViaCRTCInit(ScrnInfoPtr pScrn);
 void ViaFirstCRTCSetStartingAddress(ScrnInfoPtr pSCrn, int x, int y);
 void ViaFirstCRTCSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);