summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellstrom <unichrome@shipmail.org>2004-03-21 18:49:04 +0000
committerThomas Hellstrom <unichrome@shipmail.org>2004-03-21 18:49:04 +0000
commit1e0597209487403b85c6e521f1d57821658482bf (patch)
tree0534249879f15f378fdc2c1166bb71cb8cd1351f
parent7299f048ee48f5a287c3129713f93665276e583b (diff)
Final (?) fix of bug reported by Huynh Tran. The server probably called
drmRmMap on non-existing maps when it exited. This probably caused a total machine lockup. :-(
-rw-r--r--src/via_driver.c7
-rw-r--r--src/via_xvmc.c4
2 files changed, 7 insertions, 4 deletions
diff --git a/src/via_driver.c b/src/via_driver.c
index 17bdb88..aef5cb4 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -305,6 +305,8 @@ static const char *drmSymbols[] = {
"drmRmMap",
"drmCreateContext",
"drmAuthMagic",
+ "drmDestroyContext",
+ "drmSetContextFlags",
NULL
};
@@ -318,6 +320,8 @@ static const char *driSymbols[] = {
"DRIQueryVersion",
"DRIScreenInit",
"DRIUnlock",
+ "DRIOpenConnection",
+ "DRICloseConnection",
"GlxSetVisualConfigs",
NULL
};
@@ -2552,8 +2556,7 @@ static Bool VIAScreenInit(int scrnIndex, ScreenPtr pScreen,
viaInitVideo(pScreen);
#ifdef XF86DRI
pVia->XvMCEnabled = 0;
- if (pVia->Chipset == VIA_CLE266)
- ViaInitXVMC(pScreen);
+ ViaInitXVMC(pScreen);
#endif
viaInitV4L(pScrn);
}
diff --git a/src/via_xvmc.c b/src/via_xvmc.c
index 99dc6ec..d084812 100644
--- a/src/via_xvmc.c
+++ b/src/via_xvmc.c
@@ -309,7 +309,7 @@ void ViaInitXVMC(ScreenPtr pScreen)
initViaXvMC(vXvMC);
- if (! xf86XvMCScreenInit(pScreen, 1, ppAdapt)) {
+ if (! xf86XvMCScreenInit(pScreen, 1, ppAdapt)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] XvMCScreenInit failed.\n");
drmRmMap(pVia->drmFD,vXvMC->mmioBase);
drmRmMap(pVia->drmFD,vXvMC->fbBase);
@@ -332,7 +332,7 @@ void ViaCleanupXVMC(ScreenPtr pScreen) {
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
VIAPtr pVia = VIAPTR(pScrn);
ViaXvMCPtr vXvMC = &(pVia->xvmc);
-
+
if (pVia->XvMCEnabled) {
mpegDisable(pVia,0);
drmRmMap(pVia->drmFD,vXvMC->mmioBase);