Instead of resource->start use the cursor to get this.

v2 (chk): remove changes to amdgpu_bo_gpu_offset_no_check(), that
          won't work with the AGP aperture otherwise.

Signed-off-by: Somalapuram Amaranath <amaranath.somalapu...@amd.com>
Reviewed-by: Christian König <christian.koe...@amd.com>
Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c               | 8 ++++++--
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 +++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 2cd081cbf706..f62e5398e620 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -845,6 +845,7 @@ static int amdgpu_ttm_backend_bind(struct ttm_device *bdev,
 {
        struct amdgpu_device *adev = amdgpu_ttm_adev(bdev);
        struct amdgpu_ttm_tt *gtt = ttm_to_amdgpu_ttm_tt(ttm);
+       struct amdgpu_res_cursor cursor;
        uint64_t flags;
        int r;
 
@@ -892,7 +893,8 @@ static int amdgpu_ttm_backend_bind(struct ttm_device *bdev,
        flags = amdgpu_ttm_tt_pte_flags(adev, ttm, bo_mem);
 
        /* bind pages into GART page tables */
-       gtt->offset = (u64)bo_mem->start << PAGE_SHIFT;
+       amdgpu_res_first(bo_mem, 0, bo_mem->size, &cursor);
+       gtt->offset = cursor.start;
        amdgpu_gart_bind(adev, gtt->offset, ttm->num_pages,
                         gtt->ttm.dma_address, flags);
        gtt->bound = true;
@@ -912,6 +914,7 @@ int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo)
        struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);
        struct ttm_operation_ctx ctx = { false, false };
        struct amdgpu_ttm_tt *gtt = ttm_to_amdgpu_ttm_tt(bo->ttm);
+       struct amdgpu_res_cursor cursor;
        struct ttm_placement placement;
        struct ttm_place placements;
        struct ttm_resource *tmp;
@@ -945,7 +948,8 @@ int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo)
        flags = amdgpu_ttm_tt_pte_flags(adev, bo->ttm, tmp);
 
        /* Bind pages */
-       gtt->offset = (u64)tmp->start << PAGE_SHIFT;
+       amdgpu_res_first(tmp, 0, tmp->size, &cursor);
+       gtt->offset = cursor.start;
        amdgpu_ttm_gart_bind(adev, bo, flags);
        amdgpu_gart_invalidate_tlb(adev);
        ttm_resource_free(bo, &bo->resource);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index c06ada0844ba..9114393d2ee6 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -200,8 +200,12 @@ static int add_queue_mes(struct device_queue_manager *dqm, 
struct queue *q,
        queue_input.wptr_addr = (uint64_t)q->properties.write_ptr;
 
        if (q->wptr_bo) {
+               struct amdgpu_res_cursor cursor;
+
                wptr_addr_off = (uint64_t)q->properties.write_ptr & (PAGE_SIZE 
- 1);
-               queue_input.wptr_mc_addr = 
((uint64_t)q->wptr_bo->tbo.resource->start << PAGE_SHIFT) + wptr_addr_off;
+               amdgpu_res_first(q->wptr_bo->tbo.resource, 0,
+                                q->wptr_bo->tbo.resource->size, &cursor);
+               queue_input.wptr_mc_addr = cursor.start + wptr_addr_off;
        }
 
        queue_input.is_kfd_process = 1;
-- 
2.34.1

Reply via email to