Re: [Intel-gfx] [PATCH v3 14/16] drm/i915/guc: Enable GuC interrupts when using CT

2017-08-09 Thread Oscar Mateo



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 
Cc: Oscar Mateo 
Cc: Daniele Ceraolo Spurio 
Cc: Michel Thierry 
---
  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 


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(_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(_priv->guc);
mutex_unlock(_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);


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v3 14/16] drm/i915/guc: Enable GuC interrupts when using CT

2017-08-09 Thread Michal Wajdeczko
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 
Cc: Oscar Mateo 
Cc: Daniele Ceraolo Spurio 
Cc: Michel Thierry 
---
 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(-)

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(_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(_priv->guc);
mutex_unlock(_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);
-- 
2.7.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx