]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/drm/drm_gem.h
Merge tag 'trace-v5.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux.git] / include / drm / drm_gem.h
index a9121fe66ea227c4ab01fef54213179fdefc1a48..6aaba14f5972d2dd5c7a61fd91377de9d482f2fb 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 #include <linux/kref.h>
-#include <linux/reservation.h>
+#include <linux/dma-resv.h>
 
 #include <drm/drm_vma_manager.h>
 
@@ -101,7 +101,7 @@ struct drm_gem_object_funcs {
        /**
         * @pin:
         *
-        * Pin backing buffer in memory.
+        * Pin backing buffer in memory. Used by the drm_gem_map_attach() helper.
         *
         * This callback is optional.
         */
@@ -110,7 +110,7 @@ struct drm_gem_object_funcs {
        /**
         * @unpin:
         *
-        * Unpin backing buffer.
+        * Unpin backing buffer. Used by the drm_gem_map_detach() helper.
         *
         * This callback is optional.
         */
@@ -120,16 +120,21 @@ struct drm_gem_object_funcs {
         * @get_sg_table:
         *
         * Returns a Scatter-Gather table representation of the buffer.
-        * Used when exporting a buffer.
+        * Used when exporting a buffer by the drm_gem_map_dma_buf() helper.
+        * Releasing is done by calling dma_unmap_sg_attrs() and sg_free_table()
+        * in drm_gem_unmap_buf(), therefore these helpers and this callback
+        * here cannot be used for sg tables pointing at driver private memory
+        * ranges.
         *
-        * This callback is mandatory if buffer export is supported.
+        * See also drm_prime_pages_to_sg().
         */
        struct sg_table *(*get_sg_table)(struct drm_gem_object *obj);
 
        /**
         * @vmap:
         *
-        * Returns a virtual address for the buffer.
+        * Returns a virtual address for the buffer. Used by the
+        * drm_gem_dmabuf_vmap() helper.
         *
         * This callback is optional.
         */
@@ -138,7 +143,8 @@ struct drm_gem_object_funcs {
        /**
         * @vunmap:
         *
-        * Releases the the address previously returned by @vmap.
+        * Releases the the address previously returned by @vmap. Used by the
+        * drm_gem_dmabuf_vunmap() helper.
         *
         * This callback is optional.
         */
@@ -270,7 +276,7 @@ struct drm_gem_object {
         *
         * Normally (@resv == &@_resv) except for imported GEM objects.
         */
-       struct reservation_object *resv;
+       struct dma_resv *resv;
 
        /**
         * @_resv:
@@ -279,7 +285,7 @@ struct drm_gem_object {
         *
         * This is unused for imported GEM objects.
         */
-       struct reservation_object _resv;
+       struct dma_resv _resv;
 
        /**
         * @funcs:
@@ -384,7 +390,7 @@ void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
 int drm_gem_objects_lookup(struct drm_file *filp, void __user *bo_handles,
                           int count, struct drm_gem_object ***objs_out);
 struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
-long drm_gem_reservation_object_wait(struct drm_file *filep, u32 handle,
+long drm_gem_dma_resv_wait(struct drm_file *filep, u32 handle,
                                    bool wait_all, unsigned long timeout);
 int drm_gem_lock_reservations(struct drm_gem_object **objs, int count,
                              struct ww_acquire_ctx *acquire_ctx);