[PATCH sis] Untangle XF86DRI from the driver-specific DRI define

Peter Hutterer peter.hutterer at who-t.net
Tue Jan 3 20:14:33 PST 2012


XF86DRI is defined by xorg-server.h, so --disable-dri in the sis driver
itself does exactly nothing other than not fill in the CFLAGS and thus stop
the driver from compiling.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 configure.ac     |    4 ++--
 src/sis.h        |   16 +++++++++++-----
 src/sis_dri.c    |    2 +-
 src/sis_driver.c |   14 +++++++-------
 src/sis_opt.c    |    4 ++--
 5 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/configure.ac b/configure.ac
index 036a448..a599108 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,8 +99,8 @@ AC_MSG_RESULT([$DRI])
 AM_CONDITIONAL(DRI, test x$DRI = xyes)
 if test "$DRI" = yes; then
         PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
-        AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
-        AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
+        AC_DEFINE(SISDRI,1,[Enable DRI driver support])
+        AC_DEFINE(SIDDRI_DEVEL,1,[Enable developmental DRI driver support])
 fi
 
 # technically this should be a configure flag.  meh.
diff --git a/src/sis.h b/src/sis.h
index 9af31a5..f2ca3a9 100644
--- a/src/sis.h
+++ b/src/sis.h
@@ -181,7 +181,13 @@
 
 #undef SISHAVEDRMWRITE
 #undef SISNEWDRI
-#ifdef XF86DRI
+
+/* if the server was built without DRI support, force-disable DRI */
+#ifndef XF86DRI
+#undef SISDRI
+#endif
+
+#ifdef SISDRI
 #if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(4,2,99,3,0)
 #define SISHAVEDRMWRITE
 #endif
@@ -195,7 +201,7 @@
 #include "dri.h"
 #include "GL/glxint.h"
 #include "sis_dri.h"
-#endif /* XF86DRI */
+#endif /* SISDRI */
 
 /* Configurable stuff: ------------------------------------- */
 
@@ -812,7 +818,7 @@ typedef struct {
     ScrnInfoPtr		pScrn_2;
     UChar		*BIOS;
     struct SiS_Private	*SiS_Pr;
-#ifdef XF86DRI
+#ifdef SISDRI
     SISAGPHTYPE		agpHandle;
     ULong		agpAddr;
     UChar		*agpBase;
@@ -1092,7 +1098,7 @@ typedef struct {
     unsigned int	cmdQueueSize_div2;
     unsigned int	cmdQueueSize_div4;
     unsigned int	cmdQueueSize_4_3;
-#ifdef XF86DRI
+#ifdef SISDRI
     SISAGPHTYPE		agpHandle;
     ULong		agpAddr;
     UChar 		*agpBase;
@@ -1151,7 +1157,7 @@ typedef struct {
 
     /* DRI */
     Bool		loadDRI;
-#ifdef XF86DRI
+#ifdef SISDRI
     Bool		directRenderingEnabled;
     DRIInfoPtr 		pDRIInfo;
     int			drmSubFD;
diff --git a/src/sis_dri.c b/src/sis_dri.c
index 97ed951..d0c4fba 100644
--- a/src/sis_dri.c
+++ b/src/sis_dri.c
@@ -369,7 +369,7 @@ SISDRIScreenInit(ScreenPtr pScreen)
    */
   pDRIInfo->SAREASize =
     ((sizeof(XF86DRISAREARec) + getpagesize() - 1) & getpagesize()); /* round to page */
-    /* ((sizeof(XF86DRISAREARec) + 0xfff) & 0x1000); */ /* round to page */
+    /* ((sizeof(SISDRISAREARec) + 0xfff) & 0x1000); */ /* round to page */
   /* + shared memory device private rec */
 #else
   /* For now the mapping works by using a fixed size defined
diff --git a/src/sis_driver.c b/src/sis_driver.c
index 3218239..d733f48 100644
--- a/src/sis_driver.c
+++ b/src/sis_driver.c
@@ -90,7 +90,7 @@
 #endif
 
 
-#ifdef XF86DRI
+#ifdef SISDRI
 #include "dri.h"
 #endif
 
@@ -6895,7 +6895,7 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
     }
 
     /* Load the dri and glx modules if requested. */
-#ifdef XF86DRI
+#ifdef SISDRI
     if(pSiS->loadDRI) {
        if(!xf86LoaderCheckSymbol("DRIScreenInit")) {
 	  if(xf86LoadSubModule(pScrn, "dri")) {
@@ -8731,7 +8731,7 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
 
     pSiS->cmdQueueLen = 0; /* Force an EngineIdle() at start */
 
-#ifdef XF86DRI
+#ifdef SISDRI
     if(pSiS->loadDRI) {
 #ifdef SISDUALHEAD
        /* No DRI in dual head mode */
@@ -9044,7 +9044,7 @@ SISScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
     }
 #endif
 
-#ifdef XF86DRI
+#ifdef SISDRI
     if(pSiS->loadDRI) {
        if(pSiS->directRenderingEnabled) {
           /* Now that mi, drm and others have done their thing,
@@ -9778,7 +9778,7 @@ SISEnterVT(int scrnIndex, int flags)
 
     SISAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
 
-#ifdef XF86DRI
+#ifdef SISDRI
     if(pSiS->directRenderingEnabled) {
        DRIUnlock(screenInfo.screens[scrnIndex]);
     }
@@ -9804,7 +9804,7 @@ SISLeaveVT(int scrnIndex, int flags)
 {
     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
     SISPtr pSiS = SISPTR(pScrn);
-#ifdef XF86DRI
+#ifdef SISDRI
     ScreenPtr pScreen;
 
     if(pSiS->directRenderingEnabled) {
@@ -9888,7 +9888,7 @@ SISCloseScreen(int scrnIndex, ScreenPtr pScreen)
        SiSCtrlExtUnregister(pSiS, pScrn->scrnIndex);
     }
 
-#ifdef XF86DRI
+#ifdef SISDRI
     if(pSiS->directRenderingEnabled) {
        SISDRICloseScreen(pScreen);
        pSiS->directRenderingEnabled = FALSE;
diff --git a/src/sis_opt.c b/src/sis_opt.c
index d39ff6e..3fa12c9 100644
--- a/src/sis_opt.c
+++ b/src/sis_opt.c
@@ -480,7 +480,7 @@ SiSOptions(ScrnInfoPtr pScrn)
 #endif
     pSiS->ShadowFB = FALSE;
     pSiS->loadDRI = FALSE;
-#ifdef XF86DRI
+#ifdef SISDRI
     pSiS->agpWantedPages = AGP_PAGES;
 #endif
     pSiS->VESA = -1;
@@ -2034,7 +2034,7 @@ SiSOptions(ScrnInfoPtr pScrn)
        }
     }
 
-#ifdef XF86DRI
+#ifdef SISDRI
     /* DRI */
     from = X_DEFAULT;
     if(xf86GetOptValBool(pSiS->Options, OPTION_DRI, &pSiS->loadDRI)) {
-- 
1.7.7.4

Cheers,
  Peter


More information about the xorg-devel mailing list