aboutsummaryrefslogtreecommitdiff
path: root/drivers/accel/ivpu/ivpu_ipc.h
diff options
context:
space:
mode:
authorGravatar Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> 2023-10-28 17:59:32 +0200
committerGravatar Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> 2023-10-31 16:25:03 +0100
commitba6b035daac8c4fa5da1f14f262d97e0ffa45a6d (patch)
treefa11c215ab8d3b6927753d6ac0a6da9f7c8cf961 /drivers/accel/ivpu/ivpu_ipc.h
parentaccel/ivpu: Stop job_done_thread on suspend (diff)
downloadlinux-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_ipc.h')
-rw-r--r--drivers/accel/ivpu/ivpu_ipc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/accel/ivpu/ivpu_ipc.h b/drivers/accel/ivpu/ivpu_ipc.h
index 6918db23daa4..a380787f7222 100644
--- a/drivers/accel/ivpu/ivpu_ipc.h
+++ b/drivers/accel/ivpu/ivpu_ipc.h
@@ -47,8 +47,9 @@ struct ivpu_ipc_consumer {
u32 channel;
u32 tx_vpu_addr;
u32 request_id;
+ bool aborted;
- spinlock_t rx_msg_lock; /* Protects rx_msg_list */
+ spinlock_t rx_msg_lock; /* Protects rx_msg_list and aborted */
struct list_head rx_msg_list;
wait_queue_head_t rx_msg_wq;
};