drm/i915/skl: Store the new WM state at the very end of the update
authorDamien Lespiau <damien.lespiau@intel.com>
Tue, 4 Nov 2014 17:06:48 +0000 (17:06 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 7 Nov 2014 17:42:07 +0000 (18:42 +0100)
We're going to add a new step, let's not hide the copy of the new WM
state inside one inner function, but as a 1st level operation in the WM
update.

v2: Split the staging results structure to not exceed the 1Kb stack
    allocation in skl_update_wm()

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index bf2cd650880e24421925c049f31f2912149ea8e8..a4294b1b93ca0093e6b57bfc084dd000d1c0d8d6 100644 (file)
@@ -3463,8 +3463,6 @@ static void skl_write_wm_values(struct drm_i915_private *dev_priv,
                                   new->ddb.cursor[pipe].start);
                }
        }
-
-       dev_priv->wm.skl_hw = *new;
 }
 
 static bool skl_update_pipe_wm(struct drm_crtc *crtc,
@@ -3558,6 +3556,9 @@ static void skl_update_wm(struct drm_crtc *crtc)
 
        skl_update_other_pipe_wm(dev, crtc, &config, results);
        skl_write_wm_values(dev_priv, results);
+
+       /* store the new configuration */
+       dev_priv->wm.skl_hw = *results;
 }
 
 static void