drm/radeon: fence BO_VAs manually

This allows us to finally remove the VM fence and
so allow concurrent use of it from different engines.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 79f5f5b..3207bb6 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -456,6 +456,7 @@
 	struct list_head		bo_list;
 	uint32_t			flags;
 	uint64_t			addr;
+	struct radeon_fence		*last_pt_update;
 	unsigned			ref_count;
 
 	/* protected by vm mutex */
@@ -915,6 +916,8 @@
 };
 
 struct radeon_vm {
+	struct mutex		mutex;
+
 	struct rb_root		va;
 
 	/* BOs moved, but not yet updated in the PT */
@@ -932,10 +935,6 @@
 
 	struct radeon_bo_va	*ib_bo_va;
 
-	struct mutex		mutex;
-	/* last fence for cs using this vm */
-	struct radeon_fence	*fence;
-
 	/* for id and flush management per ring */
 	struct radeon_vm_id	ids[RADEON_NUM_RINGS];
 };