Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
+2 −11
Original line number Diff line number Diff line
@@ -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);
@@ -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)