diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3055-drm-amdgpu-Correct-the-IB-size-of-bo-update-mapping.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3055-drm-amdgpu-Correct-the-IB-size-of-bo-update-mapping.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3055-drm-amdgpu-Correct-the-IB-size-of-bo-update-mapping.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3055-drm-amdgpu-Correct-the-IB-size-of-bo-update-mapping.patch new file mode 100644 index 00000000..516a9e28 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3055-drm-amdgpu-Correct-the-IB-size-of-bo-update-mapping.patch @@ -0,0 +1,44 @@ +From 985872e2db626659758412c5c689b6b96654c707 Mon Sep 17 00:00:00 2001 +From: Emily Deng <Emily.Deng@amd.com> +Date: Fri, 29 Dec 2017 13:13:08 +0800 +Subject: [PATCH 3055/4131] drm/amdgpu: Correct the IB size of bo update + mapping. + +The amdgpu_vm_frag_ptes will call amdgpu_vm_update_ptes, and for buffer +object that has shadow buffer, need twice commands. + +Signed-off-by: Emily Deng <Emily.Deng@amd.com> +Reviewed-by: Chunming Zhou <david1.zhou@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +index 7146d8b..7b6eb28 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +@@ -1205,13 +1205,19 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, + * + * The second command is for the shadow pagetables. + */ +- ncmds = ((nptes >> min(adev->vm_manager.block_size, 11u)) + 1) * 2; ++ if (vm->root.base.bo->shadow) ++ ncmds = ((nptes >> min(adev->vm_manager.block_size, 11u)) + 1) * 2; ++ else ++ ncmds = ((nptes >> min(adev->vm_manager.block_size, 11u)) + 1); + + /* padding, etc. */ + ndw = 64; + + /* one PDE write for each huge page */ +- ndw += ((nptes >> adev->vm_manager.block_size) + 1) * 6; ++ if (vm->root.base.bo->shadow) ++ ndw += ((nptes >> adev->vm_manager.block_size) + 1) * 6 * 2; ++ else ++ ndw += ((nptes >> adev->vm_manager.block_size) + 1) * 6; + + if (pages_addr) { + /* copy commands needed */ +-- +2.7.4 + |