aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch')
-rw-r--r--common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch b/common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch
new file mode 100644
index 00000000..5a9abfec
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0408-drm-amdgpu-use-sched-fence-if-possible.patch
@@ -0,0 +1,38 @@
+From 2389be2b66ea81b9af93ba6c1b3652045c27b42e Mon Sep 17 00:00:00 2001
+From: Monk Liu <Monk.Liu@amd.com>
+Date: Thu, 17 Mar 2016 13:57:09 +0800
+Subject: [PATCH 0408/1110] drm/amdgpu: use sched fence if possible
+
+when preemption feature lands, the SA bo should rely on sched
+fence, because hw fence will be invalid after its job preempted
+or skipped.
+
+Signed-off-by: Monk Liu <Monk.Liu@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+index ddf1ed6..8a2d54a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+@@ -70,9 +70,12 @@ int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size,
+ void amdgpu_job_free(struct amdgpu_job *job)
+ {
+ unsigned i;
++ struct fence *f;
++ /* use sched fence if available */
++ f = (job->base.s_fence)? &job->base.s_fence->base : job->fence;
+
+ for (i = 0; i < job->num_ibs; ++i)
+- amdgpu_sa_bo_free(job->adev, &job->ibs[i].sa_bo, job->fence);
++ amdgpu_sa_bo_free(job->adev, &job->ibs[i].sa_bo, f);
+ fence_put(job->fence);
+
+ amdgpu_bo_unref(&job->uf.bo);
+--
+2.7.4
+