drm/i915: Nuke MI_ARB_STATE save/restore
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 8 Sep 2020 14:02:09 +0000 (17:02 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 14 Sep 2020 13:17:19 +0000 (16:17 +0300)
Originally added in commit 1f84e550a870 ("drm/i915 more registers for
S3 (DSPCLK_GATE_D, CACHE_MODE_0, MI_ARB_STATE)") to fix some underruns.
I suspect that was due to the trickle feed settings getting clobbered
during suspend. We've been disabling trickle feed explicitly since
commit 20f949670f51 ("drm/i915: Disable trickle feed via MI_ARB_STATE
for the gen4") so this magic save/restore should no longer be needed.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200908140210.31048-3-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_suspend.c

index 312974d..3b5166b 100644 (file)
@@ -538,7 +538,6 @@ struct intel_gmbus {
 struct i915_suspend_saved_registers {
        u32 saveDSPARB;
        u32 saveCACHE_MODE_0;
-       u32 saveMI_ARB_STATE;
        u32 saveSWF0[16];
        u32 saveSWF1[16];
        u32 saveSWF3[3];
index 33ee379..80d9d27 100644 (file)
@@ -75,9 +75,6 @@ int i915_save_state(struct drm_i915_private *dev_priv)
        if (INTEL_GEN(dev_priv) < 7)
                dev_priv->regfile.saveCACHE_MODE_0 = I915_READ(CACHE_MODE_0);
 
-       /* Memory Arbitration state */
-       dev_priv->regfile.saveMI_ARB_STATE = I915_READ(MI_ARB_STATE);
-
        /* Scratch space */
        if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
                for (i = 0; i < 7; i++) {
@@ -112,9 +109,6 @@ int i915_restore_state(struct drm_i915_private *dev_priv)
                I915_WRITE(CACHE_MODE_0, dev_priv->regfile.saveCACHE_MODE_0 |
                           0xffff0000);
 
-       /* Memory arbitration state */
-       I915_WRITE(MI_ARB_STATE, dev_priv->regfile.saveMI_ARB_STATE | 0xffff0000);
-
        /* Scratch space */
        if (IS_GEN(dev_priv, 2) && IS_MOBILE(dev_priv)) {
                for (i = 0; i < 7; i++) {