summaryrefslogtreecommitdiff
path: root/src/drmmode_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drmmode_display.c')
-rw-r--r--src/drmmode_display.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 0d738563..d09c69ce 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1584,6 +1584,20 @@ void drmmode_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
}
}
+void drmmode_fini(ScrnInfoPtr pScrn, drmmode_ptr drmmode)
+{
+ RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
+ RADEONInfoPtr info = RADEONPTR(pScrn);
+
+ if (pRADEONEnt->fd_wakeup_registered == serverGeneration &&
+ info->dri2.pKernelDRMVersion->version_minor >= 4) {
+ RemoveGeneralSocket(drmmode->fd);
+ RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
+ drm_wakeup_handler, drmmode);
+ }
+}
+
+
Bool drmmode_set_bufmgr(ScrnInfoPtr pScrn, drmmode_ptr drmmode, struct radeon_bo_manager *bufmgr)
{
drmmode->bufmgr = bufmgr;