]> xenbits.xensource.com Git - arm/linux.git/commitdiff
drm/i915: Move skip_intermediate_wm handling into ilk_compute_intermediate_wm()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 8 Nov 2018 15:10:13 +0000 (17:10 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 13 Nov 2018 15:03:11 +0000 (17:03 +0200)
No point in cluttering the common codepaths with the
skip_intermediate_wm handling. Just move it into
ilk_compute_intermediate_wm() as those are the only
platforms using this.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181108151013.24064-1-ville.syrjala@linux.intel.com
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> #irc
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_pm.c

index e73638fffe32d8185a4d18ddaf32a93799f4547c..132e978227fbe112085a03a4b3152faad6eae3cd 100644 (file)
@@ -10860,7 +10860,6 @@ static int intel_crtc_atomic_check(struct drm_crtc *crtc,
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
        struct intel_crtc_state *pipe_config =
                to_intel_crtc_state(crtc_state);
-       struct drm_atomic_state *state = crtc_state->state;
        int ret;
        bool mode_changed = needs_modeset(crtc_state);
 
@@ -10897,8 +10896,7 @@ static int intel_crtc_atomic_check(struct drm_crtc *crtc,
                }
        }
 
-       if (dev_priv->display.compute_intermediate_wm &&
-           !to_intel_atomic_state(state)->skip_intermediate_wm) {
+       if (dev_priv->display.compute_intermediate_wm) {
                if (WARN_ON(!dev_priv->display.compute_pipe_wm))
                        return 0;
 
@@ -10914,9 +10912,6 @@ static int intel_crtc_atomic_check(struct drm_crtc *crtc,
                        DRM_DEBUG_KMS("No valid intermediate pipe watermarks are possible\n");
                        return ret;
                }
-       } else if (dev_priv->display.compute_intermediate_wm) {
-               if (HAS_PCH_SPLIT(dev_priv) && INTEL_GEN(dev_priv) < 9)
-                       pipe_config->wm.ilk.intermediate = pipe_config->wm.ilk.optimal;
        }
 
        if (INTEL_GEN(dev_priv) >= 9) {
index 5df7f6e1ab5e03fe04a8803cef5165a9a63934c7..27498ded494945a65538b71830e4ee7b230c16ca 100644 (file)
@@ -3159,7 +3159,8 @@ static int ilk_compute_intermediate_wm(struct drm_device *dev,
         * and after the vblank.
         */
        *a = newstate->wm.ilk.optimal;
-       if (!newstate->base.active || drm_atomic_crtc_needs_modeset(&newstate->base))
+       if (!newstate->base.active || drm_atomic_crtc_needs_modeset(&newstate->base) ||
+           intel_state->skip_intermediate_wm)
                return 0;
 
        a->pipe_enabled |= b->pipe_enabled;