[Intel-gfx] [PATCH 2/2] drm/i915/huc: Adjust HuC state accordingly after GuC fetch error
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Tue Jul 7 23:07:11 UTC 2020
On 7/7/2020 2:52 PM, Michał Winiarski wrote:
> From: Michał Winiarski <michal.winiarski at intel.com>
>
> Firmware "Selected" state is a transient state - we don't expect to see
> it after finishing driver probe, we even have asserts sprinkled over
> i915 to confirm whether that's the case.
> Unfortunately - we don't handle the transition out of "Selected" in case
> of GuC fetch error, leading those asserts to fire when calling
> "intel_huc_is_used()".
>
> Reported-by: Marcin Bernatowicz <marcin.bernatowicz at intel.com>
> Signed-off-by: Michał Winiarski <michal.winiarski at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Marcin Bernatowicz <marcin.bernatowicz at intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---
> drivers/gpu/drm/i915/gt/uc/intel_uc.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> index 1c2d6358826c..993e9755f317 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> @@ -267,8 +267,14 @@ static void __uc_fetch_firmwares(struct intel_uc *uc)
> GEM_BUG_ON(!intel_uc_wants_guc(uc));
>
> err = intel_uc_fw_fetch(&uc->guc.fw);
> - if (err)
> + if (err) {
> + /* Make sure we transition out of transient "SELECTED" state */
> + if (intel_uc_wants_huc(uc))
> + intel_uc_fw_change_status(&uc->huc.fw,
> + INTEL_UC_FIRMWARE_ERROR);
I think that a debug message saying that we're disabling HuC because GuC
FW was not found would be useful to make it clear that the error is not
related to the HuC blob itself.
> +
> return;
> + }
>
> if (intel_uc_wants_huc(uc))
> intel_uc_fw_fetch(&uc->huc.fw);
It looks like this function could use a bit of rework for better onion
unwinding because if we fail to fetch the HuC and we don't want GuC
submission we should disable the GuC.
That's not an issue with this patch, so with the added debug log:
Reviewed-by: Daniele Ceraolo Spurio<daniele.ceraolospurio at intel.com>
Daniele
More information about the Intel-gfx
mailing list