summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/gt/uc/intel_huc.c7
-rw-r--r--drivers/gpu/drm/i915/gt/uc/intel_uc.c8
2 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_huc.c b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
index 66b2d5fdb317..faaf8ad5ba89 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_huc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_huc.c
@@ -52,6 +52,11 @@ static int intel_huc_rsa_data_create(struct intel_huc *huc)
struct i915_vma *vma;
size_t copied;
void *vaddr;
+ int err;
+
+ err = i915_inject_load_error(gt->i915, -ENXIO);
+ if (err)
+ return err;
/*
* HuC firmware will sit above GUC_GGTT_TOP and will not map
@@ -115,8 +120,8 @@ out_fini:
void intel_huc_fini(struct intel_huc *huc)
{
- intel_uc_fw_fini(&huc->fw);
intel_huc_rsa_data_destroy(huc);
+ intel_uc_fw_fini(&huc->fw);
}
/**
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index 1ddd252419ec..e87b7904ab7a 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -316,14 +316,14 @@ int intel_uc_init(struct intel_uc *uc)
if (intel_uc_supports_huc(uc)) {
ret = intel_huc_init(huc);
if (ret)
- goto err_guc;
+ goto out_huc;
}
return 0;
-err_guc:
- intel_guc_fini(guc);
- return ret;
+out_huc:
+ intel_uc_fw_cleanup_fetch(&huc->fw);
+ return 0;
}
void intel_uc_fini(struct intel_uc *uc)