drm/i915: don't save/restore DSPARB on gen5+
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Fri, 18 Jan 2013 20:29:03 +0000 (18:29 -0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 24 Jan 2013 15:58:06 +0000 (16:58 +0100)
Because the register does not exist in gen5+.

This patch solves "unclaimed register" messages on Haswell after
suspend/resume.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_suspend.c

index 63d4d30..95c0582 100644 (file)
@@ -620,7 +620,8 @@ static void i915_save_display(struct drm_device *dev)
        struct drm_i915_private *dev_priv = dev->dev_private;
 
        /* Display arbitration control */
-       dev_priv->regfile.saveDSPARB = I915_READ(DSPARB);
+       if (INTEL_INFO(dev)->gen <= 4)
+               dev_priv->regfile.saveDSPARB = I915_READ(DSPARB);
 
        /* This is only meaningful in non-KMS mode */
        /* Don't regfile.save them in KMS mode */
@@ -707,7 +708,8 @@ static void i915_restore_display(struct drm_device *dev)
        struct drm_i915_private *dev_priv = dev->dev_private;
 
        /* Display arbitration */
-       I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
+       if (INTEL_INFO(dev)->gen <= 4)
+               I915_WRITE(DSPARB, dev_priv->regfile.saveDSPARB);
 
        if (!drm_core_check_feature(dev, DRIVER_MODESET)) {
                /* Display port ratios (must be done before clock is set) */