[Intel-gfx] [PATCH] drm/i915/skl: Assume no scaling is available when things are not as expected

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Jun 16 06:46:40 PDT 2015


On Tue, Jun 16, 2015 at 03:40:16PM +0200, Daniel Vetter wrote:
> On Mon, Jun 15, 2015 at 09:03:09PM +0000, Konduru, Chandra wrote:
> > > >
> > > > Cdclk < crtc_clock is not allowed and suggests a different problem elsewhere.
> > > >
> > > > It is more robust and safe to assume no scaling is possible in this case.
> > > >
> > > > Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> > > > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > ---
> > > >  drivers/gpu/drm/i915/intel_display.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_display.c
> > > b/drivers/gpu/drm/i915/intel_display.c
> > > > index 93a5e51..4c99373 100644
> > > > --- a/drivers/gpu/drm/i915/intel_display.c
> > > > +++ b/drivers/gpu/drm/i915/intel_display.c
> > > > @@ -13234,7 +13234,7 @@ skl_max_scale(struct intel_crtc *intel_crtc, struct
> > > intel_crtc_state *crtc_state
> > > >  	crtc_clock = crtc_state->base.adjusted_mode.crtc_clock;
> > > >  	cdclk = dev_priv->display.get_display_clock_speed(dev);
> > > 
> > > Probably fallout from the in-flight dynamic cdclk stuff - this code checks
> > > the wrong bits I guess. Chandra?
> > 
> > Looks like something elsewhere has fallen out and issue manifested here.
> > 
> > Damien reported another issue where get_display_clock_speed causing 
> > an assert because it is called when dev_priv->pm.suspend is true during
> > runtime resume. But later  was resolved after one of atomic patch is 
> > reverted.
> > 
> > While Maarten is addressing recently reported atomic issues, for 
> > time being some atomic crtc patches were reverted.
> > 
> > I am not 100% sure whether issue here is due to same root cause or 
> > due to something different.
> 
> You need to check the cached (and soon the one in the global atomic
> modeset state structure) cdclk value, not the current one in the hw. And
> yeah that can result in asserts since the hw might not be one yet when
> this code is run. I.e. this isn't about atomic modeset but just about
> interaction with the recent cdclk work. And with the existing rpm feature.
> 
> In the future we should even upclock the cdclck stuff (once dynamic cdclk
> is implemented on skl) to make sure it fits the desired scaler
> configuration. But that's follow-up work.

For something like that we probably need some kind of new property to
request extra cdclk headroom when doing a modeset. Otherwise we're going
to end up blinking the displays all the time.

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list