I wanted to get this out of the way as soon as possible, but I'll follow shortly with a proposal to remove enable_guc_loading as a module parameter.

Thanks,

Oscar


On 03/28/2017 09:53 AM, Oscar Mateo wrote:
The should happen as soon as possible, but always within the logic that
depends on it (and not interrupting the top-level driver control flow).

Cc: Chris Wilson <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Signed-off-by: Oscar Mateo <[email protected]>
---
  drivers/gpu/drm/i915/i915_drv.c |  3 +--
  drivers/gpu/drm/i915/i915_gem.c | 10 ++++------
  drivers/gpu/drm/i915/intel_uc.c |  6 ++++++
  3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index d0524fb..c616b4e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -549,8 +549,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
  static void i915_gem_fini(struct drm_i915_private *dev_priv)
  {
        mutex_lock(&dev_priv->drm.struct_mutex);
-       if (i915.enable_guc_loading)
-               intel_uc_fini_hw(dev_priv);
+       intel_uc_fini_hw(dev_priv);
        i915_gem_cleanup_engines(dev_priv);
        i915_gem_context_fini(dev_priv);
        mutex_unlock(&dev_priv->drm.struct_mutex);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 84ea249..2709be9 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4611,12 +4611,10 @@ int i915_gem_init_hw(struct drm_i915_private *dev_priv)
intel_mocs_init_l3cc_table(dev_priv); - if (i915.enable_guc_loading) {
-               /* We can't enable contexts until all firmware is loaded */
-               ret = intel_uc_init_hw(dev_priv);
-               if (ret)
-                       goto out;
-       }
+       /* We can't enable contexts until all firmware is loaded */
+       ret = intel_uc_init_hw(dev_priv);
+       if (ret)
+               goto out;
out:
        intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
diff --git a/drivers/gpu/drm/i915/intel_uc.c b/drivers/gpu/drm/i915/intel_uc.c
index c767dc3..1965322 100644
--- a/drivers/gpu/drm/i915/intel_uc.c
+++ b/drivers/gpu/drm/i915/intel_uc.c
@@ -254,6 +254,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
  {
        int ret, attempts;
+ if (!i915.enable_guc_loading)
+               return 0;
+
        gen9_reset_guc_interrupts(dev_priv);
/* We need to notify the guc whenever we change the GGTT */
@@ -343,6 +346,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
void intel_uc_fini_hw(struct drm_i915_private *dev_priv)
  {
+       if (!i915.enable_guc_loading)
+               return;
+
        if (i915.enable_guc_submission) {
                i915_guc_submission_disable(dev_priv);
                gen9_disable_guc_interrupts(dev_priv);

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to