drm/vmwgfx: clean up vmw_move_notify v2
authorChristian König <christian.koenig@amd.com>
Thu, 11 Feb 2021 12:00:25 +0000 (13:00 +0100)
committerChristian König <christian.koenig@amd.com>
Tue, 16 Mar 2021 15:30:25 +0000 (16:30 +0100)
Instead of swapping bo->mem just give old and new as parameters.

Also drop unused parameters and code.

v2: cleanup stale documentation as well.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210315191432.153826-3-christian.koenig@amd.com
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c

index bb2ce63..7e65187 100644 (file)
@@ -775,7 +775,8 @@ extern void vmw_resource_unreserve(struct vmw_resource *res,
                                   struct vmw_buffer_object *new_backup,
                                   unsigned long new_backup_offset);
 extern void vmw_query_move_notify(struct ttm_buffer_object *bo,
-                                 struct ttm_resource *mem);
+                                 struct ttm_resource *old_mem,
+                                 struct ttm_resource *new_mem);
 extern int vmw_query_readback_all(struct vmw_buffer_object *dx_query_mob);
 extern void vmw_resource_evict_all(struct vmw_private *dev_priv);
 extern void vmw_resource_unbind_list(struct vmw_buffer_object *vbo);
index c3a724e..35f0295 100644 (file)
@@ -847,13 +847,15 @@ int vmw_query_readback_all(struct vmw_buffer_object *dx_query_mob)
  * vmw_query_move_notify - Read back cached query states
  *
  * @bo: The TTM buffer object about to move.
- * @mem: The memory region @bo is moving to.
+ * @old_mem: The memory region @bo is moving from.
+ * @new_mem: The memory region @bo is moving to.
  *
  * Called before the query MOB is swapped out to read back cached query
  * states from the device.
  */
 void vmw_query_move_notify(struct ttm_buffer_object *bo,
-                          struct ttm_resource *mem)
+                          struct ttm_resource *old_mem,
+                          struct ttm_resource *new_mem)
 {
        struct vmw_buffer_object *dx_query_mob;
        struct ttm_device *bdev = bo->bdev;
@@ -871,7 +873,8 @@ void vmw_query_move_notify(struct ttm_buffer_object *bo,
        }
 
        /* If BO is being moved from MOB to system memory */
-       if (mem->mem_type == TTM_PL_SYSTEM && bo->mem.mem_type == VMW_PL_MOB) {
+       if (new_mem->mem_type == TTM_PL_SYSTEM &&
+           old_mem->mem_type == VMW_PL_MOB) {
                struct vmw_fence_obj *fence;
 
                (void) vmw_query_readback_all(dx_query_mob);
index 63f10c8..2dc031f 100644 (file)
@@ -691,21 +691,19 @@ static int vmw_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *
  * vmw_move_notify - TTM move_notify_callback
  *
  * @bo: The TTM buffer object about to move.
- * @evict: Unused
- * @mem: The struct ttm_resource indicating to what memory
+ * @old_mem: The old memory where we move from
+ * @new_mem: The struct ttm_resource indicating to what memory
  *       region the move is taking place.
  *
  * Calls move_notify for all subsystems needing it.
  * (currently only resources).
  */
 static void vmw_move_notify(struct ttm_buffer_object *bo,
-                           bool evict,
-                           struct ttm_resource *mem)
+                           struct ttm_resource *old_mem,
+                           struct ttm_resource *new_mem)
 {
-       if (!mem)
-               return;
-       vmw_bo_move_notify(bo, mem);
-       vmw_query_move_notify(bo, mem);
+       vmw_bo_move_notify(bo, new_mem);
+       vmw_query_move_notify(bo, old_mem, new_mem);
 }
 
 
@@ -736,7 +734,7 @@ static int vmw_move(struct ttm_buffer_object *bo,
                        return ret;
        }
 
-       vmw_move_notify(bo, evict, new_mem);
+       vmw_move_notify(bo, &bo->mem, new_mem);
 
        if (old_man->use_tt && new_man->use_tt) {
                if (bo->mem.mem_type == TTM_PL_SYSTEM) {
@@ -758,18 +756,10 @@ static int vmw_move(struct ttm_buffer_object *bo,
        }
        return 0;
 fail:
-       swap(*new_mem, bo->mem);
-       vmw_move_notify(bo, false, new_mem);
-       swap(*new_mem, bo->mem);
+       vmw_move_notify(bo, new_mem, &bo->mem);
        return ret;
 }
 
-static void
-vmw_delete_mem_notify(struct ttm_buffer_object *bo)
-{
-       vmw_move_notify(bo, false, NULL);
-}
-
 struct ttm_device_funcs vmw_bo_driver = {
        .ttm_tt_create = &vmw_ttm_tt_create,
        .ttm_tt_populate = &vmw_ttm_populate,
@@ -779,7 +769,6 @@ struct ttm_device_funcs vmw_bo_driver = {
        .evict_flags = vmw_evict_flags,
        .move = vmw_move,
        .verify_access = vmw_verify_access,
-       .delete_mem_notify = vmw_delete_mem_notify,
        .swap_notify = vmw_swap_notify,
        .io_mem_reserve = &vmw_ttm_io_mem_reserve,
 };