accel/ivpu: Call diagnose failure in ivpu_mmu_cmdq_sync()
authorWachowski, Karol <karol.wachowski@intel.com>
Mon, 15 Jan 2024 13:44:27 +0000 (14:44 +0100)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Mon, 22 Jan 2024 09:27:43 +0000 (10:27 +0100)
Check for possible failure reasons in the buttress.
Some errors (like external abort) should have corresponding buttress errors
registers set indicating the real reason of failure.

Signed-off-by: Wachowski, Karol <karol.wachowski@intel.com>
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/20240115134434.493839-3-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_mmu.c

index 92ef651098d839c498dad19f6c460cba8e2bb23f..1f813625aab39cdd84598f5ffd27473c6559fd5f 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/highmem.h>
 
 #include "ivpu_drv.h"
+#include "ivpu_hw.h"
 #include "ivpu_hw_reg_io.h"
 #include "ivpu_mmu.h"
 #include "ivpu_mmu_context.h"
@@ -518,6 +519,7 @@ static int ivpu_mmu_cmdq_sync(struct ivpu_device *vdev)
 
                ivpu_err(vdev, "Timed out waiting for MMU consumer: %d, error: %s\n", ret,
                         ivpu_mmu_cmdq_err_to_str(err));
+               ivpu_hw_diagnose_failure(vdev);
        }
 
        return ret;