From: Christian König <deathsim...@vodafone.de>

Instead of hacking the calculation multiple times.

Signed-off-by: Christian König <deathsim...@vodafone.de>
---
 drivers/gpu/drm/radeon/radeon_gart.c      |    6 ++----
 drivers/gpu/drm/radeon/radeon_object.h    |   11 +++++++++++
 drivers/gpu/drm/radeon/radeon_ring.c      |    6 ++----
 drivers/gpu/drm/radeon/radeon_semaphore.c |    6 ++----
 4 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_gart.c 
b/drivers/gpu/drm/radeon/radeon_gart.c
index c58a036..4a5d9d4 100644
--- a/drivers/gpu/drm/radeon/radeon_gart.c
+++ b/drivers/gpu/drm/radeon/radeon_gart.c
@@ -404,10 +404,8 @@ retry:
                radeon_vm_unbind(rdev, vm_evict);
                goto retry;
        }
-       vm->pt = rdev->vm_manager.sa_manager.cpu_ptr;
-       vm->pt += (vm->sa_bo.offset >> 3);
-       vm->pt_gpu_addr = rdev->vm_manager.sa_manager.gpu_addr;
-       vm->pt_gpu_addr += vm->sa_bo.offset;
+       vm->pt = radeon_sa_bo_cpu_addr(&vm->sa_bo);
+       vm->pt_gpu_addr = radeon_sa_bo_gpu_addr(&vm->sa_bo);
        memset(vm->pt, 0, RADEON_GPU_PAGE_ALIGN(vm->last_pfn * 8));
 
 retry_id:
diff --git a/drivers/gpu/drm/radeon/radeon_object.h 
b/drivers/gpu/drm/radeon/radeon_object.h
index f9104be..c120ab9 100644
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -146,6 +146,17 @@ extern struct radeon_bo_va *radeon_bo_va(struct radeon_bo 
*rbo,
 /*
  * sub allocation
  */
+
+static inline uint64_t radeon_sa_bo_gpu_addr(struct radeon_sa_bo *sa_bo)
+{
+       return sa_bo->manager->gpu_addr + sa_bo->offset;
+}
+
+static inline void * radeon_sa_bo_cpu_addr(struct radeon_sa_bo *sa_bo)
+{
+       return sa_bo->manager->cpu_ptr + sa_bo->offset;
+}
+
 extern int radeon_sa_bo_manager_init(struct radeon_device *rdev,
                                     struct radeon_sa_manager *sa_manager,
                                     unsigned size, u32 domain);
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c 
b/drivers/gpu/drm/radeon/radeon_ring.c
index 8b7f00e..b4c8a67 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -127,10 +127,8 @@ retry:
                                             size, 256);
                        if (!r) {
                                *ib = &rdev->ib_pool.ibs[idx];
-                               (*ib)->ptr = rdev->ib_pool.sa_manager.cpu_ptr;
-                               (*ib)->ptr += ((*ib)->sa_bo.offset >> 2);
-                               (*ib)->gpu_addr = 
rdev->ib_pool.sa_manager.gpu_addr;
-                               (*ib)->gpu_addr += (*ib)->sa_bo.offset;
+                               (*ib)->ptr = 
radeon_sa_bo_cpu_addr(&(*ib)->sa_bo);
+                               (*ib)->gpu_addr = 
radeon_sa_bo_gpu_addr(&(*ib)->sa_bo);
                                (*ib)->fence = fence;
                                (*ib)->vm_id = 0;
                                (*ib)->is_const_ib = false;
diff --git a/drivers/gpu/drm/radeon/radeon_semaphore.c 
b/drivers/gpu/drm/radeon/radeon_semaphore.c
index c5b3d8e..f312ba5 100644
--- a/drivers/gpu/drm/radeon/radeon_semaphore.c
+++ b/drivers/gpu/drm/radeon/radeon_semaphore.c
@@ -53,10 +53,8 @@ static int radeon_semaphore_add_bo(struct radeon_device 
*rdev)
                kfree(bo);
                return r;
        }
-       gpu_addr = rdev->ib_pool.sa_manager.gpu_addr;
-       gpu_addr += bo->ib->sa_bo.offset;
-       cpu_ptr = rdev->ib_pool.sa_manager.cpu_ptr;
-       cpu_ptr += (bo->ib->sa_bo.offset >> 2);
+       gpu_addr = radeon_sa_bo_gpu_addr(&bo->ib->sa_bo);
+       cpu_ptr = radeon_sa_bo_cpu_addr(&bo->ib->sa_bo);
        for (i = 0; i < (RADEON_SEMAPHORE_BO_SIZE/8); i++) {
                bo->semaphores[i].gpu_addr = gpu_addr;
                bo->semaphores[i].cpu_ptr = cpu_ptr;
-- 
1.7.7.6

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to