Message ID | 20200924051845.397177-4-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> > > The core move code currently handles use_tt moves, for amdgpu > this was being handled also in the driver, but not using the same > paths. > > If moving between TT/SYSTEM (all the use_tt paths on amdgpu) use > the core move function. > > Eventually the core will be flipped over to calling the driver. > > Signed-off-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Christian König <christian.koenig@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > index db5f761f37ec..d3bd2fd448be 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c > @@ -671,14 +671,16 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict, > ttm_bo_move_null(bo, new_mem); > return 0; > } > - if ((old_mem->mem_type == TTM_PL_TT && > - new_mem->mem_type == TTM_PL_SYSTEM) || > - (old_mem->mem_type == TTM_PL_SYSTEM && > - new_mem->mem_type == TTM_PL_TT)) { > - /* bind is enough */ > + if (old_mem->mem_type == TTM_PL_SYSTEM && > + new_mem->mem_type == TTM_PL_TT) { > ttm_bo_move_null(bo, new_mem); > return 0; > } > + > + if (old_mem->mem_type == TTM_PL_TT && > + new_mem->mem_type == TTM_PL_SYSTEM) > + return ttm_bo_move_ttm(bo, ctx, new_mem); > + > if (old_mem->mem_type == AMDGPU_PL_GDS || > old_mem->mem_type == AMDGPU_PL_GWS || > old_mem->mem_type == AMDGPU_PL_OA ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index db5f761f37ec..d3bd2fd448be 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -671,14 +671,16 @@ static int amdgpu_bo_move(struct ttm_buffer_object *bo, bool evict, ttm_bo_move_null(bo, new_mem); return 0; } - if ((old_mem->mem_type == TTM_PL_TT && - new_mem->mem_type == TTM_PL_SYSTEM) || - (old_mem->mem_type == TTM_PL_SYSTEM && - new_mem->mem_type == TTM_PL_TT)) { - /* bind is enough */ + if (old_mem->mem_type == TTM_PL_SYSTEM && + new_mem->mem_type == TTM_PL_TT) { ttm_bo_move_null(bo, new_mem); return 0; } + + if (old_mem->mem_type == TTM_PL_TT && + new_mem->mem_type == TTM_PL_SYSTEM) + return ttm_bo_move_ttm(bo, ctx, new_mem); + if (old_mem->mem_type == AMDGPU_PL_GDS || old_mem->mem_type == AMDGPU_PL_GWS || old_mem->mem_type == AMDGPU_PL_OA ||