aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_pm.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2014-06-12 11:35:45 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-06-12 11:47:05 -0400
commit156c7ca08185886329113f20249446af4fb07f60 (patch)
tree07cc0ae6e33b7786f9a70ce8a9bec2dd0138c9c2 /drivers/gpu/drm/i915/intel_pm.c
parent85e90679335f56d162f4a0ff525573818e17ce44 (diff)
drm/i915: leave rc6 enabled at suspend time v4
This allows the system to enter the lowest power mode during system freeze. v2: delete force wake timer at suspend (Imre) v3: add GT work suspend function (Imre) v4: use uncore forcewake reset (Daniel) Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_pm.c')
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index d1e53abec1b5..685b4910eb93 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4675,6 +4675,26 @@ void intel_cleanup_gt_powersave(struct drm_device *dev)
4675 valleyview_cleanup_gt_powersave(dev); 4675 valleyview_cleanup_gt_powersave(dev);
4676} 4676}
4677 4677
4678/**
4679 * intel_suspend_gt_powersave - suspend PM work and helper threads
4680 * @dev: drm device
4681 *
4682 * We don't want to disable RC6 or other features here, we just want
4683 * to make sure any work we've queued has finished and won't bother
4684 * us while we're suspended.
4685 */
4686void intel_suspend_gt_powersave(struct drm_device *dev)
4687{
4688 struct drm_i915_private *dev_priv = dev->dev_private;
4689
4690 /* Interrupts should be disabled already to avoid re-arming. */
4691 WARN_ON(dev->irq_enabled);
4692
4693 flush_delayed_work(&dev_priv->rps.delayed_resume_work);
4694
4695 cancel_work_sync(&dev_priv->rps.work);
4696}
4697
4678void intel_disable_gt_powersave(struct drm_device *dev) 4698void intel_disable_gt_powersave(struct drm_device *dev)
4679{ 4699{
4680 struct drm_i915_private *dev_priv = dev->dev_private; 4700 struct drm_i915_private *dev_priv = dev->dev_private;