drm/i915: Don't leave old junk in ilk active watermarks on readout
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 13 May 2016 14:55:17 +0000 (17:55 +0300)
committerMatt Roper <matthew.d.roper@intel.com>
Fri, 13 May 2016 21:18:06 +0000 (14:18 -0700)
When we read out the watermark state from the hardware we're supposed to
transfer that into the active watermarks, but currently we fail to any
part of the active watermarks that isn't explicitly written. Let's clear
it all upfront.

Looks like this has been like this since the beginning, when I added the
readout. No idea why I didn't clear it up.

Cc: Matt Roper <matthew.d.roper@intel.com>
Fixes: 243e6a44b9ca ("drm/i915: Init HSW watermark tracking in intel_modeset_setup_hw_state()")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1463151318-14719-2-git-send-email-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/intel_pm.c

index fcf925b31575faf8e8966d6efe3ab38ac69464af..adb64638f59534b1aa509b357f58a16087ad8a8e 100644 (file)
@@ -4093,6 +4093,8 @@ static void ilk_pipe_wm_get_hw_state(struct drm_crtc *crtc)
        if (IS_HASWELL(dev) || IS_BROADWELL(dev))
                hw->wm_linetime[pipe] = I915_READ(PIPE_WM_LINETIME(pipe));
 
+       memset(active, 0, sizeof(*active));
+
        active->pipe_enabled = intel_crtc->active;
 
        if (active->pipe_enabled) {