diff options
author | Luc Verhaegen <libv@skynet.be> | 2005-11-16 16:35:24 +0000 |
---|---|---|
committer | Luc Verhaegen <libv@skynet.be> | 2005-11-16 16:35:24 +0000 |
commit | 2c98dd28f448ef0b2dfd877c11982d5b1ef51ea6 (patch) | |
tree | ee5659eb41d6226309a2278fa18f9fcfc0616f0f | |
parent | e2ce1961008bf80ea789b5f8d068526310bed083 (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.c | 22 | ||||
-rw-r--r-- | src/via_driver.h | 1 | ||||
-rw-r--r-- | src/via_memory.c | 7 | ||||
-rw-r--r-- | src/via_memory.h | 9 |
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 |