[PATCH v4 3/4] DRI2: wrap drm bits with macros and change drm_magic type

Pauli Nieminen ext-pauli.nieminen at nokia.com
Fri Apr 30 04:10:02 PDT 2010


From: Tiago Vignatti <tiago.vignatti at nokia.com>

Signed-off-by: Tiago Vignatti <tiago.vignatti at nokia.com>
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen at nokia.com>
---

Changes:
 * Remove unnecessery include of xf86drm.h from dri2ext.c that
   were only required for drm_magic_t in dri2.h.
 * Add comment from v2 that was accidentaly dropped from v3.

 hw/xfree86/dri2/dri2.c    |   19 +++++++++++++++++--
 hw/xfree86/dri2/dri2.h    |    2 +-
 hw/xfree86/dri2/dri2ext.c |    1 -
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 8d2acf0..b20e96d 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -35,7 +35,9 @@
 #endif
 
 #include <errno.h>
+#ifdef WITH_LIBDRM
 #include <xf86drm.h>
+#endif
 #include "xf86Module.h"
 #include "scrnintstr.h"
 #include "windowstr.h"
@@ -791,7 +793,7 @@ DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
 }
 
 Bool
-DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic)
+DRI2Authenticate(ScreenPtr pScreen, uint32_t magic)
 {
     DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
 
@@ -847,9 +849,16 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
         ds->AuthMagic      = info->AuthMagic;
     }
 
+    /*
+     * if the driver doesn't provide an AuthMagic function or the info struct
+     * version is too low, it relies on the old method (using libdrm) or fails
+     */
     if (!ds->AuthMagic)
+#ifdef WITH_LIBDRM
         ds->AuthMagic = drmAuthMagic;
-
+#else
+        goto err_out;
+#endif
 
     /* Initialize minor if needed and set to minimum provied by DDX */
     if (!dri2_minor || dri2_minor > cur_minor)
@@ -886,6 +895,12 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info)
     }
 
     return TRUE;
+
+err_out:
+    xf86DrvMsg(pScreen->myNum, X_WARNING,
+            "[DRI2] Initialization failed for info version %d.\n", info->version);
+    xfree(ds);
+    return FALSE;
 }
 
 void
diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
index ea48ee9..0a14094 100644
--- a/hw/xfree86/dri2/dri2.h
+++ b/hw/xfree86/dri2/dri2.h
@@ -202,7 +202,7 @@ extern _X_EXPORT Bool DRI2Connect(ScreenPtr pScreen,
 		 const char **driverName,
 		 const char **deviceName);
 
-extern _X_EXPORT Bool DRI2Authenticate(ScreenPtr pScreen, drm_magic_t magic);
+extern _X_EXPORT Bool DRI2Authenticate(ScreenPtr pScreen, uint32_t magic);
 
 extern _X_EXPORT int DRI2CreateDrawable(DrawablePtr pDraw);
 
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index 17df130..97e0a5c 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -42,7 +42,6 @@
 #include "scrnintstr.h"
 #include "pixmapstr.h"
 #include "extnsionst.h"
-#include "xf86drm.h"
 #include "xfixes.h"
 #include "dri2.h"
 #include "protocol-versions.h"
-- 
1.6.3.3



More information about the xorg-devel mailing list