[Intel-gfx] [PATCH 2/2] drm/i915: Only enabled DRRS if PRS won't be enabled on this pipe.

Vivi, Rodrigo rodrigo.vivi at intel.com
Wed Mar 25 08:41:51 PDT 2015


On Wed, 2015-03-25 at 16:08 +0530, Ramalingam C wrote:
> On Wednesday 25 March 2015 12:42 AM, Rodrigo Vivi wrote:
> > With PSR enabled being pre computed on pipe_config we can now
> > prevent DRRS to be enabled along with PSR.
> >
> > Cc: Ramalingam C <ramalingam.c at intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > ---
> >   drivers/gpu/drm/i915/intel_dp.c | 10 +++++-----
> >   1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> > index 637dd53..af28833 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -4992,11 +4992,6 @@ static void intel_dp_set_drrs_state(struct drm_device *dev, int refresh_rate)
> >   		return;
> >   	}
> >   
> > -	/*
> > -	 * FIXME: This needs proper synchronization with psr state for some
> > -	 * platforms that cannot have PSR and DRRS enabled at the same time.
> > -	 */
> > -
> >   	dig_port = dp_to_dig_port(intel_dp);
> >   	encoder = &dig_port->base;
> >   	intel_crtc = encoder->new_crtc;
> > @@ -5082,6 +5077,11 @@ void intel_edp_drrs_enable(struct intel_dp *intel_dp)
> >   		return;
> >   	}
> >   
> > +	if (intel_crtc->config->psr_enabled) {
> > +		DRM_DEBUG_KMS("DRRS: PSR enabled on this crtc\n");
> > +		return;
> > +	}
> > +
> But you might want to explicitly disable the DRRS when PSR is supported. 
> Because incase DRRS is enabled before PSR,
> then blocking the enable call wont help us to stop DRRS.
> In fact I would have suggested to place this in DRRS init path.  But a 
> feature called media playback DRRS(in RFC stage)
> needs DRRS active even when PSR is enabled/supported. So dont want to 
> block the DRRS init path because PSR is supported.
> Disabling alone will be sufficient.
> 
> So as soon as PSR support is detected you would like to explicitly 
> disable the DRRS(if it is supported)
> along with blocking further drrs_enable calls.

Not actually. Please take a look on the other patch on this series.
If possible please review both.

intel_crtc->config->psr_enabled is pre-computed and comes before DRRS
enabling. So with this pre-computed psr enable flag we don't need to
switch other states because DRRS won't be enabled never.

> >   	mutex_lock(&dev_priv->drrs.mutex);
> >   	if (WARN_ON(dev_priv->drrs.dp)) {
> >   		DRM_ERROR("DRRS already enabled\n");
> 



More information about the Intel-gfx mailing list