[Intel-gfx] [PATCH 3/3] drm/i915/guc: sleep on enable
Daniele Ceraolo Spurio
daniele.ceraolospurio at intel.com
Mon Oct 15 18:33:26 UTC 2018
On 14/10/18 10:02, Chris Wilson wrote:
> Seems like there's a missing ack before the guc is ready for commands.
>
I'm assuming you're running without HuC since the HuC auth H2G comes
before this one.
What we're polling to indicate load completion (GS_UKERNEL_READY) is
definitely what the firmware uses to signal readiness. The other check
we do (GS_MIA_CORE_STATE) should only apply for rc6 scenarios. From what
I can see from the firmware code, all the initialization steps are done
before GS_UKERNEL_READY is written to the status register so there
shouldn't be any missing acks in principle.
Is the GuC returning anything in the scratch 0 register? It should be
printed out by the H2G error message. The value of the status register
(0xc000) could also provide interesting debug info.
Thanks,
Daniele
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> ---
> drivers/gpu/drm/i915/intel_guc_submission.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
> index fb0499f80b62..b7fd3422cb28 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -1307,6 +1307,8 @@ int intel_guc_submission_enable(struct intel_guc *guc)
>
> GEM_BUG_ON(!guc->execbuf_client);
>
> + usleep_range(1000, 10000);
> +
> err = intel_guc_sample_forcewake(guc);
> if (err)
> return err;
>
More information about the Intel-gfx
mailing list