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 |
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 --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, };
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(-)