drm/i915: Start WM computation from scratch on ILK-BDW
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 14 Jan 2016 12:53:34 +0000 (14:53 +0200)
committerMatt Roper <matthew.d.roper@intel.com>
Fri, 15 Jan 2016 02:33:25 +0000 (18:33 -0800)
ilk_compute_pipe_wm() assumes as zeroed pipe_wm structure when it
starts. We used to pass such a zeroed struct in, but this got broken
when the pipe_wm structure got embedded in the crtc state.

To fix it without too much fuzz, we need to resort to a memset().

Fixes: 4e0963c7663b ("drm/i915: Calculate pipe watermarks into CRTC state (v3)")
Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1452776015-22076-1-git-send-email-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/intel_pm.c

index 465ca76..966c4c2 100644 (file)
@@ -2317,6 +2317,7 @@ static int ilk_compute_pipe_wm(struct intel_crtc *intel_crtc,
                return PTR_ERR(cstate);
 
        pipe_wm = &cstate->wm.optimal.ilk;
+       memset(pipe_wm, 0, sizeof(*pipe_wm));
 
        for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
                ps = drm_atomic_get_plane_state(state,