diff options
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.patch | 69 |
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 + |