summaryrefslogtreecommitdiff
path: root/drivers/accel/ivpu/ivpu_job.h
diff options
context:
space:
mode:
authorStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>2023-10-28 18:59:31 +0300
committerStanislaw Gruszka <stanislaw.gruszka@linux.intel.com>2023-10-31 18:14:17 +0300
commit57c7e3e4800ad65048a7044b03723cd85d9595af (patch)
tree82e870cd80b7deba2134c5a7677962db251a30cf /drivers/accel/ivpu/ivpu_job.h
parenta06eb9be49a66e16e0c7819c630c1267c25b36dc (diff)
downloadlinux-57c7e3e4800ad65048a7044b03723cd85d9595af.tar.xz
accel/ivpu: Stop job_done_thread on suspend
Stop job_done thread when going to suspend. Use kthread_park() instead of kthread_stop() to avoid memory allocation and potential failure on resume. Use separate function as thread wake up condition. Use spin lock to assure rx_msg_list is properly protected against concurrent access. This avoid race condition when the rx_msg_list list is modified and read in ivpu_ipc_recive() at the same time. Reviewed-by: Karol Wachowski <karol.wachowski@linux.intel.com> Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com> Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231028155936.1183342-4-stanislaw.gruszka@linux.intel.com
Diffstat (limited to 'drivers/accel/ivpu/ivpu_job.h')
-rw-r--r--drivers/accel/ivpu/ivpu_job.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/accel/ivpu/ivpu_job.h b/drivers/accel/ivpu/ivpu_job.h
index aa1f0b9479b0..a8e914e5affc 100644
--- a/drivers/accel/ivpu/ivpu_job.h
+++ b/drivers/accel/ivpu/ivpu_job.h
@@ -61,6 +61,8 @@ void ivpu_cmdq_reset_all_contexts(struct ivpu_device *vdev);
int ivpu_job_done_thread_init(struct ivpu_device *vdev);
void ivpu_job_done_thread_fini(struct ivpu_device *vdev);
+void ivpu_job_done_thread_disable(struct ivpu_device *vdev);
+void ivpu_job_done_thread_enable(struct ivpu_device *vdev);
void ivpu_jobs_abort_all(struct ivpu_device *vdev);