Message ID | 20200915024007.67163-3-airlied@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/7] drm/ttm/tt: add wrappers to set tt state. | expand |
Am 15.09.20 um 04:40 schrieb Dave Airlie: > From: Dave Airlie <airlied@redhat.com> > > All places this was called was using bo->ttm either direct > or indirectly. > > Signed-off-by: Dave Airlie <airlied@redhat.com> > --- > drivers/gpu/drm/ttm/ttm_bo.c | 9 +++------ > drivers/gpu/drm/ttm/ttm_bo_util.c | 24 ++++++++++++------------ > include/drm/ttm/ttm_bo_driver.h | 5 +++++ > 3 files changed, 20 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index e2bfe3a13c63..9aae9e1bd8e8 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -301,10 +301,8 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, > > out_err: > new_man = ttm_manager_type(bdev, bo->mem.mem_type); > - if (!new_man->use_tt) { > - ttm_tt_destroy(bdev, bo->ttm); > - bo->ttm = NULL; > - } > + if (!new_man->use_tt) > + ttm_bo_tt_destroy(bo); > > return ret; > } > @@ -322,8 +320,7 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo) > if (bo->bdev->driver->move_notify) > bo->bdev->driver->move_notify(bo, false, NULL); > > - ttm_tt_destroy(bo->bdev, bo->ttm); > - bo->ttm = NULL; > + ttm_bo_tt_destroy(bo); > ttm_resource_free(bo, &bo->mem); > } > > diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c > index 44b47ccdeaf7..0ddaaa1ddafd 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_util.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c > @@ -297,10 +297,8 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo, > *old_mem = *new_mem; > new_mem->mm_node = NULL; > > - if (!man->use_tt) { > - ttm_tt_destroy(bdev, ttm); > - bo->ttm = NULL; > - } > + if (!man->use_tt) > + ttm_bo_tt_destroy(bo); > > out1: > ttm_resource_iounmap(bdev, old_mem, new_iomap); > @@ -542,10 +540,8 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, > if (ret) > return ret; > > - if (!man->use_tt) { > - ttm_tt_destroy(bdev, bo->ttm); > - bo->ttm = NULL; > - } > + if (!man->use_tt) > + ttm_bo_tt_destroy(bo); > ttm_bo_free_old_node(bo); > } else { > /** > @@ -665,10 +661,8 @@ int ttm_bo_pipeline_move(struct ttm_buffer_object *bo, > if (ret) > return ret; > > - if (!to->use_tt) { > - ttm_tt_destroy(bdev, bo->ttm); > - bo->ttm = NULL; > - } > + if (!to->use_tt) > + ttm_bo_tt_destroy(bo); > ttm_bo_free_old_node(bo); > } > > @@ -702,3 +696,9 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) > > return 0; > } > + > +void ttm_bo_tt_destroy(struct ttm_buffer_object *bo) > +{ > + ttm_tt_destroy(bo->bdev, bo->ttm); > + bo->ttm = NULL; > +} Please put that into ttm_bo.c instead. I want to get rid of the utility functions sooner or later. Apart from that looks good to me. Christian. > diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h > index 303a89d1066d..c2e93f04d0ad 100644 > --- a/include/drm/ttm/ttm_bo_driver.h > +++ b/include/drm/ttm/ttm_bo_driver.h > @@ -684,6 +684,11 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo); > */ > pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp); > > +/** > + * ttm_bo_tt_destroy. > + */ > +void ttm_bo_tt_destroy(struct ttm_buffer_object *bo); > + > /** > * ttm_range_man_init > *
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index e2bfe3a13c63..9aae9e1bd8e8 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -301,10 +301,8 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, out_err: new_man = ttm_manager_type(bdev, bo->mem.mem_type); - if (!new_man->use_tt) { - ttm_tt_destroy(bdev, bo->ttm); - bo->ttm = NULL; - } + if (!new_man->use_tt) + ttm_bo_tt_destroy(bo); return ret; } @@ -322,8 +320,7 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo) if (bo->bdev->driver->move_notify) bo->bdev->driver->move_notify(bo, false, NULL); - ttm_tt_destroy(bo->bdev, bo->ttm); - bo->ttm = NULL; + ttm_bo_tt_destroy(bo); ttm_resource_free(bo, &bo->mem); } diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 44b47ccdeaf7..0ddaaa1ddafd 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -297,10 +297,8 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo, *old_mem = *new_mem; new_mem->mm_node = NULL; - if (!man->use_tt) { - ttm_tt_destroy(bdev, ttm); - bo->ttm = NULL; - } + if (!man->use_tt) + ttm_bo_tt_destroy(bo); out1: ttm_resource_iounmap(bdev, old_mem, new_iomap); @@ -542,10 +540,8 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, if (ret) return ret; - if (!man->use_tt) { - ttm_tt_destroy(bdev, bo->ttm); - bo->ttm = NULL; - } + if (!man->use_tt) + ttm_bo_tt_destroy(bo); ttm_bo_free_old_node(bo); } else { /** @@ -665,10 +661,8 @@ int ttm_bo_pipeline_move(struct ttm_buffer_object *bo, if (ret) return ret; - if (!to->use_tt) { - ttm_tt_destroy(bdev, bo->ttm); - bo->ttm = NULL; - } + if (!to->use_tt) + ttm_bo_tt_destroy(bo); ttm_bo_free_old_node(bo); } @@ -702,3 +696,9 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo) return 0; } + +void ttm_bo_tt_destroy(struct ttm_buffer_object *bo) +{ + ttm_tt_destroy(bo->bdev, bo->ttm); + bo->ttm = NULL; +} diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index 303a89d1066d..c2e93f04d0ad 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h @@ -684,6 +684,11 @@ int ttm_bo_pipeline_gutting(struct ttm_buffer_object *bo); */ pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp); +/** + * ttm_bo_tt_destroy. + */ +void ttm_bo_tt_destroy(struct ttm_buffer_object *bo); + /** * ttm_range_man_init *