OSDN Git Service

meson,configure: include config.h automatically
[android-x86/external-libdrm.git] / freedreno / freedreno_device.c
index 3da5c7c..0b42561 100644 (file)
  *    Rob Clark <robclark@freedesktop.org>
  */
 
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -65,7 +61,7 @@ struct fd_device * fd_device_new(int fd)
 
                dev = msm_device_new(fd);
                dev->version = version->version_minor;
-#ifdef HAVE_FREEDRENO_KGSL
+#if HAVE_FREEDRENO_KGSL
        } else if (!strcmp(version->name, "kgsl")) {
                DEBUG_MSG("kgsl DRM device");
                dev = kgsl_device_new(fd);
@@ -85,7 +81,7 @@ out:
        dev->fd = fd;
        dev->handle_table = drmHashCreate();
        dev->name_table = drmHashCreate();
-       fd_bo_cache_init(&dev->bo_cache);
+       fd_bo_cache_init(&dev->bo_cache, FALSE);
 
        return dev;
 }
@@ -112,12 +108,13 @@ struct fd_device * fd_device_ref(struct fd_device *dev)
 
 static void fd_device_del_impl(struct fd_device *dev)
 {
+       int close_fd = dev->closefd ? dev->fd : -1;
        fd_bo_cache_cleanup(&dev->bo_cache, 0);
        drmHashDestroy(dev->handle_table);
        drmHashDestroy(dev->name_table);
-       if (dev->closefd)
-               close(dev->fd);
        dev->funcs->destroy(dev);
+       if (close_fd >= 0)
+               close(close_fd);
 }
 
 drm_private void fd_device_del_locked(struct fd_device *dev)
@@ -140,3 +137,8 @@ int fd_device_fd(struct fd_device *dev)
 {
        return dev->fd;
 }
+
+enum fd_version fd_device_version(struct fd_device *dev)
+{
+       return dev->version;
+}