Message ID | 20200924051845.397177-14-airlied@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | TTM move refactoring | expand |
Am 24.09.20 um 07:18 schrieb Dave Airlie: > From: Dave Airlie <airlied@redhat.com> > > In all 3 drivers there is a case where the driver knows the > bo is in SYSTEM so don't call the api that checks that. > > Signed-off-by: Dave Airlie <airlied@redhat.com> In the long term I completely want to get rid of this nonsense because it means that we call back into TTM which then calls us again. But for now the patch is Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_bo.c | 3 ++- > drivers/gpu/drm/radeon/radeon_ttm.c | 3 ++- > drivers/gpu/drm/ttm/ttm_bo_util.c | 1 + > 4 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index d3bd2fd448be..960a99d6793a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -607,11 +607,11 @@ static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo, bool evict, > } > > /* move/bind old memory to GTT space */ > - r = ttm_bo_move_ttm(bo, ctx, &tmp_mem); > + r = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_mem); > if (unlikely(r)) { > goto out_cleanup; > } > - > + ttm_bo_assign_mem(bo, &tmp_mem); > /* copy to VRAM */ > r = amdgpu_move_blit(bo, evict, new_mem, old_mem); > if (unlikely(r)) { > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c > index 2c10a84b2cc0..2cb61eea9481 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c > @@ -945,10 +945,11 @@ nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, > if (ret) > return ret; > > - ret = ttm_bo_move_ttm(bo, ctx, &tmp_reg); > + ret = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_reg); > if (ret) > goto out; > > + ttm_bo_assign_mem(bo, &tmp_reg); > ret = nouveau_bo_move_m2mf(bo, true, ctx, new_reg); > if (ret) > goto out; > diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c > index df5cedb2b632..7b778fc74f7b 100644 > --- a/drivers/gpu/drm/radeon/radeon_ttm.c > +++ b/drivers/gpu/drm/radeon/radeon_ttm.c > @@ -280,10 +280,11 @@ static int radeon_move_ram_vram(struct ttm_buffer_object *bo, > if (unlikely(r)) { > return r; > } > - r = ttm_bo_move_ttm(bo, ctx, &tmp_mem); > + r = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_mem); > if (unlikely(r)) { > goto out_cleanup; > } > + ttm_bo_assign_mem(bo, &tmp_mem); > r = radeon_move_blit(bo, true, new_mem, old_mem); > if (unlikely(r)) { > goto out_cleanup; > diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c > index daf9a91857f8..e76883836e6e 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_util.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c > @@ -67,6 +67,7 @@ int ttm_bo_move_to_new_tt_mem(struct ttm_buffer_object *bo, > } > return 0; > } > +EXPORT_SYMBOL(ttm_bo_move_to_new_tt_mem); > > static int ttm_bo_move_old_to_system(struct ttm_buffer_object *bo, > struct ttm_operation_ctx *ctx)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index d3bd2fd448be..960a99d6793a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -607,11 +607,11 @@ static int amdgpu_move_ram_vram(struct ttm_buffer_object *bo, bool evict, } /* move/bind old memory to GTT space */ - r = ttm_bo_move_ttm(bo, ctx, &tmp_mem); + r = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_mem); if (unlikely(r)) { goto out_cleanup; } - + ttm_bo_assign_mem(bo, &tmp_mem); /* copy to VRAM */ r = amdgpu_move_blit(bo, evict, new_mem, old_mem); if (unlikely(r)) { diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 2c10a84b2cc0..2cb61eea9481 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -945,10 +945,11 @@ nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, if (ret) return ret; - ret = ttm_bo_move_ttm(bo, ctx, &tmp_reg); + ret = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_reg); if (ret) goto out; + ttm_bo_assign_mem(bo, &tmp_reg); ret = nouveau_bo_move_m2mf(bo, true, ctx, new_reg); if (ret) goto out; diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index df5cedb2b632..7b778fc74f7b 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -280,10 +280,11 @@ static int radeon_move_ram_vram(struct ttm_buffer_object *bo, if (unlikely(r)) { return r; } - r = ttm_bo_move_ttm(bo, ctx, &tmp_mem); + r = ttm_bo_move_to_new_tt_mem(bo, ctx, &tmp_mem); if (unlikely(r)) { goto out_cleanup; } + ttm_bo_assign_mem(bo, &tmp_mem); r = radeon_move_blit(bo, true, new_mem, old_mem); if (unlikely(r)) { goto out_cleanup; diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index daf9a91857f8..e76883836e6e 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c @@ -67,6 +67,7 @@ int ttm_bo_move_to_new_tt_mem(struct ttm_buffer_object *bo, } return 0; } +EXPORT_SYMBOL(ttm_bo_move_to_new_tt_mem); static int ttm_bo_move_old_to_system(struct ttm_buffer_object *bo, struct ttm_operation_ctx *ctx)