aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch
new file mode 100644
index 00000000..93dd1319
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1657-drm-amdgpu-Revision-for-remove-the-unused-vm_manager.patch
@@ -0,0 +1,69 @@
+From 8562255fb0de6ab8fe99478296fd4a1a1f0726f9 Mon Sep 17 00:00:00 2001
+From: Yong Zhao <Yong.Zhao@amd.com>
+Date: Mon, 17 Apr 2017 15:27:20 -0400
+Subject: [PATCH 1657/4131] drm/amdgpu: Revision for "remove the unused
+ vm_manager lock"
+
+This commit improves the changes made in
+commit 540cd761f30530f1b8aa2ee7e9920ebb0b7c1d1e
+Author: Evan Quan <evan.quan@amd.com>
+Date: Thu Apr 13 14:43:58 2017 +0800
+
+ drm/amdgpu: remove the unused vm_manager lock
+ - the vm_manager lock was removed by "drm/amdgpu: split
+ VMID management by VMHUB" - fine granularity lock was introduced stead
+
+Change-Id: I89c164f0957887617bfdd3b03c2d126810a4d27c
+Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
+
+ Conflicts:
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index fb68019..2b24bbb 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -2601,6 +2601,10 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+
+ vm->vm_context = vm_context;
+ if (vm_context == AMDGPU_VM_CONTEXT_COMPUTE) {
++ struct amdgpu_vm_id_manager *id_mgr =
++ &adev->vm_manager.id_mgr[AMDGPU_GFXHUB];
++
++ mutex_lock(&id_mgr->lock);
+
+ if (adev->vm_manager.n_compute_vms++ == 0) {
+ /* First Compute VM: enable compute power profile */
+@@ -2611,6 +2615,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ adev->pm.funcs->switch_power_profile(adev,
+ AMD_PP_COMPUTE_PROFILE);
+ }
++ mutex_unlock(&id_mgr->lock);
+ }
+
+ return 0;
+@@ -2669,6 +2674,10 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ int i;
+
+ if (vm->vm_context == AMDGPU_VM_CONTEXT_COMPUTE) {
++ struct amdgpu_vm_id_manager *id_mgr =
++ &adev->vm_manager.id_mgr[AMDGPU_GFXHUB];
++
++ mutex_lock(&id_mgr->lock);
+
+ WARN(adev->vm_manager.n_compute_vms == 0, "Unbalanced number of Compute VMs");
+
+@@ -2681,6 +2690,7 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ adev->pm.funcs->switch_power_profile(adev,
+ AMD_PP_GFX_PROFILE);
+ }
++ mutex_unlock(&id_mgr->lock);
+ }
+
+ amd_sched_entity_fini(vm->entity.sched, &vm->entity);
+--
+2.7.4
+