Reviewed-by: Lizhi Hou <[email protected]> On 4/2/26 05:55, Karol Wachowski wrote:
With OS scheduling mode the driver cannot determine which context caused the timeout, so context abort cannot be used. Instead of queuing context_abort_work, directly trigger full device recovery when a job timeout (TDR) occurs in OS scheduling mode.Fixes: ade00a6c903f ("accel/ivpu: Perform engine reset instead of device recovery on TDR") Signed-off-by: Karol Wachowski <[email protected]> --- drivers/accel/ivpu/ivpu_pm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/accel/ivpu/ivpu_pm.c b/drivers/accel/ivpu/ivpu_pm.c index 83da9b297f37..c1ce8329790e 100644 --- a/drivers/accel/ivpu/ivpu_pm.c +++ b/drivers/accel/ivpu/ivpu_pm.c @@ -221,6 +221,12 @@ static void ivpu_job_timeout_work(struct work_struct *work)abort:atomic_set(&vdev->job_timeout_counter, 0); + + if (vdev->fw->sched_mode == VPU_SCHEDULING_MODE_OS) { + ivpu_pm_trigger_recovery(vdev, "Job timeout"); + return; + } + ivpu_jsm_state_dump(vdev); ivpu_dev_coredump(vdev); queue_work(system_percpu_wq, &vdev->context_abort_work);
