summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuc Verhaegen <libv@skynet.be>2005-11-16 16:35:24 +0000
committerLuc Verhaegen <libv@skynet.be>2005-11-16 16:35:24 +0000
commit2c98dd28f448ef0b2dfd877c11982d5b1ef51ea6 (patch)
treeee5659eb41d6226309a2278fa18f9fcfc0616f0f
parente2ce1961008bf80ea789b5f8d068526310bed083 (diff)
[devel-drmVersion]
- Fix build to build against old and new via_drm.h. - Get pVia->drmVersion early on, so it can be used for more than the ringbuffer. Relay DRM version in log. - Include drm/via_drm.h instead of plain via_drm.h when using modular.
-rw-r--r--src/via_dri.c22
-rw-r--r--src/via_driver.h1
-rw-r--r--src/via_memory.c7
-rw-r--r--src/via_memory.h9
4 files changed, 30 insertions, 9 deletions
diff --git a/src/via_dri.c b/src/via_dri.c
index a421eb3..58a0b6e 100644
--- a/src/via_dri.c
+++ b/src/via_dri.c
@@ -39,7 +39,6 @@
#include "sarea.h"
#include "via_driver.h"
-#include "via_drm.h"
#include "via_dri.h"
#include "via_id.h"
#include "xf86drm.h"
@@ -151,15 +150,10 @@ VIADRIRingBufferInit(ScrnInfoPtr pScrn)
if (pVia->agpEnable) {
drm_via_dma_init_t ringBufInit;
- drmVersionPtr drmVer;
- if (NULL == (drmVer = drmGetVersion(pVia->drmFD))) {
+ if (!pVia->drmVersion || ((pVia->drmVersion->version_major <= 1) &&
+ (pVia->drmVersion->version_minor <= 3)))
return FALSE;
- }
-
- if (((drmVer->version_major <= 1) && (drmVer->version_minor <= 3))) {
- return FALSE;
- }
/*
* Info frome code-snippet on DRI-DEVEL list; Erdi Chen.
@@ -665,7 +659,6 @@ VIADRIScreenInit(ScrnInfoPtr pScrn, ScreenPtr pScreen)
return FALSE;
}
-
if (!(VIAInitVisualConfigs(pScrn))) {
VIADRICloseScreen(pScrn, pScreen);
return FALSE;
@@ -686,6 +679,17 @@ VIADRIScreenInit(ScrnInfoPtr pScrn, ScreenPtr pScreen)
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[dri] mmio mapped.\n" );
+ /* Get DRM version */
+ pVia->drmVersion = drmGetVersion(pVia->drmFD);
+ if (pVia->drmVersion) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "[drm] using DRM driver version %d.%d.%d (%s)\n",
+ pVia->drmVersion->version_major, pVia->drmVersion->version_minor,
+ pVia->drmVersion->version_patchlevel, pVia->drmVersion->date);
+ } else
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "[drm] unable to retrieve DRM version.\n");
+
return TRUE;
}
diff --git a/src/via_driver.h b/src/via_driver.h
index b12ee77..999910c 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -214,6 +214,7 @@ typedef struct _VIA {
Bool directRenderingEnabled;
DRIInfoPtr pDRIInfo;
int drmFD;
+ drmVersionPtr drmVersion;
int numVisualConfigs;
__GLXvisualConfig* pVisualConfigs;
VIAConfigPrivPtr pVisualConfigsPriv;
diff --git a/src/via_memory.c b/src/via_memory.c
index 7dd5db0..45ceefb 100644
--- a/src/via_memory.c
+++ b/src/via_memory.c
@@ -290,6 +290,13 @@ ViaMemFBAlloc(ScrnInfoPtr pScrn, unsigned long size, CARD8 alignment)
*
*/
+/* First some workarounds for the badly trackable drm changes.
+ * Plainly using VIDEO as a macro is a pretty bad initial choice
+ * though */
+#ifndef VIDEO
+#define VIDEO VIA_MEM_VIDEO
+#endif
+
/*
*
*/
diff --git a/src/via_memory.h b/src/via_memory.h
index 319ac12..f54835d 100644
--- a/src/via_memory.h
+++ b/src/via_memory.h
@@ -24,10 +24,19 @@
#ifndef _VIA_MEMORY_H_
#define _VIA_MEMORY_H_ 1
+/* Do this here because via_dri.h should be kept identical between dri and X
+ * driver */
#ifdef XF86DRI
+
+/* don't include local via_drm.h when using modular */
+#ifdef HAVE_CONFIG_H
+#include "drm/via_drm.h"
+#else
#include "via_drm.h"
#endif
+#endif /* XF86DRI */
+
#ifndef X_USE_LINEARFB
#define VIA_MEM_SLOTS 8
#endif