Op 14-11-16 om 17:35 schreef ville.syrjala@xxxxxxxxxxxxxxx: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > 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.lankhorst@xxxxxxxxxxxxxxx> > Cc: Mika Kahola <mika.kahola@xxxxxxxxx> > Cc: bruno.pagani@xxxxxxxxxxxx > Cc: Daniel J Blueman <daniel.blueman@xxxxxxxxx> > Cc: Paul Bolle <pebolle@xxxxxxxxxx> > Cc: Joseph Yasi <joe.yasi@xxxxxxxxx> > Tested-by: Paul Bolle <pebolle@xxxxxxxxxx> (v1) > Tested-by: Joseph Yasi <joe.yasi@xxxxxxxxx> (v1) > Cc: stable@xxxxxxxxxxxxxxx > 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.syrjala@xxxxxxxxxxxxxxx> > Reviewed-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > --- > 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.lankhorst@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx