#include "ivpu_debugfs.h"
 #include "ivpu_drv.h"
 #include "ivpu_fw.h"
+#include "ivpu_fw_log.h"
 #include "ivpu_gem.h"
 #include "ivpu_hw.h"
 #include "ivpu_ipc.h"
 
        if (!ret)
                ivpu_dbg(vdev, PM, "VPU ready message received successfully\n");
-       else
-               ivpu_hw_diagnose_failure(vdev);
 
        return ret;
 }
        ret = ivpu_wait_for_ready(vdev);
        if (ret) {
                ivpu_err(vdev, "Failed to boot the firmware: %d\n", ret);
+               ivpu_hw_diagnose_failure(vdev);
                ivpu_mmu_evtq_dump(vdev);
+               ivpu_fw_log_dump(vdev);
                return ret;
        }
 
 
 #include "ivpu_drv.h"
 #include "ivpu_hw.h"
 #include "ivpu_fw.h"
+#include "ivpu_fw_log.h"
 #include "ivpu_ipc.h"
 #include "ivpu_job.h"
 #include "ivpu_jsm_msg.h"
                ivpu_err(vdev, "Failed to set suspend VPU: %d\n", ret);
 
        if (!hw_is_idle) {
-               ivpu_warn(vdev, "VPU failed to enter idle, force suspended.\n");
+               ivpu_err(vdev, "VPU failed to enter idle, force suspended.\n");
+               ivpu_fw_log_dump(vdev);
                ivpu_pm_prepare_cold_boot(vdev);
        } else {
                ivpu_pm_prepare_warm_boot(vdev);