summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-12-08 14:26:19 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-12-09 19:46:23 +0000
commitd1c3b177b9940541e89015a726ac279caf1a21f3 (patch)
tree3e7cec06ee0703b45d05eedc4e422718cb15e328
parent4a19d02e0a8cd8799e5d150d8eb74861e1a4cdec (diff)
downloadop-kernel-dev-d1c3b177b9940541e89015a726ac279caf1a21f3.zip
op-kernel-dev-d1c3b177b9940541e89015a726ac279caf1a21f3.tar.gz
drm/i915: Restore GTT mapping first upon resume
As suggested by Daniel Vetter, this is a safeguard should any of the registers cause reference to PTE entries. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index ad28b21..2be344a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -304,13 +304,18 @@ static int i915_drm_thaw(struct drm_device *dev)
struct drm_i915_private *dev_priv = dev->dev_private;
int error = 0;
+ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
+ mutex_lock(&dev->struct_mutex);
+ i915_gem_restore_gtt_mappings(dev);
+ mutex_unlock(&dev->struct_mutex);
+ }
+
i915_restore_state(dev);
intel_opregion_setup(dev);
/* KMS EnterVT equivalent */
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
mutex_lock(&dev->struct_mutex);
- i915_gem_restore_gtt_mappings(dev);
dev_priv->mm.suspended = 0;
error = i915_gem_init_ringbuffer(dev);
OpenPOWER on IntegriCloud