summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nv_driver.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nv_driver.c b/src/nv_driver.c
index 0f47a0a..92697f8 100644
--- a/src/nv_driver.c
+++ b/src/nv_driver.c
@@ -1003,9 +1003,13 @@ NVCloseScreen(int scrnIndex, ScreenPtr pScreen)
NVPtr pNv = NVPTR(pScrn);
if (pScrn->vtSema) {
- pScrn->vtSema = FALSE;
- NVSync(pScrn);
- NVRestore(pScrn);
+ ErrorF("*************\n");
+ if (pNv->Architecture == NV_ARCH_50) {
+ NV50ReleaseDisplay(pScrn);
+ } else {
+ NVSync(pScrn);
+ NVRestore(pScrn);
+ }
}
NVUnmapMem(pScrn);
@@ -1021,6 +1025,7 @@ NVCloseScreen(int scrnIndex, ScreenPtr pScreen)
if (pNv->blitAdaptor)
xfree(pNv->blitAdaptor);
+ pScrn->vtSema = FALSE;
pScreen->CloseScreen = pNv->CloseScreen;
pScreen->BlockHandler = pNv->BlockHandler;
return (*pScreen->CloseScreen) (scrnIndex, pScreen);