From 5642912318e722860e426355b233c6802ac9be70 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Fri, 25 Mar 2016 14:24:30 +0900 Subject: [PATCH] Set and unset tbm master fd Change-Id: I5f0eb70d6dcef075ea4fec644fee9b0c3405b9cd --- src/tbm_bufmgr_sprd.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/tbm_bufmgr_sprd.c b/src/tbm_bufmgr_sprd.c index 064fafc..16ada73 100755 --- a/src/tbm_bufmgr_sprd.c +++ b/src/tbm_bufmgr_sprd.c @@ -1519,6 +1519,9 @@ tbm_sprd_bufmgr_deinit (void *priv) if (bufmgr_sprd->bind_display) tbm_drm_helper_wl_auth_server_deinit(); + if (tbm_backend_is_display_server()) + tbm_drm_helper_unset_tbm_master_fd(); + if (bufmgr_sprd->device_name) free(bufmgr_sprd->device_name); @@ -1863,19 +1866,19 @@ init_tbm_bufmgr_priv (tbm_bufmgr bufmgr, int fd) bufmgr_sprd->fd = -1; master_fd = tbm_drm_helper_get_master_fd(); - if (master_fd < 0) { + if (master_fd < 0) bufmgr_sprd->fd = _tbm_sprd_open_drm(); - tbm_drm_helper_set_master_fd(bufmgr_sprd->fd); - } else { - bufmgr_sprd->fd = dup(master_fd); - } - + else + bufmgr_sprd->fd = master_fd; + if (bufmgr_sprd->fd < 0) { TBM_SPRD_LOG ("[libtbm-sprd:%d] error: Fail to create drm!\n", getpid()); free (bufmgr_sprd); return 0; } + tbm_drm_helper_set_tbm_master_fd(bufmgr_sprd->fd); + bufmgr_sprd->device_name = drmGetDeviceNameFromFd(bufmgr_sprd->fd); if (!bufmgr_sprd->device_name) -- 2.7.4