Stop updating the SEQ64 VA when the KMS device is opened. Instead update
it on first use in the CS.

Signed-off-by: Christian König <christian.koe...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c    | 8 ++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c | 7 -------
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index ec888fc6ead8..37b0ce86c256 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -1117,6 +1117,14 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser 
*p)
                        return r;
        }
 
+       r = amdgpu_vm_bo_update(adev, fpriv->seq64_va, false);
+       if (r)
+               return r;
+
+       r = amdgpu_sync_fence(&p->sync, fpriv->seq64_va->last_pt_update);
+       if (r)
+               return r;
+
        /* FIXME: In theory this loop shouldn't be needed any more when
         * amdgpu_vm_handle_moved handles all moved BOs that are reserved
         * with p->ticket. But removing it caused test regressions, so I'm
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
index e22cb2b5cd92..8d0a3cce979e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c
@@ -97,13 +97,6 @@ int amdgpu_seq64_map(struct amdgpu_device *adev, struct 
amdgpu_vm *vm,
                goto error;
        }
 
-       r = amdgpu_vm_bo_update(adev, *bo_va, false);
-       if (r) {
-               DRM_ERROR("failed to do vm_bo_update on userq sem\n");
-               amdgpu_vm_bo_del(adev, *bo_va);
-               goto error;
-       }
-
 error:
        drm_exec_fini(&exec);
        return r;
-- 
2.34.1

Reply via email to