summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_suspend.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-17 11:32:57 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-17 22:38:34 +0200
commitc630119f43471a8ece356b01dabf07f944f453b3 (patch)
treecc2f1eed02135e76d96bdbe0a4a76bc5675f1515 /drivers/gpu/drm/i915/i915_suspend.c
parent905c27bb0de30dab178a54c06dc284177e24088a (diff)
drm/i915: don't save/restore HWS_PGA reg for kms
We already do that as part of the ringbuffer re-setup at resume time. Furthermore the register offset has moved on gen6+ around quite a bit, and on ilk/gm45 we also need to restore the HWS reg for the bsd ring, not just the render ring. So again in kms mode this is only confusing a best, hence don't bother. v2: Fixup logic, noticed by Paulo Zanoni. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Tested-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_suspend.c')
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index 6bd06b72b1dc..4f50d8264753 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -814,7 +814,8 @@ int i915_save_state(struct drm_device *dev)
mutex_lock(&dev->struct_mutex);
/* Hardware status page */
- dev_priv->saveHWS = I915_READ(HWS_PGA);
+ if (!drm_core_check_feature(dev, DRIVER_MODESET))
+ dev_priv->saveHWS = I915_READ(HWS_PGA);
i915_save_display(dev);
@@ -867,7 +868,8 @@ int i915_restore_state(struct drm_device *dev)
mutex_lock(&dev->struct_mutex);
/* Hardware status page */
- I915_WRITE(HWS_PGA, dev_priv->saveHWS);
+ if (!drm_core_check_feature(dev, DRIVER_MODESET))
+ I915_WRITE(HWS_PGA, dev_priv->saveHWS);
i915_restore_display(dev);