aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch83
1 files changed, 0 insertions, 83 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch
deleted file mode 100644
index cf5a1b28..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1084-drm-amdgpu-handle-foreign-BOs-in-the-VM-mapping.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From eae6ddd03bd0a561162cfc13ec49bcbca43b8daf Mon Sep 17 00:00:00 2001
-From: Amber Lin <Amber.Lin@amd.com>
-Date: Thu, 13 Apr 2017 16:49:58 -0400
-Subject: [PATCH 1084/4131] drm/amdgpu: handle foreign BOs in the VM mapping
-
-Use the correct device for the PTE creation.
-
-Bug: SWDEV-118409
-
-Change-Id: Idf9989d122f9923702f13c3f7dd3b4d1a0796448
-Signed-off-by: Amber Lin <Amber.Lin@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 21 +++++++++++++++------
- 1 file changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-index 9217edd..8a32c7b 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -1646,6 +1646,7 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
- dma_addr_t *pages_addr,
- struct amdgpu_vm *vm,
- struct amdgpu_bo_va_mapping *mapping,
-+ uint64_t vram_base_offset,
- uint64_t flags,
- struct ttm_mem_reg *mem,
- struct dma_fence **fence)
-@@ -1702,12 +1703,12 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
- max_entries = min(max_entries, 16ull * 1024ull);
- break;
- case AMDGPU_PL_DGMA:
-- addr += adev->vm_manager.vram_base_offset +
-+ addr += vram_base_offset +
- adev->mman.bdev.man[mem->mem_type].gpu_offset -
- adev->mman.bdev.man[TTM_PL_VRAM].gpu_offset;
- break;
- case TTM_PL_VRAM:
-- addr += adev->vm_manager.vram_base_offset;
-+ addr += vram_base_offset;
- break;
- default:
- break;
-@@ -1760,6 +1761,8 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
- struct drm_mm_node *nodes;
- struct dma_fence *exclusive, **last_update;
- uint64_t flags;
-+ uint64_t vram_base_offset = adev->vm_manager.vram_base_offset;
-+ struct amdgpu_device *bo_adev;
- int r;
-
- if (clear || !bo_va->base.bo) {
-@@ -1781,9 +1784,15 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
- exclusive = reservation_object_get_excl(bo->tbo.resv);
- }
-
-- if (bo)
-+ if (bo) {
- flags = amdgpu_ttm_tt_pte_flags(adev, bo->tbo.ttm, mem);
-- else
-+ bo_adev = amdgpu_ttm_adev(bo->tbo.bdev);
-+ if (mem && mem->mem_type == TTM_PL_VRAM &&
-+ adev != bo_adev) {
-+ flags |= AMDGPU_PTE_SYSTEM;
-+ vram_base_offset = bo_adev->mc.aper_base;
-+ }
-+ } else
- flags = 0x0;
-
- if (clear || (bo && bo->tbo.resv == vm->root.base.bo->tbo.resv))
-@@ -1801,8 +1810,8 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
-
- list_for_each_entry(mapping, &bo_va->invalids, list) {
- r = amdgpu_vm_bo_split_mapping(adev, exclusive, pages_addr, vm,
-- mapping, flags, mem,
-- last_update);
-+ mapping, vram_base_offset, flags,
-+ mem, last_update);
- if (r)
- return r;
- }
---
-2.7.4
-