In IVPU_TEST_MODE_FW_TEST mode the driver triggers a firmware boot but
does not wait for boot completion. Because it never waits for the boot
to finish, it cannot send a message and expect a response from the
firmware.

Exit ivpu_boot() early in this mode, bypassing ivpu_hw_sched_init() and
the rest of the post-boot initialization. ivpu_hw_sched_init() was
sending a message that timed out and failed the boot sequence.

Signed-off-by: Andrzej Kacprowski <[email protected]>
---
 drivers/accel/ivpu/ivpu_drv.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/accel/ivpu/ivpu_drv.c b/drivers/accel/ivpu/ivpu_drv.c
index 8c1c87e69f91..538179dcd316 100644
--- a/drivers/accel/ivpu/ivpu_drv.c
+++ b/drivers/accel/ivpu/ivpu_drv.c
@@ -485,6 +485,9 @@ int ivpu_boot(struct ivpu_device *vdev)
        ivpu_ipc_enable(vdev);
 
        if (!ivpu_fw_is_warm_boot(vdev)) {
+               if (ivpu_test_mode & IVPU_TEST_MODE_FW_TEST)
+                       return 0;
+
                ret = ivpu_pm_dct_init(vdev);
                if (ret)
                        goto err_disable_ipc;
-- 
2.43.0

Reply via email to