Skip to content

Commit

Permalink
drm/i915/uc: Never fail on HuC firmware errors
Browse files Browse the repository at this point in the history
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: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190818095204.31568-4-michal.wajdeczko@intel.com
  • Loading branch information
Michal Wajdeczko authored and Chris Wilson committed Aug 18, 2019
1 parent ee40214 commit a8dc0f6
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 12 deletions.
4 changes: 3 additions & 1 deletion drivers/gpu/drm/i915/gt/uc/intel_huc.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,11 @@ int intel_huc_auth(struct intel_huc *huc)
struct intel_guc *guc = &gt->uc.guc;
int ret;

GEM_BUG_ON(!intel_uc_fw_is_loaded(&huc->fw));
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);
if (ret)
goto fail;
Expand Down
13 changes: 2 additions & 11 deletions drivers/gpu/drm/i915/gt/uc/intel_uc.c
Original file line number Diff line number Diff line change
Expand Up @@ -457,12 +457,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
if (ret)
goto err_out;

if (intel_uc_uses_huc(uc)) {
ret = intel_huc_fw_upload(huc);
if (ret && intel_uc_fw_is_overridden(&huc->fw))
goto err_out;
}

intel_huc_fw_upload(huc);
intel_guc_ads_reset(guc);
intel_guc_write_params(guc);
ret = intel_guc_fw_upload(guc);
Expand All @@ -481,11 +476,7 @@ int intel_uc_init_hw(struct intel_uc *uc)
if (ret)
goto err_log_capture;

if (intel_uc_fw_is_loaded(&huc->fw)) {
ret = intel_huc_auth(huc);
if (ret && intel_uc_fw_is_overridden(&huc->fw))
goto err_communication;
}
intel_huc_auth(huc);

ret = intel_guc_sample_forcewake(guc);
if (ret)
Expand Down

0 comments on commit a8dc0f6

Please sign in to comment.