Op 14-11-16 om 17:35 schreef ville.syrj...@linux.intel.com: > From: Ville Syrjälä <ville.syrj...@linux.intel.com> > > When we end up not recomputing the cdclk, we need to populate > intel_state->cdclk with the "atomic_cdclk_freq" instead of the > current cdclk_freq. When no pipes are active, the actual cdclk_freq > may be lower than what the configuration of the planes and > pipes would require from the point of view of the software state. > > This fixes bogus WARNS from skl_max_scale() which is trying to check > the plane software state against the cdclk frequency. So any time > it got called during DPMS off for instance, we might have tripped > the warn if the current mode would have required a higher than > minimum cdclk. > > v2: Drop the dev_cdclk stuff (Maarten) > > Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com> > Cc: Mika Kahola <mika.kah...@intel.com> > Cc: bruno.pag...@ens-lyon.org > Cc: Daniel J Blueman <daniel.blue...@gmail.com> > Cc: Paul Bolle <pebo...@tiscali.nl> > Cc: Joseph Yasi <joe.y...@gmail.com> > Tested-by: Paul Bolle <pebo...@tiscali.nl> (v1) > Tested-by: Joseph Yasi <joe.y...@gmail.com> (v1) > Cc: sta...@vger.kernel.org > Fixes: 1a617b77658e ("drm/i915: Keep track of the cdclk as if all crtc's were > active.") > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98214 > Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com> > Reviewed-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_display.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index e48d9571c99d..70f3f0b70263 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -14027,8 +14027,9 @@ static int intel_modeset_checks(struct > drm_atomic_state *state) > > DRM_DEBUG_KMS("New cdclk calculated to be atomic %u, actual > %u\n", > intel_state->cdclk, intel_state->dev_cdclk); > - } else > + } else { > to_intel_atomic_state(state)->cdclk = > dev_priv->atomic_cdclk_freq; > + } > > intel_modeset_clear_plls(state); > > @@ -14129,8 +14130,9 @@ static int intel_atomic_check(struct drm_device *dev, > > if (ret) > return ret; > - } else > - intel_state->cdclk = dev_priv->cdclk_freq; > + } else { > + intel_state->cdclk = dev_priv->atomic_cdclk_freq; > + } > > ret = drm_atomic_helper_check_planes(dev, state); > if (ret)
Reviewed-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com> _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx