drm/i915: Reinstate an early latency==0 check for skl+
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 21 Dec 2018 17:14:29 +0000 (19:14 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 30 Jan 2019 14:00:44 +0000 (16:00 +0200)
I thought we could remove all the early latency==0 checks
and rely on skl_wm_method{1,2}() checking for it. But
skl_compute_plane_wm() applies a bunch of workarounds to bump
up the latency before calling those guys so clearly it won't
end up doing the right thing. Also not sure if the calculations
based on the method1/2 results are safe agaisnt overflows so
it might not work all that well in any case. Let's put the
early check back.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181221171436.8218-3-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/i915/intel_pm.c

index e517bdd..7473d6e 100644 (file)
@@ -4700,6 +4700,9 @@ static void skl_compute_plane_wm(const struct intel_crtc_state *cstate,
                to_intel_atomic_state(cstate->base.state);
        bool apply_memory_bw_wa = skl_needs_memory_bw_wa(state);
 
+       if (latency == 0)
+               return;
+
        /* Display WA #1141: kbl,cfl */
        if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv) ||
            IS_CNL_REVID(dev_priv, CNL_REVID_A0, CNL_REVID_B0)) &&