drm/i915/guc: Keep GuC interrupts enabled when using GuC
The GuC log contains a separate space used for crash dump. We even get a separate notification for it. While we're not handling crash differently yet, it makes sense to decouple the two right now to simplify the following patches. v2: Move guc_log_flush_irq_disable up to avoid movement in following patches (Sagar). v3: s/guc_log_flush_irq_*/guc_flush_log_msg_*, rebase after mass rename Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com> (v2) Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20180319095348.9716-1-michal.winiarski@intel.com
This commit is contained in:

committed by
Chris Wilson

parent
ad260ab32a
commit
eacd8391f9
@@ -247,6 +247,8 @@ static int guc_enable_communication(struct intel_guc *guc)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = guc_to_i915(guc);
|
||||
|
||||
gen9_enable_guc_interrupts(dev_priv);
|
||||
|
||||
if (HAS_GUC_CT(dev_priv))
|
||||
return intel_guc_enable_ct(guc);
|
||||
|
||||
@@ -261,6 +263,8 @@ static void guc_disable_communication(struct intel_guc *guc)
|
||||
if (HAS_GUC_CT(dev_priv))
|
||||
intel_guc_disable_ct(guc);
|
||||
|
||||
gen9_disable_guc_interrupts(dev_priv);
|
||||
|
||||
guc->send = intel_guc_send_nop;
|
||||
}
|
||||
|
||||
@@ -413,12 +417,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
|
||||
}
|
||||
|
||||
if (USES_GUC_SUBMISSION(dev_priv)) {
|
||||
if (i915_modparams.guc_log_level)
|
||||
gen9_enable_guc_interrupts(dev_priv);
|
||||
|
||||
ret = intel_guc_submission_enable(guc);
|
||||
if (ret)
|
||||
goto err_interrupts;
|
||||
goto err_communication;
|
||||
}
|
||||
|
||||
dev_info(dev_priv->drm.dev, "GuC firmware version %u.%u\n",
|
||||
@@ -433,8 +434,6 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
|
||||
/*
|
||||
* We've failed to load the firmware :(
|
||||
*/
|
||||
err_interrupts:
|
||||
gen9_disable_guc_interrupts(dev_priv);
|
||||
err_communication:
|
||||
guc_disable_communication(guc);
|
||||
err_log_capture:
|
||||
@@ -464,9 +463,6 @@ void intel_uc_fini_hw(struct drm_i915_private *dev_priv)
|
||||
intel_guc_submission_disable(guc);
|
||||
|
||||
guc_disable_communication(guc);
|
||||
|
||||
if (USES_GUC_SUBMISSION(dev_priv))
|
||||
gen9_disable_guc_interrupts(dev_priv);
|
||||
}
|
||||
|
||||
int intel_uc_suspend(struct drm_i915_private *i915)
|
||||
|
Reference in New Issue
Block a user