aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch
new file mode 100644
index 00000000..3af70883
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0756-drm-sched-add-drm_sched_fault.patch
@@ -0,0 +1,58 @@
+From 6d1d2a46987c71af7ba7d9bfcd280a1bb10bfd6e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Fri, 12 Oct 2018 16:47:13 +0200
+Subject: [PATCH 0756/2940] drm/sched: add drm_sched_fault
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Add a helper to immediately start timeout handling in case of a hardware
+fault.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/scheduler/sched_main.c | 13 +++++++++++++
+ include/drm/gpu_scheduler.h | 1 +
+ 2 files changed, 14 insertions(+)
+
+diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
+index b7e4572f811f..2e416c3fd206 100644
+--- a/drivers/gpu/drm/scheduler/sched_main.c
++++ b/drivers/gpu/drm/scheduler/sched_main.c
+@@ -182,6 +182,19 @@ bool drm_sched_dependency_optimized(struct dma_fence* fence,
+ }
+ EXPORT_SYMBOL(drm_sched_dependency_optimized);
+
++/**
++ * drm_sched_fault - immediately start timeout handler
++ *
++ * @sched: scheduler where the timeout handling should be started.
++ *
++ * Start timeout handling immediately when the driver detects a hardware fault.
++ */
++void drm_sched_fault(struct drm_gpu_scheduler *sched)
++{
++ mod_delayed_work(system_wq, &sched->work_tdr, 0);
++}
++EXPORT_SYMBOL(drm_sched_fault);
++
+ /* job_finish is called after hw fence signaled
+ */
+ static void drm_sched_job_finish(struct work_struct *work)
+diff --git a/include/drm/gpu_scheduler.h b/include/drm/gpu_scheduler.h
+index 872ab2ea51a1..b0646520b971 100644
+--- a/include/drm/gpu_scheduler.h
++++ b/include/drm/gpu_scheduler.h
+@@ -299,6 +299,7 @@ void drm_sched_hw_job_reset(struct drm_gpu_scheduler *sched,
+ void drm_sched_job_recovery(struct drm_gpu_scheduler *sched);
+ bool drm_sched_dependency_optimized(struct dma_fence* fence,
+ struct drm_sched_entity *entity);
++void drm_sched_fault(struct drm_gpu_scheduler *sched);
+ void drm_sched_job_kickout(struct drm_sched_job *s_job);
+
+ void drm_sched_rq_add_entity(struct drm_sched_rq *rq,
+--
+2.17.1
+