aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch115
1 files changed, 115 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch
new file mode 100644
index 00000000..6b8a4263
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3795-drm-amdgpu-allow-direct-submission-of-PDE-updates-v2.patch
@@ -0,0 +1,115 @@
+From 1f2c49ee82ebb7671f67d82bf6328c096de47423 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Thu, 14 Mar 2019 09:10:01 +0100
+Subject: [PATCH 3795/4256] drm/amdgpu: allow direct submission of PDE updates
+ v2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For handling PDE updates directly in the fault handler.
+
+v2: fix typo in comment
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 +++++---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 4 ++--
+ 5 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+index 7d540d5f4f9a..8288cd965f8e 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+@@ -375,7 +375,7 @@ static int vm_update_pds(struct amdgpu_vm *vm, struct amdgpu_sync *sync)
+ struct amdgpu_device *adev = amdgpu_ttm_adev(pd->tbo.bdev);
+ int ret;
+
+- ret = amdgpu_vm_update_directories(adev, vm);
++ ret = amdgpu_vm_update_pdes(adev, vm, false);
+ if (ret)
+ return ret;
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 901ce33cc481..34b793b980a1 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -838,7 +838,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p)
+ if (r)
+ return r;
+
+- r = amdgpu_vm_update_directories(adev, vm);
++ r = amdgpu_vm_update_pdes(adev, vm, false);
+ if (r)
+ return r;
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+index 3642abd765b6..cbd09e9b1092 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+@@ -610,7 +610,7 @@ static void amdgpu_gem_va_update_vm(struct amdgpu_device *adev,
+ goto error;
+ }
+
+- r = amdgpu_vm_update_directories(adev, vm);
++ r = amdgpu_vm_update_pdes(adev, vm, false);
+
+ error:
+ if (r && r != -ERESTARTSYS)
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 031d5bd3cf27..c787f71ef6a0 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -1200,18 +1200,19 @@ static void amdgpu_vm_invalidate_pds(struct amdgpu_device *adev,
+ }
+
+ /*
+- * amdgpu_vm_update_directories - make sure that all directories are valid
++ * amdgpu_vm_update_pdes - make sure that all directories are valid
+ *
+ * @adev: amdgpu_device pointer
+ * @vm: requested vm
++ * @direct: submit directly to the paging queue
+ *
+ * Makes sure all directories are up to date.
+ *
+ * Returns:
+ * 0 for success, error for failure.
+ */
+-int amdgpu_vm_update_directories(struct amdgpu_device *adev,
+- struct amdgpu_vm *vm)
++int amdgpu_vm_update_pdes(struct amdgpu_device *adev,
++ struct amdgpu_vm *vm, bool direct)
+ {
+ struct amdgpu_vm_update_params params;
+ int r;
+@@ -1222,6 +1223,7 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev,
+ memset(&params, 0, sizeof(params));
+ params.adev = adev;
+ params.vm = vm;
++ params.direct = direct;
+
+ r = vm->update_funcs->prepare(&params, AMDGPU_FENCE_OWNER_VM, NULL);
+ if (r)
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+index 7aa15714d600..3f1335295c00 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+@@ -366,8 +366,8 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ int (*callback)(void *p, struct amdgpu_bo *bo),
+ void *param);
+ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_pipe_sync);
+-int amdgpu_vm_update_directories(struct amdgpu_device *adev,
+- struct amdgpu_vm *vm);
++int amdgpu_vm_update_pdes(struct amdgpu_device *adev,
++ struct amdgpu_vm *vm, bool direct);
+ int amdgpu_vm_clear_freed(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm,
+ struct dma_fence **fence);
+--
+2.17.1
+