diff mbox series

[4/4] drm/vmwgfx: clean up vmw_move_notify

Message ID 20210211131659.276275-4-christian.koenig@amd.com (mailing list archive)
State New, archived
Headers show
Series [1/4] drm/vram-helper: cleanup drm_gem_vram_bo_driver_move_notify | expand

Commit Message

Christian König Feb. 11, 2021, 1:16 p.m. UTC
Instead of swapping bo->mem just give old and new as parameters.

Also drop unused parameters and code.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h        |  3 ++-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c   |  9 +++++---
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 26 +++++++---------------
 3 files changed, 16 insertions(+), 22 deletions(-)

Comments

Alex Deucher Feb. 11, 2021, 2:59 p.m. UTC | #1
On Thu, Feb 11, 2021 at 8:17 AM Christian König
<ckoenig.leichtzumerken@gmail.com> wrote:
>
> Instead of swapping bo->mem just give old and new as parameters.
>
> Also drop unused parameters and code.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h        |  3 ++-
>  drivers/gpu/drm/vmwgfx/vmwgfx_resource.c   |  9 +++++---
>  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 26 +++++++---------------
>  3 files changed, 16 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> index e65b00f8336d..21a72fa7b9fd 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
> @@ -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);
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> index c3a724e37104..35f02958ee2c 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> @@ -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);
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
> index 63f10c865061..38801462134e 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
> @@ -692,20 +692,19 @@ static int vmw_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *
>   *
>   * @bo: The TTM buffer object about to move.
>   * @evict: Unused

Evict is removed now.  Can be dropped from the documentation.

Alex

> - * @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 +735,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 +757,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 +770,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,
>  };
> --
> 2.25.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index e65b00f8336d..21a72fa7b9fd 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -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);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
index c3a724e37104..35f02958ee2c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
@@ -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);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
index 63f10c865061..38801462134e 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c
@@ -692,20 +692,19 @@  static int vmw_ttm_io_mem_reserve(struct ttm_device *bdev, struct ttm_resource *
  *
  * @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 +735,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 +757,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 +770,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,
 };