Commit a8dc0f6d authored by Michal Wajdeczko's avatar Michal Wajdeczko Committed by Chris Wilson

drm/i915/uc: Never fail on HuC firmware errors

There is no need to mark whole GPU as wedged just because
of the custom HuC fw failure as users can always verify
actual HuC firmware status using existing HUC_STATUS ioctl.
Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190818095204.31568-4-michal.wajdeczko@intel.com
parent ee402140
...@@ -129,9 +129,11 @@ int intel_huc_auth(struct intel_huc *huc) ...@@ -129,9 +129,11 @@ int intel_huc_auth(struct intel_huc *huc)
struct intel_guc *guc = &gt->uc.guc; struct intel_guc *guc = &gt->uc.guc;
int ret; int ret;
GEM_BUG_ON(!intel_uc_fw_is_loaded(&huc->fw));
GEM_BUG_ON(intel_huc_is_authenticated(huc)); GEM_BUG_ON(intel_huc_is_authenticated(huc));
if (!intel_uc_fw_is_loaded(&huc->fw))
return -ENOEXEC;
ret = i915_inject_load_error(gt->i915, -ENXIO); ret = i915_inject_load_error(gt->i915, -ENXIO);
if (ret) if (ret)
goto fail; goto fail;
......
...@@ -457,12 +457,7 @@ int intel_uc_init_hw(struct intel_uc *uc) ...@@ -457,12 +457,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
if (ret) if (ret)
goto err_out; goto err_out;
if (intel_uc_uses_huc(uc)) { intel_huc_fw_upload(huc);
ret = intel_huc_fw_upload(huc);
if (ret && intel_uc_fw_is_overridden(&huc->fw))
goto err_out;
}
intel_guc_ads_reset(guc); intel_guc_ads_reset(guc);
intel_guc_write_params(guc); intel_guc_write_params(guc);
ret = intel_guc_fw_upload(guc); ret = intel_guc_fw_upload(guc);
...@@ -481,11 +476,7 @@ int intel_uc_init_hw(struct intel_uc *uc) ...@@ -481,11 +476,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
if (ret) if (ret)
goto err_log_capture; goto err_log_capture;
if (intel_uc_fw_is_loaded(&huc->fw)) { intel_huc_auth(huc);
ret = intel_huc_auth(huc);
if (ret && intel_uc_fw_is_overridden(&huc->fw))
goto err_communication;
}
ret = intel_guc_sample_forcewake(guc); ret = intel_guc_sample_forcewake(guc);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment