linux-stable/drivers/accel/ivpu
Jacek Lawrynowicz 28083ff18d accel/ivpu: Fix DevTLB errors on suspend/resume and recovery
Issue IP reset before shutdown in order to
complete all upstream requests to the SOC.
Without this DevTLB is complaining about
incomplete transactions and NPU cannot resume from
suspend.
This problem is only happening on recent IFWI
releases.

IP reset in rare corner cases can mess up PCI
configuration, so save it before the reset.
After this happens it is also impossible to
issue PLL requests and D0->D3->D0 cycle is needed
to recover the NPU. Add WP 0 request on power up,
so the PUNIT is always notified about NPU reset.

Use D0/D3 cycle for recovery as it can recover
from failed IP reset and FLR cannot.

Fixes: 3f7c063492 ("accel/ivpu/37xx: Fix hangs related to MMIO reset")
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240207102446.3126981-1-jacek.lawrynowicz@linux.intel.com
2024-02-12 09:00:44 +01:00
..
ivpu_debugfs.c accel/ivpu: Improve recovery and reset support 2024-01-25 10:17:37 +01:00
ivpu_debugfs.h accel/ivpu: Compile ivpu_debugfs.c conditionally 2023-09-27 13:11:51 +02:00
ivpu_drv.c accel/ivpu: Disable d3hot_delay on all NPU generations 2024-02-06 13:36:33 +01:00
ivpu_drv.h accel/ivpu: Fix dev open/close races with unbind 2024-01-25 10:16:56 +01:00
ivpu_fw.c accel/ivpu/40xx: Enable D0i3 message 2024-02-06 13:37:20 +01:00
ivpu_fw.h accel/ivpu: Add dvfs_mode file to debugfs 2023-10-30 11:06:09 +01:00
ivpu_fw_log.c accel/ivpu: Add ivpu_bo_vaddr() and ivpu_bo_size() 2023-10-12 12:54:51 +02:00
ivpu_fw_log.h accel/ivpu: Add firmware tracing support 2023-07-07 09:33:20 +02:00
ivpu_gem.c accel/ivpu: Fix dev open/close races with unbind 2024-01-25 10:16:56 +01:00
ivpu_gem.h accel/ivpu: Fix dev open/close races with unbind 2024-01-25 10:16:56 +01:00
ivpu_hw.h Merge drm/drm-next into drm-misc-next 2023-11-15 10:56:44 +01:00
ivpu_hw_37xx.c accel/ivpu: Fix DevTLB errors on suspend/resume and recovery 2024-02-12 09:00:44 +01:00
ivpu_hw_37xx_reg.h accel/ivpu: Pass D0i3 residency time to the VPU firmware 2023-10-30 11:06:12 +01:00
ivpu_hw_40xx.c accel/ivpu/40xx: Stop passing SKU boot parameters to FW 2024-02-06 13:37:34 +01:00
ivpu_hw_40xx_reg.h accel/ivpu/40xx: Ensure clock resource ownership Ack before Power-Up 2023-09-27 07:40:23 +02:00
ivpu_hw_reg_io.h accel/ivpu: Fix verbose version of REG_POLL macros 2023-10-23 08:57:25 +02:00
ivpu_ipc.c accel/ivpu: Improve recovery and reset support 2024-01-25 10:17:37 +01:00
ivpu_ipc.h accel/ivpu: Use threaded IRQ to handle JOB done messages 2023-11-16 13:41:49 +01:00
ivpu_job.c accel/ivpu: Add job status for jobs aborted by the driver 2024-02-06 13:37:34 +01:00
ivpu_job.h accel/ivpu: Improve stability of ivpu_submit_ioctl() 2024-01-25 10:17:07 +01:00
ivpu_jsm_msg.c accel/ivpu: Add support for delayed D0i3 entry message 2023-10-30 11:06:13 +01:00
ivpu_jsm_msg.h accel/ivpu: Add support for delayed D0i3 entry message 2023-10-30 11:06:13 +01:00
ivpu_mmu.c accel/ivpu: Correct MMU queue size checking functions 2024-02-06 13:36:33 +01:00
ivpu_mmu.h accel/ivpu: Dump MMU events in case of VPU boot timeout 2024-01-22 10:27:37 +01:00
ivpu_mmu_context.c accel/ivpu: Add debug prints for MMU map/unmap operations 2024-01-22 10:27:47 +01:00
ivpu_mmu_context.h accel/ivpu: Fix locking in ivpu_bo_remove_all_bos_from_context() 2023-11-08 16:27:35 +01:00
ivpu_pm.c accel/ivpu: Fix DevTLB errors on suspend/resume and recovery 2024-02-12 09:00:44 +01:00
ivpu_pm.h accel/ivpu: Improve recovery and reset support 2024-01-25 10:17:37 +01:00
Kconfig accel/ivpu: Use GEM shmem helper for all buffers 2023-11-08 16:27:43 +01:00
Makefile accel/ivpu: Compile ivpu_debugfs.c conditionally 2023-09-27 13:11:51 +02:00
vpu_boot_api.h accel/ivpu: Update FW API 2023-10-30 11:06:07 +01:00
vpu_jsm_api.h accel/ivpu: Update FW API 2023-10-30 11:06:07 +01:00