summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <unichrome@shipmail.org>2006-02-22 04:46:30 +0000
committerThomas Hellstrom <unichrome@shipmail.org>2006-02-22 04:46:30 +0000
commita2490dabe8fb3b74ba320f38556280917f254465 (patch)
tree2aaf0107a2a4829339e0e24b40daa132c60312a0
parentd0d329b8708faf9a07695509fb73fce1129155c6 (diff)
Add a proper framebuffer map for DRI. (openChrome Chgset 144)
-rw-r--r--ChangeLog6
-rw-r--r--src/via_dri.c11
-rw-r--r--src/via_driver.h1
3 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2a2a5d0..e8a55d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2006-02-22 Thomas Hellstrom <thomas-at-tungstengraphics.com>
+ * src/via_dri.c: (VIADRIKernelInit), (VIADRIMapInit):
+ * src/via_driver.h:
+ Add a proper framebuffer map for DRI. (openChrome Chgset 144)
+
+2006-02-22 Thomas Hellstrom <thomas-at-tungstengraphics.com>
+
* configure.ac:
* src/via_drmclient.h:
* src/xvmc/viaXvMC.c:
diff --git a/src/via_dri.c b/src/via_dri.c
index 12506c5..7f64d21 100644
--- a/src/via_dri.c
+++ b/src/via_dri.c
@@ -881,7 +881,7 @@ static Bool VIADRIKernelInit(ScreenPtr pScreen, VIAPtr pVia)
memset(&drmInfo, 0, sizeof(drm_via_init_t));
drmInfo.func = VIA_INIT_MAP;
drmInfo.sarea_priv_offset = sizeof(XF86DRISAREARec);
- drmInfo.fb_offset = pVia->FrameBufferBase;
+ drmInfo.fb_offset = pVia->frameBufferHandle;
drmInfo.mmio_offset = pVia->registerHandle;
if (pVia->IsPCI)
drmInfo.agpAddr = (CARD32)NULL;
@@ -904,9 +904,14 @@ static Bool VIADRIMapInit(ScreenPtr pScreen, VIAPtr pVia)
DRM_REGISTERS, flags, &pVia->registerHandle) < 0) {
return FALSE;
}
-
xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] register handle = 0x%08lx\n",
(unsigned long) pVia->registerHandle);
-
+ if (drmAddMap(pVia->drmFD, pVia->FrameBufferBase, pVia->videoRambytes,
+ DRM_FRAME_BUFFER, 0, &pVia->frameBufferHandle) < 0) {
+ return FALSE;
+ }
+ xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] framebuffer handle = 0x%08lx\n",
+ (unsigned long) pVia->frameBufferHandle);
+
return TRUE;
}
diff --git a/src/via_driver.h b/src/via_driver.h
index df1fccc..84c8657 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -258,6 +258,7 @@ typedef struct _VIA {
VIAConfigPrivPtr pVisualConfigsPriv;
drm_handle_t agpHandle;
drm_handle_t registerHandle;
+ drm_handle_t frameBufferHandle;
unsigned long agpAddr;
drmAddress agpMappedAddr;
unsigned char *agpBase;