From: Christian König <christian.koe...@amd.com>

This way we save passing it through the different functions.

Change-Id: Id94564a70d106b0ef36c7f45de2b25ca176db2d2
Signed-off-by: Christian König <christian.koe...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index 66f5b91..1f27300 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -61,6 +61,8 @@
 struct amdgpu_pte_update_params {
        /* amdgpu device we do this update for */
        struct amdgpu_device *adev;
+       /* optional amdgpu_vm we do this update for */
+       struct amdgpu_vm *vm;
        /* address where to copy page table entries from */
        uint64_t src;
        /* indirect buffer to fill with commands */
@@ -729,7 +731,6 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device 
*adev,
  * Update the page tables in the range @start - @end.
  */
 static void amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
-                                 struct amdgpu_vm *vm,
                                  uint64_t start, uint64_t end,
                                  uint64_t dst, uint64_t flags)
 {
@@ -745,7 +746,7 @@ static void amdgpu_vm_update_ptes(struct 
amdgpu_pte_update_params *params,
        /* initialize the variables */
        addr = start;
        pt_idx = addr >> amdgpu_vm_block_size;
-       pt = vm->page_tables[pt_idx].bo;
+       pt = params->vm->page_tables[pt_idx].bo;
        if (params->shadow) {
                if (!pt->shadow)
                        return;
@@ -768,7 +769,7 @@ static void amdgpu_vm_update_ptes(struct 
amdgpu_pte_update_params *params,
        /* walk over the address space and update the page tables */
        while (addr < end) {
                pt_idx = addr >> amdgpu_vm_block_size;
-               pt = vm->page_tables[pt_idx].bo;
+               pt = params->vm->page_tables[pt_idx].bo;
                if (params->shadow) {
                        if (!pt->shadow)
                                return;
@@ -819,7 +820,6 @@ static void amdgpu_vm_update_ptes(struct 
amdgpu_pte_update_params *params,
  * @flags: hw mapping flags
  */
 static void amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params        *params,
-                               struct amdgpu_vm *vm,
                                uint64_t start, uint64_t end,
                                uint64_t dst, uint64_t flags)
 {
@@ -853,25 +853,25 @@ static void amdgpu_vm_frag_ptes(struct 
amdgpu_pte_update_params   *params,
        if (params->src || !(flags & AMDGPU_PTE_VALID) ||
            (frag_start >= frag_end)) {
 
-               amdgpu_vm_update_ptes(params, vm, start, end, dst, flags);
+               amdgpu_vm_update_ptes(params, start, end, dst, flags);
                return;
        }
 
        /* handle the 4K area at the beginning */
        if (start != frag_start) {
-               amdgpu_vm_update_ptes(params, vm, start, frag_start,
+               amdgpu_vm_update_ptes(params, start, frag_start,
                                      dst, flags);
                dst += (frag_start - start) * AMDGPU_GPU_PAGE_SIZE;
        }
 
        /* handle the area in the middle */
-       amdgpu_vm_update_ptes(params, vm, frag_start, frag_end, dst,
+       amdgpu_vm_update_ptes(params, frag_start, frag_end, dst,
                              flags | frag_flags);
 
        /* handle the 4K area at the end */
        if (frag_end != end) {
                dst += (frag_end - frag_start) * AMDGPU_GPU_PAGE_SIZE;
-               amdgpu_vm_update_ptes(params, vm, frag_end, end, dst, flags);
+               amdgpu_vm_update_ptes(params, frag_end, end, dst, flags);
        }
 }
 
@@ -911,6 +911,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device 
*adev,
 
        memset(&params, 0, sizeof(params));
        params.adev = adev;
+       params.vm = vm;
        params.src = src;
 
        ring = container_of(vm->entity.sched, struct amdgpu_ring, sched);
@@ -992,9 +993,9 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device 
*adev,
                goto error_free;
 
        params.shadow = true;
-       amdgpu_vm_frag_ptes(&params, vm, start, last + 1, addr, flags);
+       amdgpu_vm_frag_ptes(&params, start, last + 1, addr, flags);
        params.shadow = false;
-       amdgpu_vm_frag_ptes(&params, vm, start, last + 1, addr, flags);
+       amdgpu_vm_frag_ptes(&params, start, last + 1, addr, flags);
 
        amdgpu_ring_pad_ib(ring, params.ib);
        WARN_ON(params.ib->length_dw > ndw);
-- 
1.9.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to