[Intel-gfx] [PATCH v3 14/16] drm/i915/guc: Enable GuC interrupts when using CT
Oscar Mateo
oscar.mateo at intel.com
Wed Aug 9 17:06:00 UTC 2017
On 08/09/2017 09:24 AM, Michal Wajdeczko wrote:
> We will need them in G2H communication to properly handle
> responses and requests from the Guc.
>
> v2: keep irq enabled while disabling GuC logging (Oscar)
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> Cc: Oscar Mateo <oscar.mateo at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Michel Thierry <michel.thierry at intel.com>
> ---
> drivers/gpu/drm/i915/i915_guc_submission.c | 2 +-
> drivers/gpu/drm/i915/intel_guc_log.c | 10 ++++++----
> drivers/gpu/drm/i915/intel_uc.c | 2 +-
> 3 files changed, 8 insertions(+), 6 deletions(-)
Acked-by: Oscar Mateo <oscar.mateo at intel.com>
> diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
> index 48a1e93..509497e 100644
> --- a/drivers/gpu/drm/i915/i915_guc_submission.c
> +++ b/drivers/gpu/drm/i915/i915_guc_submission.c
> @@ -1328,7 +1328,7 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
> if (guc->fw.load_status != INTEL_UC_FIRMWARE_SUCCESS)
> return 0;
>
> - if (i915.guc_log_level >= 0)
> + if (HAS_GUC_CT(dev_priv) || i915.guc_log_level >= 0)
> gen9_enable_guc_interrupts(dev_priv);
>
> ctx = dev_priv->kernel_context;
> diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c
> index acd9a3f..64fb879 100644
> --- a/drivers/gpu/drm/i915/intel_guc_log.c
> +++ b/drivers/gpu/drm/i915/intel_guc_log.c
> @@ -505,8 +505,9 @@ static void guc_flush_logs(struct intel_guc *guc)
> if (!i915.enable_guc_submission || (i915.guc_log_level < 0))
> return;
>
> - /* First disable the interrupts, will be renabled afterwards */
> - gen9_disable_guc_interrupts(dev_priv);
> + /* GuC logging maybe the only user of Guc2Host interrupts */
> + if (!HAS_GUC_CT(dev_priv))
> + gen9_disable_guc_interrupts(dev_priv);
>
> /* Before initiating the forceful flush, wait for any pending/ongoing
> * flush to complete otherwise forceful flush may not actually happen.
> @@ -663,8 +664,9 @@ void i915_guc_log_unregister(struct drm_i915_private *dev_priv)
> return;
>
> mutex_lock(&dev_priv->drm.struct_mutex);
> - /* GuC logging is currently the only user of Guc2Host interrupts */
> - gen9_disable_guc_interrupts(dev_priv);
> + /* GuC logging maybe the only user of Guc2Host interrupts */
> + if (!HAS_GUC_CT(dev_priv))
> + gen9_disable_guc_interrupts(dev_priv);
> guc_log_runtime_destroy(&dev_priv->guc);
> mutex_unlock(&dev_priv->drm.struct_mutex);
> }
> diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
> index 774d740..0209ad0 100644
> --- a/drivers/gpu/drm/i915/intel_uc.c
> +++ b/drivers/gpu/drm/i915/intel_uc.c
> @@ -395,7 +395,7 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
>
> intel_guc_auth_huc(dev_priv);
> if (i915.enable_guc_submission) {
> - if (i915.guc_log_level >= 0)
> + if (HAS_GUC_CT(dev_priv) || i915.guc_log_level >= 0)
> gen9_enable_guc_interrupts(dev_priv);
>
> ret = i915_guc_submission_enable(dev_priv);
More information about the Intel-gfx
mailing list