Merge tag 'drm-misc-next-2023-03-07' of git://anongit.freedesktop.org/drm/drm-misc...
[linux-2.6-block.git] / drivers / gpu / drm / drm_gem.c
index 7a3cb08dc942e1703b0ab7e2767328d501e44821..ee3e11e7177dd2ea990689079ba488aa04303951 100644 (file)
@@ -336,13 +336,6 @@ out:
 }
 EXPORT_SYMBOL_GPL(drm_gem_dumb_map_offset);
 
-int drm_gem_dumb_destroy(struct drm_file *file,
-                        struct drm_device *dev,
-                        u32 handle)
-{
-       return drm_gem_handle_delete(file, handle);
-}
-
 /**
  * drm_gem_handle_create_tail - internal functions to create a handle
  * @file_priv: drm file-private structure to register the handle for
@@ -1466,3 +1459,21 @@ tail:
        return freed;
 }
 EXPORT_SYMBOL(drm_gem_lru_scan);
+
+/**
+ * drm_gem_evict - helper to evict backing pages for a GEM object
+ * @obj: obj in question
+ */
+int drm_gem_evict(struct drm_gem_object *obj)
+{
+       dma_resv_assert_held(obj->resv);
+
+       if (!dma_resv_test_signaled(obj->resv, DMA_RESV_USAGE_READ))
+               return -EBUSY;
+
+       if (obj->funcs->evict)
+               return obj->funcs->evict(obj);
+
+       return 0;
+}
+EXPORT_SYMBOL(drm_gem_evict);