Fix utc_ecore_evas_pointer_xy_get timeout issue
[platform/upstream/mesa.git] / src / egl / drivers / dri2 / platform_tizen.c
index b0e9cd0..290a35f 100755 (executable)
@@ -1554,7 +1554,7 @@ dri2_initialize_tizen(_EGLDisplay *disp)
 
    loader_set_logger(_eglLog);
 
-   dri2_dpy = calloc(1, sizeof *dri2_dpy);
+   dri2_dpy = dri2_display_create();
    if (!dri2_dpy)
       return _eglError(EGL_BAD_ALLOC, "eglInitialize");
 
@@ -1677,6 +1677,8 @@ dri2_initialize_tizen(_EGLDisplay *disp)
       dri2_dpy->loader_extensions = tizen_swrast_loader_extensions;
    }
 
+   dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu;
+
    if (!dri2_create_screen(disp)) {
       err = "DRI2: failed to create screen";
       goto cleanup_driver;
@@ -1687,12 +1689,10 @@ dri2_initialize_tizen(_EGLDisplay *disp)
       goto cleanup_driver;
    }
 
-   if(dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
-      close(dri2_dpy->fd_render_gpu);
+   if (dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
+       close(tbm_bufmgr_fd);
+       tbm_bufmgr_fd = -1;
    }
-   close(tbm_bufmgr_fd);
-   tbm_bufmgr_fd = -1;
-   dri2_dpy->fd_render_gpu = -1;
 
    if (!dri2_setup_extensions(disp)) {
       err = "DRI2: failed to find required DRI extensions";
@@ -1747,6 +1747,14 @@ cleanup_display:
       wl_display_disconnect(disp->PlatformDisplay);
       disp->PlatformDisplay = NULL;
    }
+   if (tbm_bufmgr_fd != -1) {
+        if (dri2_dpy->fd_render_gpu != -1 && dri2_dpy->fd_render_gpu != tbm_bufmgr_fd) {
+            close(dri2_dpy->fd_render_gpu);
+            dri2_dpy->fd_display_gpu = dri2_dpy->fd_render_gpu = -1;
+        }
+        close(tbm_bufmgr_fd);
+        tbm_bufmgr_fd = -1;
+   }
    free(dri2_dpy);
    disp->DriverData = NULL;