diff options
author | 2023-10-28 17:59:32 +0200 | |
---|---|---|
committer | 2023-10-31 16:25:03 +0100 | |
commit | ba6b035daac8c4fa5da1f14f262d97e0ffa45a6d (patch) | |
tree | fa11c215ab8d3b6927753d6ac0a6da9f7c8cf961 /drivers/accel/ivpu/ivpu_job.c | |
parent | accel/ivpu: Stop job_done_thread on suspend (diff) | |
download | linux-ba6b035daac8c4fa5da1f14f262d97e0ffa45a6d.tar.gz linux-ba6b035daac8c4fa5da1f14f262d97e0ffa45a6d.tar.bz2 linux-ba6b035daac8c4fa5da1f14f262d97e0ffa45a6d.zip |
accel/ivpu: Abort pending rx ipc on reset
Waking up process, which wait for particular condition, will go to
sleep again on wake_up() if the condition is not met. Add abort flag
to wake up IPC receivers, which will finish with -ECANCELED error.
This is only needed for reset, run time power management prevent to
suspend VPU when there is pending IPC processing or pending job.
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-5-stanislaw.gruszka@linux.intel.com
Diffstat (limited to 'drivers/accel/ivpu/ivpu_job.c')
-rw-r--r-- | drivers/accel/ivpu/ivpu_job.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c index a245b2d44db7..15a408fad494 100644 --- a/drivers/accel/ivpu/ivpu_job.c +++ b/drivers/accel/ivpu/ivpu_job.c @@ -578,6 +578,7 @@ static int ivpu_job_done_thread(void *arg) ivpu_ipc_consumer_add(vdev, &cons, VPU_IPC_CHAN_JOB_RET); while (!kthread_should_stop()) { + cons.aborted = false; timeout = ivpu_tdr_timeout_ms ? ivpu_tdr_timeout_ms : vdev->timeout.tdr; jobs_submitted = !xa_empty(&vdev->submitted_jobs_xa); ret = ivpu_ipc_receive(vdev, &cons, NULL, &jsm_msg, timeout); |