We need to do this at init and resume time, but it's not modeset
related.  Since we'll need the modeset functions for managing
save/restore after the power well is toggled, we want to keep them
separate from GT related state save/restore to keep from affecting GT
activity while the display is off.

Signed-off-by: Jesse Barnes <[email protected]>
---
 drivers/gpu/drm/i915/i915_dma.c      | 2 ++
 drivers/gpu/drm/i915/i915_drv.c      | 3 +++
 drivers/gpu/drm/i915/i915_suspend.c  | 2 --
 drivers/gpu/drm/i915/intel_display.c | 4 ----
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index f221631..313a8c9 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1331,6 +1331,8 @@ static int i915_load_modeset_init(struct drm_device *dev)
 
        intel_modeset_gem_init(dev);
 
+       intel_enable_gt_powersave(dev);
+
        /* Always safe in the mode setting case. */
        /* FIXME: do pre/post-mode set stuff in core KMS code */
        dev->vblank_disable_allowed = 1;
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 0fc9658..82a1d53 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -507,6 +507,8 @@ static int i915_drm_freeze(struct drm_device *dev)
 
        i915_save_state(dev);
 
+       intel_disable_gt_powersave(dev);
+
        intel_opregion_fini(dev);
 
        console_lock();
@@ -604,6 +606,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool 
restore_gtt_mappings)
                mutex_lock(&dev->struct_mutex);
 
                error = i915_gem_init_hw(dev);
+               intel_enable_gt_powersave(dev);
                mutex_unlock(&dev->struct_mutex);
 
                /* We need working interrupts for modeset enabling ... */
diff --git a/drivers/gpu/drm/i915/i915_suspend.c 
b/drivers/gpu/drm/i915/i915_suspend.c
index 98790c7..cd28fd5 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -395,8 +395,6 @@ int i915_save_state(struct drm_device *dev)
                }
        }
 
-       intel_disable_gt_powersave(dev);
-
        /* Cache mode state */
        if (INTEL_INFO(dev)->gen < 7)
                dev_priv->regfile.saveCACHE_MODE_0 = I915_READ(CACHE_MODE_0);
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 5452b34..4835c51 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10403,10 +10403,6 @@ void intel_modeset_init_hw(struct drm_device *dev)
                           DPLL_INTEGRATED_CRI_CLK_VLV);
 
        intel_init_dpio(dev);
-
-       mutex_lock(&dev->struct_mutex);
-       intel_enable_gt_powersave(dev);
-       mutex_unlock(&dev->struct_mutex);
 }
 
 void intel_modeset_suspend_hw(struct drm_device *dev)
-- 
1.8.3.1

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

Reply via email to