aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch')
-rw-r--r--common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch118
1 files changed, 0 insertions, 118 deletions
diff --git a/common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch b/common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch
deleted file mode 100644
index e6c79a1d..00000000
--- a/common/recipes-kernel/linux/files/0358-drm-amdgpu-rework-vm_grab_id-interface.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 7f8a5290f5b6c14dd1d295e2508e0dd193a9fda5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Mon, 20 Jul 2015 16:09:40 +0200
-Subject: [PATCH 0358/1050] drm/amdgpu: rework vm_grab_id interface
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This makes assigning VM IDs independent from the use of VM IDs.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 ++--
- drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 +---
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 24 ++++++++++++++----------
- 3 files changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 4e81247..9f47b3e 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -2294,8 +2294,8 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm);
- struct amdgpu_bo_list_entry *amdgpu_vm_get_bos(struct amdgpu_device *adev,
- struct amdgpu_vm *vm,
- struct list_head *head);
--struct amdgpu_fence *amdgpu_vm_grab_id(struct amdgpu_ring *ring,
-- struct amdgpu_vm *vm);
-+int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
-+ struct amdgpu_sync *sync);
- void amdgpu_vm_flush(struct amdgpu_ring *ring,
- struct amdgpu_vm *vm,
- struct amdgpu_fence *updates);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
-index 95d5334..f3ac9d8 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
-@@ -165,9 +165,7 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs,
-
- if (vm) {
- /* grab a vm id if necessary */
-- struct amdgpu_fence *vm_id_fence = NULL;
-- vm_id_fence = amdgpu_vm_grab_id(ibs->ring, ibs->vm);
-- r = amdgpu_sync_fence(adev, &ibs->sync, &vm_id_fence->base);
-+ r = amdgpu_vm_grab_id(ibs->vm, ibs->ring, &ibs->sync);
- if (r) {
- amdgpu_ring_unlock_undo(ring);
- return r;
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-index 1e895b9..fd8395f 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -127,16 +127,16 @@ struct amdgpu_bo_list_entry *amdgpu_vm_get_bos(struct amdgpu_device *adev,
- /**
- * amdgpu_vm_grab_id - allocate the next free VMID
- *
-- * @ring: ring we want to submit job to
- * @vm: vm to allocate id for
-+ * @ring: ring we want to submit job to
-+ * @sync: sync object where we add dependencies
- *
-- * Allocate an id for the vm (cayman+).
-- * Returns the fence we need to sync to (if any).
-+ * Allocate an id for the vm, adding fences to the sync obj as necessary.
- *
-- * Global and local mutex must be locked!
-+ * Global mutex must be locked!
- */
--struct amdgpu_fence *amdgpu_vm_grab_id(struct amdgpu_ring *ring,
-- struct amdgpu_vm *vm)
-+int amdgpu_vm_grab_id(struct amdgpu_vm *vm, struct amdgpu_ring *ring,
-+ struct amdgpu_sync *sync)
- {
- struct amdgpu_fence *best[AMDGPU_MAX_RINGS] = {};
- struct amdgpu_vm_id *vm_id = &vm->ids[ring->idx];
-@@ -148,7 +148,7 @@ struct amdgpu_fence *amdgpu_vm_grab_id(struct amdgpu_ring *ring,
- /* check if the id is still valid */
- if (vm_id->id && vm_id->last_id_use &&
- vm_id->last_id_use == adev->vm_manager.active[vm_id->id])
-- return NULL;
-+ return 0;
-
- /* we definately need to flush */
- vm_id->pd_gpu_addr = ~0ll;
-@@ -161,7 +161,7 @@ struct amdgpu_fence *amdgpu_vm_grab_id(struct amdgpu_ring *ring,
- /* found a free one */
- vm_id->id = i;
- trace_amdgpu_vm_grab_id(i, ring->idx);
-- return NULL;
-+ return 0;
- }
-
- if (amdgpu_fence_is_earlier(fence, best[fence->ring->idx])) {
-@@ -172,15 +172,19 @@ struct amdgpu_fence *amdgpu_vm_grab_id(struct amdgpu_ring *ring,
-
- for (i = 0; i < 2; ++i) {
- if (choices[i]) {
-+ struct amdgpu_fence *fence;
-+
-+ fence = adev->vm_manager.active[choices[i]];
- vm_id->id = choices[i];
-+
- trace_amdgpu_vm_grab_id(choices[i], ring->idx);
-- return adev->vm_manager.active[choices[i]];
-+ return amdgpu_sync_fence(ring->adev, sync, &fence->base);
- }
- }
-
- /* should never happen */
- BUG();
-- return NULL;
-+ return -EINVAL;
- }
-
- /**
---
-1.9.1
-